原版darknet在Xaiver上面的检测帧率只有8~10帧左右,使用tensorRT加速之后,帧率可达到21~23帧。以下记录TensorRT的部署过程。
1.下载环境
git clone https://github.com/jkjung-avt/tensorrt_demos.git
2.执行 install_pycuda.sh
cd ${HOME}/project/tensorrt_demos/ssd
./install_pycuda.sh
3.安装onnx(不要使用1.5.0版本~)
sudo apt-get install protobuf-compiler libprotoc-dev
sudo pip3 install onnx==1.4.1
4.定位到plugins文件夹build相关程序
cd ${HOME}/tensorrt_demos/plugins
make
5.下载并转换yolo文件
cd ${HOME}/project/tensorrt_demos/yolo
./download_yolo.sh
6.转换yolo文件这里分两个步骤:
1)将.weight模型文件转换成 .onnx 格式
2)再将 .onnx文件转换成 .trt 格式
python3 yolo_to_onnx.py -m yolov4
python3 onnx_to_tensorrt.py -m yolov4 -v
(时间较长~)
7.使用TensorRT运行yolov4、yolov4-tiny
Yolo v4:
cd ${HOME}/tensorrt_demos
python3 trt_yolo.py --usb 0 --model yolov4
#测试效果
问题记录:
1.TypeError: 1.0 has type numpy.float32, but expected one of: int
解决方法引用自:https://ask.csdn.net/questions/1231921
原因:onnx依赖protobuf,原有版本较低,需要将protobuf版本升级。
pip3 install -U protobuf