Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best method for object detection in low-resolution moving video?

I'm looking for the fastest and more efficient method of detecting an object in a moving video. Things to note about this video: It is very grainy and low resolution, also both the background and foreground are moving simultaneously.

Note: I'm trying to detect a moving truck on a road in a moving video.

Methods I've tried:

Training a Haar Cascade - I've attempted training the classifiers to identify the object by taking copping multiple images of the desired object. This proved to produce either many false detects or no detects at all (the object desired was never detected). I used about 100 positive images and 4000 negatives.

SIFT and SURF Keypoints - When attempting to use either of these methods which is based on features, I discovered that the object I wanted to detect was too low in resolution, so there were not enough features to match to make an accurate detection. (Object desired was never detected)

Template Matching - This is probably the best method I've tried. It's the most accurate although the most hacky of them all. I can detect the object for one specific video using a template cropped from the video. However, there is no guaranteed accuracy because all that is known is the best match for each frame, no analysis is done on the percentage template matches the frame. Basically, it only works if the object is always in the video, otherwise it will create a false detect.

So those are the big 3 methods I've tried and all have failed. What would work best is something like template matching but with scale and rotation invariance (which led me to try SIFT/SURF), but i have no idea how to modify the template matching function.

Does anyone have any suggestions how to best accomplish this task?

like image 1000
monky822 Avatar asked Nov 20 '09 15:11

monky822


2 Answers

Apply optical flow to the image and then segment it based on flow field. Background flow is very different from "object" flow (which mainly diverges or converges depending on whether it is moving towards or away from you, with some lateral component also).

Here's an oldish project which worked this way:

http://users.fmrib.ox.ac.uk/~steve/asset/index.html

like image 121
Martin Thompson Avatar answered Nov 09 '22 00:11

Martin Thompson


This vehicle detection paper uses a Gabor filter bank for low level detection and then uses the response to create the features space where it trains an SVM classifier.

The technique seems to work well and is at least scale invariant. I am not sure about rotation though.

like image 34
Ivan Avatar answered Nov 09 '22 00:11

Ivan