Sparse Fuse Dense: 向高质量的深度补全3D检测迈进

news2024/11/16 17:34:16

点云的稀疏性:在远距离和遮挡区域提供的信息较差,导致难以生成精确的3D边界框。

出现了多模态融合。

图像和点云的不同表示方式使得它们难以融合,导致性能不佳。

论文提出了一种新颖的多模态框架SFD(Sparse Fuse Dense),利用从深度补全生成的伪点云来解决这个问题。

深度补全的目的是在彩色图像的指导下,从稀疏的深度图预测出稠密的深度图。

参数

简单起见,论文将由激光雷达生成的原始点云和由深度补全生成的伪点云分别命名为 raw clouds 和 pseudo clouds。 给定一帧 raw clouds R \cal R R,通过一个已知的映射 T LiDAR → image T_{\text{LiDAR} \to \text {image}} TLiDARimage 将它转换为一个稀疏得深度图 S \cal S S I \cal I I 表示对应于 R \cal R R 的图像。将 I \cal I I S \cal S S 输入到一个深度补全网络中,可以得到一个稠密的深度图 D \cal D D。 利用已知的映射 T LiDAR → image T_{\text{LiDAR} \to \text {image}} TLiDARimage ,可以得到一帧 pseudo clouds P \cal P P.

总体框架

(1)LiDAR Stream,仅使用 raw clouds,并作为 RPN 来产生 3D RoIs,然后利用RoIs对原始点云和伪点云进行裁剪;
(2)Pseudo Stream 利用原始点云和图像生成伪点云。 用RGB绘制伪点云,得到彩色伪点云。进行多次 CPConv 提取点特征,对RoIs中的伪点云进行体素化,用稀疏卷积提取体素特征 ;
(3)稀疏稠密融合头,以网格化的方式从 raw clouds 和 pseudo clouds 中融合3D RoI特征,并产生最终预测,两个辅助头用来规范网络。
在这里插入图片描述

3D 网格注意力融合

这篇论文之前直接将从BEV图像特征图中提取的二维激光雷达ROI特征与从FOV图像特征图中提取的二维图像ROI特征进行级联,这是一种粗糙的 ROI 融合策略。
通过将2D图像转换为3D伪点云,可以以更精细的方式融合图像和点云中的 ROI 特征。
3D 网格注意力融合包括三个部分: 3D 融合、网格化融合和注意力融合。
在这里插入图片描述

3D 融合
使用一个 3D ROI 来裁剪 3D 原始点云和 3D 伪点云,该 3D ROI 中只包含激光雷达特征和图像特征。

网格化融合
在以往的ROI融合方法中,图像ROI网格与激光雷达ROI网格之间没有对应关系,因此直接将图像ROI特征与激光雷达ROI特征串联起来。
由于原始点云 ROI 特征和伪点云 ROI 特征的相同表示,可以分别融合每对网格特征, 从而能够用相应的伪点云网格特征准确地增强物体的各个部分。

注意力融合
为了自适应地融合原始点云 ROI 和伪点云 ROI 中的每一对网格特征,为每一对网格预测一对权重,并用这些权重对网格特征进行加权,得到融合的网格特征。

F raw ∈ R n × C F^{\text{raw}} \in \R^{n \times C} FrawRn×C 表示原始点云 ROI 特征
F pse ∈ R n × C F^{\text{pse}} \in \R^{n \times C} FpseRn×C 表示伪点云 ROI 特征

这里 n n n 6 × 6 × 6 6×6×6 6×6×6 默认情况下,遵循Voxel-RCNN)是 1 个 3D ROI 中的网格总数, C C C 是网格特征通道。

F i raw F_i^{\text{raw}} Firaw F i pse F_i^{\text{pse}} Fipse 分别表示 F raw F^{\text{raw}} Fraw F pse F^{\text{pse}} Fpse 中的 第 i i i 个 ROI 网格特征。

给出一对 ROI 网格特征 ( F i raw , F i pse ) (F_i^{\text{raw}} , F_i^{\text{pse}}) (Firaw,Fipse) ,将其连接后送入一个全连接层和一个 sigmoid 层,产生一对关于这对 ROI 网格特征的权重 ( w i raw , w i pse ) (w_i^{\text{raw}} , w_i^{\text{pse}}) (wiraw,wipse),权重都是标量,最后用 ( w i raw , w i pse ) (w_i^{\text{raw}} , w_i^{\text{pse}}) (wiraw,wipse) 加权 ( F i raw , F i pse ) (F_i^{\text{raw}} , F_i^{\text{pse}}) (Firaw,Fipse) 获得融合网格特征 F i F_i Fi ( w i raw , w i pse ) = σ ( MLP ( CONCAT ( F i raw , F i pse ) ) ) (1) \tag{1} (w_i^{\text{raw}} , w_i^{\text{pse}})=\sigma(\text {MLP}(\text {CONCAT}(F_i^{\text{raw}} , F_i^{\text{pse}}) )) (wiraw,wipse)=σ(MLP(CONCAT(Firaw,Fipse)))(1) F i = M L P ( CONCAT ( w i raw F i raw , w i pse , F i pse ) ) (2) \tag{2} F_i = MLP(\text{CONCAT}(w_i^{\text{raw}} F_i^{\text{raw}}, w_i^{\text{pse}},F_i^{\text{pse}})) Fi=MLP(CONCAT(wirawFiraw,wipse,Fipse))(2)

同步增强

由于图像和点云的不同表现形式,多模态方法很难利用许多数据增强方法。数据增强不足极大地限制了许多多模态方法的性能。
数据增强包括两个部分:像点云一样操纵图像和三维空间特征提取。

在这里插入图片描述

像点云一样操纵图像
通过深度补全,可以将2D图像转换为3D伪点云。 用RGB绘制伪点云,伪点云携带图像的所有信息。然后只需要对伪点云和原始点云进行数据增强。

三维空间图像特征提取
处理像点云这样的图像对于多模态数据增强是不够的。 大多数多模态方法都需要在视场图像上提取图像特征。 然而,这将限制模型使用可能导致视场遮挡问题的数据增强方法。
论文提出将二维图像转换成三维伪点云来提取三维空间中的图像特征。不再在视场图像上提取图像特征,所以不需要考虑遮挡问题。可以在伪点云中裁剪出完整的采样器图像信息。

Color Point 卷积

对于一帧伪点云 P \cal P P,我们将图像中每个像素的 RGB ( r , g , b ) \text{RGB}(r,g,b) RGB(r,g,b) 和坐标 ( u , v ) (u,v) (u,v) 串联到其对应的伪点。 因此,第 i i i 个伪点 p i p_i pi 可以表示为 ( x i , y i , z i , r i , g i , b i , u i , v i ) (x_i,y_i,z_i,r_i,g_i,b_i,u_i,v_i) (xiyizirigibiuivi)

直接对伪点云进行体素化并进行三维稀疏卷积,实际上并没有充分挖掘伪点云中丰富的语义和结构信息。
PointNet++[1] 是提取 points 特征的一个很好的例子,但不适用于伪点云: 首先,PointNet++中的 ball query 操作会由于大量的伪点而带来大量的计算。 其次,PointNet++不能提取2D特征,因为 ball query 操作没有考虑2D邻域关系。

Charles R. Qi, Li Yi, Hao Su, and Leonidas J. Guibas. PointNet++: Deep hierarchical feature learning on point sets in a metric space. In NeurIPS, pages 5099–5108, 2017. 5

在这里插入图片描述

在图像域上的 ROI 区域感知的邻域搜索
受体素查询[2]和网格搜索[3]的启发,论文提出了 CPConv(Color Point Convolution) ,克服了 PointNet 的缺点。

[2]Jiajun Deng, Shaoshuai Shi, Peiwei Li, Wengang Zhou, Yanyong Zhang, and Houqiang Li. Voxel r-cnn: Towards high performance voxel-based 3d object detection. arXiv preprint arXiv:2012.15712, 2020. 2, 4, 5, 6, 8
[3]Lue Fan, Xuan Xiong, Feng Wang, Naiyan Wang, and Zhaoxiang Zhang. Rangedet: In defense of range view for lidarbased 3d object detection. arXiv preprint arXiv:2103.10039, 2021. 5

