此项目以学习Deepsort原理为主,在原项目的基础上进行小修改,编译出可供C++与python两个语言进行调用的库,方便工程的小伙伴直接使用
感谢原作者提供的代码!
demo
文件夹下提供了C++与Python两个版本的调用示例,C++使用的是pytorch的yolo3, python使用的是mxnet
tracking
文件夹下为Deepsort源码
Ubuntu下以测试完成
- opencv3 以及更高版本
- CUDA
- libtorch 下载地址 V1.51 下载完成后复制进
thirdpart
文件夹即可 - pybind11 已被添加进
thirdpart
文件夹 无需安装
模型权重文件:
- YOLOv3 下载地址1
- YOLOv3 下载地址2 提取码: 9t4f
- Deepsort 提取码: 4sht
- 编译c++动态库
mkdir build
cd build
cmake ..
make -j2
- 编译c++ demo
mkdir build
cd build
cmake -DBUILD_DEMO=ON ..
make -j2
运行c++ demo:
cd build/bin
./demo /path/to/xxx.mp4
注意:
运行demo请先修改demo/c++/main.cpp
中的yolo、deepsort权重路径
- 编译python库
mkdir build
cd build
cmake -DBUILD_PYTHON_PACKAGE=ON ..
make -j2
运行python demo
cd demo/python
python test.py
注意:
- 运行
demo/python/test.py
需要将编译好的tracking.cpython-3xm-x86_64-linux-gnu.so
复制到demo/python
目录下,tracking.cpython-3xm-x86_64-linux-gnu.so
一般位于build/tracking
下, 并且注意.so
的python版本与python版本对应,否则可能出现import error
- 修改test.py中对应的参数 例如
video_path
width
height
,width
heigth
是ssd预处理图片缩放后的宽高大小 - 需要安装opencv-python mxnet-cuxx(对应你的cuda版本 例如cu10.1--mxnet-cu101) numpy gluoncv
pip install mxnet-cuxx opencv-python numpy gluoncv