基于 Transformation-Equivariant 的自动驾驶 3D 目标检测

news2024/10/1 3:30:32

论文地址:https://arxiv.org/abs/2211.11962
论文代码:https://github.com/hailanyi/TED

论文背景

三维场景中的物体分布有不同的方向。普通探测器不明确地模拟旋转和反射变换的变化。需要大的网络和广泛的数据增强来进行鲁棒检测。

equivariant networks 通过在多个变换点云上应用共享网络显式地模拟变换变化,显示出在物体几何建模方面的巨大潜力。这种网络计算量大,推理速度慢,难以应用于自动驾驶中的 3D 目标检测。

希望 3D detector 的预测与旋转和反射等变换是一致的。换句话说,当一个目标在输入点中改变它的方向时,该目标被检测到的 box 应该具有相同的形状,但相应地改变它的方向。
然而,大多数基于体素和点的方法都没有对这种变换等价方差进行显式建模,在处理变换后的点云时会产生不可靠的检测结果。

论文提出了 an efficient Transformation-Equivariant 3D Detector(TED

论文相关

3D物体检测

先前的方法将点云转换成2D多视图图像以执行3D目标检测。最近大量的方法采用体素或基于点的检测框架。
通过使用基于体素的稀疏卷积,SECOND、PointPillars、SA-SSD 和 SE-SSD 执行单阶段3D对象检测,而体素-RCNN 和SFD 执行两阶段检测。
通过使用基于点的集合抽象,3DSSD、SASA 和 IA-SSD 执行单阶段检测,而PointRCNN 和 STD 进行两阶段检测。
PVRCNN 和 CT3D 使用基于体素和基于点的操作两者来生成和细化目标 proposal。
一些最近的方法生成伪点云或来自RGB图像的虚拟点,用于基于体素的多模态3D目标检测。

论文扩展了流水线与变换等变性设计,拥有更高的检测精度。

变换等变性建模

目前,已经提出了各种各样的变换(平移、旋转和反射)等变网络。一些基于点的SO(3)和基于体素的SE(3)等变网络被设计用于处理3D数据。一些等变网络被设计用于目标检测和姿态估计。最相近的是专为室内场景设计的EON;但是,它没有考虑效率。
论文的TED主要是为户外场景中的实时目标检测而设计的。

变换等变性和不变性
给定运算f: X → Y X → Y XY 和变换群 G G G,等方差定义为: f [ T g X ( x ) ] = T g Y [ f ( x ) ] , ∀ x ∈ X , ∀ g ∈ G , (1) \tag1 f[T_g^X(x)]=T_g^Y[f(x)],\forall x\in X,\forall g \in G, f[TgX(x)]=TgY[f(x)],xX,gG,(1)其中 T g X T^X_g TgX T g Y T^Y_g TgY 分别指 X X X Y Y Y 空间中的变换操作。当 T g Y T^Y_g TgY 是单位矩阵时,等方差变为不变性。
论文研究了自动驾驶场景中的3D目标检测,其中变换主要发生在道路平面上。
不失一般性,考虑 2D BEV平面上的变换。形式上,认为变换群 G G G 是二维平移群 ( R 2 , + ) (\R^2,+) (R2,+) 和二维旋转反射群 K K K 的半直积 G = ( R 2 , + ) ⋊ K G =(R2,+)\rtimes K G=(R2,+)K。旋转反射群 K K K 由反射群 ( { ± 1 } , ∗ ) (\{±1\},*) ({±1},) 和离散旋转群 O N O_N ON 组成。在反射的情况下,群 K K K 包含角度分辨率 β β β 的角度倍数的 N N N 个离散旋转;因此, K K K 2 N 2N 2N 阶的离散子群。对于输入点云 P P P,论文试图找到具有参数 θ θ θ 的检测器 D θ ( ⋅ ) D^θ(·) Dθ() 来检测 bounding box B B B,满足变换等方差: D θ ( T g ( P ) ) = T g [ D θ ( P ) ] (2) \tag2D^θ(T_g(P))=T_g[D^\theta(P)] Dθ(Tg(P))=Tg[Dθ(P)](2) 其中, T g T_g Tg G G G 的变换操作。

用于3D检测的对象增强

基于“copy-andpaste”的增强(GT-aug)在最近的 3D 目标检测中被广泛使用。LiDAR-Aug 解决了GT-aug中的闭塞问题。通过交换目标的一部分,PA-Aug 和 SE-SSD 创建用于数据增强的不同目标。
与之不同的是,论文通过从附近密集的对象中创建稀疏的训练样本来增强远处对象的检测。

3D 目标检测
给定输入点云 P = { p i } i P = \{p_i\}_i P={pi}i,3D对象检测旨在找到由 3D BBs(Bounding boxs) B = { b i } i B = \{b_i\}_i B={bi}i表示的所有对象。每个框 b i b_i bi 由坐标编码,尺寸和方向。
论文中,从最先进的 Voxel-RCNN 提出了单模态 TED-S 和 多模态 TED-M 3D目标检测器。TED-S和TED-M之间的区别在于,TED-S 仅取 LiDAR 点,而 TED-M 取 LiDAR 点和由深度估计算法生成的 RGB 图像伪点两者。遵循基于区域的检测框架。它包括一个稀疏卷积主干,一个2D区域提议网络(RPN)和一个建议细化分支。

论文内容

论文提出了 TED,它既是变换等价的,又是有效的。
通过一个简单而有效的设计来实现:让 TeSpconv 堆叠多通道变换-等变体素特征,而 TeBEV 池和 Tivoxel 池化将等变特征对齐并聚合到轻量级的 scene-Level 和实例级表示中,以实现高效有效的 3D 目标检测。

在这里插入图片描述

等差变换体素 Backbone

为了有效地将原始点编码为等差变换特征,首先设计了等差变换稀疏卷积(TeSpConv)Backbone。 TeSpConv 由广泛使用的稀疏卷积(SpConv)构造。 与CNNs类似,SpConv 是等差变换的。 然而,SpConv 与旋转和反射并不时等变换的。 因此,通过添加转换通道将 SpConv 扩展到旋转和反射等变:1)转换通道之间权重高度共享;2)输入点的变换拥有不同旋转角度和反射。
形式上,基于 2 N 2N 2N 个变换动作 { T i } i = 1 2 N ⊂ K \{T_i\}_{i=1}^{2N} \sub K {Ti}i=12NK,将点云 P P P 变换为 2 N 2N 2N 个不同点集 { P T i } i = 1 2 N \{P^{T_i}\}_{i=1}^{2N} {PTi}i=12N。 然后将所有点集划分为体素集 { P ^ T i } i = 1 2 N \{\hat P^{T_i}\}_{i=1}^{2N} {P^Ti}i=12N。在每个体素中,原始特征被计算为所有内部点的 point-wise 特征的平均值。 利用共享 SpConv φ ( ⋅ ) φ(·) φ() 将体素 { P ^ T i } i = 1 2 N \{\hat P^{T_i}\}_{i=1}^{2N} {P^Ti}i=12N 编码为等差变换体素 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N V T i = φ ( P ^ T i ) , i = 1 , 2 , . . . , 2 N . (3) \tag 3 V^{T_i} = \varphi (\hat P^{T_i}),i=1,2,...,2N. VTi=φ(P^Ti),i=1,2,...,2N.(3)对于多模态设置,论文使用相同的网络结构对伪点特征进行编码。与常规稀疏卷积编码的体素特征相比,在不同的旋转和反射变换下,特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N 包含了不同的特征。

等差变换 BEV Pooling

体素特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N 包含大量的变换通道;因此,直接将它们输入RPN将引入大量额外的计算,并需要更大的GPU内存。为了解决这个问题,论文提出了 TeBEV Pooling,通过双线性插值和 max-pooling 将 scene-level 体素特征对齐和聚集成一个紧凑的 BEV map。
在这里插入图片描述
首先将体素特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N沿高度维压缩为BEV特征 { E T i } i = 1 2 N \{E^{T_i}\}_{i=1}^{2N} {ETi}i=12N。由于 BEV 特征是在不同的变换下得到的,因此有必要将它们对齐到同一个坐标系中。 首先在 E T 1 E^{T_1} ET1 坐标系中生成一组 scene-level 网格点 X T 1 X^{T_1} XT1。根据变换动作 { T i } i = 1 2 N \{T_i\}_{i=1}^{2N} {Ti}i=12N,将网格点转换到 BEV 坐标系中,生成一组新的网格点 { X T i } i = 1 2 N \{X^{T_i}\}_{i=1}^{2N} {XTi}i=12N。然后,在 BEV map 上应用一系列双线性插值 I ( ⋅ , ⋅ ) \mathcal I(·, ·) I(⋅,⋅),得到一组对齐特征 { A T i } i = 1 2 N \{A^{T_i}\}_{i=1}^{2N} {ATi}i=12N A T i = I ( X T i , E T i ) , i = 1 , 2 , . . . , 2 N . (4) \tag4 A^{T_i} = \mathcal I(X^{T_i}, E^{T_i}),i=1,2,...,2N. ATi=I(XTi,ETi),i=1,2,...,2N.(4)如果 E T 1 E^{T_1} ET1 中的边界像素在 E T 2 , . . . , E T N E^{T_2},...,E^{T_N} ET2,...,ETN 中没有对应的像素,则内插结果将被填充零。
为了提高效率,在 2 N 2N 2N 个对齐特征映射上应用最大池 M ( ⋅ ) \mathcal M(·) M() 来得到一个紧致表示 A ∗ A^* A A ∗ = M ( A T 1 , A T 2 , . . . , A T 2 N ) . (5) \tag5 A^* = \mathcal M(A^{T_1},A^{T_2},...,A^{T_{2N}}). A=M(AT1,AT2,...,AT2N).(5)轻量级特征 A ∗ A^* A 被放入RPN 中,以有效地生成一组目标 proposals B ∗ B^* B.

变换不变体素 Pooling

近年来,许多检测器都采用了兴趣区域(Region of Interest, RoI)池化操作,从 scene-level 变换等变 backbone 特征中提取 instance-level 变换不变特征,用于 proposal refinement。然而,直接应用这样的池化操作从 backbone 中提取特征是不可行的:
1.坐标系 T 1 T_1 T1 中的 proposal B ∗ B^* B 与不同 T i T_i Ti变换的体素特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N不对齐。
2.TeSpConv中的体素特征包含多个变换通道,将提取的特征直接送入检测头需要大量的额外计算和GPU内存。
因此,论文提出了 TiVoxel pooling,它通过多网格池和跨网格关注将实例级体素特征对齐并聚合成一个紧凑的特征向量。

多网格 pooling

Proposal B ∗ B^* B 是在 T 1 T_1 T1 坐标系中获得的,而 backbone 特征是在不同的变换下获得的。因此,在池化之前需要进行 proposal 对齐。
首先在坐标系 T 1 T_1 T1 中使用 proposal B ∗ B^* B 生成一组局部网格点,然后根据变换动作 T 2 , . . . , T 2 N {T_2,...,T_{2N}} T2,...,T2N 将网格点变换 到 { A T i } i = 1 2 N \{A^{T_i}\}_{i=1}^{2N} {ATi}i=12N 中的每个通道的坐标系中,最后由变换后的 2 N 2N 2N 组网格点提取变换不变的局部特征。
对于 proposal B ∗ B^* B 基于变换动作 { T i } i = 1 2 N \{{T_i}\}_{i=1}^{2N} {Ti}i=12N,首先生成 2 N 2N 2N 个 instance-level 网格点集合 { X T i } i = 1 2 N \{{ \boldsymbol X^{T_i}}\}_{i=1}^{2N} {XTi}i=12N X T i = { X j T i } j = 1 J ⊂ R 3 { \boldsymbol X^{T_i}} = \{ X_j^{T_i} \}_{j=1}^{J} \sub \R^3 XTi={XjTi}j=1JR3 J J J 表示在每个集合中的网格点数量。通过使用 2 N 2N 2N 各网格点集,论文从 { V T i } i = 1 2 N \{ V^{T_i}\}_{i=1}^{2N} {VTi}i=12N 提取多个 instance-level 特征 { F T i } i = 1 2 N \{\boldsymbol F^{T_i}\}_{i=1}^{2N} {FTi}i=12N
F T i = V S A ( X T i , V T i ) , i = 1 , 2 , . . . , 2 N , (6) \tag6 \boldsymbol F^{T_i} = VSA(\boldsymbol X^{T_i},V^{T_i}),i=1,2,...,2N, FTi=VSA(XTi,VTi),i=1,2,...,2N,(6)其中 VSA 指的是体素集 Abstraction 模块,且 F T i = { F j T i } j = 1 J ⊂ R 1 × C \boldsymbol F^{T_i} = \{ F_j^{T_i}\}_{j=1}^J \sub \R^{1 \times C} FTi={FjTi}j=1JR1×C C C C 为 grid-wise 特征通道数。

