目标检测是计算机视觉领域的研究热点,广泛应用于机器人自主导航、智能视频监控、航空航天等众多场景。本教程将系统梳理基于深度学习的目标检测算法,围绕两大主流类别——基于候选区域(二阶段方法)与基于回归(一阶段方法)——深入讲解核心算法的发展脉络、改进方向及经典数据集,帮助读者构建清晰完整的知识体系。
1 引言:为何目标检测如此关键?
目标检测的核心任务是从输入图像中定位感兴趣的目标,并准确判定每个目标的类别。目前,这一技术已深入渗透到日常安全监控、机器人导航、智能视频分析、交通场景识别及航空航天等领域。同时,目标检测也是行为理解、场景分类和视频内容检索等高级视觉任务的基础支撑。
然而,目标检测面临诸多挑战:同类物体的不同实例可能存在显著差异,而不同类物体之间可能高度相似;此外,成像条件与环境的多样性也会对物体外观产生重大影响[1]。
1.1 传统方法与深度学习方法的对比
传统目标检测算法通常采用穷举式滑动窗口或图像分割技术生成大量候选区域,随后对每个候选区域提取图像特征(包括HOG[2]、SIFT[3]、Haar[4]等),并将这些特征输入分类器(如SVM[5]、Adaboost[6]和Random Forest[7])以判断候选区域的类别。由于传统方法提取的特征存在局限性,且候选区域生成过程计算开销巨大,导致检测精度与速度远不能满足实际应用需求,使得传统目标检测技术陷入瓶颈[8]。
近年来,基于深度学习的目标检测算法形成了两大方向:基于候选区域(二阶段方法)与基于回归(一阶段方法)。基于候选区域的方法将检测过程分为两步:先产生候选区域,再对候选区域进行分类并修正位置;而基于回归的方法则一步到位,直接回归出预测目标的边界框与类别。
小提示: 传统的滑动窗口方法好比“地毯式搜索”,而深度学习的方法更像是“智能定位”——先快速锁定可能的目标区域,再仔细确认。理解这一区别,有助于把握后续算法的核心思想。
2 基于候选区域的目标检测算法综述
基于候选区域的目标检测算法(二阶段方法)主要涵盖五个部分:首先介绍R-CNN系列基础框架的演进历程,随后阐述对Faster R-CNN算法四个重要组成部分(特征提取网络、ROI Pooling层、RPN、NMS算法)的改进研究。
2.1 R-CNN系列基础框架的发展史
2.1.1 R-CNN:开创性尝试
2014年,Girshick等人[15]成功将卷积神经网络(CNN[16])应用于目标检测,提出了R-CNN算法。该算法将AlexNet[17]与选择性搜索[18](selective search)相结合,将目标检测分解为多个独立步骤:首先通过选择性搜索提取2000个候选区域,再对每个候选区域进行归一化处理,逐一输入CNN提取特征,最后对特征进行SVM分类与区域回归。

R-CNN[15]在PASCAL VOC2007[19]数据集上的检测精度达到58.5%,相较于传统方法实现了质的飞跃。然而,其缺点也十分明显:单张图像需提取2000个候选区域并逐一输入CNN,计算量巨大,严重拖慢检测速度;同时,候选区域在输入CNN前必须裁剪或缩放至固定尺寸,这会导致形变与信息丢失,降低检测精度。
2.1.2 SPP-Net:突破固定尺寸限制
2014年,He等人[20]提出了空间金字塔网络(SPP-Net),在CNN最后一层卷积层与全连接层之间引入SPP层,使网络能够处理任意尺度的候选区域。这样一来,每张输入图片仅需一次CNN运算,即可获得所有候选区域的特征,计算量大幅降低。SPP-Net的检测速率比R-CNN提升了24~102倍。

2.1.3 Fast R-CNN:共享特征与统一训练
2015年,Girshick等人[21]提出了Fast R-CNN算法。受SPP-Net启发,他们将SPP层简化为单尺度的ROI Pooling层,用于统一候选区域特征的大小,并提出了多任务损失函数思想,将分类损失与边界框回归损失统一训练,使分类和定位任务能够共享卷积特征,相互促进,从而提升检测效果。

