小白科研笔记:简析SOTA目标检测算法3D-CVF

1. 前言

最近KITTI的3D目标检测榜刷出了一个新的Top One双阶段算法3D-CVF。做算法,有时间需要跟紧新的网络架构。所以这篇博客主要分析这篇论文3D-CVF: Generating Joint Camera and LiDAR Features Using Cross-View Spatial Feature Fusion for 3D Object Detection。作为arxiv上的预印本,文中有些细节没讲清楚,比如点云体素,RGB体素尺寸定义,Project细节,Multi-View下不同RGB体素融合,体素特征到BEV特征的转化,refine network细节,数据增广的实现等(只能小白我自行脑补了)。因此,这篇博客主要简单地说一说这篇文章的亮点,不去做细致的分析。

2. 简析3D-CVF

2.1 总述

首先来看看这篇论文的结构框图,如下所示。有一说一,这个框图画的很细心,也很细致。这篇文章的亮点是Cross-view feature mapping,这个模块生成了稠密的RGB体素特征。RGB体素的生成过程对应上图的Auto-calibration Feature Projection。随后,点云体素特征和RGB体素特征会在Adapative Gated Fusion Network中进行一个特征融合,最后用于目标检测的过程中。

小白科研笔记:简析SOTA目标检测算法3D-CVF_第1张图片
图1:3D-CVF的网络结构框图

讨论到这里,我要做一个说明。KITTI数据集只提供了两个相机的数据集。所以3D-CVF网络用于KITTI数据集中的时候,相机的个数是两个。不过在KITTI数据集中,目标检测的真值只规定出现在这两个相机视场之内。而nuScenes数据集提供了六个相机的数据集,这和图1是对应的。在nuScenes数据集中,目标检测的真值则在雷达 360 deg ⁡ 360\deg 360deg视场范围内。

2.2 获取RGB特征体素

获取RGB特征体素的过程对应图1中的Auto-calibration Feature Projection。它的示意图如下所示。首先初始化 N N N个空白的尺寸为 [ L , W , H , C ] [L,W, H, C] [L,W,H,C]的体素作为RGB特征体素( N N N指相机个数,kitti数据集上可能是两个相机,nuScenes数据集上可能是六个相机),它的尺寸应该是和点云特征体素尺寸一样的。通道数 C C C等于RGB特征图的通道数。

小白科研笔记:简析SOTA目标检测算法3D-CVF_第2张图片
图2:点云RGB特征获取示意图

对第 i i iRGB特征体素体素的任意一个小体素 v v v i = 1 , . . . , N i = 1,...,N i=1,...,N),根据激光雷达和第 i i i个相机的外参数和内参数,把它投影在第 i i i个相机上,如果投影的像素点 I I I在对应相机的屏幕内,再进行下一步操作,否则直接跳过。在Camera Pipeline部分,提取了RGB图像的特征图。特征图的尺寸和原图像的尺寸存在一个比例关系。于是可以把投影的像素点 I I I,经过比例转换,获得投影在特征图上的像素点 I ∗ = ( x ∗ + δ x , y ∗ + δ y ) I^*=(x^*+\delta x, y^*+\delta y) I=(x+δx,y+δy) x ∗ , y ∗ x^*,y^* x,y表示整数部分 δ x , δ y \delta x, \delta y δx,δy表示小数部分。小体素 v v v的特征就是 I ∗ I^* I周围四个像素点的插值。它周围四个像素点的坐标是 ( x ∗ , y ∗ ) (x^*, y^*) (x,y) ( x ∗ , y ∗ + 1 ) (x^*, y^*+1) (x,y+1) ( x ∗ + 1 , y ∗ ) (x^*+1, y^*) (x+1,y) ( x ∗ + 1 , y ∗ + 1 ) (x^*+1, y^*+1) (x+1,y+1)。如此这般,就能得到 N N NRGB特征体素。然后对它们做点到点特征之间的Cat操作,最后得到一个尺寸为 [ L , W , H , N C ] [L,W, H, NC] [L,W,H,NC]的最终RGB特征体素。

2.3 RGB特征体素和点云特征体素的融合

这个融合模块对应图1的Adapative Gated Fusion Network。它的示意图如下所示。我觉得该模块的输入不是体素特征,而是转化为BEV图的特征(转换方法就是SA-SSD中的reshape,把体素的高度维度合并到特征维度里,这样把四维的体素特征,变成三维的特征图)。

小白科研笔记:简析SOTA目标检测算法3D-CVF_第3张图片
图3:特征融合模块示意图

这个图比较直观,类似于一个Attention模块,就不去细说。输出的Gated特征在特征维度上Cat在一起,最后就得到了融合特征,如图1中的Joint LiDAR-Camera Feature

2.4 RCNN过程

这一个过程是双阶段目标检测必备过程。先通过RPN网络生成很多候选3D框,然后利用ROIAlign技术从Joint LiDAR-Camera Feature中提取到3D框对应的特征,做细化处理。于此同时,3D框还会投影在RGB图像上,生成 r × r × r r \times r \times r r×r×r的格子点,并获取格子点对应的RGB特征图上的特征向量。这些格子点特征则喂入PointNet架构子网络做特征提取。如下图所示。这也是文章的一个创新小点。

小白科研笔记:简析SOTA目标检测算法3D-CVF_第4张图片
图4:提取3D框格子点特征的示意图

这篇文章对RCNN过程描述的比较模糊。直觉上感觉,它是对PV-RCNN的一种改进吧。

3. 结束语

这篇文章提出了一个雷达点云和RGB图像的融合方式,比较有看点。但是行文比较简略,很多细节得靠读者去脑补。网络细节的描述不是很透明。没有提供源码。我感觉作者的网络框架很有可能是在PV-RCNN上的改进(仅个人看法:因为从图1上看,去掉所有RGB相关的模块,剩下的就跟PV-RCNN或者PointRCNN很像)。不管怎么说,这篇文章的主要创新点还是很有启发的,倒没必要揪着别人缺点不放哈,哈哈。

你可能感兴趣的:(computer,vision论文代码分析)