Train a HOG detector for detecting heads (not face) or people (not upright)

2 views (last 30 days)
Hi! I have some videos of people in a room and I'd like to do people tracking.
The camera is in the ceiling, near one wall. So if the person I want do detect and track is in the opposite wall, he appears in the camera as upright person. But if he is above the camera I see only the upper part of the shoulders and the upper part of the head. More, if it is in the right in respect of the camera the person is oblique in the right, and the same in the left part.
This camera setting makes all the normal code for face detection or upright people detection just useless. So I'd like to train my own detector for that.
More on that, people are quite small: in a 1624x1234 pixel video, the heads of the people has a bounding box of more or less 20px.
Now I see 2 choices: 1. use as positive samples only the small heads but I'm not sure if they are too small for HOG feature extraction. 2. use some (3 or 4) HOG detector: one for people from above, one for people in the right, one in the left, one for upright people.
Anyone have some advice? Thanks in advance!

Answers (2)

Anand
Anand on 1 Mar 2016
Do you need to train a detector for this?
I would suggest trying to use an adaptive background subtraction technique to estimate moving objects in the scene against the background. The vision.ForegroundDetector object is the function you need to use for this.
The following example is a good place to start: Motion-Based Multiple Object Tracking

Priyanka khera
Priyanka khera on 11 Apr 2017
I also want to detect head same problem as above can anybody please hell

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!