c++ - Improving accuracy OpenCV HOG people detector -


I am working in a project. One part of the project integrates the OPCV camera detector with camera streaming.

Currently the camera and the original Hog detector (CPP detector Multi-Sky ->) is working. But do not work very well ... These salvagees are not very much and the algorithms are not very accurate ...

Why?

My camera image is 640 x 480 pixels.

The snippet code I'm using is:

  std :: vector & lt; Cv :: rect & gt; Found, found_filters; CV :: HOGDescriptor hog; Hog.setSVMDetector (cv :: HOGDescriptor :: getDefaultPeopleDetector ()); Hog.detectMultiScale (image, found, 0, cv :: size (8,8), cv :: size (32,32), 1.05, 2);  

Why not work properly? What is the need to improve accuracy? Is some image size particularly necessary?

PS: Do you find some exact people's algorithms in CPP, fast and evolve ??

The default people detector size is 64x128, which means that the people you want to know Must be at least 64x128. For the resolution of your camera it would mean that a person needs to take a lot of space before he gets to know properly.

Depending on your specific situation, you can try your hand to train your own HOG descriptor, small size.

win_stride: Looking at your input image, you want to train your own HOG descriptor. Size of 640 x 480, and the default Lok Folk Finder window size is 64x128, you can fit HOG detection window (64x128 window) several times in the input image. Windstrand tells HOG to move a certain amount every time on the detection window. How it works: The hog keeps the identity window at the top left of your input image. And transfers the identity window every time by win_stride.

In this way (small win_stride): Enter image description here

< P> or this way (big win_stride) Enter image details here

A small Success should improve accuracy, but preformance is reduced, and on the other side

padding padding adds some extra pixels on each side to detect input image like this The window input is placed slightly outside the image. This is due to the padding that HOG can detect by people near the edge of the input image.

group_threshold group_treshold defines the value when the detected part should be placed in a group. If the following value does not provide any result group, a high value provides the result group if the amount of traceholds within the identified windows has been found. (In my own experience, I do not ever need to change the default value)

I hope this makes a little sense for you. I have been working with Hog for the past few weeks, and I read many papers, but I lost some context, so I can not link to the pages where this information comes, forgive me.


Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -