CtenterPoint部署

参考

1、CenterPoint-PonintPillars Pytroch model convert to ONNX and TensorRT
2、Center-based 3D Object Detection and Tracking
3、CenterPoint : An Lidar Object Detection & Tracking project implemented by TensorRT
4、CenterPoint的环境配置error大全【已全部解决】
以上的参考中我主要参考了第一个博客,其他几个如果有需要也都可以拿来作参考.

python环境配置

参考链接
配置的过程中需要注意的几点:

  1. det3d带源码中就已经存在,但是直接使用命令的话代码找不到det3d这个目录,可能是因为运行的代码在tools的目录下.所以如果使用命令行运行的话,需要加上以下代码:
# 获取当前脚本的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 把含有 det3d 文件夹的上级目录添加到系统路径
parent_dir = os.path.dirname(script_dir)
sys.path.insert(0, parent_dir)
  1. 报错error:det3d cannot import name ‘deform_conv_cuda’.
    原因:det3d下没有编译这些cuda源码。
    解决方法:由于centerpoint目录下有det3d,因此问了作者是否需要自行编译安装det3d,作者回复说只要在centerpoint下运行bash setup.sh即可,里面写好了去项目的det3d目录下编译这几个cuda文件。
  2. error:det3d 中的deform_conv未编译成功,“AT_CHECK”.
    在这里插入图片描述原因:torch版本较高,deform_conv_cuda.cpp和deform_pool_cuda.cpp中的AT_CHECK与最新版本的torch不匹配。
    解决方法:用vim将这两个文件中的"AT_CHECK" 都替换成"TORCH_CHECK "。
  3. 在安装APEX的过程中没有遇到问题,但是在运行程序的过程中会报错:no apex.
    原因:pytorch版本过高,pytorch1.9后就会出现cannot import name ‘container_abcs‘
    from ‘torch._six‘错误,当前环境版本为1.10.0
    解决方法:降级为1.8或者修改apex的源码如下,然后重新编译安装:
if TORCH_MAJOR == 1 and TORCH_MINOR < 8:
    from torch._six import container_abcs
else:
    import collections.abc as container_abcs
  1. 安装spconv报错,这个在网上找一下就能找出来,最后安装的spconv的版本为:
spconv                        2.3.6

还需要把scn.py中导入spconv改成:

import spconv.pytorch as spconv
from spconv.pytorch import SparseConv3d, SubMConv3d
  1. 模型下载
    pth和onnx模型下载地址
    把下载好的pth模型放到work_dirs/centerpoint_pillar_512_demo文件夹下.

最后python tools/demo.py能够跑通就可以.

Export ONNX

  1. Install packages
pip install onnx onnx-simplifier onnxruntime
  1. Prepare dataset. Please refer todocs/NUSC.md
  2. Export pfe.onnx and rpn.onnx
python tools/export_pointpillars_onnx.py
  1. Use onnx-simplify and scripte to simplify pfe.onnx and rpn.onnx.
python tools/simplify_model.py
  1. Merge pfe.onnx and rpn.onnx. We use ScatterND node to connect pfe and rpn. TensorRT doesn’t support ScatterND operater. If you want to run CenterPoint-pointpillars by TensorRT, you can run pfe.onnx and rpn.onnx respectively.
python tools/merge_pfe_rpn_model.py

All onnx model are saved in onnx_model.

Centerpoint Pointpillars For TensorRT

参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值