
DeepSORT: Deep Learning to Track Custom Objects in a Video - ole_gooner
https://nanonets.com/blog/object-tracking-deepsort/
======
alexcnwy
This is an interesting and well-written post but in my experience for
practical object tracking problems using a fine-tuned object detection model
with a centroid tracking algorithm works well enough. Much more
computationally efficient and you only have to annotate object examples rather
than frame-by-frame object tracking.

I would have loved to have seen a benchmark comparing the two approaches to
motivate the much more complex and labour intensive alternative ':)

~~~
auraham
Can you elaborate your answer? I wonder how the second approach works, a link
to an implementation would be helpful.

~~~
alexcnwy
Yes, of course!

Essentially centroid tracking works like this:

    
    
       1. Detect objects (e.g. using TensorFlow) in each video frame 
    
       2. Initialize an incrementing ID for each object at the first frame 
    
       3. Compute the centroid of each object 4. For each object: 
    
       4.1. Compute the Euclidean distance to every object centroid in the previous frame. The nearest object from the previous frame is the candidate assignment. 
    
       4.2.a) If the distance is less than a hand-set threshold, use the object from the previous frame's ID for the object in the current frame. 
    
       4.2.b) If the distance is above the threshold, assign a new ID
    

I explained it during my PyConZA keynote a few weeks ago. The vid isn't out
yet but the slides are available here and it's much easier to explain
visually:
[http://bit.ly/pycon_keynote_slides](http://bit.ly/pycon_keynote_slides)

Feel free to email me if you get stuck or need some help implementing it :)

------
bluegreenlizard
i think the idea of making kalman filter parameters learnable so a deep
learning algorithm can judge appearance of the object and not just location is
super neat. watching the algorithm in action makes me uncomfortable though.
creepy things are in order in our future.

~~~
mlthoughts2018
In some sense this is what a particle filter already does, but this allows
greater learning capacity (hence also huge risks of overfitting on specific
surface statistics in a given dataset).

