目标检测是计算机视觉领域的核心任务之一,旨在从图像或视频中识别出特定类别的物体,并精确标注其位置(通常以边界框形式呈现)。该技术融合了图像分类与定位,广泛应用于自动驾驶、安防监控、医疗影像分析和工业质检等领域。随着深度学习的发展,目标检测经历了从传统手工特征方法到基于卷积神经网络(CNN)的端到端框架的演进,典型代表包括R-CNN系列、YOLO系列和SSD等。当前研究仍围绕实时性、小目标检测和跨模态泛化等挑战展开。

---

1 定义与基本概念

1.1 目标检测任务描述

目标检测的核心是让计算机“看见”并“指出”图像中的物体。它不仅回答“这是什么物体”,还回答“物体在哪里”。这一任务综合了图像分类和物体定位两种能力,是许多高级视觉应用的基础。

1.1.1 分类与定位的子任务

目标检测可拆解为两个并行子任务:分类子任务负责判断边界框内物体的类别(如“猫”、“狗”、“汽车”);定位子任务负责输出物体在图像中的精确边界框坐标(通常表示为\( [x_{center}, y_{center}, w, h] \)或\( [x_{min}, y_{min}, x_{max}, y_{max}] \))。两个子任务共享输入特征,但通过不同分支输出独立结果。分类往往使用softmax或sigmoid输出概率分布,定位则通过回归输出连续坐标值。

1.1.2 评价指标:mAP、IoU、召回率与精确率

评价目标检测模型性能需要综合分类与定位的准确性:

  • IoU(Intersection over Union):预测框与真实框的交集面积除以并集面积,用于判断定位精度。通常设定IoU阈值(如0.5)判定检测是否正确。
  • 精确率(Precision):所有被模型判定为正类的样本中,真正正类的比例。
  • 召回率(Recall):所有真实正类样本中,被模型正确检测出来的比例。
  • mAP(mean Average Precision):对不同类别和不同IoU阈值下的精确率-召回率曲线求平均,是目标检测最核心的综合指标。例如COCO数据集使用mAP@[0.5:0.95](IoU从0.5到0.95逐级平均)。

1.2 与相关任务的关联

目标检测位于图像理解任务光谱的中间位置,它与上下级任务既有联系又有区别。

1.2.1 图像分类 vs 目标检测 vs 语义分割

  • 图像分类:仅输出整张图像所属的单一类别(如“这张图里有猫”),不关心物体位置与个数。
  • 目标检测:输出每个具体物体的类别和边界框(如“左侧有猫,右侧有狗”),是分类的“个体化”扩展。
  • 语义分割:为图像中每个像素分配类别标签(如“这个像素属于猫”),输出是像素级精细掩膜,但默认不区分同类别不同个体。

三者形成从“粗”到“细”的层次:分类最抽象,分割最具体,目标检测则兼顾“在哪里”与“是什么”的折中。

1.2.2 实例分割与目标检测的异同

实例分割(Instance Segmentation)是目标检测与语义分割的结合体:它在检测出每个物体的同时,还输出该物体精确的像素级掩膜(而非边界框)。目标检测只给出矩形框,框内可能包含背景或其他物体;实例分割则逐像素区分每个个体,能更细致地处理遮挡和复杂形状。二者的共同点是都需要识别并区分不同的物体实例,但输出格式和信息粒度截然不同。

1.3 常见数据集与基准

数据集为模型提供训练图像与标注,也是公平比较算法性能的基准。

1.3.1 PASCAL VOC

PASCAL VOC(Visual Object Classes)是最早且最具影响力的目标检测基准之一,最初于2005年至2012年间举办挑战赛。它包含20个常见类别(如人、鸟、自行车等),每张图像都有精确的边界框标注。VOC2012数据集包含约11,500张训练/验证图像和27,000个标注实例。其评价指标mAP@0.5(IoU阈值0.5)曾长期作为行业标准。

