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

Tracking support #195

Closed
1 task done
SkalskiP opened this issue Jul 17, 2023 · 7 comments
Closed
1 task done

Tracking support #195

SkalskiP opened this issue Jul 17, 2023 · 7 comments
Assignees
Labels
enhancement New feature or request version: 0.13.0 Feature to be added in `0.13.0` release

Comments

@SkalskiP
Copy link
Collaborator

SkalskiP commented Jul 17, 2023

Search before asking

  • I have searched the Supervision issues and found no similar feature requests.

Description

Expected API

  • Try to implement ByteTrack in such a way that more trackers can be added in the future
  • Roboflow Inference Server requires:
    • possibility to reset the tracker
    • the possibility of initiating a tracker providing the state
from abc import ABC, abstractmethod


class BaseTracker(ABC):

    @abstractmethod
    def update(self, detections: Detections) -> Detections:
        pass

class BYTETracker(BaseTracker):
   
    def __init__(self, state: dict):
        pass

    @classmethod
    def init(cls, config: dict) -> BYTETracker
        pass

    def update(self, detections: Detections) -> Detections:
        pass

Resources

  • ByteTrack official implementation - link
  • ByteTrack YOLOv8 implementation - link

Use case

  • supervision is expected to power tracking in the Roboflow Inference Server
  • we want to enable supervision users to track objects regardless of the detection model they use easily

Additional

  • The code should be placed in the newly created supervision.track package
  • Provide a Jupyter Notebook that allows testing of ByteTrack on an example video
  • We don't require 100% test coverage but if possible try to add unit tests
@SkalskiP SkalskiP added enhancement New feature or request version: 0.13.0 Feature to be added in `0.13.0` release labels Jul 17, 2023
@hardikdava
Copy link
Collaborator

Hi @SkalskiP 👋, I am going to love this feature. By the way, I have already done this in separate project of mine. Let me know if I can help you to contribute on this one.

@SkalskiP
Copy link
Collaborator Author

Hi, @hardikdava 👋🏻! This one is allocated for one of Roboflow's engineers. But I want the two of us to review the code.

Could you share the link to your implementation? Or is it private?

By the way, I have a full week allocated for supervision support. 🔥

@hardikdava
Copy link
Collaborator

@SkalskiP I am afraid my project is private. But you can reference this. We can get inspiration from this and for a quick start just make detection format conversion. Later, it can be optimized for a speed.

@SkalskiP
Copy link
Collaborator Author

@hardikdava that is another excellent resource!

@hardikdava
Copy link
Collaborator

@SkalskiP on a side note, if you merger #170 and #171 regarding annotators, then it will be easier for @paulguerrie to verify tracker algorithm.

@SkalskiP
Copy link
Collaborator Author

SkalskiP commented Jul 17, 2023

@hardikdava I'm working on my GitHub todo list right now :)

@SkalskiP SkalskiP mentioned this issue Jul 17, 2023
1 task
@SkalskiP SkalskiP added this to the version: 0.13.0 milestone Jul 18, 2023
@SkalskiP SkalskiP mentioned this issue Jul 19, 2023
3 tasks
@SkalskiP SkalskiP linked a pull request Jul 20, 2023 that will close this issue
3 tasks
@SkalskiP
Copy link
Collaborator Author

SkalskiP commented Aug 7, 2023

Tracker is merged into develop with #256 PR. Closing the task.

@SkalskiP SkalskiP closed this as completed Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request version: 0.13.0 Feature to be added in `0.13.0` release
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants