在这个又一个被迫熬夜的日子里,桂桂香甜睡在我的前方,我一次又一次迷失在bug之中,不知道谁把我在310的虚拟环境删了,而且310磁盘容量完全变成0了,悲痛万分之下写下此教程,希望一切顺利。
转ONNX
这里我推荐在一个显卡还算OK的自己的电脑或者服务器上进行,在英伟达上太多问题了。
首先创一个python=3.9的虚拟环境(必须大于等于3.9,我这里的CUDA版本刚刚好卡在3.9才可以)
conda create -n cyc python=3.9
随后安装pytorch,这里根据自己的CUDA对应关系来就可以:nvcc -V查看自己的cuda
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
安好之后就可以去安装OpenPcdet,下面是OpenPcdet的安装要求,我们还需要spconv
先安装spconv:pip install spconv-cu102
然后cd OpenPcdet,在该目录下pip install -r requirements.txt配置环境,然后安装OpenPcdet:
python setup.py develop
然后我们需要配置一下CUDA-PointPillars
pip install pyyaml scikit-image onnx==1.15.0 onnx-simplifier
pip install onnx_graphsurgeon
做完上述准备工作后,就可以直接转onnx了:
但是我这样直接转Onnx后在英伟达上跑出来的结果是0检测框,显然完蛋。
查了一下issues看到有人推荐改一下export_onnx.py里的一个参数,所以我也照着做看看效果:
所以我们这里把MAX_VOXELS改为40000再去
然后师兄还修改了一个modify_onnx.py也是必须的,把这个替换掉原来的。
python tool/export_onnx.py --ckpt xx.pth --cfg_file xx.yaml
到这一步就会生成两个onnx文件,就是我们后续用来推理转trt_engine的,需要把这两个onnx文件保存转移到英伟达上。
以上是转Onnx的全流程,全部都是在普通linux电脑上进行的,不涉及英伟达。
TRT_ENGINE推理
这里的话首先就是配置英伟达,但是这个教程中配置英伟达不是重点,所以直接甩链接了:
在Xavier上部署CUDA-PointPillars_jetson下载spconv-CSDN博客
NVIDIA AGX Xavier 部署 CUDA-PointPillars_ccimport.buildmeta-CSDN博客
我因为在转Onnx前已经配置完环境了,踩了无数坑,也没时间再重新配置环境了。
但是我建议如果可以的话,尽量按照转onnx电脑的配置来配置,比如python>=3.9这样
配置完环境后,我们就按照CUDA-PointPillras的README来就好