MCMOT
Real time one-stage multi-class & multi-object tracking based on anchor-free detection and ReID
Install / Use
/learn @CaptainEven/MCMOTREADME
MCMOT: One-shot multi-class multi-object tracking </br>
单阶段实时多类别多目标跟踪 </br> This is an extention work of FairMOT, which extends the one-class multi-object tracking to multi-class multi-object tracking </br> You can refer to origin fork FairMOT
Tracking demo of C5(car, bicycle, person, cyclist, tricycle)
</br>
Tracking demo of VISDrone dataset
</br>
VisDrone dataset training with 10 object classes
VisDrone link </br> VisDrone is a public dataset for 4 CV challenges: object detection, crowd counting, single class multi-object tracking, multi-class multi-object tracking.
- Download multi-class multi-object tracking part of Visdrone dataset
- Using gen_dataset_visdrone.py script to generate labels.
- Call the gen_dot_train_file function in gen_dataset_visdrone.py to generate the dot train file for VisDrone mcmot training task.
- Uncomment cls2id and id2cls in multitracker.py to use the correct class names and class Ids mapping.
from gen_dataset_visdrone import cls2id, id2cls # visdrone
# from gen_labels_detrac_mcmot import cls2id, id2cls # mcmot_c5
- Set cls ids for visdrone training n opts.py i.e.
1~10 object classes are what we need
non-interest-zone (0)
pedestrian (1) --> 0
people (2) --> 1
bicycle (3) --> 2
car (4) --> 3
van (5) --> 4
truck (6) --> 5
tricycle (7) --> 6
awning-tricycle (8) --> 7
bus (9) --> 8
motor (10) --> 9
others (11)
self.parser.add_argument('--reid_cls_ids',
default='0,1,2,3,4,5,6,7,8,9', # '0,1,2,3,4' or '0,1,2,3,4,5,6,7,8,9'
help='') # the object classes need to do reid
Tracking or detection mode setting
Set id_weight to 1 for tracking and 0 for detection mode.
self.parser.add_argument('--id_weight',
type=float,
default=1, # 0for detection only and 1 for detection and re-ida
help='loss weight for id') # ReID feature extraction or not
Pretained model for C5 and VisDrone detection and tracking
HRNet18 backbone with bi-linear upsampling replaced with de-convolution </br> The pre-trained model is for 5 classes(C5) detection & tracking: car, bicycle, person, cyclist, tricycle, which can be used for road traffic video surveillance and analysis. </br> </br> baidu drive link extract code:ej4p </br> one drive link
Resnet18 backbone for C5,which is much smaller than HRNet18
Resnet18 backbone for VisDrone mcmot
Using YOLOV4 as detector
You can also refer to the ropo:MCMOT_YOLOV4 </br> This is MCMOT with CenterNet detection frame work replaced with an anchor-based detection framework.
Using ByteTrack
You can also refer to the ropo:MCMOT-ByteTrack </br> Using YOLOX as front-end and using ByteTrack as back-end.
Related Skills
node-connect
351.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
