yolox+ByteTrack实现目标追踪

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、安装 cythonpycocotools
# 先安装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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值