vSLAM: vSLAM algorithm is very sensitive to hyperparameters Issue?

6 views (last 30 days)
When I ran the official "Develop Visual SLAM Algorithm Using Unreal Engine Simulation" monocular camera example several times, I adjusted some of the hyperparameters, such as the minimum number of feature matching pairs, the initial start frame selection, the minimum keyframe angle threshold, the minimum number of feature points to track in keyframes, the minimum number of matching pairs for closed-loop detection, and the maximum number of ORB features specified for each image, with only minor changes, and the results of the build were significantly different, as shown in the following figures.(The following results are all constrained by "rng(0)" with a fixed random seed)
RUN in R2022b
fig1 starting at frame 4 of the start frame,some other parameters have been slightly adjusted(Note that I accidentally rotated the map by 180 degrees manually, but this does not affect the viewing coordinates)
fig2 starting frame starts at frame 1, and the other parameters have been modified very slightly as appropriate
fig3 starting frame starts at frame 1 and the other parameters are unchanged (it is curious that this image is better than the final build observation in the official documentation)
Also an example of the official map is given below for visual comparison purposes.

Accepted Answer

Qu Cao
Qu Cao on 29 Nov 2022
You find the nature of the SLAM problem. Yes, the visual SLAM system is sensitive to hyperprameters which usually need to be tuned based on the image data and motion of the camera. Here are some rules that I find useful in pratice:
  • The minimum number of matched feature points depends on the total number of feature points extracted from each image, and therefore is related to the resolution of the image. The larger image size, the larger value for the minimum number of matched pairs.
  • The minimum of tracked map points follows the same rule. Usually I start with 100 and tune it based on a couple of runs.
  • The same rule applies to the minimum number of matched pairs for loop closures.
  • For a 640x480 image you may want to extract 1000 feature points from it. For a 1280x720 image you can extract 2000 points.
  • The minimum parallax is a little difficult to set. Usually 0.5degre or 1degree should do the job.
In general, the marjorioty of the hyperparameters are approximately proportional to the number of extracted feature points in each image, thusa the image size.
Hope this helps!

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!