1

I'm trying to create an android application for detecting objects from camera using openCV, I read the openCV reference and found there are many methods for image detection,

my purpose is to create an application

1) App can detect the any object from database(set of objects that can be detected) on real time camera frame.(Speed of processing/detection is important)

2) The database of object images will be updated from time to time.(database preferably on an external server) - Does this mean I cannot use cascade classifier, HOG or any machine learing methods?

3) The camera frame may sometimes have two or more objects that are in database can both be detected in this case?

I tried a simple feature detection with ORB detection and description and bruteforce matching but gives detection for almost any object or even a wall - false positive detection.(using SIFT or SURF for testing even throws error)

FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.ORB);
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE);

I dont need any homography or perspective since I'm not going to project anything just a robust method to detect presence of object.

shyamnathan
  • 133
  • 11

1 Answers1

0

2) You can, but you would have to train new detectors if you want to add objects to the database.

3)Yes, if you would apply more then one detector on the frame.

You can use latentsvm object detection for detection by parts implementation, but it's a bit tricky to train new models.

Other then that, you can use Viola & Jones or one of many object detection schemes (for example, HOG + SVM or BOW+SVM).

GilLevi
  • 2,117
  • 5
  • 22
  • 38
  • Any default method without using training for specific images since database images can be updated by almost anyone? and in openCV can surf/sift be used for test ie. non-commercial purpose. – shyamnathan Aug 17 '13 at 16:10
  • If you don't want to use training, that means you can only use knn classification, and I'm not sure if that would work. In openCV, Surf and Sift are patented. Not sure what the patent details are. – GilLevi Aug 17 '13 at 16:44