Ask Your Question

HOG latent SVM obj detection doesn't seem to work

asked 2012-06-27 20:07:29 -0600

anonymous user


updated 2012-06-27 20:13:59 -0600


am trying to use latent SVM trained with person.xml [of PASCAL VOC]. i've tried several images and there are major problems with it:

  1. it draws several bounding boxes all over the place although there is only one person in the image - these bbs are mostly outside the person bb - i.e. too many false positives to say it is even detecting anything - might as well randomly draw bounding boxes :(

  2. the person is not detected accurately - i.e the bb doesn't cover or covers only part of the person many times - tried with many many images from UCB, PASCAL, INRIA, etc.

  3. lastly, it takes forever to simply process one image - i.e in the order of 1-2 MINUTES on a Macbook Pro - anything so slow is totally not usable.

bottomline - it doesn't seem to work - i've checked most documentation/paper/etc. including Felzenschwalb...'s site, but no idea what is wrong with opencv implementation - does anyone know?

BTW, the paper states somewhere that it should converge [output result] in just 2 or 3 seconds on a standard desktop - so the implementation seems to be way off both in performance, not to mention accuracy - read somewhere it is implemented by U. of Nishni - but no doc anywhere or any pointers

sorry to sound so negative - spent a few hours on it and is very frustrating!!! thanks if someone responsible can look into it and respond. ps: tried to submit a bug, but ros bug link/form doesn't let me.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-06-29 13:32:25 -0600

Valentina Kustikova gravatar image

updated 2012-10-02 05:19:54 -0600

V.G. gravatar image

Hello, I'll try to answer some of your questions.

  1. Nobody says that algorithm provides exact detection outcome. If you open Felzenschwalb's article you see that average precision for object class 'person' equals 0,342. Evidently it's not so good as you waiting for. Concerning too many false positives you can decrease number of false positives decreasing detection threshold in function cvLatentSvmDetectObjects (by default thershold equals 0.5).
  2. Have you tried to execute Felzenshwalb's implementation? If you haven't done I'm ready to do that and compare results to satisfy results similarity or to find out a bag. Please, choose image from VOC2007.
  3. Execution time depends on many conditions, first of all: what version you use (sequential or parallel), how many threads you create during execution if you have multi-core processor, size of test image.

Note that Felzenschwalb's implementation is a multi-threading implementation. Besides authors don't tell about infrastructure in their paper. That's why it's not quite correct to compare execution time of those implementations. OpenCV implementation in 4 threads works about 4 seconds in average (on VOC2007 data, where image size is about 640x480, OS - Microsoft Windows Server 2008 Standard SP1 x64, RAM - 4Gb, Processor - 2 processors Intel Xeon 5150 (2.66 GHz)).

Latent SVM documentation you can find here. More over there are two samples (latentsvm_multidetect, latentsvmdetect) and comments to source code in accordance to the notation of the paper.

edit flag offensive delete link more


cvLatentSvmDetectObjects (by default thershold equals 0.5).

I thought this was overlap threshhold with default value of 0.5. Not confidence scores.

I suggest members not knowing much to not answer, its misleading.

Sam gravatar imageSam ( 2013-01-10 21:19:33 -0600 )edit

Question Tools


Asked: 2012-06-27 20:07:29 -0600

Seen: 1,929 times

Last updated: Oct 02 '12