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

Questions about multi-classes MOT with ByTrack/QDTrack #491

Open
AndrewGuo0930 opened this issue Apr 11, 2022 · 8 comments
Open

Questions about multi-classes MOT with ByTrack/QDTrack #491

AndrewGuo0930 opened this issue Apr 11, 2022 · 8 comments

Comments

@AndrewGuo0930
Copy link

Hi! Could you please tell me how can I use ByteTrack or QDTrack to implement multi-classes MOT? It seems that the existing configurations are only for one-class(pedestrian).
I wonder if my customized datasets have 4 classes and I've already converted the annotations to CocoVID format. Additionally I've already trained a detector like Faster-RCNN for my datasets and got the output detection results in .json or .pkl. How can I use the results or model I have to implement multi-classes MOT task with tools that MMTracking provided?
It's very important for me since my work is not about pedestrian MOT. Thank you so much!

@Seerkfang
Copy link
Collaborator

In the original paper, ByteTrack only support tracking for pedestrian, and there is no operation for different classes, so you have to modify the code yourself. But if you don't change the official training methods, the training results may not be ideal for multi-classes situations. On the other hand, the supported QDTrack only works on MOT17, too. However, the unfinished pr contains methods like inter-class NMS and class specified tracking, you can see the tracker file here https://github.com/open-mmlab/mmtracking/pull/465/files. The tracker's logic is tested to be correct.

@AndrewGuo0930
Copy link
Author

So it means the tracker's logic for TAO is tested to be correct. What about the code? If I want to implement multi-classes MOT on my own datasets, can I just modify the code according to the sample here https://github.com/open-mmlab/mmtracking/pull/465/files?
Another question as I'm new to MOT and MMTracking. I wonder why we should write different codes for different datasets? Can we just convert different datasets to a general type and use a general code set to finish tasks?
Thank you for your patience in answering my questions!

@Seerkfang
Copy link
Collaborator

You need to understand how it works for multi-classes. There is some class-aware operation in the code, and I think that's what you need. The training part of QDTrack on TAO still has some difference (0.8 track AP) compared to the official results.

As for your second question, you should understand which functions we've implemented for every dataset, a general type is not ideal. Besides, datasets in MOT inherit from CocoVideoDataset.

@AndrewGuo0930
Copy link
Author

Hi @Seerkfang ! I have an idea, but I don't know if it will work. Earlier I encountered some problems when I was working on a multi-class MOT task.
Now I have an idea. Can I train 4 models for each class in my datasets? I will use my pretrained detector model as a public detector for the 4 classes, train 4 trackors for each class with DeepSORT/ByteTrack/QDTrack, and finally merge all the results together for testing or visualization. Could this pipeline work?

@AndrewGuo0930
Copy link
Author

Another question, when I tried to use ATSS as the detector of QDTrack, it reported the error ATSS with_rpn=false. Does it mean that ATSS can't be used as the detector of QDTrack?

@noahcao
Copy link
Contributor

noahcao commented May 6, 2022

@AndrewGuo0930
I made a support to multi-class tracking by ByteTrack as PR #548 , you may want to migrate it to other trackers by the logic inside.

@noahcao
Copy link
Contributor

noahcao commented May 6, 2022

@AndrewGuo0930
Usually each issue is only for one question. For other problems, please initialize new issues with proper titles. Thanks.

@AndrewGuo0930
Copy link
Author

Oh thank you so much! I'll try it. @noahcao

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

No branches or pull requests

3 participants