roboflow / supervision

We write your reusable computer vision tools. 💜
https://supervision.roboflow.com
MIT License
24.26k stars 1.8k forks source link

Include DEEP SORT TRACKING #594

Open yeongnamtan opened 1 year ago

yeongnamtan commented 1 year ago

Search before asking

Description

Would you consider including DEEP SORT Tracker in Supervision ?

Use case

No response

Additional

No response

Are you willing to submit a PR?

SkalskiP commented 1 year ago

Hi, @yeongnamtan! 👋🏻 Correct me if I'm wrong, but DeepSort requires loading the model in PyTorch or TensorFlow. We are trying to make Supervision not require installation of such heavy dependencies.

yeongnamtan commented 1 year ago

@SkalskiP I did a comparison between ByteTrack (using LINE COUNTER), and DeepSort for the same source video. DeepSort performed much better in terms of counting. Picture1

For ByteTrack, my settings as follow: byte_tracker = sv.ByteTrack(track_thresh=0.3, track_buffer=60, match_thresh=0.9, frame_rate=30)

For DeepSort, confidence level same at 30% DEEPSORT: MODEL_TYPE: "osnet_x_25" MAX_DIST: 0.1 # The matching threshold. Samples with larger distance are considered an invalid match MAX_IOU_DISTANCE: 0.7 # Gating threshold. Associations with cost larger than this value are disregarded. MAX_AGE: 30 # Maximum number of missed misses before a track is deleted N_INIT: 3 # Number of frames that a track remains in initialization phase NN_BUDGET: 100 # Maximum size of the appearance descriptors gallery

tteresi7 commented 1 month ago

Hi, @yeongnamtan! 👋🏻 Correct me if I'm wrong, but DeepSort requires loading the model in PyTorch or TensorFlow. We are trying to make Supervision not require installation of such heavy dependencies.

DeepSORT has no such requirements. It only requires the bounding box detection and a feature vector. The feature vector can be generated via a secondary model or extracting a specific layer of another model. It doesn't matter if it's TF, PyTorch or whatever.