【最新基于图像的2D和3D目标检测综述】作者总结了近年来基于图像的2D和3D目标检测算法的发展历程、不同框架、贡献、优缺点和发展趋势,以帮助更多的研究人员更好地了解该领域。介绍了具有代表性的数据集、评价指标、相关技术和应用,并讨论了一些有价值的研究方向。
- 题目: 2D and 3D object detection algorithms from images: A Survey
- 作者单位:中国矿业大学等
目标检测是计算机视觉的一个重要分支,旨在定位和分类图像中的目标,使用深度卷积神经网络(CNNS)作为日标检测的主要框架可以有效地提取特征,这比手动提取特征的传统模型更接近实时性能。近年来,具有强大自注意机制的Transformer的兴起将性能进一步提升到了一个新的水平。然而,当涉及到现实世界中的特定视觉任务时,需要获得关于目标的空间坐标、方向和速度的3D信息,这使得3D场景中的目标检测研究更加活跃。尽管基于激光雷达的3D目标检测算法具有优异的性能,但由于价格高昂,难以在实际应用中推广。因此,作者总结了近年来基于图像的2D和3D目标检测算法的发展历程、不同框架、贡献、优缺点和发展趋势,以帮助更多的研究人员更好地了解该领域。此外,介绍了具有代表性的数据集、评价指标、相关技术和应用,并讨论了一些有价值的研究方向。
1.目标检测发展
-
传统目标检测方法涉及到三个阶段:
region proposal
,feature extraction
,classification and regression
。region proposal 阶段通过滑动窗口提取region of interest(RoI),feature extraction阶段主要是靠手动设计的方法从RoI提取特征,最后来做分类和回归。但是这种方法很慢,直到深度学习的发展(CNN)。 -
基于深度学习的目标检测框架如图:
- 基于2D的目标检测不可以满足现实世界的需求,因此3D目标检测应运而生,它基于传感器数据旨在构建一个3D框来预测物体的3D大小,坐标,速度,朝向角度。3D目标检测面临深度估计,多模态数据融合,多维数据实时计算,模型评价系统等的挑战,因此在工业界和学术界越来越重要。
2.基于图像的2D目标检测
发展历史:
2.1 Anchor-based methods
RCNN 系列
- RCNN:
通过使用 selective search 方法生成候选框,输入他们到卷积网络中提取特征,然后通过SVM和线性回归来分类和定位微调。而且,数据不足的问题一定程度上是通过在大数据集上预训练,然后在特定小数据集上微调的思路解决的。该算法是第一次将CNN应用到特征提取模块,准确率和泛化性都有提升,但是也有很多方面需要改进。- SPPNet: 解决了RCNN为适应后续全连接网络而对候选框进行变化尺寸和扭曲(distortion)导致的识别精度下降问题,方法是在后续全连接层之前添加
spatial pyramid pooling layer
空间金字塔池化层
参考1,参考2 - Fast R-CNN: 加速。增加了
region of interest(RoI) pooling layer
在全连接层之前。但仍然使用selective search 算法,较慢。 - Faster R-CNN: 使用
region proposal network(RPN)
和检测网络分享权重,然后RoI pooling layer
将前景映射到固定大小的特征图,然后输入到全连接层。真正实现了端到端一个网络。
- SPPNet: 解决了RCNN为适应后续全连接网络而对候选框进行变化尺寸和扭曲(distortion)导致的识别精度下降问题,方法是在后续全连接层之前添加
基于Faster R-CNN的改进:
-
R-FCN:采用fully convolutional network(FCN)而不使用全连接层,但由于卷积网络的translation invariance(?),很难准确的识别物体的位置,所以通过添加位置敏感的score map来解决这个矛盾。R-FCN是通过损耗一部分准确率来获得速度的提升的。因为全连接层的计算非常耗时。
-
Mask R-CNN: 使用
RoI alignment layer
替换RoI pooling layer
,在映射RoIs
到固定形状的特征图时使用双线性插值(bilinear interpolation),这样做更好的保护了特征图上的空间特征。同时Mask R-CNN使用ResNet-FPN
(参考)作为backbone,在多尺度目标检测上获得了很好的性能。 -
Cascade R-CNN: 提出重采样机制来提升IoU,从而获得更好的proposals。参考
YOLO系列
如上图,带星号的是 anchor-free的方法。
-
YOLOv1
将输入图片分割为$S \times S$的网格单元,输出网格单元的类别概率和框。由于特征提取,融合,分类回归都在同一个CNNs网络完成,所以他速度很快也容易优化,但是他只可以预测一个类别和两个框在一个网格单元内,这很难处理重叠和多尺度的目标检测。 -
YOLOv2,v3
使用anchor的方法,并且将BN(Batch Normalizaiton)应用到网络每一层的输入上,来加快网络的收敛。在同一个位置YOLOv2设置基于不同比率的5个anchor with help of k-means聚类。并且在预测部分使用FCN而不是全连接层。2018年YOLOv3被提出,使用DarkNet-53
发挥了resnet的深度模型优势,还使用sigmoid替换了softmax激活函数,还使用了同一个位置上9个anchor基于3个尺度的。速度非常快,相同准确率下的速度击败同类当时。 -
YOLOv4,v7
在backbone使用CSP
来减少特征图的冗余。使用CutMix
andMosaic
的数据增强方法来提升泛化性能。YOLOv4使用了提升版本的PANet
,SPP
,CBAM
在neck阶段来双向融合多尺度特征,从而增大了感受野,因此获得了更好的定位准确性。但是这样引入了相当大的参数量。2022年YOLOv7因此被提出来作为轻量级的算法,他可以减少参数量的40%
SSD系列
类似于YOLO系列,2016年,SSD是针对YOLOv1小目标检测困难而被提出,它使用不同尺度的卷积网络来提取多尺度特征,在预测阶段不使用全连接层,而是FCN。还采用数据增强和采样挖掘的技术来提升准确率,因此它具有比YOLOv1更高的召回率在小目标上。
SSD的缺点后续又发展了一系列算法来弥补。但这些技术似乎都借鉴了语义分割领域和R-CNN的技术,如空洞卷积,转置卷积来增大感受野,anchor box的微调等。RetinaNet
采用了focal loss
增加了对部分较难检测样本的损失权重。
2.2 Anchor-free methods
anchor-based方法的缺点:
- anchor设计中的参数size 和 aspect ratio对检测模型有很大影响
- 大多数生成的anchor是负的采样,也就是背景,这样导致了正负采样不均衡
- 包含物体的矩形框仍然包含了部分背景(语义分割不就解决这个问题了)
Key-point-based
Anchor-point-based
YOLO 系列
2.3 Transformer-based methods
DETR 系列
ViT 系列
2D目标检测总结
3 3D目标检测
3D目标检测是自动驾驶和机器人感知系统的基础。作为感知系统的传感器最常见的有camera and LiDAR。通常情况下,LiDAR收集的点云数据包含丰富的空间信息和几何图形信息,但是他有如下缺点:
- 价格昂贵
- 对天气条件敏感
- 有限的范围
- 不包含物体的颜色和纹理细节
由于camera收集的图像数据包含丰富的语义特征如颜色和纹理,能够胜任路况场景检测譬如交通线交通标志,并且价格低。以下主要讨论基于图像的3D目标检测,分为三类:monocular-based, stereo-based, pseudo-LiDAR-based。