Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Feature detector and descriptor for low resolution images

I am working with low resolution (VGA) and jpg-compressed sequences of images for visual navigation on a mobile robot. At the moment I am using SURF for detecting keypoints and extracting descriptors out of the images, and FLANN for tracking them. I am getting 4000-5000 features per image, and usually 350-450 matches are made per pair of consecutive images, before applying RANSAC (which usually reduces 20% the number of matches)

I am trying to increase the number (and quality) of the matches. I have tried two other detectors: SIFT and ORB. SIFT increases the number of features noticeably (35% more of tracked features, overall), but it is much slower. ORB extracts roughly as many features as SURF, but the matching performance is much poorer (~100 matches, in the best cases). My implementation in opencv of ORB is:

cv::ORB orb = cv::ORB(10000, 1.2f, 8, 31);
orb(frame->img, cv::Mat(), im_keypoints, frame->descriptors);
frame->descriptors.convertTo(frame->descriptors, CV_32F); //so that is the same type as m_dists

And then, when matching:

cv::Mat m_indices(descriptors1.rows, 2, CV_32S);
cv::Mat m_dists(descriptors1.rows, 2, CV_32F);
cv::flann::Index flann_index(descriptors2, cv::flann::KDTreeIndexParams(6));
flann_index.knnSearch(descriptors1, m_indices, m_dists, 2, cv::flann::SearchParams(64) );

What is the best feature detector and extractor when working with low resolution and noisy images? Should I change any parameter in FLANN depending on the feature detector used?

EDIT:

I post some pictures of a fairly easy sequence to track. The pictures are as I give them to the feature detector methods. They have been preprocessed to eliminate some noise (by means of cv::bilateralFilter())

enter image description hereImage 2

like image 420
capstain Avatar asked Oct 20 '22 06:10

capstain


1 Answers

In many cases the Pyramidal Lucas Kanade optical flow based method is a good choice. the method has some restrictions e.g. big changes in illuminations. If you use a large window 21x21 or bigger than the tracker should be more robust to noise. You can get features to track from your favorit SIFT,SURF,FAST or GFT feature detector or you initialise them as a regular sampled grid. That gives you the advantage of regular samples motion information from your scene.

like image 164
Tobias Senst Avatar answered Oct 23 '22 04:10

Tobias Senst