这篇博客主要记录本人在阅读‘3D Fully Convolutional Network for Vehicle Detection in Point Cloud’这篇文献中的收获
1. 3D目标检测的一般流程
大多数3D目标检测分如下两个阶段:候选区域提取和分类。
-
候选区域提取
· 基于某些规则的提取:去除地面,对保留的物体进行聚类
· 基于在点云中构建Graph,利用“nearest neighbor alike clustering techniques”能得到更精细和鲁棒的结果(疑惑的是,这一条比上一条早很多年提出来)
· In scenarios where therough size of targeted objects is known, e.g. vehicle detectionon road [35] or workpiece detection for manipulation ,overlapping candidates can be enumerated over the space for classification.
· 基于深度学习的方法 (大名鼎鼎的MV3D) -
分类
· 基于手工制作的特征
· 稀疏编码
· 深度学习
而在本文中,作者采用one-stage的方式,一步到位得到类别和bbox。
2. FCN
全卷积网络并不是指网络中只有卷积操作(没有池化)。而是没有全连接层,取而代之的是反卷积。反卷积也即是将通过卷积得到的特征图进行上采样,是最终的输出特征图与原来的输入大小一致,但是通道数不一样(反卷积具体如何实现目前还不清楚)。FCN最开始提出是为了进行语义分割。而本文的创新点在于:将3D的FCN用于了3D目标检测上面。(而以前通常是3DFCN做语义分割或者2DFCN做目标检测)
3. 准备知识
1.阅读本文之前一定要先看论文dense box。我在这之前没有看过这篇文献,导致最开始看着很蒙圈。dense box相当于是用同样的方法进行2D的目标检测。接下来详细讲述一下二者的具体算法。
对于dense box,它主要是针对rcnn/yolo检测算法检测小目标效果不佳而提出的一种end to end的训练方法。最核心不地方在于它给正样本打标签的方式:第一步,我们对图片进行下采样,得到(w/4)(h/4) 5,其中5代表通道数。第一个通道数为对应像素点为正样本的概率。另外4个通道反应bbox的坐标。第二步,通过数据集我们知道grund truth bbox,所以我们在gtbbox中心画一个圆(圆的半径和gtbbox成比例),这个圆所包含的每一个像素点的第一个通道的值我们都label成1,表示正样本。训练方法与yolo类似,不在赘述。由于在训练时,每一个gtbbox对应多个相邻的正样本标签,所以在预测时,会在object附近产生很多个box,相互重叠,所以叫densebox。
而在FCN3D中,做的改进就是将2d卷积变为3d,圆变为了球。感受一下dense 3D boxes:
4. 疑问
看完全文后还有一个疑问:为什么反卷积(上采样)的结果没有和原图一样大?