2.1.4 Faster R-CNN:端到端的里程碑
Fast R-CNN虽加快了检测速度,但仍依赖选择性搜索算法[18]生成候选区域。研究表明,卷积神经网络的卷积层具备良好的目标定位能力,只是这种能力在全连接层中被削弱。因此,2015年Ren等人[14]提出了Faster R-CNN框架,设计了辅助生成样本的RPN(区域提取网络)来替代选择性搜索。RPN是一种全卷积神经网络(FCN[22])结构,能够接收任意大小的特征图作为输入,经过卷积操作后生成一系列可能包含目标的候选区域,使算法实现端到端训练,极大提高了检测速度。

常见问题: 为什么R-CNN系列算法被称为“二阶段”方法?
解答: 因为其检测流程分为两个阶段:第一阶段生成候选区域(例如RPN),第二阶段对候选区域进行分类与位置精修。这种“先粗后精”的策略虽然速度相对较慢,但通常精度更高。
2.2 基于Faster R-CNN的改进研究
Faster R-CNN[14]算法在检测精度和速度上均取得了良好表现。它由四个模块组成:特征提取网络(提取图像特征)、ROI Pooling层(归一化候选区域特征)、RPN(生成候选区域)和NMS[23](去除冗余检测框)。以下综述在这四个模块上的改进研究。
2.2.1 对特征提取网络的改进:融合多尺度信息
深度卷积神经网络的浅层特征富含几何信息,但对语义信息不敏感;高层特征语义信息丰富,但分辨率偏低。仅利用最后一层卷积层的特征进行不同尺度目标的预测效果不佳,导致Faster R-CNN对小目标检测精度较低。许多研究通过融合多层卷积特征来提升小尺度目标的检测效果。
- HyperNet(2016)[24]:融合多层卷积层的特征图,生成包含多尺度信息的Hyper特征,结合了高层强语义信息、中层辅助信息以及浅层几何信息。
- 多尺度预测(2016)[25]:在特征提取网络的高层与低层中提取多个不同尺度的特征,分别进行预测。
- FPN(2017)[26]:构建自顶向下带有横向连接的层次结构,提取多个不同尺度的特征用于检测。每个尺度特征均由高层与浅层特征融合而成,兼具强语义信息与丰富几何信息。
- SNIP(2018)[27]:借鉴多尺度训练思想,使用图像金字塔生成三种不同分辨率的输入图像——高分辨率图像专用于小目标检测,中等分辨率用于中等目标,低分辨率用于大目标。
小提示: 理解“特征金字塔”可以想象成“多级望远镜”——近处用广角看全貌,远处用长焦看细节。FPN网络让每一层特征都既能把握大局(语义),又能捕捉细节(几何)。
2.2.2 对感兴趣区域池化层的改进:更精准的空间信息保留
ROI Pooling(感兴趣区域池化)将候选区域对应的特征图划分为固定数量的空间小块,再对每个小块进行最大或平均池化,使不同尺度的候选区域输出相同大小的特征图。近年来的改进研究致力于更好地保留或融合空间位置信息。
- R-FCN(2016)[28]:提出位置敏感ROI池化,编码每个候选区域的相对空间位置信息,缓解分类任务(需平移不变性)与定位任务(需平移敏感性)之间的矛盾。
- CoupleNet(2017)[29]:设计两个分支——一个使用位置敏感ROI池化获取局部信息,另一个通过两个ROI池化获取全局信息与上下文信息,有效结合三者进行检测。
- DCN(2017)[30,31]:提出可形变卷积与可形变ROI池化层,感受野不再是固定的正方形,而是与物体实际形状相匹配,缓解了物体形变问题。
- Mask R-CNN(2017)[32]:提出ROI Align层,解决特征图与原始图像上感兴趣区域不对准的问题,并增加Mask预测分支,可并行实现像素级语义分割。
- PrROI Pooling(2018)[33]:采用二阶积分方法对空间块进行池化,消除了所有取整运算,比ROI Align保留更多空间位置信息,实现更精准的定位。
2.2.3 对区域提取网络(RPN)的改进:更精确的候选区域
RPN是Faster R-CNN的主要创新点,基于Anchor机制生成大量候选区域。近年来的改进旨在产生更精确的候选区域。
- Cascade R-CNN(2017)[34]:通过级联三个IOU阈值递增的R-CNN检测模型,对RPN产生的候选区域进行筛选,保留高IOU值的区域,有效提高检测精度。
- 引入上下文信息(2018)[35]:在RPN阶段引入上下文信息对候选区域进行微调,使网络定位更加准确。
- Guided-Anchoring(2019)[36]:通过图像特征指导Anchor的生成,包含位置预测分支与形状预测分支,并引入特征自适应模块,根据Anchor形状修正特征图。
2.2.4 对NMS的改进:减少漏检与误检
NMS算法首先设定一个IOU阈值,将同一类别所有检测框按分类置信度排序,选取得分最高的结果,并去除与之IOU值超过阈值的相邻结果,使模型在召回率与精度间取得平衡。但单一的IOU阈值可能导致漏检。
- Soft NMS(2017)[37]:不是直接去除超过阈值的相邻结果,而是采用线性或高斯加权方式衰减其置信度值,再选取合适的置信度阈值去重,改善了漏检问题。
- Softer NMS(2017)[38]:不是直接选取得分最高的检测框,而是将与最高得分框IOU大于阈值的所有检测框坐标进行加权平均作为最终结果,定位更加准确。
- 目标关系模块(RM,2018)[39]:借鉴注意力机制对不同目标间的关系进行建模,替代NMS去除冗余框。
- IOU-guided NMS(2018)[33]:将预测框与真值之间的IOU值作为定位置信度,根据定位置信度排序,保留定位更准确的框。
- GIOU(2019)[41]:作为边界框回归损失函数,在IOU基础上添加最小闭包区域面积计算,解决了L1/L2范数与IOU缺乏强相关性的问题,大幅提升了定位能力。
常见问题: NMS与Soft NMS有什么区别?
解答: NMS是“一刀切”——超过IOU阈值的框直接删除,可能导致相邻的同类目标被误删(漏检)。Soft NMS则是“温柔处理”——超过阈值的框不被删除,而是降低其置信度分数,后续再根据阈值筛选,从而保留更多有效检测框,减少漏检。
3 基于回归的目标检测算法综述
基于回归的目标检测算法无需候选区域生成分支,对于给定的输入图像,直接在图像的多个位置回归出目标的候选框与类别。本教程将其分为两大系列:YOLO系列与SSD系列。
3.1 YOLO系列:实时检测的先驱
3.1.1 YOLOv1:划时代的“一眼看全”
2015年,Redmon等人[42]提出了YOLO算法,将分类、定位、检测功能融合于一个网络之中。输入图像仅需一次网络计算,即可直接得到目标的边界框与类别概率。YOLO将输入图像划分为S×S的网格图,每个网格仅负责物体中心落在该网格的目标,并预测B个边界框信息,随后选择合适的置信度阈值去除低可能性框。

