在Windows下用python实现的MOT,参考的这个GitHub https://github.com/Qidian213/deep_sort_yolov3
YOLOv3用于检测,deep_sort主要是Kalman滤波+匈牙利匹配算法。改天再写一篇关于deep_sort原理的的blog,先实现一哈,看看效果。
下面把我的流程说一下:
- 我们需要的环境Numpy、sklean、OpenCV就不用说了,还有TensorFlow-gpu、Keras等等,有可能之前有的环境配置好了,也有可能版本不兼容,具体运行代码的时候根据错误具体解决即可。
- 下载yolov3.weights,将权重转换为yolo.h5模型(这里需要自己转,因为你的TensorFlow版本不一样),推荐另外一个GitHub https://github.com/qqwweee/keras-yolo3,下载下来,cmd切换到文件目录,运行下面指令
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
然后把model_data文件夹里面的yolo.h5复制到第一个GitHub项目的model_data文件夹中(至于为什么不用第一个GitHub里面的convert.py转换,因为没成功,可能是有点问题)
- 生成mars-small128.pb文件,这个是表观特征,跟踪时做特征匹配用的(也因为TensorFlow版本问题,需要自己生成),推荐第三个GitHub https://github.com/nwojke/deep_sort,下载下来,cmd切换到文件目录,运行下面指令
然后和第二步一样,把mars-small128.pb文件复制到第一个GitHub项目的model_data文件夹中。python tools/freeze_model.py
- 在demo.py里面修改一下视频路径,直接运行即可。
fps在10-12之间。