Ask Your Question

Revision history [back]

Object detection optimized

Hello everybody!

I'm trying to create a program to identify specific objects like tire, bottles, vase and etc in a complex background such as abandoned terrain. I will try to use a drone working with a embbed system to scam this terrain to find this objects. In terms of algorithm. I have found some techniques like SURF, bag-of-words, matchers... I have tried to extract keypoints and descriptors using SURF and matching images using flann matcher, but I don't know if this is the best way. I don't wanna know what is the exactly object in the scene, I just wanna know if there is or not any of this objects in the image. Don't need to rank them.

I'm using this to extract keypoints:

int main( int argc, char** argv ){

int minHessian = 900;
Mat imagem_1;

imagem_1 = imread( "1.jpg", CV_LOAD_IMAGE_GRAYSCALE );

SurfFeatureDetector detector( minHessian );

std::vector<KeyPoint> keypoints_1;

detector.detect( imagem_1, keypoints_1 );

Mat img_keypoints_1;

drawKeypoints( imagem_1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DEFAULT );

imshow("Keypoints 1", img_keypoints_1 );
waitKey(0);

What is the best images to extract keypoints?

I'm using this to take the descriptors and store them:

SurfDescriptorExtractor extractor;

Mat descriptor_1;

extractor.compute(imagem_1, keypoints_1, descriptor_1);

FileStorage fs("Keypoints.yml", FileStorage::WRITE);
write(fs, "descriptor_1", descriptor_1);
write(fs, "keypoints_1", keypoints_1);
fs.release();

Someone have some ideias to help me in this project?

Thanks for your support!