openMVG_main_ComputeFeatures Options

Created on 19 Oct 2016  路  2Comments  路  Source: openMVG/openMVG

I'm trying to understand openMVG_main_ComputeFeatures better and had a few questions:

  1. Are SIFT, AKAZE_FLOAT and AKAZE_MLDB feature detector algorithms? Are they the only options right now?
  2. For upright feature detection: what is the advantage to -u 0 (rotation invariance) vs. upright feature extraction (-u 1)?
  3. Can all describer presets be used with all describer methods? What is the difference between NORMAL, HIGH and ULTRA?
  4. I assume for numThreads we don't benefit by going above the number of cores we have?

Thanks in advance for any and all help!

question

Most helpful comment

Hi,

  1. Yes, but you can easily implement your own, since usage of inheritance. See the usage of https://github.com/openMVG/openMVG/blob/master/src/software/SfM/main_ComputeFeatures_OpenCV.cpp in order to use some feature detector/descriptor of OpenCV.
  2. If you known that your camera is always up (cam on a car), you can use the upright feature in order to disable the rotation invariance. It can enhance the results by providing more robust matches.
  3. Preset are available for all methods. It controls the number of point you will extract per image. So if you use HIGH you will have more matches per pair and so certainly more image connection in the visibility graph. If you use ULTRA you will have even more matches.
  4. Using a number of thread close to the number of thread you have on your machine is the best choice. As you said it's not necessary to put more that you can compute at a time.

All 2 comments

Hi,

  1. Yes, but you can easily implement your own, since usage of inheritance. See the usage of https://github.com/openMVG/openMVG/blob/master/src/software/SfM/main_ComputeFeatures_OpenCV.cpp in order to use some feature detector/descriptor of OpenCV.
  2. If you known that your camera is always up (cam on a car), you can use the upright feature in order to disable the rotation invariance. It can enhance the results by providing more robust matches.
  3. Preset are available for all methods. It controls the number of point you will extract per image. So if you use HIGH you will have more matches per pair and so certainly more image connection in the visibility graph. If you use ULTRA you will have even more matches.
  4. Using a number of thread close to the number of thread you have on your machine is the best choice. As you said it's not necessary to put more that you can compute at a time.

Thanks @pmoulon - marking as closed!

Was this page helpful?
0 / 5 - 0 ratings