4. 深度学习与目标检测入门

在无人机视觉任务中,目标检测是连接“看见”与“理解”的关键环节。传统图像处理方法依赖人工设计特征,而深度学习让模型直接从数据中学习特征表达。本章从卷积神经网络基础出发,逐步过渡到分类与检测的区别、标注格式,以及IoU、mAP、Precision与Recall等评价指标,为后续在无人机平台上部署实时检测模型打下基础。

一、卷积神经网络基础

卷积神经网络(CNN)是深度学习中处理图像的主力结构。它的核心思想是局部感受野、权值共享和空间下采样,从而在减少参数量的同时保留图像的空间结构信息。

  • 卷积层:使用卷积核在输入特征图上滑动,提取边缘、纹理、语义等局部特征。卷积核的权重在整张图上共享,大幅降低参数量。
  • 激活函数:常用ReLU,为网络引入非线性,使模型能够拟合复杂函数。
  • 池化层:如最大池化,降低特征图尺寸,扩大感受野,增强对小幅平移的鲁棒性。
  • 全连接层:将高层特征映射到类别空间,常用于分类任务的输出。

一个典型的CNN前向过程可以简化为:输入图像 → 卷积 → 激活 → 池化 → 重复堆叠 → 全连接 → 类别概率。在无人机场景中,输入往往是1080P甚至4K图像,因此网络设计需要在精度与推理速度之间取得平衡。

# 一个简单卷积层示例(PyTorch)
import torch.nn as nn

conv = nn.Conv2d(
    in_channels=3,      # RGB输入
    out_channels=32,    # 32个卷积核
    kernel_size=3,      # 3x3卷积核
    stride=1,
    padding=1
)
# 输入: [B, 3, 640, 640] -> 输出: [B, 32, 640, 640]

二、分类与检测的区别

图像分类回答“这张图是什么”,目标检测回答“图里有什么、在哪里”。分类输出一个类别标签,检测则输出多个边界框及其类别和置信度。对于无人机目标检测,后者更符合实际需求,因为需要定位地面车辆、行人或特定目标的位置。

对比维度 图像分类 目标检测
输出形式 单个类别标签 多个边界框 + 类别 + 置信度
定位能力 无 有,输出(x, y, w, h)
典型损失 交叉熵损失 分类损失 + 定位损失
无人机应用 场景识别、地形分类 车辆检测、人员搜救、目标跟踪

检测模型通常由主干网络、颈部网络和检测头组成。主干提取特征,颈部融合多尺度信息,检测头输出边界框和类别。YOLO系列是无人机实时检测中最常用的单阶段检测器之一。

三、标注格式与数据组织

目标检测训练依赖标注数据。常见格式包括Pascal VOC XML、COCO JSON和YOLO TXT。无人机数据标注时,需要特别注意小目标、遮挡和运动模糊。

  • VOC XML:以XML文件记录每张图的物体类别和边界框,适合小规模数据集。
  • COCO JSON:一个JSON文件管理全部图像、类别和标注,适合大规模数据集和评测。
  • YOLO TXT:每张图对应一个txt文件,每行格式为“类别 x_center y_center width height”,坐标归一化到0~1。
# YOLO标注示例:image_001.txt
0 0.452 0.613 0.120 0.085
1 0.781 0.402 0.095 0.110
# 类别0: 车辆, 类别1: 行人
# 坐标均为归一化值
标注一致性直接影响模型上限。建议在项目初期制定标注规范,明确最小框选尺寸、遮挡处理方式和类别边界,并定期抽检。

四、评价指标:IoU、Precision、Recall与mAP

检测模型的好坏不能只看“有没有框对”,还要看框得准不准、漏没漏、误报多不多。IoU、Precision、Recall和mAP构成了检测评价的核心体系。

IoU(交并比)衡量预测框与真实框的重叠程度,计算方式为交集面积除以并集面积。IoU越高,定位越准。通常以IoU≥0.5作为“检测正确”的阈值。

Precision(精确率)表示预测为正的样本中真正为正的比例,反映误报程度。Recall(召回率)表示真实正样本中被正确检出的比例,反映漏报程度。两者往往此消彼长,需要根据任务权衡。

mAP(平均精度均值)综合了不同类别和不同置信度阈值下的Precision-Recall曲线面积,是检测任务最常用的总体指标。mAP@0.5表示IoU阈值为0.5时的mAP,mAP@0.5:0.95则表示多个IoU阈值下的平均值,更严格。

目标检测评价指标关系 IoU 交并比 交集面积 / 并集面积 判断定位是否准确 阈值常取 0.5 Precision 精确率 TP / (TP + FP) 衡量误报程度 越高误报越少 Recall 召回率 TP / (TP + FN) 衡量漏报程度 越高漏报越少 Precision-Recall 曲线 Recall Precision 曲线下面积 = AP mAP 平均精度均值 各类别 AP 的平均值 mAP@0.5:IoU=0.5 mAP@0.5:0.95:多阈值平均 综合衡量检测精度

五、案例:无人机车辆检测的指标解读

假设某无人机在高速公路上检测车辆,测试集有1000辆车。模型输出1200个检测框,其中900个与真实车辆IoU≥0.5,300个为误报;同时有100辆车未被检出。则:

  • TP = 900,FP = 300,FN = 100
  • Precision = 900 / (900 + 300) = 75%
  • Recall = 900 / (900 + 100) = 90%

该模型召回率较高,漏检少,但误报偏多。若用于交通流量统计,误报会干扰计数;若用于搜救,漏检代价更高,应优先提升Recall。实际调优时,可通过调整置信度阈值来平衡Precision与Recall。

不要只看mAP一个数字。mAP高不代表所有类别都好,也不代表小目标检测好。无人机场景中小目标占比高,应单独统计小目标的AP和Recall,避免被大目标拉高整体指标。

六、常见误区与复盘

  • 误区一:把分类指标直接用于检测。分类的准确率不能反映定位质量,检测必须结合IoU和mAP。
  • 误区二:标注框过大或过小。框过大会引入背景,框过小会丢失目标,都会降低IoU和最终mAP。
  • 误区三:忽略置信度阈值的影响。同一模型在不同阈值下Precision和Recall差异很大,报告指标时应说明阈值。
  • 误区四:训练集和测试集分布不一致。无人机高度、角度、光照变化大,若测试集与训练集差异明显,指标会虚高或虚低。

复盘时建议固定验证集,记录每次实验的mAP@0.5、mAP@0.5:0.95、Precision、Recall以及推理速度,形成可对比的实验台账。这样才能在精度与实时性之间做出有依据的工程决策。