3D Pose Estimation

From Wikipedia, the free encyclopedia

3D pose estimation is the problem of determining the transformation of an object in a 2D image which gives the 3D object. The need for 3D pose estimation arises from the limitations of feature based pose estimation. There exist environments where it is difficult to extract corners or edges from an image. To circumvent these issues, the object is dealt with as a whole through the use of free-form contours.[1]

Contents

[edit] 2D to 3D Pose Estimation

Given a 2D image of an object, it is assumed that the camera is calibrated with respect to a world coordinate system. The goal is to find the pose which gives the 3D object in its object coordinate system. [2]

[edit] Extracting 3D from 2D

Starting with a 2D image, image points are extracted which correspond to corners in an image. The projection rays from the image points are reconstructed from the 2D points so that the 3D points, which must be incident with the reconstructed rays, can be determined.

[edit] Psuedocode

The algorithm for determining pose estimation is based off of the Iterative Closest Point algorithm. The main idea is to determine the correspondences between 2D image features and points on the 3D model curve.

  (a)Reconstruct projection rays from the image points
(b)Estimate the nearest opint of each projection ray to a point on the 3D contour
(c)Estimate the pose of the contour with the use of this correspondence set
(d)goto (b)

The above algorithm does not account for images containing an object that is partially occluded. The following algorithm assumes that all contours are rigidly coupled, meaning the pose of one contour defines the pose of another contour.

  (a)Reconstruct projection rays from the image points
(b)For each projection ray R:
(c)For each 3D contour:
(c1)Estimate the nearest point P1 of ray R to a point on the contour
(c2)if (n==1) chose P1 as actual P for the point-line correspondence
(c3)else compare P1 with P:
if dist(P1, R) is smaller than dist(P, R)
then choose P1 as new P
(d)Use (P, R) as correspondence set.
(e)Estimate pose with this correspondence set
(f)Transform contours, goto (b)

In practice, using a 2Gh pentium processor, average speeds of 29fps have been reached using the above algorithm.[3]

[edit] Estimating Pose Through Comparison

Systems exist which use a database of an object at different rotations and translations to compare an input image against to estimate pose. These systems accuracy is limited to situations which are represented in their database of images, however the goal is to recognize a pose, rather than determine it.[4]


[edit] Notes

  1. ^ Bodo Rosenhahn. Pose Estimation of 3D Free-form Contours in Conformal Geometry (English / German). Institut fur Informatik und Praktische Mathematik, Christian-Albrechts-Universitat zu Kiel. Retrieved on 2008-6-09.
  2. ^ Bodo Rosenhahn. Foundations about 2D-3D Pose Estimation (English). CV Online. Retrieved on 2008-6-09.
  3. ^ Bodo Rosenhahn. Foundations about 2D-3D Pose Estimation (English). CV Online. Retrieved on 2008-6-09.
  4. ^ You must specify title = and url = when using {{cite web}}.Vassilis Athitsos. (English). Boston University Computer Science Tech.. Retrieved on 2008-6-09.

[edit] References

  • Rosenhahn, B. "Foundations about 2D-3D Pose Estimation."
  • Rosenhahn, B. "Pose Estimation of 3D Free-form Contours in Conformal Geometry."
  • Vassilis, A. "Estimating 3D Hand Pose from a Cluttered Image."

[edit] See also

[edit] External links

  • [1] Further readings on various Computer Vision topics as well as more information on 3D pose estimation