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!