150 likes | 160 Views
Our goal is to track and distinguish different people in movies for security purposes, collecting statistics, and more. Our approach focuses on detecting heads as the main point of tracking and simplifying the problem. We use parameters, trajectories, and hysteresis to improve accuracy. However, there are limitations and potential improvements for further development.
E N D
27/01/2009 Benny Neeman Leon Ribinik "Head detect" FinalPresentation Computer Vision Workshop
Our Goal – People Tracking We would like to be able to track and distinguish the different people in a movie.
Why? • For security purposes. • Collecting statistics – e.g. “How many people visit the mall each day?”. • Much more…
Our Approach • Most tracking algorithms try to track the whole person. • We think heads are enough: • One head per person. • Heads are pretty much rigid. • Easier to detect a whole head without losing parts of the blob. • In occlusion of bodies the heads are mostly the last to be occluded.
Simplifying the Problem • Our algorithm is highly dependent on different factors: • Shooting angle. • People density in the movie. • Camera distance from the scene. • General stuff: lighting, noise, etc. • We can use parameters to handle different conditions conditions.
How do we do it? • First, we detect the foreground and the meaningful foreground contours. • Then, we detect the heads as the local maximum of the foreground contours. • The local maximum’s contour is approximately the ellipse representing the head.
How do we do it?(2) • The contour of the neck changes its curvature when touching the shoulders this fact can be used to avoid false positives. • We use trajectories to trace heads between frames.
How do we do it?(3) • To avoid false negatives (actual heads not being detected) we use hysteresis with two thresholds. • The center of the detected head ellipse detected is tested to be part of the foreground.
Parameters Background threshold. Hysteresis threshold. Maximum head distance between frames. Parameters for defining head size. Parameter to define trajectory memory. More parameters…
Difficulties We’ve Encountered • Getting good enough foreground contours to start working with. The contours of the edge detector are more accurate but are not continuous. • Some heads overlap the foreground so their contour is not part of the foreground - false negative. • Algorithm mistakes other body parts for heads – false positive.
If We Had Another Semester… • Combining contours from edge detector to get more accurate edges and find heads which don’t belong to the foreground contour. • Finding a transition between the heads in multiple cameras. • Improving the algorithm so it’d work on more general input.
Summary • Combining numerous methods, we’ve managed to obtain a reasonable solution on a limited set of examples. • Expanding the algorithm to support generic input would require a lot of work and more methods.