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阈值下的平均值,更严格。
五、案例:无人机车辆检测的指标解读
假设某无人机在高速公路上检测车辆,测试集有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。
六、常见误区与复盘
- 误区一:把分类指标直接用于检测。分类的准确率不能反映定位质量,检测必须结合IoU和mAP。
- 误区二:标注框过大或过小。框过大会引入背景,框过小会丢失目标,都会降低IoU和最终mAP。
- 误区三:忽略置信度阈值的影响。同一模型在不同阈值下Precision和Recall差异很大,报告指标时应说明阈值。
- 误区四:训练集和测试集分布不一致。无人机高度、角度、光照变化大,若测试集与训练集差异明显,指标会虚高或虚低。
复盘时建议固定验证集,记录每次实验的mAP@0.5、mAP@0.5:0.95、Precision、Recall以及推理速度,形成可对比的实验台账。这样才能在精度与实时性之间做出有依据的工程决策。