Search code examples
c++opencvimage-processingvideo-processingvideo-tracking

Tracking marker and tracking algorithm choice for video tracking in a controlled environment using opencv


I need the xy horizontal projection of two objects in a video. I have complete control of the environment so I am putting the camera centred on top. (I am not interested in the video itself, but from the video I also get the measures to calibrate the track to proper units).

I am thinking in using one of the implemented tracking algorithms in opencv. I've been playing around with them running the example codes with sample videos and work more than fine.

My first and very main question is: What is the best marker I can use given that I have the freedom to choose? I was thinking that bright LED's is most likely the easiest. But I am not sure given that this algorithms might work better with complex shapes or objects with more features. Could QR codes work better? The marker would move and tilt that's why I am not certain. The light sounds good and quite robust to tilting.

The second question, which actually is probably interdependent with the first one, is: What is the best tracking algorithm for this scenario? I was reading a bit online. A very nice summary of the tracking methods available is https://www.learnopencv.com/object-tracking-using-opencv-cpp-python/ from where I thought I should use KCF tracker. But, I haven't dig that much into the algorithms and I think I might be using not compatible ideas: like, tracking a color is probably simple in the sense that can be done just by some color filtering and based on the speed use some prediction, etc. But maybe this algorithms that detect many features don't really work well with just a light.

So, again, I guess the question might be reformulated as: what is the best marker/tracking algorithm combination in my particular scenario?


Solution

  • Those tracking algorithms are for tracking complex patterns, like a face in a video where the lighting changes, and the direction of the head is changing. If in you application you can use color or light to mark your object uniquely, then that will be the fastest algorithm and simplest. if you need very precise localization, then you need to consider using a marker, the reason is that a marker allows sub-pixel localization.