在jetson上测试TensorRT yolov4遇到的问题(tensorrt_demos)

文 | MESeraph

00 | 序言

  1. 主要试了两个开源的工程 tensorrt_demos。
  2. 在nano和NX上测试。

01 | 源码

  1. 下载源码库 tensorrt_demos,里面包含yolov4的TensorRT Engine生成代码。

  2. 按Demo 4给的操作执行即可。
    期间遇到的问题如下:操作之前请看下面内容,以确有序解决测试过程中遇到的问题。

02 | 安装onnx

注:这玩意真是装到心态爆炸

  1. 安装onnx前,需要先安装protobuf、cmake。
    使用以下命令安装protobuf:
sudo apt-get install protobuf-compiler libprotoc-dev
sudo pip3 install protobuf-3.0.0

因为默认安装的是protobuf 3.0.0,当执行python3 yolo_to_onnx.py --model yolov4-416会报如下错:

TypeError: 1.0 has type numpy.float32, but expected one of: int, long, float

我们这里只是暂时为了先把onnx安装好。因为使用新版的protobuf是怎么都装不上onnx 1.4.1的!!!!

  1. 安装onnx
    sudo pip3 install onnx==1.4.1

  2. 移除protobuf 3.0.0版本
    使用sudo apt-get remove protobuf-compiler libprotoc-dev移除protobuf包。
    需要注意,仅执行这个命令是卸载不干净protobuf的,如果你再装其他版本protobuf会导致多版本的protobuf存在。
    执行如上指令以后还要删除库和头文件、执行文件:(非常重要!!!)

sudo rm  /usr/local/bin/protoc
sudo rm  -rf /usr/local/include/google
sudo rm /usr/local/lib/libproto*
sudo pip3 uninsall protobuf
  1. 安装新版protobuf。(我安装的是3.12.3)
    解压、编译、安装
tar zxvf protobuf-all-3.12.3.tar.gz
cd protobuf-3.12.3
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig

安装protobuf的python模块

cd ./python
python3 setup.py build
python3 setup.py test
sudo python3 setup.py install

总结:要先安装低版本的protobuf,安装成功onnx后,再更新protobuf版本。

03 | 配置CUDA环境路径

  1. 编译~/.bashrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  1. source ~/.bashrc

你可能感兴趣的:(AI)