PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解

  • 1. 引言
  • 2. PAI3D框架
      • 2.1 Instance Painter
      • 2.2 Adaptive Projection Refiner
      • 2.3 Fine-granular Detection Head
  • 3. 实验结果
    • 3.1 消融实验

1. 引言

3D目标检测对于自动驾驶来说是一个非常重要的模块,主车通过检测得到的结果去进行后续的避障决策和路径规划。常用的传感器包括雷达,相机以及毫米波等,目前来说,单雷达传感器的感知能力已经能达到业界比较领先的水平,在多个大型的自动驾驶数据集上均能达到非常好的检测效果。但是因为雷达本身数据的稀疏属性,导致他在一些场景下表现得不太好,比如对于远处的物体,雷达能打到物体上的点非常少,或者是一些体型较小的物体,能被扫到的点也比较少,这就是检测任务带来的一定的难度,而单目视觉检测在这一方面有独特的优势,所以近些年来,大家都在研究雷达和相机两种互补的数据类型的融合检测。两种模态的数据融合面临比较大的挑战有两方面,一个是传感器数据的对齐,另外一个是模型的算力问题;为了解决这两个难题,目前已有的方法采用预测图像的类别标签,然后和点云做融合来进行检测,比如point painting,fusion painting,但是对于3D检测任务来说,他还是更关注实例之间的区别和信息,而这些方法忽略了从图像上获取实例级别的信息,也导致在后续的检测任务中很难明确的获取的物体之间的区别去指导学习任务,尤其在同类别之间的检测。基于此,我们提出了一种实例painting的检测方法,在nusense的测试集上做实验,mAP和NDS两个指标上均能超过当时已有的sota方法,并且有较高的性能,能够快速轻松的部署到实际车端上,该方法简单有效。不管在学术领域还是在工业领域都有着较大的意义。

2. PAI3D框架

在这里插入图片描述

Pai3D包含3个模块:

一个是instance painter,主要是从图像中预测每个实例的标签和instance mask,然后点云通过传感器之间的标定信息由3d投影到2d图像上,得到每个point对应的instance 信息。
但是有时候由于传感器之间的标定误差以及雷达和相机之间信息的不同步会造成投影有较大的偏差,为了纠正这个偏差,我们设计了一个Adaptive Projection Refiner 模块去做这个事情,保证我们最后能输出较为准确的painting信息,去做后面的检测任务。
在实际的检测任务中,不同的类别之间的尺寸差异较大,比如说一个行人和一个大卡车,如果只是从单一的feature map和detection head去做检测,效果会不那么理想,所以我们提出了一种基于多feature map的Fine- granular Detection Head 去解决这个问题
在这里插入图片描述

2.1 Instance Painter

接下来为大家介绍一下instance painter这个模块,这个模块主要是为了得到点云在2D图像上的instance mask信息和他的semantic 标签,以作为下一个模块的输入。
在这里插入图片描述

首先使用一个实例分割器对图像做实力分割,得到每个像素的实例信息,包括他的语义信息和mask信息,然后根据传感器之间的标定关系将3D点云图像投影到对应的2Drgb图像上,得到点云对应的像素的实例信息,就比如说这个点落在了一辆cyclist上,那么这个点的语义信息就是cyclist,因为做的是实例分割,所以每个实例之间是有区分的,所以最后我们得到的点云的paintig信息就是这样的,这几个点被paintig上cyclist的信息,这几个点被painting上的是第一辆车的信息,然后剩余这几个点被paintig上的是第二车的信息。
但是在这个过程中也会遇到一些问题,比如说图像的重叠问题,那么一个点云就会有两个实例信息,这个时候我们会选取confidence score比较高的那个instance作为最后的结果。
大家应该发现了,在投影paiting的过程中,会有一些建筑物上的点云被投影到实例上,打上车的标签,这是由于标定信息的不准确以及传感器之间不同步所造成的,这会给我们后期的任务造成一定的影响,我们下一个模块将会来解决这个问题

2.2 Adaptive Projection Refiner

在这里插入图片描述
除了标定误差和传感器之间的不同步的影响因素,3D空间到2D空间的投影路径,也会导致3D中锥形的空间所有物体全部投影到2D的某一部分平面上,造成投影误差,就比如说这个误投影到建筑物上的点,因为我们后期需要用到这个实例的center信息,如果以这种方式去算这个物体的center,就会得到一个错误的结果,就是这个红色的点,而正确的物体的中心点应该在物体的内部,即下面这个黄色的点,为了解决这个问题,我们使用一种Salient Cluster Detection 的方法去做一个聚类,得到不同的cluster,然后怎么去选择正确的cluster呢,我们知道雷达的成像原理是,激光射出去后遇到的第一个障碍物即往回反射,而同一个物体不可能在空间上出现分裂,基于这一个先验知识,我们选择离雷达最近的那个cluster作为正确的物体,而远处的就抛弃掉,然后基于这个正确的cluster去做center的计算。最终得到的数据类型就是,前四维还是点云的原始信息,后面几维是物体类别的one hot编码,最后3维是物体的center信息,xyz。然后作为模型的输入。为了给这几维信息中,对最终检测结果有较大贡献的几个channel给予较高的权重,我们用了一个attention模块去做这么个事情,然后就是常规的3D检测模块,点云的voxelization,point pillar和voxel的encoder,2D或者3D的backbone。

