Suppose I've developed a monocular SLAM or odometry algorithm. Then I want to test it on some dataset, for example KITTI, TUM etc. How should I deal with the absolute scale in this way? Thanks.
2 Answers
Assume something, then adjust your guess based on your measured distance traversed versus actual distance traversed.
If you can get data from a vehicle that drove down a road, and you know the path taken, you can map that route and determine the actual distance travelled. If you assumed some arbitrary distance, and your path turned out to be 340 km, but you know from a map the actual distance traveled is 100 km, then scale your original assumed value to (1/3.4) of whatever your original guess was. Repeat until results match.
-
$\begingroup$ Correct me if I understood you wrong. Suppose we want to initialize a scale (not to make its correction along the full trajectory). From dataset we got two images: first in $t_1$ and second in $t_2$ time moments. We can do 5-point algorithm and get a unit translation vector between these two frames. Also we have ground truth translation length between them. Now we can put the scale as the first length divided by the second one (or v. versa). Right? $\endgroup$ Commented Mar 9, 2018 at 11:33
The absolute scale cannot be estimated if you are utilizing a monocular camera. Either you add an additional sensor information such as IMU or you need a size known object to be in your dataset.
As KITTI dataset has 3D LiDAR scan data as well, you can initially utilize them for finding the absolute scale.