Cross-grid attention

{ F T i } i = 1 2 N \{\boldsymbol F^{T_i}\}_{i=1}^{2N} {FTi}i=12N 包含多个 instance-level 特征。为了编码更好的局部几何,论文应用一个 cross-grid attention 操作来进一步将多个特征聚合成一个更紧凑的变换不变特征向量。具体来说,对于第 j j j 个网格点,串联了 2 N 2N 2N 个 grid-wise 特征 F j = c o n c a t ( F j T 1 , … , F j T 2 N ) F_j = concat(F^{T_1}_ j,…, F^{T_{2N}}_j) Fj=concat(FjT1FjT2N) F j ∈ R 2 N × C F_j \in \R^{2N \times C} FjR2N×C。然后有 Q j = F j W q , K j = F j W k , V j = F j W v \boldsymbol Q_j = F_j\boldsymbol W^q,\boldsymbol K_j= F_j \boldsymbol W^k,\boldsymbol V_j= F_j \boldsymbol W^v Qj=FjWqKj=FjWkVj=FjWv,其中 W q , W k , W v \boldsymbol W^q,\boldsymbol W^k,\boldsymbol W^v Wq,Wk,Wv都是线性投影。因此,grid-wise 特征为:
F ^ j = s o f t m a x ( Q j ( K j ) T C ) V j . (7) \tag7 \hat F_j = softmax(\frac{\boldsymbol Q_j(\boldsymbol K_j)^T}{\sqrt{C}})\boldsymbol V_j. F^j=softmax(C Qj(Kj)T)Vj.(7)沿 2 N 2N 2N 平均特征,得到特征 F ^ = { F ^ j } j = 1 J ⊂ R 1 × C \hat {\boldsymbol F} =\{\hat F_j\}^J_{j =1}\sub \R^{1 \times C} F^={F^j}j=1JR1×C。然后,这些特征被扁平化成一个单一的特征向量,以执行类似于 object proposal refinement。

距离感知数据增强

