- java.lang.Object
-
- boofcv.alg.sfm.d3.VisOdomQuadPnP<T,TD>
-
public class VisOdomQuadPnP<T extends ImageGray,TD extends TupleDesc> extends java.lang.ObjectStereo visual odometry algorithm which associates image features across two stereo pairs for a total of four images. Image features are first matched between left and right images while applying epipolar constraints. Then the two more recent sets of stereo images are associated with each other in a left to left and right to right fashion. Features which are consistently matched across all four images are saved in a list. RANSAC is then used to remove false positives and estimate camera motion using aPnPtype algorithm. Motion is estimated using PNP algorithms. These require that each image feature as its 3D coordinate estimated. After a feature is associated between a stereo pair its 3D location is also estimated using triangulation. Iterative refinement can then be applied after motion has been estimated. Inside the code each camera is some times referred to by number. 0 = left camera previous frame. 1 = right camera previous frame. 2 = left camera current frame. 3 = right camera current frame. Estimated motion is relative to left camera.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classVisOdomQuadPnP.ImageInfo<TD extends TupleDesc>Storage for detected features inside an imagestatic classVisOdomQuadPnP.QuadView3D coordinate of the feature and its observed location in each imagestatic classVisOdomQuadPnP.SetMatchesCorrespondences between images
-
Constructor Summary
Constructors Constructor and Description VisOdomQuadPnP(DetectDescribeMulti<T,TD> detector, AssociateDescription2D<TD> assocSame, AssociateDescription2D<TD> assocL2R, TriangulateTwoViewsCalibrated triangulate, ModelMatcher<Se3_F64,Stereo2D3D> matcher, ModelFitter<Se3_F64,Stereo2D3D> modelRefiner)Specifies internal algorithms
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description Se3_F64getLeftToWorld()ModelMatcher<Se3_F64,Stereo2D3D>getMatcher()FastQueue<VisOdomQuadPnP.QuadView>getQuadViews()booleanprocess(T left, T right)Estimates camera egomotion from the stereo pairvoidreset()Resets the algorithm into its original statevoidsetCalibration(StereoParameters param)
-
-
-
Constructor Detail
-
VisOdomQuadPnP
public VisOdomQuadPnP(DetectDescribeMulti<T,TD> detector, AssociateDescription2D<TD> assocSame, AssociateDescription2D<TD> assocL2R, TriangulateTwoViewsCalibrated triangulate, ModelMatcher<Se3_F64,Stereo2D3D> matcher, ModelFitter<Se3_F64,Stereo2D3D> modelRefiner)
Specifies internal algorithms- Parameters:
detector- Estimates image featuresassocSame- Association algorithm used for left to left and right to rightassocL2R- Assocation algorithm used for left to righttriangulate- Used to estimate 3D location of a feature using stereo correspondencematcher- Robust model estimation. Often RANSACmodelRefiner- Non-linear refinement of motion estimation
-
-
Method Detail
-
setCalibration
public void setCalibration(StereoParameters param)
-
reset
public void reset()
Resets the algorithm into its original state
-
process
public boolean process(T left, T right)
Estimates camera egomotion from the stereo pair- Parameters:
left- Image from left cameraright- Image from right camera- Returns:
- true if motion was estimated and false if not
-
getMatcher
public ModelMatcher<Se3_F64,Stereo2D3D> getMatcher()
-
getQuadViews
public FastQueue<VisOdomQuadPnP.QuadView> getQuadViews()
-
getLeftToWorld
public Se3_F64 getLeftToWorld()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG