find-object icon indicating copy to clipboard operation
find-object copied to clipboard

Why some features can't be selected.

Open ZhengYi0310 opened this issue 7 years ago • 6 comments

Hi, As shown in the image, some features can't be selected, such as SURF, SIFT, etc. Why is that, do I need to alter your source code in order to make it selectable ? img_20170412_133442 I'm running the package on Ubuntu 14.04 LTS, ROS Indigo. Thx

ZhengYi0310 avatar Apr 12 '17 21:04 ZhengYi0310

Hi,

You have to build OpenCV from source (with nonfree module for opencv2 or with opencv_contrib for opencv3), then build rtabmap against this version. As you are using Indigo, I recommend to build OpenCV2. If installed in /usr/local (default installation path), rtabmap (cmake) should find and link on this version instead of the binaries installed on 14.04.

cheers, Mathieu

matlabbe avatar Apr 19 '17 02:04 matlabbe

@matlabbe could you give some more details document for this issue? I think this is a very important issue. And its statement is out of this repository at present.

jacknlliu avatar Aug 06 '17 10:08 jacknlliu

An introduction can be found introlab/rtabmap_ros build from souce.

jacknlliu avatar Aug 06 '17 10:08 jacknlliu

I copied/pasted the instructions provided in your link to this project's README.

cheers, Mathieu

matlabbe avatar Aug 07 '17 23:08 matlabbe

Stumbled upon this, trying to clarify:

  • https://github.com/opencv/opencv_contrib/blob/master/modules/xfeatures2d/src/surf.cuda.cpp is BSD-licenced as are a couple of other files.
  • https://github.com/opencv/opencv_contrib/tree/master/modules/xfeatures2d states it contains some non-free 2D feature algorithms
  • But unless the whole sources are provided (with the CMake flag xfeatures2d), OPENCV_XFEATURES2D_FOUND would be false keep the feature from being linked to find-object.
  • https://github.com/opencv/opencv_contrib/pull/442#issuecomment-159050758 is a PR providing an (apparently free) version, sadly, pending for a couple of years.

drzraf avatar Jul 01 '18 05:07 drzraf

From the recent OpenCV versions, I am not sure if they still use a nonfree SURF and SIFT versions. xfeatures2d contain both free and nonfree detectors. It was easier before in OpenCV 2 where we could set an explicit cmake flag to not build with nonfree modules. In OpenCV3, nonfree stuff seems coming by default with the other free thirdparty detectors. Here is the OpenCV3 nonfree header containing SIFT and SURF: https://github.com/opencv/opencv_contrib/blob/246ea8f3bdf174a2aad6216c2601e3a93bf75c29/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp

matlabbe avatar Jul 04 '18 20:07 matlabbe