使用 DanceTrack 复现记录
559 字
3 分钟
| 系统 | Ubuntu 22.04 |
|---|---|
| Python | 3.10.18 |
| PyTorch | 2.8.0+cu128 |
| TorchVision | 0.23.0+cu128 |
| Cuda | 13.0 |
| setuptools | 78.1.1 |
git clone https://github.com/DanceTrack/DanceTrack.git在百度网盘(awew)下载数据集和模型。
将数据集放在如下目录
{DanceTrack ROOT}|-- dancetrack| |-- train| | |-- dancetrack0001| | | |-- img1| | | | |-- 00000001.jpg| | | | |-- ...| | | |-- gt| | | | |-- gt.txt| | | |-- seqinfo.ini| | |-- ...| |-- val| | |-- ...| |-- test| | |-- ...| |-- train_seqmap.txt| |-- val_seqmap.txt| |-- test_seqmap.txt|-- TrackEval|-- tools|-- ...使用 ByteTrack 进行跟踪,下载源仓库代码:
cd {DanceTrack ROOT}git clone https://github.com/FoundationVision/ByteTrack.git用 DanceTrack 项目中的 ByteTrack 文件夹替换原始文件。
环境配置同 [[bytetrack复现记录]] ,注意后续运行代码前确保 python3 setup.py develop 已运行。
CAUTION注意新版本的
numpy的np.float和np.int已弃用,使用np.float64和np.int64替换。使用正则匹配替换:搜索
\bnp\.float\b(?!\d)替换为np.float64;搜索\bnp\.int\b(?!\d)替换为np.int64。
准备数据集,并将标注转换为 coco 格式:
python3 tools/convert_dance_to_coco.py # !!! 修改参数以分别转换 train, val, testcd ByteTrack/datasetsln -s ../../dancetrack dancetrackcd ..将下载的模型放在 DanceTrack/ByteTrack/YOLOX_outputs/yolox_x/latest_ckpt.pth.tar 路径下
python3 tools/track.py -f exps/example/dancetrack/yolox_x.py -c YOLOX_outputs/yolox_x/latest_ckpt.pth.tar -b 1 -d 1 --fp16 --fuse将 DanceTrack/ByteTrack/YOLOX_outputs/yolox_x/ 文件夹下的预测结果放在 DanceTrack/val/TRACKER_NAME 文件夹下载,目录结构如下:
{DanceTrack ROOT}|-- val| |-- TRACKER_NAME| | |-- dancetrack000x.txt| | |-- ...| |-- ...运行评估代码,可得到 HOTA, IDF1 等指标
# 替换TRACKER_NAME为实际路径python3 TrackEval/scripts/run_mot_challenge.py --SPLIT_TO_EVAL val --METRICS HOTA CLEAR Identity --GT_FOLDER dancetrack/val --SEQMAP_FILE dancetrack/val_seqmap.txt --SKIP_SPLIT_FOL True --TRACKERS_TO_EVAL '' --TRACKER_SUB_FOLDER '' --USE_PARALLEL True --NUM_PARALLEL_CORES 8 --PLOT_CURVES False --TRACKERS_FOLDER val/TRACKER_NAME# 可进一步将检测结果可视化 (包括图片与视频)python3 tools/txt2video_dance.py --img_path dancetrack --split val --tracker TRACKER_NAME还是使用预训练模型 DanceTrack/ByteTrack/YOLOX_outputs/yolox_x/latest_ckpt.pth.tar
python3 tools/track.py -f exps/example/dancetrack/yolox_x.py -c YOLOX_outputs/yolox_x/latest_ckpt.pth.tar -b 1 -d 1 --fp16 --fuse --testTIP提交结果时注意:
- 存档跟踪器文件夹,而不是 txt 文件。
- 文件夹名称必须是 tracker