mrpt icon indicating copy to clipboard operation
mrpt copied to clipboard

Implement SOFT features in mrpt-vision

Open jlblancoc opened this issue 8 years ago • 9 comments

  • Paper reference. Seems to outperform many state-of-the-art alternatives.
  • Example MATLAB implementation here

Update Nov 2018: There's a SOFT2 version:

  • Cvisic, I., Cesic, J., Markovic, I., & Petrovic, I. (2017). Soft-SLAM: Computationally efficient stereo visual SLAM for autonomous UAVS. Journal of Field Robotics.

jlblancoc avatar Apr 30 '17 08:04 jlblancoc

I am interested in implementing this feature. Can you give me some cue about where to start from? Thanks!

srihegde avatar Jul 22 '17 19:07 srihegde

Thanks for the initiative! I'll pass you soon a few pointers on how to get started.

jlblancoc avatar Jul 24 '17 14:07 jlblancoc

Since this is a new feature detector for this repo I am thinking of creating a new file altogether, like mrpt/libs/vision/src/CFeatureExtraction_SOFT.cpp and its required utilities in a new folder mrpt/libs/vision/src/SOFT_utils for better organization. Let me know if you have any corrections here.

srihegde avatar Jul 25 '17 07:07 srihegde

Yes, that's perfect.

Please be sure of carefully reading this: https://github.com/MRPT/mrpt/blob/master/.github/CONTRIBUTING.md

Cheers!

jlblancoc avatar Jul 26 '17 09:07 jlblancoc

I started with implementation of the utilities first. So I wanted to know if any of the following standard Matlab APIs are implemented in MRPT -

Thanks.

srihegde avatar Aug 01 '17 06:08 srihegde

Sorry for the delay but as you might have seen... we have too many interesting developing fronts right now!

Answering your doubts:

detectMinEigenFeatures: Detecting Shi-Tomasi features in image

mrpt::vision::CFeatureExtraction::extractFeaturesKLT() does the job if you set options.featsType to featKLT.

extractFeatures: Extracting detected features.

The same class linked above has a computeDescriptors() method with a number of options. Refer to the Doxygen docs in the link.

matchFeatures

Yes: mrpt::vision::matchFeatures

KLT Tracker (Kanade-Lucas-Tomasi)

Yes: mrpt::vision::CFeatureTracker_KL

showMatchedFeatures: For visualization of matched features

Not as a single function, as far as I remember (@famoreno ??), but you could do:

CFeatureList list1,list2;
// ...
mrpt::gui::CDisplayWindow win1, win2;
win1.showImageAndPoints( img1, list1 );
win2.showImageAndPoints( img2, list2 );

jlblancoc avatar Aug 21 '17 23:08 jlblancoc

Thanks! That was really helpful.

srihegde avatar Aug 22 '17 00:08 srihegde

has this feature been implemented?

Doodle1106 avatar May 14 '20 10:05 Doodle1106

Nope... if someone wants to contribute it, fork+pull-requests are welcome! ;-)

jlblancoc avatar May 14 '20 11:05 jlblancoc