1.3.2 MS COCO

MS COCO(Microsoft Common Objects in Context)是当前最主流的检测基准之一,首次发布于2014年。它包含80个日常类别(如餐桌、牙刷、香蕉),共计超过20万张图像和150万个物体实例。COCO不仅标注边界框,还提供实例分割掩膜、关键点(如人体姿态)和字幕。其评价使用mAP@[0.5:0.95](IoU从0.5到0.95的10个阈值平均),考核更强定位精度,并对小物体(面积<32²像素)单独计算mAP_small。

1.3.3 Open Images

Open Images由Google于2016年发布,是目前规模最大的公开检测数据集之一(v6版本含约900万张图像),标注超过600个类别。其特色包括大量框级标注(超2000万框)、属性和关系标注,以及更真实的长尾分布。因其标注噪声较大,常作为研究泛化性和鲁棒性的挑战测试。

---

2 技术发展史

2.1 传统目标检测方法(2014年前)

在深度学习广泛使用之前,目标检测主要依赖手工设计的特征和机器学习分类器。

2.1.1 滑动窗口 + 手工特征(HOG、SIFT)

经典检测流程为:使用不同大小和长宽比的滑动窗口遍历整个图像,在每个窗口内提取手工设计的特征(如HOG描述编码梯度方向、SIFT描述局部像素梯度直方图),然后用训练好的分类器(如SVM)判断窗口是否包含物体。该方法计算量极大,且对于尺度变化、遮挡和姿态变化鲁棒性较差。

2.1.2 可变形部件模型(DPM)

DPM(Deformable Parts Model)是传统方法的巅峰之作,由Felzenszwalb等人提出,曾连续三年获得VOC检测冠军。DPM将物体分解为“根滤波器”(整体外观)和多个“部件滤波器”(如汽车轮子、车门),并允许部件之间发生弹性形变(通过潜变量模型实现)。其检测精度高于纯滑动窗口,但因复杂的特征流水线导致速度极慢(每张图像数秒甚至数十秒)。

2.2 深度学习时代的两阶段方法

深度卷积神经网络(CNN)的出现使得特征自动学习成为可能,目标检测由此进入性能巨幅提升期。两阶段方法先产生候选区域,再对每个区域分类与回归。

2.2.1 R-CNN

R-CNN(Region-based CNN)是深度学习检测的开创性工作,由Girshick等人于2014年提出。其核心思想是将检测任务分解为两个步骤。

2.2.1.1 选择性搜索与候选区域

R-CNN首先使用选择性搜索(Selective Search)算法从图像中提取约2000个候选区域(region proposals)。这些区域基于图像的颜色、纹理、大小和形状合并而成,能覆盖大多数物体可能出现的区域。随后,每个候选区域被缩放到固定尺寸(227×227),送入预训练的AlexNet CNN提取特征,最后用多个SVM分类器判断类别并回归边界框。这种两阶段架构显著提升了检测精度(VOC 2012上mAP从35%提升至53%),但因重复计算导致速度极慢(每张图像约45秒)。

2.2.2 Fast R-CNN与Faster R-CNN

R-CNN的巨大计算量促使了后续改进。

  • Fast R-CNN(2015年)解决了重复计算问题:它将整张图像一次性输入CNN得到特征图,然后在特征图上对候选区域进行RoI池化(将不同大小的候选区域映射为固定尺寸特征),最后用单个网络同时输出分类和回归结果。速度提升至每张图像约2秒,且训练可由单一多任务损失端到端完成。
  • Faster R-CNN(2016年)进一步取消了外部的候选区域生成算法,提出区域提议网络(RPN)
2.2.2.1 区域提议网络(RPN)

RPN是一个轻量级全卷积网络,与检测网络共享骨干特征图。它在每个空间位置预设多个不同尺度和长宽比的锚点框(anchor boxes),然后输出每个锚点框是否包含物体的概率和粗略的边界框偏移量。RPN使得候选区域生成几乎零开销(每张图像约10毫秒),且能与检测网络联合训练。Faster R-CNN使两阶段检测达到端到端实时(PASCAL VOC上每张图像约0.2秒,mAP约70%),成为后续数年工业应用的基础框架。

2.3 深度学习时代的单阶段方法

单阶段方法跳过候选区域生成步骤,直接在特征图上密集预测所有潜在物体的分类和位置,追求极致速度。

2.3.1 YOLO系列(v1至v8及后续变体)

YOLO(You Only Look Once)由Redmon等人于2016年提出,其核心理念是:将检测视为一个端到端的回归问题,在单一网络中直接输出边界框和类别。

2.3.1.1 端到端实时检测的核心理念

YOLO将输入图像划分为网格(如7×7),每个网格负责预测固定数量的边界框(如2个)及其类别概率。整个流程仅一次前向传播,即可同时得到所有检测结果。YOLOv1在PASCAL VOC上以45 FPS的速度取得mAP约63%,速度远超同时期两阶段方法。后续版本持续迭代:YOLOv2/v3引入锚点、多尺度预测、Darknet骨干等;YOLOv4/v5融合CSPNet、Mish激活、数据增强等策略,在速度和精度上达到极佳的平衡;YOLOv6/v7/v8进一步针对边缘设备优化,支持更灵活的配置和更高效的训练。YOLO系列已成为工业部署的首选,证明了简化流程与高性能可以并存。

2.3.2 SSD(单发多框检测器)

SSD(Single Shot MultiBox Detector)由Liu等人于2016年提出,与YOLO同期但架构不同。SSD在骨干网络的不同层上密集放置锚点框(即“多框”),并使用多个不同感受野的特征图来检测不同尺度的物体。它将分类和回归子网络直接附加到每个特征图上,一次性输出所有预测,无需显式的候选区域生成。SSD在性能上略优于YOLOv1(PASCAL VOC上mAP约75%),且运行速度接近(300×300输入下约59 FPS)。其多尺度特征图设计启发了后来大量特征金字塔方案。

2.3.3 RetinaNet与Focal Loss

单阶段方法长期面临“正负样本极端不平衡”的困境:一张图像中大部分锚点框都是背景(负样本),只有少量是物体(正样本),导致模型训练偏斜。Lin等人于2017年提出RetinaNet,核心创新是Focal Loss:一种改进的交叉熵损失函数,通过动态降低易分类样本(大多是背景)的损失权重,让模型在训练中更关注那些被错分、难识别的正样本。RetinaNet使用ResNet+FPN作为骨干,配合Focal Loss,其mAP首次超越当时最先进的两阶段方法(COCO上mAP@[0.5:0.95] = 39.1%),同时保持较快的速度。Focal Loss也迅速被广泛应用到其他检测框架中。

2.4 基于Transformer的方法

Transformer架构在自然语言处理领域成功后,被引入计算机视觉。它将目标检测问题转化为集合预测(set prediction),摆脱了对锚点框、NMS等手工设计模块的依赖。

2.4.1 DETR(Detection Transformer)

DETR(Detection Transformer)由Facebook AI于2020年提出。其架构极为简洁:CNN骨干提取图像特征,Transformer编码器将全局上下文编码为特征序列,解码器通过一组可学习的查询向量(queries)与编码器特征交互,直接输出固定数量(如100个)的边界框和类别。DETR使用二分图匹配损失(Hugarian loss)将预测与真实框一一匹配,且仅需一次前向传播即可完成全部预测,无需NMS后处理。DETR在COCO上达到了与Faster R-CNN相当的性能,但训练收敛慢(需500 epoch)且对小物体检测仍偏弱。

2.4.2 ViT与检测任务的融合

