4
votes

How can I track objects movement when the camera is moving. Example if the camera is inside a vehicle. So far I have tied the algorithms in Optical Flow in Emgu Cv. I want to get the horizontal movement of object. But they don't give enough results to detect a movement horizontally when camera is moving forward.

pyrLK is good point tracker but when i take the difference between new calculated point and previous points it doesn't make a sense, maybe for each frame there will be new points added. Is it possible with single camera or do i have to use stereo vision. Please someone suggest any help with this. I'll be really appreciated.

thanks

(hope the question is not too broad)

1
To detect movement you need something static. Wrong way. Right way is to detect object. If they are of known shape, then detecting them will solve your issue as well. You have to describe more application, because generic solution is not exist yet.. well, making AI being able to learn and then recognize things is an option =D - Sinatr
To track movement of an object from a moving platform you need object recognition, which is not a simple task even in software. Particularly if the object is not of known color or shape, like something moving in front of your car. This task usually requires hardware specifically designed for the task (see: FPGAs) since your whole reference frame is in motion, it is difficult to perform these full-frame translations and computations in real-time using just software libraries. Sinatr is generally correct in that you cannot use simple motion detection algorithms. - selkathguy
If you mean SLAM, then take a look at: openslam.org and mrpt.org . - Andrey Smorodov
youtube.com/watch?v=jg6Nz6BfoSQ what about this video. it is in c++. But I'm familiar with c# . Will i able to implement this with Emgu Cv - user3600631
afaik with a real dense optical flow you can guess the camera movement (in/out of the scene for example, the flow has a special pattern). So if you have extracted that main flow pattern, everything that flows in directions not according to the pattern is noise or a moving object. But thats just theory, no idea whether this works in pratice ;) - Micka

1 Answers

1
votes

I would suggest the use of color tracking. If the objects you attempt to track have a distinct color, you should be able to target them adequately.

One way to accomplish this is to choose an appropriate space for color as RGB space. Keep in mind this may be too sensitive, even to small illumination variance. (It really depends on the objects you want to track and tracking scenario.)