远距离物体的几何形状不完整通常会导致检测性能的巨大下降。为了解决这个问题,论文通过从附近的密集对象创建稀疏训练样本来增加遥远稀疏对象的 geometric knowledge。
一种简单的方法是采用随机采样或最远点采样(FPS)。但是,它破坏了激光雷达扫描到的点云的分布模式。为了解决这个问题,论文提出了一种距离感知采样策略,该策略考虑了激光雷达和场景遮挡的 scanning 机制。
具体来说,给定一个位置为 C g C^g Cg 的近地真值 box,内部点 { P i g } i \{P^g_i\}_i {Pig}i,添加一个随机距离偏移 ∆ α ∆α α,即 C g : = C g + ∆ α C^g:= C^g +∆α Cg:=Cg+α P i g : = P i g + ∆ α P^g_i:= P^g_i +∆α Pig:=Pig+α。然后将 { P i g } i \{P^g_i\}_i {Pig}i 转换为球面坐标系,并根据激光雷达的角度分辨率将它们体素化为球面体素。 在每个体素中,最接近体素中心的点被保留作为采样点。 然后,得到一组采样点,它具有与实际扫描点相似的分布模式。
在这里插入图片描述由于真实场景中由于遮挡导致的数据不完整是很常见的,因此还随机去除一些部分来模拟遮挡。 在训练过程中,类似于GT-AUG,将采样点和 bounding box 添加到训练样本中进行数据扩充。

论文总结

论文提出了一个高性能的三维目标检测器TED。TED将变换等变体素特征编码为紧凑的场景级和实例级表示,用于目标候选生成和精细化。该设计效率高,能更好地学习物体的几何特征。
局限性:
(1)由于输入的变换是离散的和体素化的,TED的设计不是严格的变换等变的。通过使用更多的变换和更小的体素,TED将更接近完全等变,但这带来了更高的计算成本。
(2)考虑到加入更多的变换方式会增加计算成本,没有考虑缩放变换。
(3)与 baseline 相比,TED需要大约2倍的GPU内存。

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

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

相关文章

【高等数学重点题型篇】——不定积分

文章目录 一、换元积分法二、分部积分法三、两类特殊函数的不定积分——有理函数与有理三角函数四、分段函数的积分五、综合型不定积分六、总结 一、换元积分法 分子分母同时除以 x 2 x\ ^2 x 2。 当根号下内容无法用第一类换元积分(凑微分法)和第二类换…

SQL注入案例

目录 一、简介 二、案例 1.发现注入点 2.寻找注入类型 3.寻找字段数 4.将传参值设为超出数据量的大值,联合查询找到回显位置 5.找到数据库 6.寻找库中的表 7.寻找表中列 8.查看表中数据 附:SQLMap注入 1.输入指令查数据库 2.输入指令查表 3…

利用无头浏览器爬取JavaScript生成的网页

在进行网页爬取时,经常会遇到 JavaScript 生成的网页。由于 JavaScript 的动态渲染特性,传统的爬虫工具往往无法获取完整的页面内容。这时就需要使用无头浏览器来爬取JavaScript生成的网页,以获取所需的数据。 JavaScript生成的网页之所以无法…

华阳半年报!汽车业务「冷热不均」,HUD所属子公司利润大跌

整车智能化赛道竞争日趋白热化。 本周,华阳集团发布2023年度半年报,今年1-6月实现营业收入28.68亿元,较上年同期增长15.39%,实现归属于上市公司股东的净利润1.82亿元,较上年同期增长11.64%。 其中,汽车电子…

下单时如何保证数据一致性?

原创 哪吒 哪吒编程 2023-09-07 08:03 发表于辽宁 收录于合集#Redis11个 (给哪吒编程加星标,提高Java技能) 大家好,我是哪吒。 在前几篇文章中,提到了Redis实现排行榜、Redis数据缓存策略,让我们对Redis…

如何提高抖音直播间的人气(从15个方面为你解答)

抖音直播是一项非常受欢迎的内容创作方式,但是在直播过程中若是没有足够的人气,会让主播感到非常沮丧。如何才能提高抖音直播间的人气呢?本文将从15个方面为你一一解答。 一、打造独特个性的直播形象 在抖音直播中,每一个主播都有…

学校水电能源管理系统

随着社会的发展和经济的增长,学校规模逐渐扩大,能源消耗也不断增加,因此学校水电能源管理系统成为了当今智能化校园建设的重要组成部分。学校水电能源管理系统通过科技手段,实现对学校水电资源的全面监控和管理,不仅能…