2.3 Fine-granular Detection Head

在这里插入图片描述
常规的检测方法是使用单一的feature map,然后所有的类别使用同一个deteciton head去做检测,但是我们所检测的物体之间的尺寸差异较大,从大卡车到行人,他们之间的特征提取很难做到统一化提取,所以我们使用一种基于多feature map的不同粒度检测head去解决这个问题,具体的做法就是当backbone接fpn出来后,我们在尺寸较大的feature map上去接检测物体尺寸较小的物体,因为这一层的feature map能保留更多细节信息,对小物体的检测较为友好,然后在中间这一层的feature map再接一个检测头去检测一些中型物体,比如汽车或者小型卡车,在最后一层feature map去检测较大的物体,因为他的感受野比较大,能够看到更多的信息,比较有理由大尺寸物体的检测。

3. 实验结果

在这里插入图片描述

我们可以看下实验结果,我们实验的数据集是自动驾驶领域权威的数据集,nusencese,它的数据集包含多达700个不同场景的数据,共计40w帧数据。左边这个表格是我们和目前比较前沿方法的对比,可以看到我们在这些方法中,无论是mAP和nds指标,都是最高的;右边是nusense世界级别的榜单,然后我们这个方法是在不使用额外数据的多模态方法中是当时排名第一的。

3.1 消融实验

在这里插入图片描述
这是我们对不同的feature所做的消融实验,我们的basecode是counterpoint,第一行是他们论文的结果,第二行是我们复现的结果,会比他们公布的高接近两个点,我们后续的实验都是基于这个baseline去做的比较,FDH是我们多粒度检测头的那个feature,可以看到这个feature能够长0.5个点,IP是前面所讲到的instance painter,这个大模块整体涨点11.5个点,我们对他做了拆分,分别去验证semantic lable以及instance center所带来的收益,可以看到sementic label能涨9.6个点,instence center能涨1.9个点,效果还是比较可观的,APR是做了矫正投影所带来偏差的那个feature,有实验结果能看出,涨点0.4个点。FPA是一个数据增强的方法,false positive augmentention,就是我们在训练的过程中会随机粘贴那些false positive(识别错误,较难识别的证样本)的样本,以增强模型对这些较难识别的正样本的学习能力,然后这个feature能涨大概0.2个点。最终再不使用tta的方法时,我们的模型能够达到64.7.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/755289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙系统——强大的分布式系统

鸿蒙相比较于传统安卓最最最主要的优势是微内核分布式操作系统,具有面向未来,跨设备无缝协作,数据共享的全场景体验。下面简单来感受一下鸿蒙系统的多端自由流转。 自由流转概述 场景介绍 随着全场景多设备的生活方式不断深入,…

background 与 background-image

相同点:background 与 background-image都可以用于设置背景图 区别. background既可以用于设置背景图, 又可以用于设置CSS样式,还可以用于设置背景属性。 background-image只能用于设置背景图 background能设置的背景属性,如下&…

学习过程中遇到的 部分问题及解决办法

1.安装build wheel时报错: The detected CUDA version (12.1) mismatches the version that was used to compile PyTorch (11.7). Please make sure to use the same CUDA versions. 由于cuda版本和 当前虚拟环境中的pytorch-cudatoolkit版本不同, 解…

数据结构历年考研真题对应知识点(数组和特殊矩阵)

目录 3.4数组和特殊矩阵 3.4.2数组的存储结构 【二维数组按行优先存储的下标对应关系(2021)】 3.4.3特殊矩阵的压缩存储 【对称矩阵压缩存储的下标对应关系(2018、2020)】 【上三角矩阵采用行优先存储的应用(2011)】 【三对角矩阵压缩存储的下标对应关系(2016)】 3.4.…

【AIGC】《AI-Generated Content (AIGC): A Survey》

文章目录 相关概念What is AI-generated content?Necessary conditions of AIGCHow can AI make the content better?The industrial chain of AIGCAdvantages of large-scale pre-trained modelsGeneration of smart textPros of AIGCCons of AIGCAIGC and Metaverse 挑战潜…

【Vue】Vue.js中常见的几种语法

在 Vue.js 中,主要的语法可以分为以下几种: 插值语法 (Interpolation) 使用双大括号 {{ }} 进行文本插值。 示例: {{ message }} 指令语法 (Directives) 指令是特殊的标记,用于告诉Vue框架如何操作DOM。Vue提供了多种内置指…

