Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ConfTrack Object Tracker #1033

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

rolson24
Copy link
Contributor

@rolson24 rolson24 commented Mar 22, 2024

Description

This change adds a new multi-object tracker called ConfTrack to supervision. It is based on the existing ByteTrack implementation and the ConfTrack paper by Hyeonchul Jung, Seokjun Kang, Takgen Kim, and HyeongKi Kim.

This tracker uses a Noise-scale Adaptive Kalman Filter for predicting the motion of objects and a matching algorithm that uses the BoT-SORT first stage and the ByteTrack second stage, with an additional third stage to match un-initialized tracks.

The original paper used person Re-ID, but I found that the tracker still works well without it. (Don't want to add heavy dependencies like TensorFlow or PyTorch).

I validated the implementation locally on MOT20 with TrackEval and I got these results:

Tracker    | Paper's MOTA | My MOTA | Paper's HOTA | My HOTA |
ConfTrack  |      80      |  78.166 |     65.4     |  68.82  |
ByteTrack  |     77.8     |    -    |     61.3     |    -    |

ConfTrack as you can see, performs better than ByteTrack in both the MOTA and the HOTA metrics, and provides people with other options for object trackers that may be better for their application. (ConfTrack seems to perform better with good quality detections, and ByteTrack performs better with lower quality detections.)

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

How has this change been tested, please provide a testcase or example of how you tested the change?

I have tested this change in this colab notebook.
I will share my TrackEval code if you want it.

Any specific deployment considerations

If this gets approved I can help write documentation on how to use ConfTrack (basically the same as ByteTrack).

Docs

  • Docs updated? What were the changes:

@CLAassistant
Copy link

CLAassistant commented Mar 22, 2024

CLA assistant check
All committers have signed the CLA.

@SkalskiP
Copy link
Collaborator

Hi, @rolson24 👋🏻 This looks really interesting. I'd love to add it!

One thing that worries me is license. Did you wrote this code from scratch? I'm asking because we need to make sure that supervision stays MIT license.

@rolson24
Copy link
Contributor Author

I wrote the code based on Roboflow's implementation of ByteTrack for the core, basetrack, and matching modules. (basetrack and matching are unchanged) and I used the official implementation of BoT-SORT as a baseline for the kalman filter module. The BoT-SORT code says it uses the MIT license on their repository.

@SkalskiP
Copy link
Collaborator

@rolson24, the difference in MOTA and HOTA metrics results from dropping the Re-ID, part of the tracker?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants