Class PnPInfinitesimalPlanePoseEstimation

java.lang.Object
boofcv.alg.geo.pose.PnPInfinitesimalPlanePoseEstimation

public class PnPInfinitesimalPlanePoseEstimation
extends Object

A plane based pose estimation algorithm [1]. Works by first finding the homography between two sets of 2D points. Then solve for the pose using 3D pose information of the points. Since this is plane based the 3D points must all lie on a plane (z=0). A minimum of 4 points is required to estimate the pose. The planar assumption enables it to run very fast and accurately.

[1] Collins, Toby, and Adrien Bartoli. "Infinitesimal plane-based pose estimation." International journal of computer vision 109.3 (2014): 252-286.

  • Constructor Details

    • PnPInfinitesimalPlanePoseEstimation

      public PnPInfinitesimalPlanePoseEstimation​(Estimate1ofEpipolar estimateHomography)
    • PnPInfinitesimalPlanePoseEstimation

      public PnPInfinitesimalPlanePoseEstimation()
  • Method Details

    • process

      public boolean process​(List<AssociatedPair> points)
      Estimates the transform from world coordinate system to camera given known points and observations. For each observation p1=World 3D location. z=0 is implicit. p2=Observed location of points in image in normalized image coordinates
      Parameters:
      points - List of world coordinates in 2D (p1) and normalized image coordinates (p2)
      Returns:
      true if successful or false if it fails to estimate
    • IPPE

      protected void IPPE​(DMatrixRMaj R1, DMatrixRMaj R2)
      Solves the IPPE problem
    • getHomography

      public DMatrixRMaj getHomography()
    • getMinimumPoints

      public int getMinimumPoints()
    • getWorldToCamera0

      public Se3_F64 getWorldToCamera0()
    • getWorldToCamera1

      public Se3_F64 getWorldToCamera1()
    • getError0

      public double getError0()
    • getError1

      public double getError1()