算法基础-----【动态规划】

动态规划(待完善) 动规五部曲分别为: 确定dp数组(dp table)以及下标的含义确定递推公式(状态转移公式)dp数组如何初始化确定遍历顺序举例推导dp数组、 动态规划的核心就是递归剪枝(存储键值,…

有人物联的串口服务器USR-TCP232-410S基本测试通信和使用方案(485串口和232串口)

1.将 410S(USR-TCP232-410S,简称 410S 下同)的串口通过串口线(或USB 转串口线)与计算机相连接,通过网线将 410S 的网口 PC 的网口相连接,检测硬件连接无错误后,接入我们配送的电源适配器,给 410S 供电。观察指示灯状态…

Python面试宝典第1题:两数之和

题目 给定一个整数数组 nums 和一个目标值 target,找出数组中和为目标值的两个数的索引。可以假设每个输入只对应唯一的答案,且同样的元素不能被重复利用。比如:给定 nums [2, 7, 11, 15] 和 target 9,返回 [0, 1],因…

《数据仓库与数据挖掘》 总复习

试卷组成 第一章图 第二章图 第三章图 第四章图 第五章图 第六章图 第九章图 第一章 DW与DM概述 (特点、特性) DB到DW 主要特征 (1)数据太多,信息贫乏(Data Rich, Information Poor)。 &a…

计算机网络 —— 路由协议:RIP、OSPF、BGP、MPLS

路由协议 1. 定义2. IGP2.1 RIP2.2 OSPF 3. BGP4. MPLS 1. 定义 互联网中需要通过路由将数据发送至目标主机。 路由器根据**路由控制表(RoutingTable)**转发数据包,它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。 &…

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…

【opencv - C++ - Ubuntu】putText 显示中文最快方法

话不多说&#xff0c;直接上代码 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/freetype.hpp>using namespace std; using namespace cv;int main(void) {Mat image(1000, 1800, CV_8UC3, Scalar(200,162,33));Ptr<freetype::F…

一篇大模型 Agent 工具使用全面研究综述

使用大型语言模型&#xff08;LLMs&#xff09;进行工具学习已成为增强LLMs能力以解决高度复杂问题的一个有希望的范式。尽管这一领域受到越来越多的关注和快速发展&#xff0c;但现有的文献仍然分散&#xff0c;缺乏系统性的组织&#xff0c;为新来者设置了进入障碍。因此对LL…

Gemma 2大模型:性能更优,效率更高

当地时间6月27日&#xff0c;谷歌正式发布了在一个月前的I/O开发者大会上预告过的Gemma 2大模型。这款新模型相较于第一代Gemma模型&#xff0c;在性能和推理效率上都有了显著的提升&#xff0c;为AI领域带来了新的突破。 据谷歌介绍&#xff0c;Gemma 2模型包括9B和27B两种参…

AIGC->基于扩散模型的图像生成算法 (课程大纲)

https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507 课程特色是围绕着工作中AIGC文生图的具体用途来对文生图领域进行一个高屋建瓴式的分析,结合具体的应用,尤其是产业界的具体实用场景,…

【排序算法】—— 希尔排序

目录 一、希尔排序原理 二、希尔排序的思路 三、希尔排序为什么快 四、如何取增量 五、源码 希尔排序是简单插入排序的一种升级版&#xff0c;它也是用了插入的思想&#xff0c;而插入排序相比冒泡排序和选择排序的效率要高的多&#xff0c;再将它优化为希尔排序后效率跟原…

ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项

目录 什么是ONLYOFFICE&#xff1f; ONLYOFFICE 主要特点包括&#xff1a; 官网信息&#xff1a; 1. 功能齐全的 PDF 编辑器 1.1 编辑 PDF 文本 1.2 插入和修改对象 1.3 创建和填写表单 2. 幻灯片版式功能 2.1 快速应用幻灯片版式 2.2 动画窗格的改进 3. 文档编辑、…

Linux—系统安全及应用

目录 一、账号安全控制 1、系统账号清理 1.1、将用户账号设置为无法登录 1.2、锁定长期不使用的账号 1.3、删除无用的账号 1.4、锁定账号文件passwd、shadow 2、密码安全控制 2.1、设置密码有效期 2.1.1、适用于新建用户 2.1.2、适用于已有用户 2.2、强制用户下次登录…

什么是预主密钥(pre-master secret)?

什么是预主密钥&#xff08;Pre-Master Secret&#xff09;&#xff1f; 在SSL/TLS协议中&#xff0c;预主密钥&#xff08;Pre-Master Secret&#xff09;是建立安全连接的关键要素之一。它在客户端和服务器之间生成共享密钥的过程中扮演重要角色。本文将详细介绍预主密钥的生…