sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple protobuf==3.8.0
sudo apt-get install protobuf-compiler libprotoc-dev
sudo pip3 install Pillow
export PATH=/usr/local/cuda/bin:\${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:\${LD_LIBRARY_PATH}
sudo pip3 install pycuda
sudo pip3 install numpy
Github: TRT-yolov3
TRT-yolov3/yolov3_onnx/
中
也可以使用
TRT-yolov3/yolov3_onnx/download.sh
进行下载 或 查看该文件有选择性的下载(你懂的,异常缓慢,记得自己找办法加速,我帮你找好了两个)
download.sh
文件,只保留如下部分,执行该脚本sudo ./download.sh
#!/bin/bash
set -e
echo
echo "Creating YOLOv3-Tiny-288 and YOLOv3-Tiny-416 configs..."
cat yolov3-tiny.cfg | sed -e '8s/width=416/width=288/' | sed -e '9s/height=416/height=288/' > yolov3-tiny-288.cfg
echo >> yolov3-tiny-288.cfg
ln -sf yolov3-tiny.weights yolov3-tiny-288.weights
cp yolov3-tiny.cfg yolov3-tiny-416.cfg
echo >> yolov3-tiny-416.cfg
ln -sf yolov3-tiny.weights yolov3-tiny-416.weights
echo
echo "Done."
以下只以
yolov3-tiny-416为例
,这两个步骤都比较慢 请耐心等待
.cfg
转换为.onnx
python3 yolov3_to_onnx.py --model yolov3-tiny-416
.onnx
转换为.trt
python3 onnx_to_tensorrt.py --model yolov3-tiny-416
【视频】
python3 detector.py --file --filename data/test.mp4 --model yolov3-tiny-416 --runtime
【摄像头】
将trt-yolov3-detector-camera.py脚本放到TRT-yolov3/
目录下,并更换第十行的绝对路径
直接执行该脚本即可调用摄像头进行识别了
如果TRT-yolov3已经成功跑通则理论上可以跳过着part,这part是我自己踩坑的过程中,在发现TRT-yolov3项目之前找到模型转换方法的部分分解动作,如果想更详细的一步步了解如何从
.cfg
转化到.trt
的,可以继续阅读
核心思想是将yolo原始的.cfg
配置文件转换为TensorRT要用的.trt
文件
.cfg
文件和权重.weights
文件在该py脚本同一目录我采用的是直接将
yolov3-tiny
两个文件重新命名
两文件需同名,例如yolov3-tiny-416.cfg
和yolov3-tiny-416.weights
.onnx
模型配置文件python3 yolov3_tiny_to_onnx.py --model yolov3-tiny-416
【关于这里.cfg
的说明】
我将原始的py文件进行了一点修改,原始py只能读取288、416、608层的配置文件,这里删除了这个限制,但暂时不清楚会有什么问题
但是cfg文件仍然有一定的格式约束
[convolutional]
batch_normalize=1
[maxpool]
size=2
steps=400000
scales=.1
.trt
模型文件python3 onnx_to_tensorrt.py —model yolov3-tiny-416