DSGN及DSGN++论文解读

2023-07-02  本文已影响0人  starryCaptain

DSGN: Deep Stereo Geometry Network for 3D Object Detection

论文DSGN: Deep Stereo Geometry Network for 3D Object Detection发表在CVPR 2020上。论文提出了一个基于双目图像(stereo-based)的端到端的三维物体检测管线——Deep Stereo Geometry Network (DSGN)。其核心在构建于通过空间变换将2D特征转换成有效的3D结构,作者称之为3D geometric volume (3DGV)3DGV的核心思想在于构建编码了三维几何信息的3D几何体。它由在相机视锥体中构建的平面扫描体(plane-sweep volume,PSV)转换到真实三维世界空间坐标中而成。像素对应的约束可以在PSV中很好地学习,而现实世界物体的三维特征可以在3DGV中学习。PSV的构造是完全可导的,因此可以共同优化立体匹配和物体检测的学习。
论文主要贡献如下:

2D Feature Extraction

图片特征提取部分沿用了PSMNetPyramid Stereo Matching Network)的主要设计,输入的双目图像通过一个孪生网络——其中包含了了何恺明大神提出的空间金字塔池化(SPP Module)Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)——分别得到左右两幅图像的特征。不过这一块内容在论文中并不是重点,原文中也一带而过了。

Constructing PSV and 3DGV

首先将左图像的特征F_L和重投影到左图像坐标系下的右图像特征F_{R{\rightarrow}L}在等深度间隔处进行拼接(concatenating),从而构建了PSVPSV的坐标表示在相机视锥体网格空间(grid camera frustum space)(u, v, d)中,其中(u, v)是图片中的像素位置,d是间隔为v_d的离散网格中的一个距离取值。
计算得到的PSV在一条分支上用于计算cost volume,另一条分支上用于计算3DGV


如图所示,通过逆投影矩阵\left(\begin{array}{l}x \\ y \\ z\end{array}\right)=\left(\begin{array}{ccc}1 / f_x & 0 & -c_u / f_x \\ 0 & 1 / f_y & -c_v / f_y \\ 0 & 0 & 1\end{array}\right)\left(\begin{array}{c}u d \\ v d \\ d\end{array}\right),将PSV转换到现实空间得到3DGV

Depth Estimation

与其他方法不同,此网络通过使用上一个步骤计算得到的PSV来计算cost volume。对PSV进行2次3D卷积,得到一个1D的cost volume,作者称之为plane-sweep cost volume。然后通过soft max对每个像素计算深度值\hat{d}=\sum_{d \in\left\{z_{\min }, z_{\min }+v_d, \ldots, z_{\max }\right\}} d \times \sigma\left(-c_d\right),其中d是之前预定义的空间网格中间隔为v_d的离散采样。

3D Object Detection

对于形状为(W,H,D)3DGV,在H上逐步下采样最终得到(W,D)的鸟瞰图特征F。(论文原文这里写成了(W,H),应该是笔误。)对于每个F,多个anchor被用于计算回归。

最后附上网络的详细结构图:

DSGN++: Exploiting Visual-Spatial Relation for Stereo-Based 3D Detectors

作者团队在后续又提出了改进版的网络:DSGN++: Exploiting Visual-Spatial Relation for Stereo-Based 3D Detectors发表在IEEE Transactions on Pattern Analysis and Machine Intelligence 2023上。
作者首先指出从2D语义到3D体素的信息流质量决定了后续的3D几何表征的质量。而当前构建有效的立体特征体积有三个重要挑战(valid information flow from 2D semantics to stereo volume determines the efficacy of the following 3D geometric representation for both geometric and semantic cues. However, current 3D modeling remains as an approximation of realistic 3D representation and poses three vital challenges for creating effective stereo feature volumes):

对于这三个问题,作者分别给出了解决方案。

Depth-wise Plane Sweeping

从2D features构建3D volume,产生的tensor增加了一个维度。并且H_V × W_V × D_V × C_V \gg H_I × W_I × C_I。从一个3维的tensor凭空增加了一个维度到4维,原始3维tensor的信息又不够,必然会导致所构建的3D volume表征能力有限。而一般来说,D_V是一个比较大的值,例如192。H_VW_V一般至少保持原始图片分辨率的1/4。这几项的数值基本是固定的,所以构建出的3D volume的表征能力主要受限于C_I的大小。因此增加C_I的大小是一个理想的方法。但是增大C_V的数量会导致计算量的增大。(原文这里的从C_IC_V的逻辑我没搞懂,如果C_V同步增大,由于维度增加带来的信息gap不是还是没解决吗,当然不能直接增大啊。还是说作者想强调常规的方法C_V的大小总是跟C_I保持一致的,所以不能简单的这么做?)因此作者提出了Depth-wise (Disparity-wise) Plane Sweeping (D-PS)方法,保持一个相对较大的C_I,例如96,然后使用滑动窗口(sliding window)在C_I上滑动取值,窗口的长度就是C_V。滑动的步长取决于pixel disparity的大小。
作者又说,如果直接滑动窗口对feature进行切片,会导致获取到的特征通道顺序是固定的,而这种顺序可能会影响到特征的表示能力。因此,作者提出Cyclic Slicing来对切片特征的通道进行重新排序以保持通道的一致性,使得相邻物体之间的局部特征具有相似性(to ensure local feature similarity for adjacent objects)。具体操作看图更清晰。


个人理解这个操作使得在Depth维度上相邻的两个调整顺序后的feature切片绝大部分channel是对齐的,但是原始的2D feature在channel上并不是间隔C_V长度就完全重复的,所以最后得到的Depth-wise Volume应该只是在Depth维度上相近的feature的channel是相互对齐的。这个图画的会让人产生误解。

Dual-View Stereo Volume

作者首先对两种体素表示方式(Front-View RepresentationTop-View Representation)进行对比。Front-View(FV)方式使用PSV在相机视锥空间中进行前视图的深度信息学习。Top-View(TV)方式则在常规的3D空间中构建3DGV。这使得两种方式在本质上具有不同的感受野(receptive fields)和体素占用密度(voxel occupancy)。作者在KITTI数据集上对三种类型的目标在不同距离上的体素占用密度进行了统计和比较,如下图所示。


可以看出,在FV方法中,近距离的物体明显占有更多的体素,这会阻碍网络对较远目标的学习能力。TV方法的体素占用情况则相对平滑,但是对于行人和骑自行车的人这样小目标的平均体素占有量很小,阻碍了网络对小目标的学习能力。
由此,作者提出将之前得到的D-PSVD-3DGV的信息流整合在一起。这样做可以使得每个体素可以聚合不同的3D结构信息。为了实现这个目标,首先将D-PSV转换到3D空间,然后将它和D-3DGV通过一个3D Hourglass module进行拼接。通过这种方式使得模型可以有效地利用不同的3D结构信息。
为了实现对物体前表面深度的准确感知,首先将得到的立体视觉体转换到相机视锥体空间中,然后进行前视图深度监督。

Stereo-LiDAR Copy-Paste

作者还提出了对前景对象进行数据增强以平衡分布的方法,此处暂略。

结论

此论文提出了一个端到端的双目视觉3D目标检测模型,在KITTI数据集所有类别上的表现优于当前所有纯视觉的3D目标检测方法,甚至由于一些基于LiDAR的方法。

上一篇下一篇

猜你喜欢

热点阅读