BEVDet-ROS-TensorRT工程实现

BEVDet-ROS-TensorRT工程实现

在这里插入图片描述

  • 本工程所有代码都是参考大佬们的开源项目,如发现代码有雷同,都是本人引用大佬们
  • 感谢大佬们的开源工作
  • BEVDet-ROS-TensorRT-github
  • 更多bev算法部署参考链接
  • bev感知交流Q群-472648720, 欢迎各位小伙伴进群一起学习讨论bev相关知识!!!^_^

1 环境配置

  1. 基本环境依赖
  • ubuntu-20.04, cuda-11.3, cudnn-8.6, TensorRT-8.5
  • yaml-cpp、Eigen3、libjpeg
  1. 拉取源码
mkdir -p bev_ws/src
cd bev_ws/src
git clone https://github.com/linClubs/BEVDet-ROS-TensorRT.git
  1. onnx2engine

The onnx folder can be downloaded from Baidu Netdisk

# 1 创建一个python环境,并安装相关python库
pip install onnx ruamel.yaml==0.17.32

# 2 进入工程目录
cd BEVDet-ROS-TensorRT

# 3 onnx2engine 运行时报错差什么库就安装该库即可
python tools/export_engine.py ./ckpts/lt_d.yaml ./ckpts/img_stage_lt_d.onnx ./ckpts/bev_stage_lt_d.onnx --postfix=_lt_d --fp16 true

2 ros编译运行

# 1. 编译
cd bev_ws 
catkin make

# 2 工作空间生效
source devel/setup.bash

# 3 运行
roslaunch bevdet bevdet_node.launch

# 4 播放数据集
rosbag play nus.bag
  • 测试数据建议直接下载Baidu Netdiskrosbag包, 经本人生成的包,稳的1p。

在这里插入图片描述


3 传感器实时数据

  • 一定要标定(相机内参, 雷达到相机的外参), 不然置信度极低
  • 一定要训练模型 自己场景数据需要重新训练模型
  • 传感器数据直接通过ros发布, 就能实时接本工程并上车

4 待提升

  1. 图像传输可以压缩
  2. 因为读了6张图,可以多线程读取
  3. 图像预处理可以用cuda加速,比如去畸, 仿射变换等操作
  4. 可以删掉可视化, 去掉雷达数据
  5. 后处理采用cuda加速
  6. …待续
  7. …待续

5 普通编译

# 1 创建build目录并进入该目录
mkdir build && cd build

# 2 编译 # 第1次make报错如下,就再次make就能通过编译
cmake .. && make 

Error copying file (if different) from "/home/lin/code/bevdet-tensorrt-cpp/build/CMakeFiles/bevdemo.dir/src/bevdemo_generated_postprocess.cu.o.depend.tmp" to "/home/lin/code/bevdet-tensorrt-cpp/build/CMakeFiles/bevdemo.dir/src/bevdemo_generated_postprocess.cu.o.depend".
CMake Error at bevdemo_generated_postprocess.cu.o.RELEASE.cmake:246 (message):
  Error generating
  /home/lin/code/bevdet-tensorrt-cpp/build/CMakeFiles/bevdemo.dir/src/./bevdemo_generated_postprocess.cu.o

# 错误2:
AttributeError: 
"load()" has been removed, use

  yaml = YAML(typ='rt')
  yaml.load(...)
改正:
pip install ruamel.yaml==0.17.32

# 错误3
报libffi.so.7的错,禁用掉conda
# 1 运行  生成sample0/sample0_lidarbox.txt检测结果
cd build
./bevdemo ../configure.yaml

# 我的运行
./01test ../configure.yaml

# 可视化
cd ../tools
python viewer.py --config ../configure.yaml 

  • 本工程是基于bevdet-tensorrt-cpp魔改
  • 为了快速实现ros版本,只修改了/test/demo_bevdet.cpp中的TestSample函数
  • 仅将TestSample改成ros回调函数,导致代码很乱,可读性比较差, 比如读取参数实现方式不统一, 类只封装了推理函数等问题
  • 有时间再整理更新代码风格, 代码和人一个能跑就行^_^
  • 再次声明,本工程所有代码都是参考大佬们的开源项目,如发现代码有雷同,都是本人引用大佬们的。
  • 感谢大佬们的开源工作
  • 更多bev算法部署参考链接
  • bev感知交流Q群-472648720, 欢迎各位小伙伴进群一起学习讨论bev相关知识!!!_

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全网最菜的Slamer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值