- java.lang.Object
-
- boofcv.alg.sfm.d3.VisOdomDualTrackPnP<T,Desc>
-
public class VisOdomDualTrackPnP<T extends ImageBase,Desc extends TupleDesc> extends java.lang.ObjectStereo visual odometry algorithm which relies on tracking features independently in the left and right images and then matching those tracks together. The idea behind this tracker is that the expensive task of association features between left and right cameras only needs to be done once eat time a track is spawned. Triangulation is used to estimate each feature's 3D location. Motion is estimated robustly using a RANSAC type algorithm provided by the user which internally usesPnPtype algorithm. Estimated motion is relative to left camera.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classVisOdomDualTrackPnP.LeftTrackInfostatic classVisOdomDualTrackPnP.RightTrackInfo
-
Constructor Summary
Constructors Constructor and Description VisOdomDualTrackPnP(int thresholdAdd, int thresholdRetire, double epilolarTol, PointTracker<T> trackerLeft, PointTracker<T> trackerRight, DescribeRegionPoint<T,Desc> describe, AssociateDescription2D<Desc> assocL2R, TriangulateTwoViewsCalibrated triangulate, ModelMatcher<Se3_F64,Stereo2D3D> matcher, ModelFitter<Se3_F64,Stereo2D3D> modelRefiner)Specifies internal algorithms and parameters
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.util.List<PointTrack>getCandidates()Returns a list of active tracks that passed geometric constraintsSe3_F64getCurrToWorld()ModelMatcher<Se3_F64,Stereo2D3D>getMatcher()intgetTick()booleanisFault()If there are no candidates then a fault happened.booleanprocess(T left, T right)Updates motion estimate using the stereo pair.voidreset()Resets the algorithm into its original statevoidsetCalibration(StereoParameters param)
-
-
-
Constructor Detail
-
VisOdomDualTrackPnP
public VisOdomDualTrackPnP(int thresholdAdd, int thresholdRetire, double epilolarTol, PointTracker<T> trackerLeft, PointTracker<T> trackerRight, DescribeRegionPoint<T,Desc> describe, AssociateDescription2D<Desc> assocL2R, TriangulateTwoViewsCalibrated triangulate, ModelMatcher<Se3_F64,Stereo2D3D> matcher, ModelFitter<Se3_F64,Stereo2D3D> modelRefiner)Specifies internal algorithms and parameters- Parameters:
thresholdAdd- When the number of inliers is below this number new features are detectedthresholdRetire- When a feature has not been in the inlier list for this many ticks it is droppedepilolarTol- Tolerance in pixels for enforcing the epipolar constrainttrackerLeft- Tracker used for left cameratrackerRight- Tracker used for right cameradescribe- Describes features in tracksassocL2R- Assocation for left to righttriangulate- Triangulation for estimating 3D location from stereo pairmatcher- Robust motion model estimation with outlier rejectionmodelRefiner- Non-linear refinement of motion model
-
-
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)
Updates motion estimate using the stereo pair.- Parameters:
left- Image from left cameraright- Image from right camera- Returns:
- true if motion estimate was updated and false if not
-
getCurrToWorld
public Se3_F64 getCurrToWorld()
-
getTick
public int getTick()
-
isFault
public boolean isFault()
If there are no candidates then a fault happened.- Returns:
- true if fault. false is no fault
-
getCandidates
public java.util.List<PointTrack> getCandidates()
Returns a list of active tracks that passed geometric constraints
-
getMatcher
public ModelMatcher<Se3_F64,Stereo2D3D> getMatcher()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG