一文跑通Yolovx_ByteTrack并实现行人追踪
⚠如果您要在GPU中运行Bytetrack,请执行以下步骤。⚠
onnxruntime
🔗 GitHub - ifzhang/ByteTrack: [ECCV 2022] ByteTrack: Multi-Object Tracking by Associating Every Detection Box 转存失败重新上传取消
or
git clone https://github.com/ifzhang/ByteTrack.git
set.py 近50条线路
只需在“r”后面添加编码='utf-8'即可。
然后在提示符中输入以下内容
python setup.py develop
完成后,情况就是这样。
- pip install cython
- pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox
- pip install pycocotools
- pip install -r requirements.txt
访问官方 Pytorch 以获取 cmd 来安装 CUDA 的 pytorch。
🔗
nvidia-smi
PS.如果您确定CUDA版本,则可以在此cmd中进行检查。
找到要替换的预程序函数,如下所示。
- def preproc(img, input_size, swap=(2, 0, 1)):
- if len(img.shape) == 3:
- padded_img = np.ones((input_size[0], input_size[1], 3), dtype=np.uint8) * 114
- else:
- padded_img = np.ones(input_size, dtype=np.uint8) * 114
-
- r = min(input_size[0] / img.shape[0], input_size[1] / img.shape[1])
- resized_img = cv2.resize(
- img,
- (int(img.shape[1] * r), int(img.shape[0] * r)),
- interpolation=cv2.INTER_LINEAR,
- ).astype(np.uint8)
- padded_img[: int(img.shape[0] * r), : int(img.shape[1] * r)] = resized_img
-
- padded_img = padded_img.transpose(swap)
- padded_img = np.ascontiguousarray(padded_img, dtype=np.float32)
- return padded_img, r
删除“self.rgb_means,self.std”
使用在 CrowdHuman、MOT17、Cityperson 和 ETHZ 上训练的模型, 下载地址如下表,表中指标在MOT17训练集上测试得到。
Model | IDs | FPS | |||
---|---|---|---|---|---|
bytetrack_x_mot17 [google], [baidu(code:ic0i)] | 90.0 |
| 422 | 29.6 | |
bytetrack_l_mot17 [google], [baidu(code:1cml)] |
| 80.7 | 460 | 43.7 | |
bytetrack_m_mot17 [google], [baidu(code:u3m4)] | 87.0 | 80.1 | 477 | 54.1 | |
bytetrack_s_mot17 [google], [baidu(code:qflm)] | 79.2 | 74.3 | 533 | 64.5 |
本文以最轻量的s
版本为例,下载bytetrack_s_mot17.pth.tar
文件,下载后在项目的根目录下新建models
文件夹并将该文件放入其中。
代码:
python tools/demo_track.py video -f exps/example/mot/yolox_s_mix_det.py -c ./models/bytetrack_s_mot17.pth.tar --path ./videos/palace.mp4 --fp16 --fuse --save_result
其中部分选项符的含义如下。
demo
:任务类型,必选项,可选image、video和webcam-f
:模型配置文件-c
:模型文件--path
:需要进行推理的文件路径--save_result
:是否保存推理结果 推理过程中会出现如下的日志,并在当前目录下生成YOLOX_outputs
目录,推理生成的跟踪结果就在其中。
生成视频演示:
完毕!
如果大家觉得有帮助的话!麻烦点赞+收藏喔,谢谢大家!