该项目是基于 ReID 模型的目标追踪与个体识别,主要通过以下步骤实现:首先利用已训练好的 ReID 模型,提取由 yolo 模型在视频中检测到的目标区域的特征向量。随后,将待搜索目标图片的特征向量与上述提取的特征向量进行匹配,以此完成跨摄像头的目标追踪与个体识别。 以人物搜索为例,当给定一张人物图片后,在视频中搜索该人物的过程,实际上就是目标追踪与个体识别的过程。一旦在视频中检测到目标人物,就会为其打上标签并框选标注。按照同样的原理,如果同时搜索多个人物,也能够在视频中找出所有人的身份标识,从而实现个体识别。
(1)下载ReID模型
通过网盘分享的文件:models
链接: https://pan.baidu.com/s/1MMTgdTWUnYti_uggPVrJWQ 提取码: yfyf --来自百度网盘超级会员v6的分享 备用链接: https://pan.baidu.com/s/1Tijw6qotvbH_blBWdjfeOg?pwd=m1iq 提取码: m1iq
(2)创建虚拟环境
先后运行下面的命令
conda create -n yolov5_reid python=3.8
conda activate yolov5_reid
(3)在虚拟环境<yolov5_reid>下载pytorch
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge
(4)下载所有需要的依赖
pip install -r requirements.txt
(5)跑通之后再用自己的数据进行测试
(6)跳转到当前目录/yolov5_reid/model
运行下面的命令
python search.py
如果报错:RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)
输入下面的命令即可:
unset LD_LIBRARY_PATH
(7)运行结果
运行结果保存在output这个文件夹里,我们可以看到两个摄像头下的可以追踪到同一个人,识别到个人。