首先,一个伪点云可以在恒定时间内搜索其邻居,使其比 ball query 快得多。 其次,图像域上的邻域关系使得提取二维语义特征成为可能。
然而,由于GT采样时,来自其他帧的伪点可能会造成视场遮挡,因此无法将所有伪点投影到当前帧图像空间进行邻域搜索。为此,论文提出了在图像域上的 ROI 区域感知的邻域搜索。

根据伪点所携带的 ( u , v ) (u,v) (u,v) 属性,将每个3D ROI 中的伪点分别投影到它们的原始图像空间。这样,被相互遮挡的伪点不会成为邻居,因此即使它们之间在视场上存在严重遮挡,它们的特征也不会相互干扰。

伪点特征
对于第 i i i 个伪点 p i p_i pi,其特征表示为 f i = ( x i , y i , z i , r i , g i , b i ) f_i=(x_i,y_i,z_i,r_i,g_i,b_i) fi=(xi,yi,zi,ri,gi,bi) 包含 3D 几何特征 ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi) 和 2D 语义特征 ( r i , g i , b i ) (r_i,g_i,b_i) (ri,gi,bi)。进行邻域搜索之前,在伪点特征上应用一个全连通层,以降低复杂度。在完全连接的层之后,特征通道被提升到 C 3 C_3 C3

位置残差
利用 p i p_i pi 到其邻域的3D和2D位置残差,使 p i p_i pi 的特征能够感知 3D 和 2D 空间中的局部关系,这对于提取 p i p_i pi 的 3D 结构特征和 2D 语义特征尤为重要。

p i p_i pi 的第 k k k 的邻居 p i k p_i^k pik p i p_i pi p i k p_i^k pik 之间的位置残差表示为 h i k = ( x i − x i k , y i − y i k , u i − u i k , v i − v i k , ∣ ∣ p i − p i k ∣ ∣ ) h_i^k=(x_i-x_i^k,y_i-y_i^k,u_i-u_i^k,v_i-v_i^k,||p_i-p_i^k||) hik=(xixik,yiyik,uiuik,vivik,∣∣pipik∣∣) ∣ ∣ p i − p i k ∣ ∣ = ( x i − x i k ) 2 + ( y i − y i k ) 2 + ( z i − z i k ) 2 ||p_i-p_i^k||=\sqrt {(x_i-x_i^k)^2+(y_i-y_i^k)^2+(z_i-z_i^k)^2} ∣∣pipik∣∣=(xixik)2+(yiyik)2+(zizik)2

特征聚合
对于 p i p_i pi 的 K 个邻居,收集它们的位置并计算位置残差。 然后在位置残差上应用一个全连接层,将它们的通道提升到 C 3 C_3 C3,来使得与伪点特征对齐。
给定一组邻居特征 F i = { f i k ∈ R C 3 , k ∈ 1 , . . . , K } F_i=\{ f_i^k \in \R^{C_3},k \in 1,...,K \} Fi={fikRC3,k1,...,K} 和一组邻据位置残差 H i = { h i k ∈ R C 3 , k ∈ 1 , . . . , K } H_i=\{ h_i^k \in R^{C_3},k \in 1,...,K \} Hi={hikRC3,k1,...,K}。用相应的 h i k h_i^k hik 对每个 f i k f_i^k fik 进行加权。为了达到最大的信息保真度,加权邻居特征被串联而不是 max-pooled。 最后,应用一个全连通层将聚合特征通道映射回 C 3 C_3 C3

多层次特征融合
三个CPCOVS叠加起来提取伪点云的深层特征。考虑到高层特征提供了更大的感受场和更丰富的语义信息,而低层特征提供了更精细的结构信息,将每个CPCONV的输出进行级联,以得到更全面、更有区分度的伪点云表示。

损失函数

