论文阅读|基于点云的3D目标检测之SECOND,是对VoxelNet的改进
作者:互联网
论文相关信息
文献地址:https://www.researchgate.net/publication/328158485_SECOND_Sparsely_Embedded_Convolutional_Detection
论文源码:
Abstract:基于LiDAR和基于RGB-D的目标检测广泛应用于自动驾驶和机器视觉等应用中,基于体素的3D卷积网络有时会用于增强处理点云时时的信息保留能力。然而,当前仍然存在推理速度慢以和方向估计表现(low orientation estimation performance)差的问题,所以本文章提出一种改进过的稀疏卷积方法来增加训练和推断的速度。此外还提出了一种新形式的角度损失回归(angle loss regression)来提高方向估计表现,以及一种新的数据增强方法来提高网络收敛速度及性能。
1. Introduction
当前SOTA的2D汽车目标检测达到了90% AP,而3D汽车检测却只有15%。这表明2D的目标检测已经发展的相对成熟,而3D目标检测仍有很大发展潜力。图像中缺少空间信息,而点云则包含了准确的深度信息,能够由LiDAR和RGB-D相机生成,正为3D应用中越来越重要的数据形式。
当前许多3D检测器都使用融合方法来同时利用图像和点云数据。将点云数据转换为2D鸟瞰图像或投影到图像。然后使用一个卷积网络提取特征,并应用融合过程在图像和其他视图之间映射特征。 在Frustum PointNets中,首先使用二维检测器生成的边界框过滤点云数据,然后使用卷积网络直接处理这些点。 在其他方法中,通过量化将点云数据分配给体积网格单元(volumetric grid cells),然后应用3D CNN。
最近,开发了一种称为VoxelNet [14]的新方法。 这种方法在单级端到端网络中结合了原始点云特征提取和基于体素的特征提取。 它首先将点云数据分组为体素,应用线性网络一个个的处理体素,然后将体素转换为密集3D张量(dense 3D tensors ),再传入区域建议网络(RPN)。当前这是一种SOTA方法,但是由于其计算代价高,很难做实时检测应用。 于是本文提出一个新的方法SECOND (Sparsely Embedded CONvolutional Detection),该方法通过最大程度地利用点云数据中存在的丰富3D信息来应对基于3D卷积的检测中的这些挑战。该方法对现有的卷积网络体系结构进行了一些改进。 引入了空间稀疏卷积网络用于基于LiDAR的检测,并用于在3D数据下采样到类似于2D图像数据之前从z轴提取信息。我们还使用基于GPU(图形处理单元)的规则生成算法进行稀疏卷积以提高速度。 与密集卷积网络相比,我们的基于稀疏卷积的检测器在训练KITTI数据集期间实现了4倍的速度增强,并且推理速度提高了3倍。作为进一步的测试,我们设计了一个用于实时检测的小型模型,该模型在GTX1080 Ti GPU上的运行时间约为0.025 s,而性能仅有一点损失。
使用点云数据的另一个优点是,通过对对象上的指定点进行直接转换,可以非常轻松地缩放,旋转和移动对象。 SECOND基于此功能结合了一种新颖的数据增强形式。 生成了一个真实的数据库,其中包含对象的属性和关联的点云数据。 然后将从该数据库中采样的对象在训练过程中引入到点云中。 这种方法可以大大提高网络的收敛速度和最终性能。
除上述以外,我们还引入了一种新颖的角度损失回归方法,以解决当ground truth与预测之间的方向差等于π时产生的大损失的问题,因为这种情况下会产生与真实框相同的边界框。 这种角度回归方法的性能超过了我们目前所知的任何方法,包括AVOD中可用的方向向量回归函数。 我们还引入了辅助方向分类器来识别对象的方向。
该方法针对基于KITTI的3D检测在所有类别上都产生了SOTA结果,运行时,较大的模型以20 fps的速度运行,较小的模型以40 fps的速度运行。
论文贡献如下:
-
在基于LiDAR的目标检测中应用稀疏卷积,从而大大提高了训练和推理的速度。
-
我们提出了一种改进的稀疏卷积方法,使其能够运行得更快。
-
我们提出了一种新颖的角度损失回归方法比其他方法具有更好的方向回归性能。
-
我们针对仅限于LiDAR的学习问题引入了一种新颖的数据增强方法,该方法大大提高了收敛速度和性能
2. Related Work
简要回顾一下基于点云数据和图像的3D对象检测的现有工作。
2.1. Front-View- and Image-Based Methods
使用RGB-D数据的2D表示的方法可以分为两类:基于鸟瞰(BEV)的方法和基于正视图的方法。使用LiDAR的方法涉及将点云转换为前视图2D地图,以及2D检测器的应用以定位前视图图像中的对象。与其他方法相比,这些方法对于BEV检测和3D检测均表现不佳。
2.2. Bird’s-Eye-View-Based Methods
MV3D 是将点云数据转换为BEV表示的第一种方法。 在这种方法中,将点云数据转换为多个切片以获得高度图,然后将这些高度图与强度图和密度图连接起来以获得多通道特征。ComplexYOLO使用YOLO网络和复杂的角度编码方法可提高速度和方向性能,但在预测的3D边界框中使用固定的高度和z位置。PIXOR设计了一种快速的 single-stage proposal-free检测器,该检测器使用了特定的高度编码的BEV输入。 但是,所有这些方法的关键问题在于,在生成BEV映射时会丢弃许多数据点,从而导致垂直轴上的信息大量丢失。 这种信息丢失严重影响了这些方法在3D边界框回归中的性能。
2.3. 3D-Based Methods
大多数基于3D的方法要么直接使用点云数据,要么需要将这些数据转换为3D网格或体素,而不是生成BEV表示。一些方法中,点云数据被转换为包含特征向量的体素,这些方法使用手工制作的功能,尽管它们在特定的数据集上产生令人满意的结果,但它们却无法适应自动驾驶中通常遇到的复杂环境。还有一些方法直接从点云学习点特征或者局部特征,这些方法直接处理点云数据以在k个邻点上执行一维卷积,但无法应用于大量点; 因此,需要图像检测结果来过滤原始数据点。一些基于CNN的探测器将点云数据转换为体素。这些方法的主要问题是3DCNN的高计算成本,3D CNN的计算复杂度随着体素分辨率呈三次方增长。有一些方法提出空间稀疏卷积来提高卷积速度,但是目前还没有使用稀疏卷积执行检测任务的方法。
与所有这些方法类似,我们的方法利用了3D卷积体系结构,但结合了一些新颖的改进。
2.4. Fusion-Based Methods
一些方法将摄像机图像与点云结合在一起做检测,但是基于融合的方法通常运行缓慢,因为它们需要处理大量的图像输入。 具有LiDAR功能的时间同步且经过校准的摄像机的其他要求限制了此类方法的使用环境,并降低了其鲁棒性。 相比之下,我们的方法仅使用LiDAR数据即可达到最先进的性能。
3. SECOND Detector
本节描述SECOND检测器的架构以及关于SECOND训练和推断时的相关详细信息。
3.1 Network Architecture
论文提出的SECOND检测器架构如图1所示,由三个部分组成:(1) a voxelwise feature extractor; (2) a sparse convolutional middle layer; and (3) an RPN.其中voxelwise feature extractor由两个VFE和一个线性层组成。
3.1.1. Point Cloud Grouping
在这里,我们遵循VoxelNet中描述的简单过程来获得点云数据的体素表示。 我们首先根据指定的体素数量限制对缓冲区进行预分配;然后,在点云上进行迭代,并将点分配给与其关联的体素,然后保存体素坐标和每个体素中的点数量。在迭代过程中,我们基于哈希表检查体素的存在。 如果与某个点有关的体素尚不存在,则在哈希表中设置相应的值; 否则,我们将体素的内点的数量增加一个(这里应该是如果体素已经存在就把体素中点的数量+1)。一旦体素的数量达到指定的限制,迭代过程将停止。 最后,我们获得所有体素,它们的坐标以及实际体素数的每个体素点数。
为了检测相关类别中的汽车和其他物体,我们基于沿z×y×x轴的[-3,1]×[−40,40]×[0,70.4] m处的地面真实分布来裁剪点云。 对于行人和骑自行车的人检测,我们使用在[-3,1]×[−20,20]×[0,48] m处的裁剪点。 对于较小的模型,我们仅使用[-3,1]×[-32,32]×[0,52.8] m范围内的点来增加推理速度。 需要根据体素大小对裁剪区域进行轻微调整,以确保可以在后续网络中正确下采样生成的特征图的大小。 对于所有任务,我们使用的体素大小为vD = 0.4,vH = 0.2,vW = 0.2m。 每个空的用于车辆检测的体素的最大点数设置为T = 35,这是根据KITTI数据集中的每个体素的点数分布来选择的; 由于行人和骑自行车者相对较小,因此,体素特征提取需要更多的点,因此将行人和骑自行车者检测的相应最大值设置为T = 45。
3.1.2. Voxelwise Feature Extractor
如VoxelNet中所述,我们使用体素特征编码(VFE)层提取体素特征。VFE层将同一体素中的所有点作为输入,并使用由线性层, 批处理归一化(BatchNorm)层和非线性单元(ReLU)层组成的完全连接网络(FCN)来提取逐点特征。 然后,它用逐元素最大池来获取每个体素的局部聚集特征。 最后,它将获得的特征平铺,并将这些平铺的特征和每个点的特征连接在一起(类似PointNet做分割的结构)。 我们使用VFE( c o u t c_{out} cout)表示将输入特征转换为 c o u t c_{out} cout维输出特征的VFE层。 同样,FCN( c o u t c_{out} cout)表示将输入特征转换为 c o u t c_{out} cout维输出特征的Linear-BatchNorm-ReLU层。 整体上,体素特征提取器(voxelwise feature extracto)由几个VFE层和一个FCN层组成。
3.1.3. Sparse Convolutional Middle Extractor
第一篇引入空间稀疏卷积的论文中,如果没有相关的输入点,则不计算输出点。 这种方法在基于LiDAR的检测中提供了计算优势,因为在KITTI中对点云进行分组的步骤将生成5k-8k的体素,其稀疏度接近0.005。 作为常规稀疏卷积的替代方法,submanifold convolution将输出位置限制为在且仅当相应的输入位置处于活动状态时才处于活动状态。 这避免了太多的活动位置的产生,这可能由于大量的活动点而导致后续卷积层中速度的降低。
Sparse Convolution Algorithm
让我们首先考虑2D密集卷积算法。 我们使用 W u , v , l , m W_{u,v,l,m} Wu,v,l,m表示过滤后的元素,使用 D u , v , l D_{u,v,l} Du,v,l表示图像元素,其中u和v是空间位置索引,l表示输入通道,m表示输出通道。 给定提供的输出位置,函数 P x , y P_{x,y} Px,y生成需要计算的输入位置。 因此, Y x , y , m Y_{x,y,m} Yx,y,m的卷积输出由以下公式给出:
其中x和y是输出空间索引,而u-u0和v-v0表示内核偏移量u和v坐标。 可以使用基于通用矩阵乘法(GEMM)的算法(也称为基于基于im2col的算法)来收集构造矩 D ˉ P ( x , y ) , l \bar{D}_P{_(x,y),l} DˉP(x,y),l所需的所有数据,然后执行GEMM本身:
其中 W ∗ , l , m W_{*,l,m} W∗,l,m对应于 W u − u 0 , v − v 0 , l , m W_{u-u_0,v-v_0,l,m} Wu−u0,v−v0,l,m但以GEMM形式表示。 对于稀疏数据 D i , j ′ D'_{i,j} Di,j′和关联输出 Y j , m ′ ′ Y'_{j,m'} Yj,m′′,直接计算算法可以写为:
其中 P ( j ) ′ P'_{(j)} P(j)′是用于获取输入索引 i i i和滤波器偏移量的函数。 下标k是对应于公式(1)中的 u − u 0 u-u_0 u−u0和 v − v 0 v-v_0 v−v0的1D kernel偏移,下标 i i i对应于公式(1)中的u和v。 基于GEMM的公式(3)可以如下表示:
稀疏数据的聚集的矩阵
D
ˉ
P
(
′
j
)
,
l
\bar{D}_{P'_(j),l}
DˉP(′j),l 仍然包含许多不需要计算的0值,为了解决这个问题,与其直接将等式(3)转换到等式(4),这里将等式(3)重写如下:
其中 R k , j R_{k,j} Rk,j也称为Rule,是一个矩阵,给定内核偏移量k和输出索引 j j j 能够确定输入索引$i 0 。 公 式 ( 5 ) 中 的 内 部 总 和 无 法 通 过 通 用 矩 阵 乘 法 ( G E M M ) 计 算 , 因 此 我 们 需 要 收 集 必 要 的 输 入 以 构 建 矩 阵 , 执 行 G E M M 然 后 将 数 据 分 散 回 去 。 实 际 上 , 我 们 可 以 通 过 使 用 预 先 构 造 的 输 入 − 输 出 索 引 规 则 矩 阵 , 直 接 从 原 始 稀 疏 数 据 中 收 集 数 据 。 这 样 可 以 提 高 速 度 。 详 细 地 , 我 们 构 造 一 个 规 则 矩 阵 表 0。 公式(5)中的内部总和无法通过通用矩阵乘法(GEMM)计算,因此我们需要收集必要的输入以构建矩阵,执行GEMM然后将数据分散回去。实际上,我们可以通过使用预先构造的输入-输出索引规则矩阵,直接从原始稀疏数据中收集数据 。 这样可以提高速度。 详细地,我们构造一个规则矩阵表 0。公式(5)中的内部总和无法通过通用矩阵乘法(GEMM)计算,因此我们需要收集必要的输入以构建矩阵,执行GEMM然后将数据分散回去。实际上,我们可以通过使用预先构造的输入−输出索引规则矩阵,直接从原始稀疏数据中收集数据。这样可以提高速度。详细地,我们构造一个规则矩阵表R_{k,i,t}= R[k,i,t] , 维 度 为 ,维度为 ,维度为K×N_{in}×2 , 其 中 K 是 内 核 大 小 ( 表 示 为 体 积 ) , ,其中K是内核大小(表示为体积), ,其中K是内核大小(表示为体积),N_{in}$ 是输特征的数量,而t是输入 /输出索引。 元素 R [:,:,0]存储用于收集的输入索引,元素 R [:,:,1]用于存储散射的输出索引。 图2的顶部显示了我们提出的算法。
图2.上面显示了稀疏卷积算法,下面显示了GPU规则生成算法. N i n N_{in} Nin代表输入特征的数量, N o u t N_{out} Nout代表输出特征的数量,N代表收集的特征的数量。 Rule是规则矩阵,其中Rule [i,:,:]是与卷积核中的第i个核矩阵相对应的第i个规则。 带有颜色的框(除白色的外)表示稀疏数据点,其余的白色框表示空点。
Rule Generation Algorithm
当前稀疏卷积实现面临的主要性能挑战与规则生成算法相关。 通常使用使用哈希表的基于CPU的规则生成算法,但是这种算法很慢,并且需要在CPU和GPU之间进行数据传输。 规则生成的更直接方法是遍历输入点,以查找与每个输入点相关的输出,并将相应的索引存储到规则中。 在迭代过程中,需要一个表来检查每个输出位置的存在,以决定是否使用全局输出索引计数器来累积数据。 这是阻碍在算法中使用并行计算的最大挑战。
在我们的案例中,我们设计了一种基于GPU的规则生成算法(算法1),该算法在GPU上运行得更快。 图1的底部显示了我们提出的算法。首先我们手机输入索引和相关的空间索引,而不是输出索引(算法1中的第一个循环)。在此阶段获得了重复的输出位置。 然后,我们对空间索引数据执行独特的并行算法,以获得输出索引及其关联的空间索引。 从先前的结果中生成一个与稀疏数据具有相同空间尺寸的缓冲区,以便在下一步中进行表查找(算法1中的第二个循环)。 最后,我们迭代规则并使用存储的空间索引来获取每个输入索引的输出索引(算法1中的第3个循环)。表1显示了我们的实现与现有方法之间的性能比较。
Sparse Convolutional Middle Extractor
我们的中间提取器用于学习有关z轴的信息,并将稀疏的3D数据转换为2D BEV图像。 图3显示了中间提取器的结构。 它由稀疏卷积的两个阶段组成。 每个相位都包含几个**子流形卷积层( submanifold convolutional layers)**和一个正常的稀疏卷积,以在z轴上执行下采样。 将z维降采样到一或两个后,稀疏数据将转换为密集特征图。 然后,将数据简单地重塑为类似图像的2D数据.
3.1.4. Region Proposal Network
RPN最近已开始在许多检测框架中使用。 在这项工作中,我们使用类似于single shot multibox detector (SSD)的架构来构建RPN架构。 RPN的输入包含来自稀疏卷积中间提取器的特征图。 RPN体系结构由三个阶段组成。 每个阶段都从一个降采样的卷积层开始,然后是几个卷积层。 在每个卷积层之后,应用BatchNorm和ReLU层。 然后,我们将每个阶段的输出上采样到相同大小的特征图,并将这些特征图连接到一个特征图中。 最后,将三个1×1卷积应用于类,回归偏移和方向的预测。
3.1.5. Anchors and Targets
因为要检测的对象大约是固定大小的,所以我们使用固定大小的anchor,该anchor是根据KITTI训练集中所有地面真相的大小和中心位置(旋转0和90度)确定的。 对于汽车,我们使用尺寸为w = 1.6×l = 3.9×h = 1.56m的anchor,其中心为z = -1.0m。 对于行人,我们使用尺寸为w = 0.6×l = 0.8×h = 1.73m的anchor,而对于骑行者,anchor的尺寸为w = 0.6×l = 1.76×h = 1.73 m; 两者均以z = -0.6 m为中心。为每个anchor分配一个分类目标的one-hot向量,一个框回归目标的七向量和方向分类目标的一热点向量。 不同的类别具有不同的匹配和不匹配阈值。 对于汽车,使用0.6的交叉点联合(IoU)阈值将锚分配给地面真实对象,如果其IoU小于0.45,则将anchor分配给背景(负)。 IoU在0.45到0.6之间的anchor在训练过程中被忽略。对于行人和骑自行车的人,我们将0.35用作不匹配阈值,将0.5用作匹配阈值。对于回归目标,我们使用以下框编码函数:
其中x,y和za为中心坐标; w,l和分别为宽度,长度和高度;θ是绕z轴的偏航旋转; 下标a分别指示编码值,anchor点和基本事实。
是anchor框底部的对角线.
3.2. Training and Inference
3.2.1. Loss
角度回归的正弦误差损失(Sine-Error Loss for Angle Regression)
指出VoxelNet论文有个比较大的缺点就是在训练过程中,与真实的3D检测框相反方向的预测检测框会有**较大的损失函数,**从而造成训练过程不好收敛。我们的架构通过引入新的角度损失回归解决了这个问题:
其中p指预测值。这种减少角度损失的方法有两个优点:(1)解决了0和π方向之间的对抗性示例问题,(2)自然地针对角度偏移函数对IoU进行了建模。 为了解决这种损失将方向相反的盒子视为相同的问题,我们在RPN的输出中添加了一个简单的方向分类器。 该方向分类器使用softmax损失函数。 我们使用以下方法来生成方向分类器目标:如果绕ground truth的z轴的偏航旋转大于零,则结果为正;反之,则为正。 否则,它是负面的。
Focal Loss for Classification
我们的网络通常会在KITTI点云中生成约70 k个锚点。 不幸的是,通常只有很少的ground truth,每个ground truth只能产生4-6个肯定。 这导致前景和背景类别之间的极端失衡。 RetinaNet的作者介绍了一种可以解决此问题的有效单阶段损耗,称为焦点损耗。 因此,我们在架构中使用了这种损失。 分类损失具有以下形式:
其中 p t p_t pt是模型的估计概率,α和γ是焦点损失的参数。 我们在训练过程中使用α= 0.25和γ= 2。
Total Training Loss
通过组合上面讨论的损失,我们可以获得多任务损失的最终形式,如下所示:
其中 L c l s L_cls Lcls是为分类损失, L r e g − o t h e r L_{reg-other} Lreg−other为位置和尺寸的回归损失, L r e g − θ L_{reg-θ} Lreg−θ为新角度损失, L d i r L_dir Ldir是为方向分类损失。 β 1 β_1 β1= 1.0, β 2 β_2 β2= 2.0, β 3 β_3 β3= 0.2是我们损失公式的常数。 我们使用相对较小的 β 3 β_3 β3值来避免网络难以识别物体方向的情况。
3.2.2. Data Augmentation
Sample Ground Truths from the Database
我们在训练过程中遇到的主要问题是存在的ground truth太少,这极大地限制了网络的收敛速度和最终性能。 为了解决这个问题,我们引入了一种数据扩充方法。 首先,我们从训练数据集中生成了一个数据库,其中包含所有ground truth的标签及其关联的点云数据(gt的3D边界框内的点)。 然后,在训练过程中,我们从该数据库中随机选择了几个ground truth,并通过级联将它们引入了当前的训练点云中。 使用这种方法,我们可以大大增加每个点云的ground truth数量,并模拟存在于不同环境中的对象。 为避免物理上不可能的结果,我们在对ground truth进行采样后进行碰撞测试,除去有与其他物体碰撞采样物体。
Object Noise
和VoxelNet一样,每个真实框和点云都独立随机地变换,而不是所有点云以相同的参数变换。具体而言,我们使用从均匀分布∆θ∈ [-π/ 2,π/ 2]采样的随机旋转和从高斯分布(平均值为零,标准偏差为1.0)采样的随机线性变换。
Global Rotation and Scaling
我们将全局缩放和旋转应用于整个点云和所有地面实况框。缩放噪声是从均匀分布[0.95,1.05]中提取的,全局旋转噪音选自[-π/ 4,π/ 4]。
3.2.3. Optimization
The proposed SECOND detector was trained using stochastic gradient descent (SGD). We usedan Adam optimizer run on a GTX 1080 Ti GPU with a total of three point clouds per minibatch.All models were trained for 160 epochs (200k iterations). The initial learning rate was 0.0002,with an exponential decay factor of 0.8 and a decay every 15 epochs. A decay weight of 0.0001,a beta1 value of 0.9 and a beta2 value of 0.999 were used. Training the large car detection network witha single GTX 1080 Ti GPU took 19 h, and only 9 h was needed to train the smaller model.
3.2.4. Network Details
我们建议使用两种网络:大型网络和小型网络。 位于摄像机视锥台之外的点需要删除。
以汽车检测为例,使用两个VFE层,大网络用的VFE(32)和VFE(128),小网络VFE(32)和VFE(64),之后都跟一个Linear(128)层。所以大网络输出的稀疏tensor是128×10×400×35,而小网络则是128×10×320×264。然后使用two-stage的稀疏CNN,也即稀疏卷积中间层来做特征提取和降维,如图3所示。每个卷积之后都BN和ReLU,所有稀疏卷积都输出64维特征图,kernel尺寸(3,1,1),stride为(2,1,1)。对于大网络来说,整个卷积中间层的输出是64×2×400×352。该输出reshape为128×400×352后就能应用RPN网络。图4展示了RPN网络的架构,其中Conv2D表示 Conv2D-BatchNorm-ReLU layer,DeConv2D表示DeConv2D-BatchNorm-ReLU layer。所有卷积层padding相同,所有反卷积的padding都为0。
RPN的具体架构如下,每个stage开始会有1个stride为2的卷积,之后跟若干stride为1的卷积。最后三个stage分别通过stride为1,2,4的反卷积升维相同空间尺度,然后拼接(Concat)。拼接之后的特征图上分别应用3个分支的卷积层对于不同的任务。
4. Experiments
4.3. Analysis of the Detection Results
4.3.1. Car Detection
图6中的前四幅图像和相关点云显示为典型汽车检测的示例。 对于中等距离和近距离的汽车,我们的网络可以产生出色的结果;对于距离较远的汽车,尽管可用点很少,但我们的网络仍然可以产生良好的结果,这使得在图像中检测此类物体非常具有挑战性。 而且,我们的网络可以令人惊讶地检测到强烈重叠的汽车,其点云只包含原始汽车点云的一小部分。 通常,这些结果证明了我们网络的3D方面的有效性。另一方面,对于点云中只有几个点的情况,可以观察到汽车检测中的一些主要失败,包括旋转不准确和尺寸估计不正确。 我们的网络错过了许多离LiDAR较远的汽车,这些汽车通常少于10分。 还明显缺乏标签:尽管网络确实成功检测到了这些车辆,但一些遥远或被严重遮挡的汽车根本没有标签。
4.3.2. Pedestrian and Cyclist Detection
图6中的最后四张图像和相关的点云显示了行人和骑自行车者的检测结果。 在这里,与汽车相比,误报率和误报率要高得多。 图像中不合理的位置上存在一些假阳性。 这种困难可以归因于行人和骑自行车的人的典型密度比汽车高,每个实例的点数更少,这导致行人和骑自行车的人更容易与其他点簇和噪音相混淆。 另外,行人和骑自行车的人相对较少导致他们的体素降低,这限制了CNN的功能。 但是,有前景的发现是,如果可以使用来自此类图像的信息,则可以简单地过滤不相关的点,并且可以基于2D检测结果轻松确定对象的位置,这将使此问题易于消除。
4.4. Ablation Studies
4.4.1. Sparse Convolution Performance
4.4.2. Different Angle Encodings
4.4.3. Sampling Ground Truths for Faster Convergence
5. Conclusions
现有的大多数3D目标检测方法都将点云数据转换为2D表示形式,例如BEV和前视图表示形式,从而丢失了原始点云中包含的大部分空间信息。
本文提出了新颖的angle loss regression方法,将稀疏卷积应用于基于LiDAR的网络,提出了新的方式做数据增强,充分利用了点云的优势。实验表明该方法在KITTI数据集上达到了SOTA性能。此外,我们提出的架构能够实现实时运行。但是,我们的网络显示出行人和骑自行车者检测以及BEV检测的性能较低。 未来的工作将包括基于相机和基于LiDAR的联合检测方法的研究,例如将图像特征与LiDAR体素特征融合,以增强检测性能,以及使用弱监督训练来利用KITTI数据的大部分未标记部分。
标签:卷积,检测,SECOND,VoxelNet,点云,体素,方法,3D 来源: https://blog.csdn.net/yanghao201607030101/article/details/115110926