Visual Odometry, Camera Parameters

903 Views Asked by At

I am studying about visual odometry and watched Prof. Dr. Cyrill Stachniss' video recordings which are available as YouTube 2015/16 Playlist about Photogrammetry I & II .

First, If I want to create my own dataset (like KITTI dataset for VO or like Oxford campus dataset) what should be the properties of the image that I take with a camera. Are they just images? Or, does they have some special properties ? That is, how can I create my own dataset with a monocular or stereo camera.

Thank you.

2

There are 2 best solutions below

3
On BEST ANSWER

To get extrinsic and intrinsic parameters from the image you must have a set of images of known shape from varying views. It's not trivial task to do on your own, by common CV libraries / solution have a built-in utilities for camera calibration (I have to deal with OpenCV library and Matlab CV package and they are generally the same).Usually it's done with a black and white checkboard or another simple geometric pattern.

Then with known camera parameters you can manipulate your own dataset.

Matlab camera calibration reference

OpenCV camera calibration tutorials

0
On

If you want to benchmark some visual odometry algorithms with your dataset, you will definitely need the intrinsic parameters of your camera as well as its pose.

  • As said in @f4f answer, the intrinsic calibration is typically done with some images of a checkerboard that you tilt and rotate (see opencv). This will give you parameters such as focal length, optical center but also the distortion coefficients which can be important depending on your camera.

  • Getting the pose of the camera (i.e extrinsic parameters) at each frame is probably trickier. Usually the ground-truth is obtained using information from additional sensors (tracking system, IMU, GPS, ...). You can have a look at : TUM RGB-D SLAM Dataset and the corresponding paper. They explain how they used a motion-capture system to get the ground-truth pose.

  • Recording the time of acquisition of the camera frames can also be interesting (one timestamp per frame).

Creating your own visual odometry dataset is not trivial. If you just want to create a dataset "for fun" or to do some experiments and if you have only a camera available, I would say you can just try some methods that are known to work well (like ORB-SLAM). This will give you good approximate of the camera poses (you may have to manually fix the unknown scale).