毕业设计项目,整合了行人检测、跟踪与行人重识别三部分功能的系统,满足多任务场景,可以同时对多个运动员进行识别,具备GUI,可输出视频。
程序界面如图所示:
处理视频时,选择菜单中的目录按钮,左侧弹出的目录中双击选择需要处理的视频即可。
本系统的GUI界面参考借用了项目GUI-for-Pose-Estimate-and-Action-Recognition
该项目原本是利用了openpose的PythonAPI做姿态检测,本系统中仅使用了视频读取的功能、改写了保存的功能为输出视频文件到output/,由于并未去除原本姿态检测的功能模块,故若有需要可以重新参考pose/下的程序。
注意:如果需要使用openpose的PythonAPI,同时你也是在windows环境下使用python3.7版本,可以直接使用我已编译的pythonAPI(openpose/下的文件),否则请自行根据openpose官方版本进行本地化编译,并选择编译pythonAPI
行人监测与跟踪部分,采用的是项目pytorch-mot-tracking提供的程序,具体的行人检测使用YOLOv3实现,行人跟踪使用SORT实现。
行人重识别部分是基于FD-GAN的工作,把训练得到的模型,用open-reid提供的估计方法可以得到识别结果。
- python 3.7
- numpy==1.16.3
- PyQt5==5.13.0
- opencv-python==4.1.0.25
- torch==1.2.0+cu92(根据自己的系统安装)
- torchvison==0.4.0+cu92
- tqdm==4.32.1
- Pillow==6.0.0
模型文件较大,请自行前往stageIII下载best_net_E.pth,放在reid/models/stageIII/目录下,运行tracking/data/下的download_weights.sh或者点击yolov3.weights下载后放在相应目录下。
如果需要姿态检测部分的功能,请运行pose/models/下的getModels.sh或者前往openpose寻找下载模型,并从网盘3rdparty提取码pj2p
下载3rdparty文件并解压至对应目录。
(1) 对运动员图像的记录仅限于简单的一段视频序列的图像,一旦出现错误的重识别结果,其记录会立刻污染所记录的图像库,给接下来的重识别造成困难。
(2) 行人检测部分框选出的图像出现问题时,会导致接下来的重识别工作出现偏差,不能及时修正。
(3) 进行重识别工作时,会直接将现有图像全部进行特征提取,再进行距离计算,既没有进行缓存也没有利用之前的处理结果,并未做到数据的充分利用。