yolox+ByteTrack实现目标追踪
一、clone代码ByteTrack到本地
可直接使用Git clone到本地
git clone https://github.com/ifzhang/ByteTrack.git
# git失败的请配置ssh密钥,具体可以gpt
二、配置环境
1、创建虚拟环境
打开Anaconda prompt 创建虚拟环境:
# conda create -n 环境名 python=X.X
# 此处python建议使用3.7或3.8版本(高版本的pytorch已不再支持python3.6及以下版本;同时onnx1.8.1包不支持python3.9及以上)
conda create -n bt python=3.8
激活虚拟环境:
conda activate bt
2、安装pytorch(GPU版本 )
cpu版本类似,或直接安装requirements.txt文件(这种方式请自己git代码中的requirements.txt文件,我提供的代码基于是gpu的)
如果使用官方给出的安装方式可能会出现如下两个问题:
第一,安装速度过慢;
第二,安装完成后,torch.cuda.is_available()为False。因此,给出如下安装步骤:
第一步:打开cmd,输入nvcc -V 查看自己的CUDA版本(本文中CUDA表示大cuda,cuda表示小cuda;CUDA版本必须大于等于cuda版本)
第二步:打开链接https://download.pytorch.org/whl/torch_stable.html 找到对应自己需要的版本(这一步是提前下载安装torch的whl文件,直接安装容易失败,因为torch包约2G左右)
1.12.0是指torch版本
第一步显示我的CUDA为11.3 那么cuda版本需小于等于CUDA(推荐版本一致)
cp38对应python3.8版本
win表示是Windows平台
第三步,打开Anaconda prompt控制台
conda activate bt
pip install "D:\whl\cp38\torch-1.12.0+cu113-cp38-cp38-win_amd64.whl"
pip install "D:\whl\cp38\torchvision-0.13.0+cu113-cp38-cp38-win_amd64.whl"
pip install "D:\whl\cp38\torchaudio-0.12.0+cu113-cp38-cp38-win_amd64.whl"
# D:\whl\cp38\ 是下载的whl文件的路径
安装完成后,输入python激活python环境
# 检验gpu是否可用
import torch
print(torch.cuda.is_available())
结果若为true,则安装成功
3、安装requirements.txt中的剩余包
由于已安装torch包,需要修改项目文件夹中requirements.txt文件如下
# TODO: Update with exact module version
numpy
opencv_python
loguru
scikit-image
tqdm
Pillow
thop
ninja
tabulate
tensorboard
lap
motmetrics
filterpy
h5py
# verified versions
onnx==1.8.1
onnxruntime-gpu
onnx-simplifier==0.3.5
onnxruntime-gpu 可以不安装gpu版本的,自己电脑是否支持NVIDIA的gpu情况
# 安装上述包(在虚拟环境bt中)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
4、安装yolox
先更改D:\pyprogramfile\ByteTrack\setup.py文件
# 将
with open("README.md", "r") as f:
# 修改为
with open("README.md", "r", encoding='utf-8') as f:
并执行
#在anaconda prompt中激活虚拟环境bt 并 cd到项目目录D:\pyprogramfile\ByteTrack
python setup.py develop
5、安装 cython
和 pycocotools
# 先安装cpython包
pip install cython -i https://pypi.tuna.tsinghua.edu.cn/simple/
使用官方给出的方式安装pycocotools可能会出现报错(已老实),经查阅后可以根据如下方式安装
1)在https://github.com/pdollar/coco.git下载源码压缩包,或
通过网盘分享的文件:cocoapi-master.zip
链接: https://pan.baidu.com/s/1D9ZDCi–pO5NiJTOte1Ozw 提取码: yy88
解压后放在bt虚拟环境下的site-packages文件下,我的路径是:D:\anaconda3\envs\bt\Lib\site-packages
如果不是虚拟环境,也类似。
2)下载源码后,打开源码文件cocoapi-master\pythonAPI中的setup.py文件,删除下面的两个参数:
3)在Anaconda prompt中cd到cocoapi-master\pythonAPI文件夹下,我的路径是:D:\anaconda3\envs\bt\Lib\site-packages\cocoapi-master\PythonAPI 输入
python setup.py build_ext --inplace
# 显示“已完成代码的生成”即成功
python setup.py build_ext install
# 显示"Finished processing dependencies for pycocotools==2.0"即成功。
6、安装cython_bbox
如按照官方方式仍然可能会报错,可根据下述步骤安装
1)下载源码
通过网盘分享的文件:cython_bbox-0.1.3.zip
链接: https://pan.baidu.com/s/1DihR4U0mAvYStVYDCFiFiQ 提取码: yy88
解压后放在site-packages文件下(site-packages文件夹位置与上一步相同)
2)更改源码文件中的setup.py文件
打开文件夹内setup.py文件,将extra_compile_args=[‘-Wno-cpp’] 修改为 extra_compile_args = {‘gcc’: [‘/Qstd=c99’]}
打开anaconda prompt 激活bt环境并进入D:\anaconda3\envs\bt\Lib\site-packages\cython_bbox-0.1.3路径后执行
python setup.py build_ext install
# 显示Finished processing dependencies for cython-bbox==0.1.3即成功
三、运行demo
下载预训练模型,可通过我的网盘下载,下载链接如下:
通过网盘分享的文件:bytetrack_x_mot17.pth.tar
链接: https://pan.baidu.com/s/1Cl0rRwNotoHdLtbDQJh_Wg 提取码: yy88
将下载下来的训练文件放在bytetrack项目 pretrained文件夹下(没有自行创建)
cd到项目文件夹,输入
python tools/demo_track.py video -f exps/example/mot/yolox_x_mix_det.py -c pretrained/bytetrack_x_mot17.pth.tar --fp16 --fuse --save_result
即可开始运行,运行结果会自动放入ByteTrack\YOLOX_outputs\yolox_x_mix_det\track_vis文件夹中
问题注意:
出现下列问题是因为已安装的numpy包不低于1.20,但降级numpy版本到1.20以下又会出现包冲突。
1、打开D:\anaconda3\envs\bt\Lib\site-packages\cython_bbox-0.1.3\src\cython_bbox.pyx文件,将所有np.float更改为np.float64,
2、并重新 python setup.py build_ext install一下
3、将源码D:\pyprogramfile\bytetrack
olox\tracker\byte_tracker.py和D:\pyprogramfile\bytetrackyolox\tracker\matching.py文件中所有np.float更改为np.float64即可
可以使用我的代码已包含MOT17数据集,这样仅需按照要求搭建环境。
通过网盘分享的文件:ByteTrack资料
链接: https://pan.baidu.com/s/1oprhHQ0mFWv_ZB1LR8e2rQ 提取码: yy88
racker\matching.py文件中所有np.float更改为np.float64即可
[外链图片转存中…(img-ijSy7K0K-1734538418726)]
可以使用我的代码已包含MOT17数据集,这样仅需按照要求搭建环境。
通过网盘分享的文件:ByteTrack资料
链接: https://pan.baidu.com/s/1oprhHQ0mFWv_ZB1LR8e2rQ 提取码: yy88
参考:https://blog.csdn.net/hhh590_hh/article/details/126916833