Class VisOdomMonoOverheadMotion2D<T extends boofcv.struct.image.ImageBase<T>>


  • public class VisOdomMonoOverheadMotion2D<T extends boofcv.struct.image.ImageBase<T>>
    extends java.lang.Object
    Estimates the motion of a monocular camera using the known transform between the camera and the ground plane. The camera's image is converted into an orthogonal overhead view. Features are tracked inside the overhead image and the 2D rigid body motion found. The output can be either the 2D motion or the 3D motion of the camera. There is no scale ambiguity since the transform from the plane to camera is known. The advantage of tracking inside the overhead view instead of the camera image is that the overhead view lacks perspective distortion and is crops the image which does not contain the plane. Features without perspective distortion are easier to track and many false positives are removed by removing many features not on the plane. The plane which is being viewed is defined by the 'planeToCamera' transform. In the plane's reference frame the plane lies along the x-z axis and contains point (0,0,0). See CreateSyntheticOverheadView for more information about the ground plane coordinates and overhead image..
    • Constructor Summary

      Constructors 
      Constructor Description
      VisOdomMonoOverheadMotion2D​(double cellSize, double maxCellsPerPixel, double mapHeightFraction, ImageMotion2D<T,​georegression.struct.se.Se2_F64> motion2D, boofcv.struct.image.ImageType<T> imageType)
      Configures motion estimation algorithm.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void configureCamera​(boofcv.struct.calib.CameraPinholeBrown intrinsic, georegression.struct.se.Se3_F64 planeToCamera)
      Camera the camera's intrinsic and extrinsic parameters.
      ImageMotion2D<T,​georegression.struct.se.Se2_F64> getMotion2D()
      2D motion algorithm
      OverheadView<T> getOverhead()
      Overhead image view
      georegression.struct.se.Se2_F64 getWorldToCurr2D()
      2D motion.
      georegression.struct.se.Se3_F64 getWorldToCurr3D()
      3D motion.
      boolean process​(T image)
      Estimates the motion which the camera undergoes relative to the first frame processed.
      void reset()
      Resets the algorithm into its initial state
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • VisOdomMonoOverheadMotion2D

        public VisOdomMonoOverheadMotion2D​(double cellSize,
                                           double maxCellsPerPixel,
                                           double mapHeightFraction,
                                           ImageMotion2D<T,​georegression.struct.se.Se2_F64> motion2D,
                                           boofcv.struct.image.ImageType<T> imageType)
        Configures motion estimation algorithm.
        Parameters:
        cellSize - Size of cells in plane in world units
        maxCellsPerPixel - Specifies minimum resolution of a region in overhead image. A pixel in the camera can't overlap more than this number of map cells. Higher values allow lower resolution regions. Try 4.
        mapHeightFraction - Reduce the map height by this fraction to avoid excessive unusable image space. Set to 1.0 to maximize the viewing area and any value less than one to crop it.
        motion2D - Estimates motion inside the overhead image.
    • Method Detail

      • configureCamera

        public void configureCamera​(boofcv.struct.calib.CameraPinholeBrown intrinsic,
                                    georegression.struct.se.Se3_F64 planeToCamera)
        Camera the camera's intrinsic and extrinsic parameters. Can be called at any time.
        Parameters:
        intrinsic - Intrinsic camera parameters
        planeToCamera - Transform from the plane to camera.
      • reset

        public void reset()
        Resets the algorithm into its initial state
      • process

        public boolean process​(T image)
        Estimates the motion which the camera undergoes relative to the first frame processed.
        Parameters:
        image - Most recent camera image.
        Returns:
        true if motion was estimated or false if a fault occurred. Should reset after a fault.
      • getWorldToCurr2D

        public georegression.struct.se.Se2_F64 getWorldToCurr2D()
        2D motion.
        Returns:
        from world to current frame.
      • getWorldToCurr3D

        public georegression.struct.se.Se3_F64 getWorldToCurr3D()
        3D motion.
        Returns:
        from world to current frame.
      • getOverhead

        public OverheadView<T> getOverhead()
        Overhead image view
      • getMotion2D

        public ImageMotion2D<T,​georegression.struct.se.Se2_F64> getMotion2D()
        2D motion algorithm