ViT(Vision Transformer)直接将图像切分为patches并线性嵌入,以纯Transformer架构替代CNN作为骨干网络。在检测任务中,研究人员尝试将ViT作为骨干(如ViTDet),或将其与CNN混合(如DETR的改进版Deformable DETR使用可变形注意力机制加速收敛)。ViT强大的全局感受野和Transformer的集合预测能力,使它在处理复杂重叠场景和大尺度物体时具有天然优势。当前,基于Transformer的检测器(如DINO、RT-DETR)在精度和速度上已可以与最先进的CNN检测器并驾齐驱,甚至在某些基准上实现超越。

---

3 核心技术模块

3.1 骨干网络(Backbone)

骨干网络是目标检测的特征提取器,负责将原始图像转换为富含语义的中高层特征图。

3.1.1 VGG、ResNet、MobileNet

  • VGG(2014年):通过堆叠小卷积核(3×3)构造深度网络(16/19层),结构规整但参数量大、FLOPs高,主要用于研究初期。
  • ResNet(2015年):引入残差连接(shortcut)解决深层网络的梯度消失问题,可构建50层以上(ResNet-50、ResNet-101)的骨干,分类精度高且易于优化,是检测任务的经典选择。
  • MobileNet(2017年):使用深度可分离卷积(depthwise separable convolution)大幅降低参数量和计算量,专为移动/边缘设备设计,在实时检测场景中广泛应用。

3.1.2 CSPDarknet与EfficientNet

  • CSPDarknet:YOLOv4/v5等采用的骨干,基于Darknet-53,加入跨阶段局部连接(CSP)结构使梯度流动更高效、参数量更少,同时保持高精度。CSPDarknet-53在COCO上可达约43%的box AP,配合PANet等模块成为实时检测的标准选择。
  • EfficientNet:通过神经架构搜索(NAS)联合优化深度、宽度与分辨率,实现精度与效率的最佳帕累托前沿。其轻量版本EfficientNet-Lite在移动设备上表现出色,但也因复杂的搜索结构在部署时需额外适配。

3.2 特征金字塔(Feature Pyramid)

由于检测目标尺度差异巨大(从乒乓球的几像素到汽车的上百像素),单一尺度的特征图难以兼顾。特征金字塔网络在不同层级间融合多尺度信息。

3.2.1 FPN(特征金字塔网络)

FPN(Feature Pyramid Network)由Lin等人于2017年提出。它构建了一个自顶向下的通路:从骨干网络顶部的高语义、低分辨率特征图开始,通过上采样和横向连接(加和或拼接)逐层与底层的低语义、高分辨率特征图融合。结果是一套在每个尺度上都同时包含强语义与精位置的“金字塔”特征图。FPN使小物体检测性能显著提升,成为后来绝大多数检测框架的标配(如RetinaNet、Mask R-CNN)。

3.2.2 PANet与BiFPN

  • PANet(Path Aggregation Network)在FPN的自顶向下通路基础上,增加了一条自底向上的聚合路径,使顶层特征也能利用底层的定位细节,进一步提升特别是小物体的定位精度。PANet还引入了动态特征池化(adaptive feature pooling)来避免信息损失。
  • BiFPN(Bidirectional Feature Pyramid Network)是EfficientDet中提出的加权双向特征金字塔,允许特征在不同层之间进行反复、高效地双向融合。BiFPN引入可学习的每层权重,让网络自动强调更重要的特征层级,同时通过移除部分节点(如只有输入的节点)简化计算图,使其既高效又精准。

3.3 损失函数设计

检测模型的训练需要同时优化定位和分类两个子任务,因此损失函数通常是两项的加权和。

