Visual odometry
In robotics and computer vision, visual odometry is the process of determining the position and orientation of a robot by analyzing the associated camera images. It has been used in a wide variety of robotic applications, such as on the Mars Exploration Rovers.[1]
Overview
In navigation, odometry is the use of data from the movement of actuators to estimate change in position over time through devices such as rotary encoders to measure wheel rotations. While useful for many wheeled or tracked vehicles, traditional odometry techniques cannot be applied to mobile robots with non-standard locomotion methods, such as legged robots. In addition, odometry universally suffers from precision problems, since wheels tend to slip and slide on the floor creating a non-uniform distance traveled as compared to the wheel rotations. The error is compounded when the vehicle operates on non-smooth surfaces. Odometry readings become increasingly unreliable as these errors accumulate and compound over time.
Visual odometry is the process of determining equivalent odometry information using sequential camera images to estimate the distance traveled. Visual odometry allows for enhanced navigational accuracy in robots or vehicles using any type of locomotion on any[citation needed] surface.
Types
There are various types of VO.
Monocular and stereo
Depending on the camera setup, VO can be categorized as Monocular VO (single camera), Stereo VO (two camera in stereo setup).
Feature-based and direct method
Traditional VO's visual information is obtained by the feature-based method, which extracts the image feature points and tracks them in the image sequence. Recent developments in VO research provided an alternative, called the direct method, which uses pixel intensity in the image sequence directly as visual input. There are also hybrid methods.
Visual inertial odometry
If an inertial measurement unit (IMU) is used within the VO system, it is commonly referred to as Visual Inertial Odometry (VIO).
Algorithm
Most existing approaches to visual odometry are based on the following stages.
- Acquire input images: using either
- Image correction: apply image processingtechniques for lens distortion removal, etc.
- Feature detection: define interest operators, and match features across frames and construct optical flowfield.
- Feature extractionand correlation.
- Use correlation, not long term feature tracking, to establish correspondenceof two images.
- Use correlation, not long term
- Construct optical flow field (Lucas–Kanade method).
- Check flow field vectors for potential tracking errors and remove outliers.[7]
- Estimation of the camera motion from the optical flow.[8][9][10][11]
- Choice 1: Kalman filter for state estimate distribution maintenance.
- Choice 2: find the geometric and 3D properties of the features that minimize a random sampling.
- Periodic repopulation of trackpoints to maintain coverage across the image.
An alternative to feature-based methods is the "direct" or appearance-based visual odometry technique which minimizes an error directly in sensor space and subsequently avoids feature matching and extraction.[4][12][13]
Another method, coined 'visiodometry' estimates the planar roto-translations between images using Phase correlation instead of extracting features.[14][15]
Egomotion
Egomotion is defined as the 3D motion of a camera within an environment.[16] In the field of computer vision, egomotion refers to estimating a camera's motion relative to a rigid scene.[17] An example of egomotion estimation would be estimating a car's moving position relative to lines on the road or street signs being observed from the car itself. The estimation of egomotion is important in autonomous robot navigation applications.[18]
Overview
The goal of estimating the egomotion of a camera is to determine the 3D motion of that camera within the environment using a sequence of images taken by the camera.
Features are detected in the first frame, and then matched in the second frame. This information is then used to make the optical flow field for the detected features in those two images. The optical flow field illustrates how features diverge from a single point, the focus of expansion. The focus of expansion can be detected from the optical flow field, indicating the direction of the motion of the camera, and thus providing an estimate of the camera motion.
There are other methods of extracting egomotion information from images as well, including a method that avoids feature detection and optical flow fields and directly uses the image intensities.[16]
See also
- Dead reckoning
- Odometry
- Optical flow
- Optical motion capture
References
- S2CID 17544166. Retrieved 2008-07-10.
- ^ Chhaniyara, Savan; KASPAR ALTHOEFER; LAKMAL D. SENEVIRATNE (2008). "Visual Odometry Technique Using Circular Marker Identification For Motion Parameter Estimation". Advances in Mobile Robotics: Proceedings of the Eleventh International Conference on Climbing and Walking Robots and the Support Technologies for Mobile Machines, Coimbra, Portugal. The Eleventh International Conference on Climbing and Walking Robots and the Support Technologies for Mobile Machines. Vol. 11. World Scientific, 2008. Archived from the original on 2012-02-24. Retrieved 2010-01-22.
- ^ .
- ^ S2CID 15139693.
- S2CID 13894940.
- .
- .
- ^ Sunderhauf, N.; Konolige, K.; Lacroix, S.; Protzel, P. (2005). "Visual odometry using sparse bundle adjustment on an autonomous outdoor vehicle". In Levi; Schanz; Lafrenz; Avrutin (eds.). Tagungsband Autonome Mobile Systeme 2005 (PDF). Reihe Informatik aktuell. Springer Verlag. pp. 157–163. Archived from the original (PDF) on 2009-02-11. Retrieved 2008-07-10.
- ISBN 978-3-540-77456-3.
- . Retrieved 2010-06-06.
- S2CID 15149330.
- .
- .
- .
- .
- ^ a b c Irani, M.; Rousso, B.; Peleg S. (June 1994). "Recovery of Ego-Motion Using Image Stabilization" (PDF). IEEE Computer Society Conference on Computer Vision and Pattern Recognition: 21–23. Retrieved 7 June 2010.
- S2CID 206418830.
- S2CID 5494756. Retrieved 7 June 2010.
- ^ Tian, T.; Tomasi, C.; Heeger, D. (1996). "Comparison of Approaches to Egomotion Computation" (PDF). IEEE Computer Society Conference on Computer Vision and Pattern Recognition: 315. Archived from the original (PDF) on August 8, 2008. Retrieved 7 June 2010.
- ^ a b Milella, A.; Siegwart, R. (January 2006). "Stereo-Based Ego-Motion Estimation Using Pixel Tracking and Iterative Closest Point" (PDF). IEEE International Conference on Computer Vision Systems: 21. Archived from the original (PDF) on 17 September 2010. Retrieved 7 June 2010.
- . Retrieved 7 June 2010.
- ^ Sudin Dinesh, Koteswara Rao, K.; Unnikrishnan, M.; Brinda, V.; Lalithambika, V.R.; Dhekane, M.V. "Improvements in Visual Odometry Algorithm for Planetary Exploration Rovers". IEEE International Conference on Emerging Trends in Communication, Control, Signal Processing & Computing Applications (C2SPCA), 2013