沿用 Voxel-RCNN[2] 的 RPN loss 和 ROI head loss,它们被定义为 L r p n \cal L_{rpn} Lrpn L r o i \cal L_{roi} Lroi
为了防止梯度被特定流控制,我们在 LiDAR 流和 Pseudo 流上都添加了辅助 ROI head loss,分别被定义为 L a u x 1 \cal L_{aux_1} Laux1 L a u x 2 \cal L_{aux_2} Laux2 L a u x 1 \cal L_{aux_1} Laux1 L a u x 2 \cal L_{aux_2} Laux2 L r o i \cal L_{roi} Lroi 一致,包括类置信度损失和回归损失。深度补全网络损 loss 为 L d e p t h \cal L_{depth} Ldepth
总损失是: L = L r p n + L r o i + λ 1 L a u x 1 + λ 2 L a u x 2 + β L d e p t h . \cal L = \cal L_{rpn}+\cal L_{roi}+\lambda_1\cal L_{aux_1}+\lambda_2\cal L_{aux_2}+\beta \cal L_{depth}. L=Lrpn+Lroi+λ1Laux1+λ2Laux2+βLdepth.这里, λ 1 , λ 2 \lambda_1,\lambda_2 λ1,λ2 β \beta β L a u x 1 , L a u x 2 \cal L_{aux_1} ,\cal L_{aux_2} Laux1,Laux2 L d e p t h \cal L_{depth} Ldepth 的权重。

优势

1.伪点云可以通过提供足够的三维几何信息和额外的二维语义信息来缓解遮挡问题。
2.伪点云可以为原始点云提供补充信息,缓解了激光雷达分辨率有限的问题。
3.密集的伪点云不仅有利于定位前景,而且有助于区分背景和前景。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二层交换机工作原理与MAC地址介绍

目录 MAC地址介绍 MAC地址的组成 MAC地址分类 MAC地址的作用 二层交换机介绍 MAC地址表的定义 MAC地址表项类型 二层交换机对数据帧的处理动作 MAC地址介绍 MAC地址(Media Access Control Address),直译为媒体存取控制位地址 MAC地址的组成 MA…

华为OD机试真题(Java),图片整理(100%通过+复盘思路)

一、题目描述 Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。 Lily使用的图片使用字符"A"到"Z"、“a"…

JMeter 环境配置

目录 前言: 一、 JDK安装 二、 安装JMeter 三、 安装插件 前言: JMeter是一款功能强大的性能测试工具,用于模拟多种负载条件下的应用程序行为,环境配置是jmeter学习的第一步,每次换电脑就得重新配置,为…

Spark RDD dataframe嘿嘿

