Image recognition and tracking by cross correlation

8 views (last 30 days)
Hi all,
I'm currently working on object tracking from a highpeed video. The goal is to track different markers positioned on an EBike, which is driving through the scene. I've tried different methods, and actually working on solve this by template matching with cross-correlation. My Problem is that the result is not my desired result, maybe the marker design is not the best fitting. Here you see one frame of the video:
I've also uploaded my Simulik model. Unfortunately you can't simulate without the video file which is quite about 400MB. Maybe you have some tips.
Thank you

Answers (3)

David Young
David Young on 27 Jan 2015
You don't say what exactly you have tried, or what goes wrong in each case.
There is code to do tracking by cross-correlation on the File Exchange. One example is here. The Computer Vision System Toolbox has some powerful techniques, which may offer improvements over cross-correlation.

Image Analyst
Image Analyst on 27 Jan 2015
I've attached my demo of normxcorr2, for what it's worth, though I agree with David in that there are methods in the Computer Vision System Toolbox or elsewhere that are probably better.
Also, you should do something about your lighting - it's way too dark. Plus it has shadows. You can eliminate the shadows in the background by hanging black velvet from the panels. That will also let you use a stronger, brighter lighting of the bicyclist from the camera side.
Of course I'll be interested in hearing a knowledgeable response from the cyclist - it should be in his wheelhouse (sorry - bad pun).
Finally I think that motion capture is such a widely used method that there are without a doubt turnkey software packages already available that specialize in this sort of thing and you do not need to reinvent the wheel (sorry - bad pun again) by writing your own in MATLAB.

Dima Lisin
Dima Lisin on 29 Jan 2015
Edited: Dima Lisin on 29 Jan 2015
Are you able to detect the markers in one frame? If so, then you can use vision.PointTracker to track them. Alternatively, assuming that your camera is stationary, you can use vision.ForegroundDetector to detect the whole moving person in each frame.

Products

Community Treasure Hunt

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

Start Hunting!