Camera setup: We have setup some stereo cameras in a living apartment. That is, the indoor environment is monitored. With the stereo cameras, wide lens (3.5mm) are used to cover a big volume.

The height from the floor is around 2.8 meters. The objects (such as mug, bottle, telephone) are at least 3 meters away. For instance, an object (75mmx102mm), which located 3 meters away from the camera, is represented by 15x20px in the camera image. Thus, the images are getting smaller in the far field.

I have around 30 different objects to be recognized.

I do not use the depth information, because it is not so accurate. I just use RGB values from a single camera. Image resolution is 1360 x 1024 pixels.

Approaches: 1. Point detectors/descriptors, matches (some models in the database, and check the match one by one) 2. Bag of visual worlds + SVM classification (5 object categories)

I had experiences with Haar-cascade but I never tried for my current issue.

What methods/approaches should I try to investigate?

Thank you in advance,


I share your assumption about depth being useless here.

The approach #1 based on point detectors seems also useless, because there is probably a difference in scale between your reference (learning) images and the representation of objects in the real pictures that is so big that point detection becomes useless. Information is not present at the same level.

So, you're left with approach #2, which sounds reasonable since it's also more-or-less the state-of-the-art in object detection benchmarks. You may improve the performance of your system by using a training set of pictures that have the size of the objects in the real (test) images.

Also, you will use only the descriptor part of the existing keypoints and apply it in sliding windows. Since oyu have a very poor resolution on objects, I believe that SIFT-like descriptors (e.g., HoG) will have poor performance, while binary descriptors (LBPs, BRISK, FREAK, ORB) will probably behave better (they are less dependant on pixel accurate resolution).

Also, if your objects are very different, you may try a simple image correlation (using again learning images downscaled to the actual size of the objects in the test pictures).

  • $\begingroup$ Thank you for your answer. In the approach 2 (bag of visual words), I tried SIFT and/or FAST point detectors, and SIFT and ORB point descriptors. The result is so bad due to the same reason. The point detectors cannot detect any points of the objects in the far field. What point (feature) detector should I use to train the bag of features? Do you mean template matching by "simple image correlation"? What another approach do you suggest? $\endgroup$ – edayangac Sep 27 '13 at 7:13
  • $\begingroup$ In approach #2, you do not use the detection part of the keypoints, only the description part. You can use any descriptor (though I believe that things like LBP's and binary descriptors such as BRISK, ORB, FREAK will behave better. $\endgroup$ – sansuiso Sep 27 '13 at 7:55
  • $\begingroup$ Are you sure? I am aware of such descriptors, and I use them. First I extract keypoints and then I compute descriptors from the detected keypoints. How do you compute descriptors without any keypoints? For example, BRIEF and ORB are using FAST. How does it work without FAST keypoints? Do I know and use the things wrong? $\endgroup$ – edayangac Sep 27 '13 at 8:50
  • $\begingroup$ FAST is only used to provide the source image patch where the descriptor part is computed. You can have a look at the OpenCV API that separates the 2 operations (detection-then-description), and then have a look at the implementation if it is not enough. $\endgroup$ – sansuiso Sep 27 '13 at 9:37
  • $\begingroup$ Right, it separates 2 operations. But you are ignoring that no good feature detection, no good description. Aren't you? $\endgroup$ – edayangac Sep 27 '13 at 10:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.