当前位置: 首页 > news >正文

【自动驾驶】单目摄像头实现自动驾驶3D目标检测

🍑个人主页:Jupiter.
🚀 所属专栏:传知代码
欢迎大家点赞收藏评论😊

在这里插入图片描述

在这里插入图片描述

目录

  • 概述
  • 算法介绍
  • 演示效果
      • 图像推理
      • 视频推理
  • 核心代码
  • 算法处理过程
  • 使用方式
      • 环境搭建
      • 下载权重文件
      • pytorch 推理(自动选择CPU或GPU)
      • onnxruntime 推理(自动选择CPU或GPU)
      • tensorrt 推理
  • 部署方式


参考文献:需要本文的详细复现过程的项目源码、数据和预训练好的模型可从该地址处获取完整版:地址

概述

随着人工智能的蓬勃发展,自动驾驶技术正成为科技界的一大亮点。在这个领域中,道路信息感知被视为自动驾驶系统中至关重要的一环,因为它为车辆的规划和决策提供了必不可少的基础数据。

我很荣幸地向大家介绍RTM3D算法(单目3D目标检测)。这一算法利用nuscenes数据集中的前视摄像头图像进行训练,能够准确地检测出轿车、巴士、卡车等多种3D目标。更令人振奋的是,我们为您提供了基于PyTorch、ONNX Runtime和TensorRT推理框架的演示,并附带了PyTorch转ONNX、ONNX转TensorRT的脚本,使您可以轻松应用于实际场景中。

算法介绍

RTM3D的主要结构分为backbone和检测头。backbone主要使用ResNet18和DLA-34。其中上采样过程用了跨连接和双线性插值。同时提出了针对keypoint的FPN层。根据速度要求检测头由三个基本单元和6个可选的单元组成。在基本单元中,使用2DBBox的中心点作为哦中枢点负责各数据的联系。因为截断的物体3D框中心可能会超出图像范围,对检测不利。其它基本单元还有9个关键点的热力图和回归坐标,用来做点之间的联合。其它可选的部分有量化误差的补偿、物体的大小、方向,中心点的depth和2D bbox的大小。
网络结构

演示效果

图像推理

在这里插入图片描述

视频推理

Description

核心代码

demo代码中定义图像以及模型的地址

model_path = r"weights/rtm3d_nusc_ep100.pth"
image_path = r"demo/demo.jpg"

根据相机参数在lib/rtm3d_detector.py中调整calib

self.calib_np = np.array([[721.5, 0.0,   336, 44.86],[0.0,   721.5, 140, 0.216],[0.0,   0.0,   1.0,   0.0027]], dtype=np.float32)

算法处理过程

def process(self, images):with torch.no_grad():output = self.model(images)[-1]output['hm'] = output['hm'].sigmoid_()dets = car_pose_decode_faster(output['hm'], output['hps'], output['dim'], output['rot'],prob=output['prob'], K=self.K, meta=self.meta, const=self.const)return dets

demo代码中调用对应的detector,并返回检测结果和可视化结果

results, show_img = detector.run(img, im1)

使用方式

环境搭建

pip install -r requirements.txt

下载权重文件

请阅读附件中README.md的这一部分。

pytorch 推理(自动选择CPU或GPU)

python image_infer.py # 单张图像推理
python pt_infer.py # 视频推理

onnxruntime 推理(自动选择CPU或GPU)

python pt2onnx.py # pytorch格式模型转onnx格式
python onnx_infer.py # 视频推理

tensorrt 推理

python pt2onnx.py # pytorch格式模型转onnx格式
python onnx2trt.py # onnx格式模型转tensorrt格式
python trt_infer.py # 视频推理

部署方式

在以上的demo文件中选择自己的图片/视频地址,如image_infer.py中修改image_path为自己的图像地址。

参考文献

@misc{2009.00764,
Author = {Peixuan Li},
Title = {Monocular 3D Detection with Geometric Constraints Embedding and Semi-supervised Training},
Year = {2020},
Eprint = {arXiv:2009.00764},
}
@misc{2001.03343,
Author = {Peixuan Li and Huaici Zhao and Pengfei Liu and Feidao Cao},
Title = {RTM3D: Real-time Monocular 3D Detection from Object Keypoints for Autonomous Driving},
Year = {2020},
Eprint = {arXiv:2001.03343},
}
http://www.lryc.cn/news/506541.html

相关文章:

  • 21 go语言(golang) - gin框架安装及使用(二)
  • Intel(R) Iris(R) Xe Graphics安装Anaconda、Pytorch(CPU版本)
  • 【Unity3D】实现可视化链式结构数据(节点数据)
  • Three.js推荐-可以和Three.js结合的动画库
  • 增强现实(AR)和虚拟现实(VR)的应用
  • 告别机器人味:如何让ChatGPT写出有灵魂的内容
  • 【Threejs】从零开始(六)--GUI调试开发3D效果
  • Cocos Creator 试玩广告开发
  • 快速解决oracle 11g中exp无法导出空表的问题
  • selenium 报错 invalid argument: invalid locator
  • Flink2.0未来趋势中需要注意的一些问题
  • 机械鹦鹉与真正的智能:大语言模型推理能力的迷思
  • 本地电脑使用命令行上传文件至远程服务器
  • 【系统】Windows11更新解决办法,一键暂停
  • 34. Three.js案例-创建球体与模糊阴影
  • Qt同步读取串口
  • 如何用上AI视频工具Sora,基于ChatGPT升级Plus使用指南
  • 对象的状态变化处理与工厂模式实现
  • 关于IP代理API,我应该了解哪些功能特性?以及如何安全有效地使用它来隐藏我的网络位置?
  • 在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动
  • [Maven]构建项目与高级特性
  • 【系统架构设计师】真题论文: 论数据分片技术及其应用(包括解题思路和素材)
  • 【bWAPP】XSS跨站脚本攻击实战
  • Ubuntu 22.04,Rime / luna_pinyin.schema 输入法:外挂词库,自定义词库 (****) OK
  • 多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台
  • 如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案
  • 第二部分:进阶主题 15 . 安全管理 --[MySQL轻松入门教程]
  • 力扣hot100——双指针
  • 【代码随想录day58】【C++复健】 117. 软件构建(拓扑排序);47. 参加科学大会(dijkstra(朴素版)精讲)
  • 【NLP 16、实践 ③ 找出特定字符在字符串中的位置】