4
$\begingroup$

I'm reading a paper:

Choi C, Trevor A J B, Christensen H I. RGB-D edge detection and edge-based registration[C]//Intelligent Robots and Systems (IROS), 2013 IEEE/RSJ International Conference on. IEEE, 2013: 1568-1575.

which refers:

Visual features such as corners, keypoints, edges, and color are widely used in computer vision and robotic perception for applications such as object recognition and pose estimation, visual odometry, and SLAM

I previously assume pose estimation to be roughly equal to visual odometry, yet the text above seems to deny.

So what's their difference? I didn't find much info from google. IMHO, it seems pose estimation is estimating the pose of moving object with the camera static, while visual odometry is estimating the pose of camera in a static(mostly) scene, is that precise enough?

$\endgroup$

6 Answers 6

4
$\begingroup$

Pose estimation means determining position and orientation.

Odometry is using a (any) sensor to determine how much distance has been traversed, so visual odometry is just clarification that the particular sensor to be used for odometry is visual (a camera, typically). Traversed distance, though, means that odometry is relative - your car odometer may indicate that you traveled 10 miles, but that doesn't really mean anything unless you know your starting position.

Similarly, a wheel encoder on the left and right wheels could give you distance and rotation as the vehicle moves, but again that doesn't mean anything unless you know the starting position and orientation.

As given above, a pose is a position and orientation. It is an absolute value between one frame and another. An accelerometer and a magnetometer can give you an absolute orientation (relative to Earth's gravity and magnetic North), but they can't give you an absolute position. You would need to add a GPS for that.

You can integrate the accelerometer to estimate the elapsed position, but that is meaningless without a starting position and is also prone to accumulating errors. Similarly, visual odometry doesn't mean anything without a known starting position and is also prone to accumulating errors.

So, in conclusion, a pose is an absolute measurement between one frame and another, of position and orientation.

Odometry is generally used to refer to an elapsed or relative position and orientation and, because it is not absolute, is prone to drift over time.

$\endgroup$
4
  • $\begingroup$ " to determine how much distance has been travelled" Do you have any example for a visual odometry algorithm that only outputs the distance? I've never seen one and I really doubt there is a reasonable algorithm that does not estimate the rotation also. $\endgroup$
    – FooTheBar
    Commented May 24, 2016 at 16:38
  • $\begingroup$ In my wikipedia, the article begins with " is the process of determining the position and orientation of a robot by analyzing the associated camera images". Could you maybe clarify what you consider the difference? I read your post in a way that visual odometry only gives the distance (or translation) in contrast to pose estimation which also includes the orientation. $\endgroup$
    – FooTheBar
    Commented May 24, 2016 at 20:07
  • $\begingroup$ @Chuck, is absolute & relative your point? I've seen in papers that "pose estimation" is also relative --to a reference frame manually specified by the author conventionally (e.g., camera coo space of the first video frame) $\endgroup$ Commented May 26, 2016 at 3:19
  • $\begingroup$ @zhangxaochen - Yes, I suppose so. A pose estimate is position and orientation relative to some other frame. The only way to do this is to use an absolute measurement sensor between the two frames, or to establish a pose at the start, make some assumptions, and then try to track how that pose shifts over time. Those assumptions might be that the scene is fixed (what if you're at the North Pole - 360 deg of snow, and I walk past the camera - does it think I moved or it moved?) that wheels don't slip, that tire sizes are exact, etc. Odometry is measurement based on elapsed position. $\endgroup$
    – Chuck
    Commented May 26, 2016 at 12:34
4
$\begingroup$

It is also often the case that the author lacks knowledge, makes mistakes, or is adding unnecessary statements to their work. Just because it is published does not make it true.

In this case though, it might be that the conjuction "and" and commas are confusing you.

such as object recognition and pose estimation, visual odometry, and SLAM

could probably be written more clearly as

such as object recognition, object pose estimation, visual odometry, and SLAM.

so I would interpret them as different.

$\endgroup$
1
  • $\begingroup$ 'object pose' makes more sense to me, which differs pose estimation and VO by saying one be object moving and the other being camera moving. I like this answer. $\endgroup$ Commented Jun 2, 2016 at 2:38
1
$\begingroup$

There is this nice tutorial about Visual Odometry which I believe answer your question:

Visual Odometry, Part I: The First 30 Years and Fundamentals.

In case, you were not convinced, you may also have a look at this article:

Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age

$\endgroup$
0
$\begingroup$

Visual odometry is the task to estimate the motion of the camera relative to the last frame(s). You don't care about loop closures or mapping. If you sum up the relative transformations between frames, you get a guess on the transformation relative to the first frame (your current camera pose). Visual odometry is in this case a way to initialize your pose estimation. This however is a noisy process so you can add more advances techniques (e.g. loop closures) to improve this estimation.

$\endgroup$
1
  • $\begingroup$ loop closures can be used when loops happen, what if to talk more generally? $\endgroup$ Commented May 22, 2016 at 7:52
0
$\begingroup$

Odometry is a combination of two Greek words οδος = odos and μετρων = metro.

Translating directly to English, it means measures.

Odometry is a general term that should include all the measures of a sensor.

Considering, for example, a camera in a robot, Visual odometry (or camera codometry) includes localization (camera position in the world - map), camera pose (position/orientation relative to an origin), camera motion (egomotion) and extrinsic parameters (position of the camera in robot).

$\endgroup$
0
$\begingroup$

Visual odometry is the ego-motion of the camera. It can be obtained by combining camera poses at different time instances. On the other hand, camera pose is defined just for consecutive frames. The full trajectory of the camera is obtained by concatenating all the camera poses.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.