OCR训练部署文档

Cuda安装 wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run sh cuda_11.6.0_510.39.01_linux.run#可能会报错,查看/var/log/nvidia-installer.log ,kill -9 [ID]可以解决vim ~/.bash…

FAA批准uAvionix C波段超视距飞行(BVLOS)豁免和Vantis网络

美国联邦航空管理局(FAA)于2023年9月6日在拉斯维加斯的商业无人机博览会上宣布批准uAvionix公司的豁免申请,允许该公司在北达科他州通过使用Vantis指挥与控制系统(C2)和检测与避障(DAA)网络,无需载人即可进行超视距(BVLOS)的无人机系统(UAS)操作。具体而…

视频监控/安防监控/视频云存储EasyCVR平台设备分配模块升级详解

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持将部署在监控现场的前端设备进行统一集中接入,可兼容多协议、多类型设备,管理员可选择任意一路或多路视频实时观看,视频画面支持单画面、多画面显示,视频窗口数量有1、4…

Origin绘制彩色光谱图

成果图 1、双击线条打开如下窗口 2、选择“图案”-》颜色-》按点-》映射-》Wavelength 3、选择颜色映射 4、单击填充-》选择加载调色板-》Rainbow-》确定 5、单击级别,设置成从370到780,右侧增量选择2(越小,颜色渐变越细腻&am…

Three.js开发中遇到的常见问题总结和性能优化

关于Three.js开发中遇到的一些问题总结 1.加载外部模型文件无法在场景中显示: (1) 确保当前文件内容是否能被读取,在Javascript的console中查找错误,并确定当你调用.load()的时候,使用了onError回调函数来输出结果, 如果err 输出则表示当前…

sql_mode详解

文章目录 一、sql_mode作用二、查询sql_mode三、mysql8默认的mode配置(6个默认配置)四、常见mode详细解释mysql8默认配置了的mode(6个)需要自己配置的mode(4个) 五、设置sql_mode(一旦设置了&am…

宠物用品做谷歌推广的三种形式

今天,米贸搜谷歌推广来跟大家讲讲宠物用品做谷歌推广的三种形式! 本文中所提到的三种谷歌推广形式不仅仅适用于宠物用品行业的推广,也同样适用于更多的行业做好谷歌推广哟,如果有别的行业想要知道谷歌推广的三种推广形式&#xff…

使用Cmake编译项目从入门到精通

文章目录 1、安装2、使用CMake生成makefile2.1、项目结构介绍2.2、编写CMakeLists.txt文件2.3、优化写法12.4、给可执行程序设置路径2.5、指定头文件目录2.6、制作库以及使用 3、使用练习 cmake 的特点主要有: 1,开放源代码,使⽤类BSD 许可发…

网络技术二十一:ACL包过滤

ACL包过滤 ACL 定义 访问控制列表 用于数据流的匹配和筛选 常见功能 访问控制:ACLPacket-filter 路由控制:ACLRoute-policy 流量控制:ACLQOS 引入 ACL (Access Control List,访问控制列表)是用来实现数据包识别功能的 ACL可…

知名设计师推荐:2023年Pantone年度年度色彩用法

绘画巨头Pantone已宣布他们2023年的年度色彩。它是Viva品红,一种如此大胆和充满活力的色彩,我们一想到就兴奋不已。 Viva品红:Pantone Color Institute 2023年的年度色彩是明亮、温暖和乐观的。它也是相关的和不可避免的;在经历了…

浙大陈越何钦铭数据结构08-图7 公路村村通【循环和最小堆版】

题目 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N)…

.netcore对传输类设置区分大小

.Net Core中内置了对Json的转化与解析 可将PropertyNameCaseInsensitive false 设置为区分大小写。

socket的使用 | 服务器与客户端之间传送数据

服务器端代码: import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class theServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(9999); // 该行代码作用&#xff1…