type Number: 'static + Number
type KeyPoint: 'static + KeyPoint<Number = Self::Number>
type Descriptor: 'static + KeyPoint<Number = Self::Number> + Descriptor<Number = Self::Number>
type Landmark: 'static + Landmark<Number = Self::Number>
type Image: 'static + GenericImageView
type Detector: 'static + Detector<Number = Self::Number, KeyPoint = Self::KeyPoint, Image = Self::Image>
type Extractor: 'static + Extractor<Number = Self::Number, Feature = Self::KeyPoint, Descriptor = Self::Descriptor>
type KeyFrame: 'static + KeyFrame<Number = Self::Number, Feature = Self::Landmark>
type World: 'static + World<Number = Self::Number, Landmark = Self::Landmark, KeyFrame = Self::KeyFrame>
type Relocalizer: 'static + Relocalizer<World = Self::World>
type PoseEstimator: 'static + PoseEstimator = NoOptimize
type LoopCloser: 'static + LoopCloser = NoOptimize
type BundleAdjuster: 'static + BundleAdjuster = NoOptimize