YOLO完全舍弃了候选区域生成步骤,极大提升检测速度,能够满足实时性要求。然而,其网络设计较为粗糙,精度远未达到实际应用需求,存在目标定位不准、易漏检、小目标及多目标检测效果不佳等问题。
3.1.2 YOLOv2:提升召回率与定位精度
2017年,Redmon等人[44]提出了YOLOv2,进行了一系列改进,重点解决召回率低与定位精度差的问题:
- 借鉴Faster R-CNN的Anchor机制,移除全连接层,使用卷积层预测检测框的位置偏移量与类别信息。
- 利用K-Means聚类方式在训练集中学习最佳初始Anchor模板,取代手工设计。
- 添加pass-through层,将浅层特征图连接到深层特征图,使网络获得细粒度特征。
- 采用WordTree方法在ImageNet分类数据集与MS COCO检测数据集上同步训练,实现超过9000个类别的实时检测。
3.1.3 YOLOv3:工程界的首选
2018年,Redmon等人[47]提出了YOLOv3算法:
- 借鉴残差网络的跳跃连接思路,构建了名为DarNet-53的53层基准网络,仅采用3×3与1×1卷积,分类准确率与ResNet-152相当,但计算量大幅减少。
- 采用3种不同尺度的特征图进行目标检测,每个特征图均由高层与浅层融合所得,解决了多尺度问题。
- 使用Logistic回归代替Softmax进行类别预测,使每个候选框可预测多个类别,支持多标签对象检测。
YOLOv3能够满足实时检测任务的精度与速率要求,成为工程界首选的目标检测算法之一。
小提示: YOLO系列的核心思想是“一次前向传播搞定一切”,类似于人类视觉的“扫一眼”就能知道画面里有什么、在哪里。速度极快,适合需要实时响应的场景(如视频监控、自动驾驶)。
3.2 SSD系列:速度与精度的平衡
3.2.1 SSD算法:多尺度检测的典范
2016年,Liu等人[43]提出了SSD算法,在回归思想基础上有效结合多尺度检测思想:提取多个不同尺度的特征图进行检测,较大的特征图检测较小目标,较小的特征图检测较大目标。同时借鉴Anchor机制,在每个位置上预设固定数量的不同尺度和长宽比的先验框(default boxes),网络直接在特征图上密集采样提取候选框进行预测。

