Question

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.

Was it helpful?

Solution

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).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top