supervision icon indicating copy to clipboard operation
supervision copied to clipboard

[ByteTrack] add `minimum_consecutive_frames` to limit the number of falsely assigned tracker IDs

Open SkalskiP opened this issue 1 year ago • 3 comments

Description

Expand the ByteTrack API by adding the minimum_consecutive_frames argument. It will specify how many consecutive frames an object must be detected to be assigned a tracker ID. This will help prevent the creation of accidental tracker IDs in cases of false detection or double detection. Until detection reaches minimum_consecutive_frames, it should be assigned -1.

API

class ByteTrack:
    def __init__(
        self,
        track_activation_threshold: float = 0.25,
        lost_track_buffer: int = 30,
        minimum_matching_threshold: float = 0.8,
        frame_rate: int = 30,
        minimum_consecutive_frames: int = 1
    ):
        pass

Additional

  • Note: Please share a Google Colab with minimal code to test the new feature. We know it's additional work, but it will speed up the review process. The reviewer must test each change. Setting up a local environment to do this is time-consuming. Please ensure that Google Colab can be accessed without any issues (make it public). Thank you! 🙏🏻

SkalskiP avatar Mar 25 '24 15:03 SkalskiP

Hi @SkalskiP,

I would be interested in working on this. I have a question about possible implementation, though. Would we want to keep the tracking algorithm the same and just change the tracker ID (meaning possibly returning multiple tracks with a track_id of -1), or should we change the algorithm to only return tracks that have valid tracker ID's?

rolson24 avatar Mar 26 '24 00:03 rolson24

Nvm, I think the best option is to only return tracks that have valid tracker ID's so we don't have to change how the annotators work.

rolson24 avatar Mar 26 '24 02:03 rolson24

Yup. Let's drop them for now.

SkalskiP avatar Mar 26 '24 07:03 SkalskiP