RDD(Resilient Distributed Datasets)可扩展的弹性分布式数据集,RDD是spark最基本的数据抽象,RDD表示一个只读、分区且不变的数据集合,是一种分布式的内存抽象,与分布式共享内存(Distributed Sh…

面试题:希尔排序是一种稳定排序吗?

面试题:希尔排序是一种稳定排序吗? 对于算法的稳定性,有这样一个记忆技巧,不稳定排序是"快些选队",对应于快速排序/希尔排序/选择排序/堆排序。希尔排序也名列其中,因此也是一种不稳定排序&…

CODESYS 数组类型变量(ARRAY)使用介绍

博途PLC数组类型变量使用介绍请参看下面文章博客: 博途1200/1500PLC上升沿下降沿指令编程应用技巧(bool数组)_博途上升沿指令_RXXW_Dor的博客-CSDN博客博途PLC的下降沿和上升沿指令,在控制系统编程时经常会使用。和SMARTS7-200有所不同,遵循IEC-6113标准提供的上升沿下降沿…

【初识C语言(6)】指针+结构体

文章目录 1. 指针1.1 内存1.2 指针变量的大小 2. 结构体 1. 指针 想要学好指针,首先必须要先了解内存。 1.1 内存 内存介绍 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分…

​LeetCode解法汇总1401. 圆和矩形是否有重叠

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给你一个以 (radius, xCenter, yCenter) 表示的圆和一个与坐标轴平行的矩形 (x1…

第三方医药数据供应商有哪些?--数据业务介绍

第三方医药数据供应商主要是为医药企业、健康机构、学术研究、药物研发等提供医药相关数据的收集、整理、分析和应用服务。随着医药市场的需求衍生了许多各高垂直领域的医药数据供应商,这也导致了大家对医药数据供应商涉及领域认识的片面性。 故本文重点介绍各医药…

SpringBoot 如何使用 YourKit 进行性能调优

SpringBoot 如何使用 YourKit 进行性能调优 前言 在应用程序的开发过程中,性能调优是一个重要的环节。如果应用程序的性能不佳,可能会影响用户的体验,甚至导致系统崩溃。而在 Spring Boot 应用程序中,我们可以使用 YourKit 来进…

同比增长超500% 威睿公司三电产品4月装机量增势迅猛

近期,2023年4月装机量数据全新出炉,威睿公司在电驱动系统、电机控制器、驱动电机、PACK、BMS等多个装机量榜单中跻身前十位,同比增长均超过100%。其中电驱动系统装机量位列第六位,电驱动系统、电机控制器、驱动电机装机量同比增长…

本地离线安装Selenium

1、去官网(下载地址:https://pypi.org/project/selenium/#history)去下载selenium版本 2、此处建议大家下载selenium的3.0的版本,我给的地址可以让你直接进入选择历史版本的跳转页面。 3、往下拉,到3左右的版本,点击版…

【Docker】Docker Compose详解

文章目录 概述Docker Compose介绍Docker Compose安装一、下载Docker Compose:二、授权三、快速上手第一步、创建python服务第二步,创建 Dockerfile第三步,使用 Compose 文件定义一个服务第四步、使用 Compose 编译启动应用 Docker Compose常用…

【JUC进阶】04. 无锁CAS

目录 1、前言 2、CAS概念和原理 2.1、什么是CAS 2.2、CAS原理 2.3、工作方式 2.4、无锁CAS优势 3、unsafe类 4、ABA问题 4.1、什么是ABA问题 4.2、解决ABA问题 4.2.1、版本号机制 4.2.2、AtomicStampReference 5、CAS适用的场景 1、前言 无锁的Compare and Swap&…

libevent(9)通过libevent实时监听文件的更新

这里我们利用libevent监听centos系统上的login日志文件&#xff0c;文件路径&#xff1a;/var/log/secure。&#xff08;ubuntu下是"/var/log/auth.log"&#xff09; 代码如下 test_file.cpp&#xff1a; #include <iostream> #include <thread> #inclu…

数据迁移ETL工具分享

1.概述 ETL(是Extract-Transform-Load的缩写&#xff0c;即数据抽取、转换、装载的过程)&#xff0c;对于企业应用来说&#xff0c;我们经常会遇到各种数据的处理、转换、迁移的场景。 我汇总了一些目前市面上比较常用的ETL数据迁移工具&#xff0c;希望对你会有所帮助。 2. …

华为OD机试真题 Java 实现【核酸检测人员安排】【2023Q1 100分】

一、题目描述 在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同&#xff0c;采样效率为N人/小时。 由于外界变化&#xff0c;采样员的效率会以M人/小时为粒度发生变化&#xff0c;M为采样效率浮动粒度&#xff0c;M N * 10…

云数据库是未来趋势,亚马逊云科技位居Gartner报告“领导者”

最近,数据库领域发生了一个大事件,可以称得上是一座里程碑。全球最具权威的IT研究公司Gartner最近发布了一个消息:在2022年的全球DBMS市场份额中,亚马逊云科技的数据库超越微软,登顶第一。 亚马逊云科技、微软、Oracle这三巨头近几年一直排名前三,占据了全球DBMS超过三分之二的…

无法提取请求的数据。有关详细信息,请查看 vSphere Client 日志。vsan没法查询详细信息

解释&#xff1a; 根本原因是证书不一致&#xff0c;但是vc的证书和vsan他们不共用一个证书&#xff0c;所以需要保证集群证书的统一&#xff0c; &#xff0c;当时由于vc的证书到期后&#xff0c;只替换了vc的sts证书&#xff0c;在替换了STS证书之后&#xff0c;可能会导致…

LangChain 构建本地知识库问答应用

一、使用本地知识库构建问答应用 上篇文章基于 LangChain 的Prompts 提示管理构建特定领域模型&#xff0c;如果看过应该可以感觉出来 ChatGPT 还是非常强大的&#xff0c;但是对于一些特有领域的内容让 GPT 回答的话还是有些吃力的&#xff0c;比如让 ChatGPT 介绍下什么是 L…