Ask Your Question

Multi Object detection and tracking: application to rolling stones in rivers

asked 2015-01-30 02:53:11 -0600

hey.joris gravatar image

Hi OpenCV community,

Since a few year, I've developped an algorithm to detect and track moving stones in a water stream (see a typical HD video (~30Mo): 200 fps, 1280*256). Up to now, I've use simple methods such as median background subtraction, blob analysis and basic nearest distance association plus a post treatment (based on kalman filter and a minimization problem solved by hungarian algo) to reconstruct broken trajectories.

It performed ok (some example here and here) but I wonder if higher complexity methods, such as feature tracking, KLT (lucas kanade tracking), or TLD could help to improve performance (I have not constraint for the computation time !) and to overcome the difficulties of occlusion of stones, stones rolling over similar resting stones... For physical and mathematical purposes it is quite important to get entire trajectories, especially the exact beginning of motion as well as the exact time and position of stopping motion.

If you have some suggestions by looking at the video concerning the best method that should be used, or if you'ld like to try your own algo on the video, I would be very happy.

Thanks, Joris

edit retag flag offensive close merge delete


Nice application! As to algorithms, if simple stuff works, then you better stick to that. But since FPS is not a point, I think that TLD tracker combined with your current segmentation could get you pretty far!

StevenPuttemans gravatar imageStevenPuttemans ( 2015-01-30 08:09:46 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2015-02-02 11:24:57 -0600

Petty gravatar image

If you can add more trackers and then fuse them/weight them in some way (Flock of Trackers), then you typically don't ever get worse by adding in a new algorithm.

The TLD algorithm in OpenCV contrib crashes for me regularly enough that I don't like using it. I've had great luck with the MILTracker, very robust, but it doesn't handle occlusions well at all. There's a Local Global Tracker (LGT) that I've heard people have good success with and is reasonably stable. The trackers in the contrib module and very simple to get up and running, so give it a shot!

edit flag offensive delete link more


Thanks a lot for your comments ! I did not considered flocking trackers, but this seems quite interesting as each method have its own advantage... Do Flock algorithms exist in the case of multiple objects ?

hey.joris gravatar imagehey.joris ( 2015-02-03 03:56:02 -0600 )edit

Question Tools

1 follower


Asked: 2015-01-30 02:53:11 -0600

Seen: 987 times

Last updated: Feb 03 '15