3.3.1 分类损失:交叉熵、Focal Loss

  • 交叉熵损失:最简单的分类损失,适用于正负样本平衡的场景。但在目标检测中,负样本数量远超正样本,导致模型偏袒背景。Focal Loss正是为解决此问题而设计。
  • Focal Loss:在交叉熵基础上乘以调制因子\((1-p_t)^\gamma\)(通常\(\gamma=2\))。当样本分类正确(\(p_t\)高)时,该因子小,损失被抑制;当分类错误(\(p_t\)低)时,因子大,损失被放大。这使模型专注于难分的正样本,从而缓解正负不平衡。

3.3.2 回归损失:L1/L2、Smooth L1、GIoU/DIoU/CIoU

  • L1/L2损失:分别计算坐标差的绝对值与平方,对异常值敏感程度不同(L2对离群点惩罚较大)。不直接匹配边界框的交并比。
  • Smooth L1:由Faster R-CNN提出,在误差较小时(<1)使用L2(平滑),较大时使用L1(鲁棒),兼顾了梯度稳定性和对小误差的敏感性。
  • GIoU/DIoU/CIoU:这些损失函数直接或间接优化IoU。GIoU(2020年)引入最小外接矩形惩罚框不重叠的区域,解决IoU为零时梯度消失问题;DIoU(2020年)进一步考虑两框中心点距离,提升收敛速度;CIoU在DIoU的基础上加入两框长宽比的一致性惩罚,是目前回归损失最主流的选择,在YOLOv4/v5等框架中被广泛采用。

3.4 后处理技术

绝大多数检测器会输出大量冗余的边界框,一个物体可能被多个框覆盖。后处理旨在合并这些重复框并保留最佳预测。

3.4.1 非极大值抑制(NMS)

NMS的经典流程:1)按置信度从高到低排序所有框;2)选取最高分框保留;3)计算其余框与已保留框的IoU,若IoU大于阈值(如0.5)则将其抑制(剔除);4)重复直到处理完所有框。NMS简单有效,但对密集遮挡场景(如人群、货架上的商品)经常出现“误杀”紧邻的物体。

3.4.2 Soft-NMS与NMS变体

  • Soft-NMS(2017年):不直接剔除高IoU框,而是按照IoU大小对它们的置信度进行衰减(线性或高斯衰减),从而保留相近物体的框,但降低其优先级。对密集场景有显著改善。
  • 其他变体:如Adaptive NMS根据物体密度动态调整IoU阈值;IoU-guided NMS用预测的IoU代替分类置信度作为排序依据;DIoU NMS不仅考虑IoU还结合中心点距离,进一步提升对遮挡的鲁棒性。此外,在基于Transformer的检测器(如DETR)中,二分图匹配后无需NMS,已直接得到精简结果。

---

4 应用场景

4.1 自动驾驶

自动驾驶是目标检测最经典且最具挑战性的应用之一。车辆必须在毫秒级反应时间内精确感知周围环境。

4.1.1 车辆、行人及交通标志检测

车辆检测需识别轿车、卡车、自行车等类型并估算其位置与运动趋势;行人检测需应对几乎无限变化的姿态(跳跃、弯腰、被伞遮挡),安全要求下误检率与漏检率均需极低;交通标志检测涉及上百种小尺寸、不同光照下的标志牌。现代自动驾驶系统通常结合激光雷达(点云)与摄像头(图像)进行多模态融合检测,以克服单一传感器的不足。

4.2 安防与监控

视频监控领域需要从海量视频流中实时发现异常或特定目标。

4.2.1 异常行为与目标追踪

目标检测可用于检测入侵者、可疑人物或车辆闯入,如检测翻越围栏、停留过久、推拉冲突等“行为”。结合多目标跟踪(MOT),系统能持续关联同一目标的检测框(如跟踪某个行人穿过多个摄像头视野),用于人员轨迹分析和区域密度统计。这要求检测器在低光照、拥挤场景下依然保持良好的准确率和速度。

4.3 医疗影像分析

医疗目标检测辅助医生从放射影像(X光、CT、MRI)中快速定位病灶。

4.3.1 病灶与细胞检测

