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

[Feature] Support multi-class tracking in ByteTrack #548

Merged
merged 2 commits into from
May 8, 2022

Conversation

noahcao
Copy link
Contributor

@noahcao noahcao commented May 6, 2022

add multi-class multi-object tracking support in ByteTrack based on the labels segments given in detections.

It would be trivial to extend this feature to other trackers.

@OceanPang OceanPang requested a review from GT9505 May 6, 2022 04:36
@OceanPang OceanPang closed this May 6, 2022
@OceanPang OceanPang reopened this May 6, 2022
@codecov
Copy link

codecov bot commented May 6, 2022

Codecov Report

Merging #548 (f2be737) into master (88f92dd) will increase coverage by 0.07%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #548      +/-   ##
==========================================
+ Coverage   73.08%   73.16%   +0.07%     
==========================================
  Files         129      129              
  Lines        8019     8065      +46     
  Branches     1562     1563       +1     
==========================================
+ Hits         5861     5901      +40     
- Misses       1664     1670       +6     
  Partials      494      494              
Flag Coverage Δ
unittests 73.10% <100.00%> (+0.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
mmtrack/models/trackers/byte_tracker.py 90.22% <100.00%> (+0.70%) ⬆️
mmtrack/datasets/sot_train_dataset.py 82.82% <0.00%> (-2.03%) ⬇️
mmtrack/datasets/pipelines/transforms.py 86.92% <0.00%> (-1.84%) ⬇️
mmtrack/models/track_heads/siamese_rpn_head.py 93.15% <0.00%> (+0.10%) ⬆️
mmtrack/models/reid/linear_reid_head.py 89.85% <0.00%> (+0.14%) ⬆️
...track/models/trackers/quasi_dense_embed_tracker.py 75.71% <0.00%> (+0.17%) ⬆️
mmtrack/datasets/youtube_vis_dataset.py 77.23% <0.00%> (+0.18%) ⬆️
mmtrack/models/track_heads/roi_track_head.py 87.93% <0.00%> (+0.21%) ⬆️
mmtrack/models/track_heads/roi_embed_head.py 85.34% <0.00%> (+0.25%) ⬆️
... and 10 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 88f92dd...f2be737. Read the comment docs.

Copy link
Collaborator

@GT9505 GT9505 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Does the 'multi-class supporting` be the same as ByteTrack in the manuscript?
  2. It is better to verify the inference performance of ByteTrack in MOT17-half-train using the pertrained weights. It should achieve 67.7 HOTA

mmtrack/models/trackers/byte_tracker.py Outdated Show resolved Hide resolved
@noahcao
Copy link
Contributor Author

noahcao commented May 7, 2022

  1. this 'multi-class supporting' does no require any modification in the manuscript as it is directly based on the labels which is already input to the tracker in the previous version.
  2. I have verified the performance alignment before and after this commit. The performance is well aligned though it is not 67.7 HOTA but slightly lower as shown below.

image

@GT9505
Copy link
Collaborator

GT9505 commented May 7, 2022

  1. this 'multi-class supporting' does no require any modification in the manuscript as it is directly based on the labels which is already input to the tracker in the previous version.
  2. I have verified the performance alignment before and after this commit. The performance is well aligned though it is not 67.7 HOTA but slightly lower as shown below.

image

Do you mean that we can achieve 67.7 HOTA before this pr, while achieve 67.1 HOTA after this pr?
I do not get it. The behavior should have be unchanged when there is only one category to track, since all element in the cate_cost equal to 0.

@noahcao
Copy link
Contributor Author

noahcao commented May 7, 2022

  1. this 'multi-class supporting' does no require any modification in the manuscript as it is directly based on the labels which is already input to the tracker in the previous version.
  2. I have verified the performance alignment before and after this commit. The performance is well aligned though it is not 67.7 HOTA but slightly lower as shown below.

image

Do you mean that we can achieve 67.7 HOTA before this pr, while achieve 67.1 HOTA after this pr? I do not get it. The behavior should have be unchanged when there is only one category to track, since all element in the cate_cost equal to 0.

I meant: when I ran the original code (before this PR), it achieved HOTA=67.1. After PR, it is still 67.1. I didn't ever reproduce the reported 67.7HOTA on my machine at the very beginning.

@GT9505
Copy link
Collaborator

GT9505 commented May 8, 2022

I'll check it later since the bytetracker is not changed.
I guess that it may due to the changes of yolox detector in mmdet.

@GT9505 GT9505 changed the title [Feature] add multi-class support in ByteTrack [Feature] Support multi-class tracking in ByteTrack May 8, 2022
@GT9505 GT9505 merged commit bf9d388 into open-mmlab:master May 8, 2022
@GT9505
Copy link
Collaborator

GT9505 commented May 9, 2022

I'll check it later since the bytetracker is not changed. I guess that it may due to the changes of yolox detector in mmdet.

using mmdet=2.19.1 and mmtrack=0.13.0 we can achieve 67.7 HOTA.
using mmdet=2.24.1 and mmtrack=0.13.0 we can achieve 67.1 HOTA.

@noahcao noahcao mentioned this pull request May 9, 2022
GT9505 pushed a commit that referenced this pull request Jul 19, 2022
* add multi-class support in ByteTrack

* remove duplicated <label>
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.

3 participants