SSD基于全卷积网络,将VGG16[49]的全连接层替换为卷积层,并在末端添加几个特征图尺寸逐渐减小的辅助性卷积层,直接对不同尺度的特征图进行卷积检测。SSD在速度与精度上均超越了Faster R-CNN,但存在重复检测问题(同一物体被不同大小的边界框同时检测出来),且对小目标检测效果一般。
3.2.2 基于Anchor-based的改进
- RSSD(2017)[50]:对提取的不同尺度特征采用特殊融合方式——大的尺度特征进行池化,小的尺度特征进行反卷积,然后将这些特征串接融合,增加了不同层特征图之间的联系,避免了重复检测。
- DSSD(2017)[51]:将VGG16替换为ResNet101以增强特征提取能力,并设计预测模块与反卷积模块。反卷积模块建立Top-to-Down路径,融合高层与浅层特征,大幅提升了检测精度,但速度有所牺牲。
- RetinaNet(2017)[52]:针对SSD因密集采样导致的难易样本失衡问题,提出Focal Loss,在交叉熵损失基础上添加两个平衡因子,抑制简单样本的梯度,更多关注难分样本。
- GHM(2017)[53]:提出梯度协调机制,同时嵌入分类与回归损失中平衡训练样本的梯度,不仅减少对易分样本的关注,还避免了特别难分样本对模型的负面影响。
- RFB-Net(2018)[54]:通过模拟人类视觉感受野,设计感受野模块(RFB),引入三个不同扩张率的3×3卷积层以增大感受野,并将输出串接融合。
- RefineDet(2018)[56]:结合一阶段与二阶段算法的优点,设计物体检测模块与Anchor微调模块,前者筛选去除负样本并粗调,后者进一步回归,通过两次回归提升了定位能力。
- NAS-FPN(2019)[58]:受神经结构搜索启发,自动搜索最优FPN结构,实现跨尺度特征融合,性能超越Mask R-CNN,但训练需要大量GPU支持。
- MLFPN(2019)[59]:通过级联多个小型FPN子网络,形成不同层级的不同尺度特征,充分重用与融合特征,提升小目标检测能力。
3.2.3 基于Anchor-free的改进:摆脱超参数束缚
Anchor机制需要人工设计尺度大小与长宽比等超参数,且提取的候选区域过多,增加了计算开销并引起正负样本不均衡。为此,研究者提出了Anchor-free方法。
- CornerNet(2018)[62]:借鉴关键点检测思想,采用Hourglass104网络直接预测物体的左上角点和右下角点,将目标检测视为关键点检测问题来解决。
- ExtremeNet(2018)[64]:选取物体上下左右四个极值点与一个中心点作为关键点,更直接地关注物体边缘与内部信息,检测更加稳定。
- CenterNet(2018)[65]:在CornerNet基础上添加中心点预测分支,解决了ConerNet仅依赖左右角点而导致大量误检的问题——检测框需同时满足角点匹配与中心点匹配。
- FCOS(2018)[66]:不同于上述方法使用庞大的Hourglass-104网络,FCOS借鉴语义分割思想,采用逐像素预测方式,完全避免了Anchor相关的复杂计算与超参数。同时,使用FPN实现多尺度预测,并添加中心点损失以抑制中心点偏差大的检测框。
常见问题: Anchor-based与Anchor-free方法哪个更好?
解答: 没有绝对的好坏之分。Anchor-based方法(如SSD、YOLOv2/3)通过预设先验框简化了回归问题,但需要精细调参;Anchor-free方法(如CornerNet、FCOS)摆脱了人工设计,更加灵活,但通常需要更复杂的后处理。目前两者均在发展,实际选择应根据任务需求(速度、精度、易用性)权衡。
4 相关数据集综述
当前通用目标检测任务中流行的数据集包括:PASCAL VOC2007[19]、PASCAL VOC2012[67]、MS COCO[46]、ImageNet[45]、Open Images[68]、LIVS[69]等。
- PASCAL VOC[19,67]:主要用于图像分类与目标检测,包含20个常见类别,每张图片对应有XML文件标注位置与类别。
- MS COCO[46]:挑战性最大的数据集之一,包含80个对象类别,目标来自自然场景,尺度变化大,小目标数量多。采用更严格的评估标准,要求算法具备更精确的定位能力。标注文件为JSON格式,包含像素级别的分割信息。
- ImageNet[45]:约1420万张图片,2.2万个类别,其中约103万张有明确的类别与位置标注。检测任务包含200个对象类别,标注以PASCAL VOC格式保存于XML文件中。
- Open Images[68]:对图像分类、目标检测、视觉关系检测与实例分割等任务提供统一注释,检测任务包含190万张图片,600个对象类别,1600万个边界框,是拥有对象位置注释的最大数据集。
- LIVS[69]:2019年提出的大型实例分割数据集,包含1000多个类别,16.4万张图像,220万个高质量实例分割掩码。每个对象类别训练样本较少,旨在用于低样本条件下的目标检测研究。
小提示: 选择数据集时,需关注任务需求:若追求快速验证,PASCAL VOC是不错的选择;若希望挑战小目标检测与复杂场景,MS COCO更为合适;若研究少样本学习,可关注LIVS。
5 总结与展望
目标检测是一项至关重要的研究领域,拥有广泛的应用前景。本教程将近些年涌现的基于深度学习的目标检测算法分为基于候选区域与基于回归两大类,从发展历程及不同方向的改进研究角度进行了详细综述,并介绍了当前流行的数据集。
尽管现有目标检测算法已在实际生活中得到广泛应用,但依然面临诸多挑战。未来目标检测算法在以下几个方面值得进一步探索:
- 如何有效结合上下文信息,解决小目标与被遮挡目标在复杂现实场景中的检测问题。
- 探索更优的特征提取网络(专门为检测任务设计)以及更优的检测框选定方法。
- 弱监督学习:现实世界中存在海量未标注数据,研究如何采用弱监督学习的目标检测算法极具价值。
- 从已知类别迁移到未知类别:探索如何结合有效语义信息,实现从已知类别到未知类别的目标检测。
常见问题: 未来目标检测的趋势是什么?
解答: 当前趋势是向更高效、更合理、更智能的检测框架发展。一是向端到端、轻量化模型发展(如YOLOv4/v5/v8等持续优化);二是向无监督/弱监督学习发展,减少对标注数据的依赖;三是向开放世界检测发展,能够检测训练时未见过的目标类别。此外,结合Transformer架构(如DETR)也是近年来的研究热点。
编辑:黄飞