典型任务包括在胸部X光片中检测肺炎渗出、肺结节;在CT中识别肝肿瘤、微小肾结石;在显微图像中检测癌细胞、白细胞、红细胞亚型。病灶检测需高召回率(不漏掉潜在疾病)且定位精确(便于后续手术规划或活检)。由于医学数据标注昂贵且类间差异细微,小样本和半监督检测技术在此领域尤为活跃。

4.4 工业与机器人

工业环境对检测的实时性与可重复性有极高要求。

4.4.1 缺陷检测与抓取定位

缺陷检测:在生产线视频流中实时检测产品表面的划痕、凹坑、焊点缺失等瑕疵。通常使用定制的小网络(如轻量YOLO)部署在边缘设备上,以毫秒级速度作出决策。抓取定位:机器人从杂乱仓储中抓取特定物体(如瓶子、螺丝)时,需先通过目标检测确定每个物体的精确位置和朝向,再将坐标传给机械臂的规划器。这里检测模型需对相似物体(如不同品牌的水瓶)有高区分度,并能应对遮挡和光照变化。

---

5 挑战与未来方向

5.1 小目标检测

小物体(在图像中仅占几十像素)的检测始终是“硬骨头”。它们携带的语义信息少,噪声影响大,且极易被非极大值抑制等后处理漏掉。

5.1.1 尺度不变性与特征增强

当前主流策略包括:1)多尺度训练与测试(图像金字塔),在推理时对不同尺度图像分别检测再融合结果;2)特征图像素级上采样(如FPN、BiFPN),为小目标提供更细粒度的特征;3)注意力机制和上下文信息利用,让网络“联想”周围环境(如看到篮筐可推断篮球在其附近)。未来的小目标检测可能会依赖高分辨率的传感器(如24K摄像头)和更智能的稀疏表示方法。

5.2 实时性与轻量化

边缘设备(手机、无人机、嵌入式摄像头)对模型推理速度要求苛刻,但资源受限。

5.2.1 模型压缩与边缘部署

技术包括:量化(将FP32权重压缩至INT8甚至INT4,速度提升2-4倍且精度损失很小);剪枝(去除冗余通道或层,如结构化剪枝);知识蒸馏(让小模型学习大模型的输出分布,实现高精度轻量化);神经架构搜索(NAS)(自动搜索最佳速度-精度权衡的网络结构)。未来实时检测可能进一步融合事件相机(事件驱动传感器),在低延迟和高动态范围场景中实现亚毫秒级检测。

5.3 开放世界与零样本检测

传统检测依赖固定类别列表训练,无法识别训练集以外的物体。现实世界物体种类无穷,检测器需要学会适应未见过的类别。

5.3.1 场景泛化与增量学习

零样本检测利用语义嵌入(如类别名称的词向量或CLIP多模态特征)将知识从已知类别推广到未知类别,模型通过“语言描述”来理解新的视觉概念。开放世界检测要求模型不仅能识别新类,还能主动检测出“未知”类并提示用户或进行增量学习——即不断吸收新类别的标注而不遗忘旧知识(克服灾难性遗忘)。未来,类似于“视觉ChatGPT”的交互式检测系统或将出现,用户只需用自然语言描述目标,模型即可现场学会检测新物体。

5.4 多模态目标检测

纯视觉信息有时不足,结合其他模态可显著增强检测的鲁棒性与丰富度。

5.4.1 结合文本与深度信息的检测

文本+图像:利用CLIP或视觉-语言模型指导检测,可零样本地根据文本提示找出物体(如“红色的跑车”);也可用于自动生成更精确的标签描述。深度信息(如激光雷达或RGB-D):深度提供了物体的形状和距离信息,可帮助区分相似外观但体积不同的物体(如真人与纸板人),并在光照恶劣时做盲检测。未来的多模态检测将可能整合声信号(鸟鸣、机械运转声)和震动等更多元感知源,形成对环境更完整的理解。