pub struct NormalizeBBoxLayer { /* private fields */ }Expand description
- normalization layer.
§Parameters
- p: Normalization factor. The most common
p = 1for- normalization or
p = 2for- normalization or a custom one.
- eps: Parameter
to prevent a division by zero.
- across_spatial: If true, normalize an input across all non-batch dimensions. Otherwise normalize an every channel separately.
Across spatial: @f[ norm = \sqrt[p]{\epsilon + \sum_{x, y, c} |src(x, y, c)|^p } \ dst(x, y, c) = \frac{ src(x, y, c) }{norm} @f]
Channel wise normalization: @f[ norm(c) = \sqrt[p]{\epsilon + \sum_{x, y} |src(x, y, c)|^p } \ dst(x, y, c) = \frac{ src(x, y, c) }{norm(c)} @f]
Where x, y - spatial coordinates, c - channel.
An every sample in the batch is normalized separately. Optionally, output is scaled by the trained parameters.
Implementations§
Source§impl NormalizeBBoxLayer
impl NormalizeBBoxLayer
Sourcepub fn default() -> NormalizeBBoxLayer
pub fn default() -> NormalizeBBoxLayer
Creates a default instance of the class by calling the default constructor
pub fn create( params: &impl LayerParamsTraitConst, ) -> Result<Ptr<NormalizeBBoxLayer>>
Trait Implementations§
Source§impl AlgorithmTrait for NormalizeBBoxLayer
impl AlgorithmTrait for NormalizeBBoxLayer
Source§impl AlgorithmTraitConst for NormalizeBBoxLayer
impl AlgorithmTraitConst for NormalizeBBoxLayer
fn as_raw_Algorithm(&self) -> *const c_void
Source§fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
Source§fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
Source§fn empty(&self) -> Result<bool>
fn empty(&self) -> Result<bool>
Source§fn save(&self, filename: &str) -> Result<()>
fn save(&self, filename: &str) -> Result<()>
Source§fn get_default_name(&self) -> Result<String>
fn get_default_name(&self) -> Result<String>
Source§impl Boxed for NormalizeBBoxLayer
impl Boxed for NormalizeBBoxLayer
Source§unsafe fn from_raw(
ptr: <NormalizeBBoxLayer as OpenCVFromExtern>::ExternReceive,
) -> Self
unsafe fn from_raw( ptr: <NormalizeBBoxLayer as OpenCVFromExtern>::ExternReceive, ) -> Self
Source§fn into_raw(
self,
) -> <NormalizeBBoxLayer as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw( self, ) -> <NormalizeBBoxLayer as OpenCVTypeExternContainer>::ExternSendMut
Source§fn as_raw(
&self,
) -> <NormalizeBBoxLayer as OpenCVTypeExternContainer>::ExternSend
fn as_raw( &self, ) -> <NormalizeBBoxLayer as OpenCVTypeExternContainer>::ExternSend
Source§fn as_raw_mut(
&mut self,
) -> <NormalizeBBoxLayer as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self, ) -> <NormalizeBBoxLayer as OpenCVTypeExternContainer>::ExternSendMut
Source§impl Debug for NormalizeBBoxLayer
impl Debug for NormalizeBBoxLayer
Source§impl Default for NormalizeBBoxLayer
impl Default for NormalizeBBoxLayer
Source§impl Drop for NormalizeBBoxLayer
impl Drop for NormalizeBBoxLayer
Source§impl From<NormalizeBBoxLayer> for Algorithm
impl From<NormalizeBBoxLayer> for Algorithm
Source§fn from(s: NormalizeBBoxLayer) -> Self
fn from(s: NormalizeBBoxLayer) -> Self
Source§impl From<NormalizeBBoxLayer> for Layer
impl From<NormalizeBBoxLayer> for Layer
Source§fn from(s: NormalizeBBoxLayer) -> Self
fn from(s: NormalizeBBoxLayer) -> Self
Source§impl LayerTrait for NormalizeBBoxLayer
impl LayerTrait for NormalizeBBoxLayer
fn as_raw_mut_Layer(&mut self) -> *mut c_void
Source§fn set_blobs(&mut self, val: Vector<Mat>)
fn set_blobs(&mut self, val: Vector<Mat>)
fn set_inputs(&mut self, val: Vector<Arg>)
fn set_outputs(&mut self, val: Vector<Arg>)
fn netimpl(&mut self) -> *mut c_void
unsafe fn set_netimpl(&mut self, val: *const c_void)
Source§fn set_name(&mut self, val: &str)
fn set_name(&mut self, val: &str)
Source§fn set_type(&mut self, val: &str)
fn set_type(&mut self, val: &str)
Source§fn set_preferable_target(&mut self, val: i32)
fn set_preferable_target(&mut self, val: i32)
Source§fn finalize(
&mut self,
inputs: &impl ToInputArray,
outputs: &mut impl ToOutputArray,
) -> Result<()>
fn finalize( &mut self, inputs: &impl ToInputArray, outputs: &mut impl ToOutputArray, ) -> Result<()>
Source§fn forward_mat(
&mut self,
input: &mut Vector<Mat>,
output: &mut Vector<Mat>,
internals: &mut Vector<Mat>,
) -> Result<()>
fn forward_mat( &mut self, input: &mut Vector<Mat>, output: &mut Vector<Mat>, internals: &mut Vector<Mat>, ) -> Result<()>
Use Layer::forward(InputArrayOfArrays, OutputArrayOfArrays, OutputArrayOfArrays) instead
Source§fn forward(
&mut self,
inputs: &impl ToInputArray,
outputs: &mut impl ToOutputArray,
internals: &mut impl ToOutputArray,
) -> Result<()>
fn forward( &mut self, inputs: &impl ToInputArray, outputs: &mut impl ToOutputArray, internals: &mut impl ToOutputArray, ) -> Result<()>
Source§fn forward_fallback(
&mut self,
inputs: &impl ToInputArray,
outputs: &mut impl ToOutputArray,
internals: &mut impl ToOutputArray,
) -> Result<()>
fn forward_fallback( &mut self, inputs: &impl ToInputArray, outputs: &mut impl ToOutputArray, internals: &mut impl ToOutputArray, ) -> Result<()>
Source§fn finalize_mat_to(
&mut self,
inputs: &Vector<Mat>,
outputs: &mut Vector<Mat>,
) -> Result<()>
fn finalize_mat_to( &mut self, inputs: &Vector<Mat>, outputs: &mut Vector<Mat>, ) -> Result<()>
Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead
Source§fn finalize_mat(&mut self, inputs: &Vector<Mat>) -> Result<Vector<Mat>>
fn finalize_mat(&mut self, inputs: &Vector<Mat>) -> Result<Vector<Mat>>
Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead
Source§fn run(
&mut self,
inputs: &Vector<Mat>,
outputs: &mut Vector<Mat>,
internals: &mut Vector<Mat>,
) -> Result<()>
fn run( &mut self, inputs: &Vector<Mat>, outputs: &mut Vector<Mat>, internals: &mut Vector<Mat>, ) -> Result<()>
This method will be removed in the future release.
Source§fn input_name_to_index(&mut self, input_name: &str) -> Result<i32>
fn input_name_to_index(&mut self, input_name: &str) -> Result<i32>
Source§fn output_name_to_index(&mut self, output_name: &str) -> Result<i32>
fn output_name_to_index(&mut self, output_name: &str) -> Result<i32>
Source§fn support_backend(&mut self, backend_id: i32) -> Result<bool>
fn support_backend(&mut self, backend_id: i32) -> Result<bool>
fn init_ngraph( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, nodes: &Vector<Ptr<BackendNode>>, ) -> Result<Ptr<BackendNode>>
fn init_vk_com( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, outputs: &mut Vector<Ptr<BackendWrapper>>, ) -> Result<Ptr<BackendNode>>
fn init_webnn( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, nodes: &Vector<Ptr<BackendNode>>, ) -> Result<Ptr<BackendNode>>
Source§unsafe fn init_cuda(
&mut self,
context: *mut c_void,
inputs: &Vector<Ptr<BackendWrapper>>,
outputs: &Vector<Ptr<BackendWrapper>>,
) -> Result<Ptr<BackendNode>>
unsafe fn init_cuda( &mut self, context: *mut c_void, inputs: &Vector<Ptr<BackendWrapper>>, outputs: &Vector<Ptr<BackendWrapper>>, ) -> Result<Ptr<BackendNode>>
Source§unsafe fn init_tim_vx(
&mut self,
tim_vx_info: *mut c_void,
inputs_wrapper: &Vector<Ptr<BackendWrapper>>,
outputs_wrapper: &Vector<Ptr<BackendWrapper>>,
is_last: bool,
) -> Result<Ptr<BackendNode>>
unsafe fn init_tim_vx( &mut self, tim_vx_info: *mut c_void, inputs_wrapper: &Vector<Ptr<BackendWrapper>>, outputs_wrapper: &Vector<Ptr<BackendWrapper>>, is_last: bool, ) -> Result<Ptr<BackendNode>>
Source§fn init_cann(
&mut self,
inputs: &Vector<Ptr<BackendWrapper>>,
outputs: &Vector<Ptr<BackendWrapper>>,
nodes: &Vector<Ptr<BackendNode>>,
) -> Result<Ptr<BackendNode>>
fn init_cann( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, outputs: &Vector<Ptr<BackendWrapper>>, nodes: &Vector<Ptr<BackendNode>>, ) -> Result<Ptr<BackendNode>>
Source§fn set_activation(&mut self, layer: &Ptr<ActivationLayer>) -> Result<bool>
fn set_activation(&mut self, layer: &Ptr<ActivationLayer>) -> Result<bool>
Source§fn try_fuse(&mut self, top: &mut Ptr<Layer>) -> Result<bool>
fn try_fuse(&mut self, top: &mut Ptr<Layer>) -> Result<bool>
Source§fn unset_attached(&mut self) -> Result<()>
fn unset_attached(&mut self) -> Result<()>
fn update_memory_shapes(&mut self, inputs: &Vector<MatShape>) -> Result<bool>
fn set_params_from(&mut self, params: &impl LayerParamsTraitConst) -> Result<()>
Source§impl LayerTraitConst for NormalizeBBoxLayer
impl LayerTraitConst for NormalizeBBoxLayer
fn as_raw_Layer(&self) -> *const c_void
Source§fn blobs(&self) -> Vector<Mat>
fn blobs(&self) -> Vector<Mat>
fn inputs(&self) -> Vector<Arg>
fn outputs(&self) -> Vector<Arg>
Source§fn name(&self) -> String
fn name(&self) -> String
Source§fn preferable_target(&self) -> i32
fn preferable_target(&self) -> i32
fn subgraphs(&self) -> Result<Vector<Ptr<Graph>>>
Source§fn get_scale_shift(
&self,
scale: &mut impl MatTrait,
shift: &mut impl MatTrait,
) -> Result<()>
fn get_scale_shift( &self, scale: &mut impl MatTrait, shift: &mut impl MatTrait, ) -> Result<()>
Source§fn get_scale_zeropoint(
&self,
scale: &mut f32,
zeropoint: &mut i32,
) -> Result<()>
fn get_scale_zeropoint( &self, scale: &mut f32, zeropoint: &mut i32, ) -> Result<()>
fn get_memory_shapes( &self, inputs: &Vector<MatShape>, required_outputs: i32, outputs: &mut Vector<MatShape>, internals: &mut Vector<MatShape>, ) -> Result<bool>
fn get_types( &self, inputs: &Vector<MatType>, required_outputs: i32, required_internals: i32, outputs: &mut Vector<MatType>, internals: &mut Vector<MatType>, ) -> Result<()>
fn get_layouts( &self, actual_inputs: &Vector<DataLayout>, desired_inputs: &mut Vector<DataLayout>, required_outputs: i32, outputs: &mut Vector<DataLayout>, ) -> Result<i32>
fn get_flops( &self, inputs: &Vector<MatShape>, outputs: &Vector<MatShape>, ) -> Result<i64>
fn always_support_inplace(&self) -> Result<bool>
fn dynamic_output_shapes(&self) -> Result<bool>
fn is_data_shuffling(&self) -> Result<bool>
impl Send for NormalizeBBoxLayer
Auto Trait Implementations§
impl !Sync for NormalizeBBoxLayer
impl Freeze for NormalizeBBoxLayer
impl RefUnwindSafe for NormalizeBBoxLayer
impl Unpin for NormalizeBBoxLayer
impl UnsafeUnpin for NormalizeBBoxLayer
impl UnwindSafe for NormalizeBBoxLayer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
Source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res,
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res
Mat or another similar object. By passing
a mutable reference to the Mat to this function your closure will get called with the read reference and a write references
to the same Mat. This is unsafe in a general case as it leads to having non-exclusive mutable access to the internal data,
but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place
modification is imgproc::threshold. Read more