yolo学习笔记01——前置基础
文章目录
- 前言
- 一、目标检测基础
- 1.1 基础认知
- 1.2 本质
- 1.3 应用场景
- 1.4 技术架构
- 二、评估指标
- 2.1 交并比
- 2.2 置信度
- 2.3 mAP
- 2.3.1 PR 曲线
- 2.3.2 AP
- 2.3.3 mAP
- 三、NMS后处理技术
- 总结
前言
图像识别的任务包含以下几类:
- 目标检测是指在图像中找到特定类别的物体,并用边界框(Bounding Boxes)标出它们的位置。除了识别图像中的物体外,目标检测还需要确定这些物体的具体位置
- 图像分类是指识别图像中的主要物体或类别。它只关心图像属于哪个类别,而不关心物体的具体位置
- 图像分割是指在图像中识别特定类别的物体,并用像素级别的标签来表示这些物体的位置。它不仅需要识别物体是什么,还需要精确地描绘物体的轮廓,目标分割为了了两类
- 语义分割(Semantic Segmentation):仅识别物体的类别,不区分不同的实例,即为整个图像中的每个像素分配一个类别标签
- 实例分割(Instance Segmentation):不仅识别物体的类别,还区分不同的实例(个体),即为每个物体提供一个精确的分割掩码
目标检测和图像分类的区别图示:
- 目标检测:识别图像中存在的内容和检测其位置,如下图,以识别和检测人(person)为例
- 语义分割:对图像中的每个像素打上类别标签,如下图,把图像分为人(红色)、树木(深绿)、草地(浅绿)、天空(蓝色)标签
- 实例分割:目标检测和语义分割的结合,在图像中将目标检测出来(目标检测),然后对每个像素打上标签(语义分割)。对比上图、下图,如以人(person)为目标,语义分割不区分属于相同类别的不同实例(所有人都标为红色),实例分割区分同类的不同实例(使用不同颜色区分不同的人)
一、目标检测基础
1.1 基础认知
目标检测(Object Detection)是计算机视觉中的一个重要领域,它涉及到识别图片或视频某一帧中的物体是什么类别,并确定它们的位置。通常用于多个物体的识别,可以同时处理图像中的多个实例,并为每个实例提供一个边界框和类别标签。
目标检测面临到的问题:
- 目标种类和数量问题:
- 目标尺度问题
- 环境干扰问题
1.2 本质
对于目标检测,主要是关注两个问题:
- 目标在哪里?where
- 目标是什么?what
1.3 应用场景
- 自动驾驶:检测周围的车辆、行人、交通灯、道路标志等
- 安防监控:监控公共场,发现异常行为,保障公共安全
- 人脸检测
- 医学影像分析:在医学影像方面可以识别肿瘤、组织变异等,用于医疗辅助
- 无人机应用:识别特定目标,引导无人机飞行,比如监测天气、线路检测、搜寻救援、军事等
- 缺陷检测:工业
1.4 技术架构
- 目标检测方法可以根据其架构和技术特点进行分类。目前主流的目标检测方法可以分为两大类:两阶段检测方法(Two-stage Detection Methods)和单阶段检测方法(One-stage Detection Methods)
one-stage | two-stage | |
---|---|---|
主要算法 | YOLO系列、SSD | R-CNN、Fast R-CNN、Faster R-CNN |
检测精度 | 较低(版本不断更新,精度不断增加) | 较高 |
检测速度 | 较快(达到视频流检测级别) | 较慢 |
简单来说,单阶段检测方法没有预选框,双阶段两阶段检测方法有预选框。
二、评估指标
2.1 交并比
在目标检测任务中,Bounding Box(边界框) 是用来定位图像中检测到的物体位置的一个矩形框。每个检测出的物体都会被分配一个边界框,用来表示该物体在图像中的位置和大小,其通常由以下信息表示:
- 类别标签(Class Label):表示这个物体是什么,例如“猫”、“车”、“人”等
- 置信度分数(Confidence Score):表示模型对该检测结果的置信程度,通常是一个 0 到 1 之间的值
- 边界框坐标(Bounding Box Coordinates):表示矩形框的位置和大小
IoU(Intersection over Union,交并比)在目标检测任务中是一个非常关键的评估指标,用于衡量模型预测的边界框(Predicted Bounding Box)与真实边界框(Ground Truth Bounding Box)之间的重合程度。计算方式是两个边界框的交集面积除以它们的并集面积,公式如下:
IoU=AreaofOverlapAreaofUnion=A∩BA∪BIoU=\frac{Area\,of\,Overlap}{Area\,of\,Union}=\frac{A∩B}{A∪B} IoU=AreaofUnionAreaofOverlap=A∪BA∩B
计算公式图形表示如下:
IoU 值 | 含义说明 |
---|---|
IoU = 0 | 两个框完全不重合,预测框与真实框没有任何交集 |
0 < IoU < 0.5 | 有一定重合,但重合度较低,预测效果一般 |
0.5 ≤ IoU < 1 | 重合度较高,预测框接近真实框,效果较好 |
IoU = 1 | 完全重合,预测框与真实框完全一致,可能是理想情况或存在过拟合风险 |
2.2 置信度
图中绿框为真实框,红框为计算机通过算法生成的预测框。而在目标检测中,置信度是模型对预测框是否包含目标物体、以及框的位置是否准确的“信心值”,取值范围 0 到 1 之间的数值。
在一些经典的目标检测模型中(如 YOLO),置信度通常由两个部分组成:置信度 = Pr(Object) × 预测的 IOU,其中
- Pr(Object):表示边界框内有无对象。
- 预测的 IoU:不是真实计算出来的,而是模型自己“估计”的,表示它认为这个框和真实框有多接近
在深度学习的目标检测任务中,置信度是由网络的输出层(通常包括卷积层、池化层和全连接层等)共同作用的结果。在目标检测任务中,通常涉及到三种类型的置信度:目标存在置信度、类别置信度、综合置信度。
类型 | 含义 |
---|---|
目标存在置信度 | 表示当前预测框中存在目标物体的概率(不管是什么类别) |
类别置信度 | 表示当前框中的物体属于某个类别的概率(如“猫”、“狗”、“人”等) |
综合置信度 | 最终输出的置信度,等于目标存在置信度 × 类别置信度 |
在不同阶段中置信度计算总结:
阶段 | 置信度的计算方式 | 说明 |
---|---|---|
训练阶段 | 使用真实框(Ground Truth)计算 IoU | 模型通过对比预测框与真实框,学习如何提升置信度 |
预测阶段 | 模型无法访问真实框,置信度完全由网络直接输出 | 通过设置置信度阈值(如 0.5)过滤低质量预测框,再通过 NMS 去除重复框 |
2.3 mAP
关于混淆矩阵及其各项指标的概念在先前的文章中有提及,这里不再赘述。
2.3.1 PR 曲线
PR 曲线,即精确率(Precision)- 召回率(Recall)曲线,是评估分类模型性能的重要工具之一,尤其是在类别不平衡问题中。它通过展示不同阈值下的精确率和召回率之间的关系,帮助我们理解模型在不同决策边界上的表现。
在 PR 曲线中,曲线上每个点表示了在对应召回率下的最大精确率值。当 P=R 时成为平衡点(BEP),如果这个值较大,则说明学习器的性能较好。所以 PR 曲线越靠近右上角性能越好。即 PR 曲线的面积越大,表示分类模型在精确率和召回率之间有更好的权衡,性能越好
在模型评估中,我们希望模型的精确率(Precision)与召回率(Recall)都要越高越好。用图形表示就是,在以精确率(Precision)与召回率(Recall)为坐标轴的图像面积越大越好。
2.3.2 AP
常用的评估指标是 PR 曲线下的面积,平均精度即 AP(Average Precision),通过 PR 曲线下的面积来计算 AP,从而综合评估模型在不同置信度阈值下的性能,值越接近 1 越好。AP 被广泛应用于评估模型在不同置信度阈值下的表现,并且是计算 mAP(平均平均精度)的基础。
**AP 就是用来衡量一个训练好的模型在识别某个类别时的表现好坏。AP 越高,说明模型在这个类别上的识别能力越强**
2.3.3 mAP
平均平均精度(mean Average Precision,mAP) 是在不同置信度阈值下计算的平均精确度(Average Precision, AP)的平均值AP 是在不同召回率水平下的精确度平均值,而 mAP 则是多个类别上的 AP 的平均值
名称 | 含义 | 说明 |
---|---|---|
AP(Average Precision) | 衡量模型在某一类别上的检测或分类性能 | 通过 Precision-Recall 曲线下的面积来计算,值越高表示模型在该类别上的性能越好 |
mAP(mean Average Precision) | 模型在所有类别上的 AP 的平均值 | 衡量模型整体性能的综合指标,值越高表示模型在所有类别上的平均表现越好 |
- mAP 计算步骤:
- 计算每个类别的 AP:对于数据集中包含的每个类别,分别计算 AP
- 计算 mAP:将所有类别的 AP 取平均值,得到 mAP
三、NMS后处理技术
极大值抑制(Non-Maximum Suppression,NMS)** 是目标检测任务中常用的后处理技术,用于去除冗余的边界框(Bounding Boxes),保留最有可能的检测结果。在目标检测中,模型通常会对同一目标生成多个边界框(预测框),这些边界框之间可能高度重叠。NMS 的作用就是筛选出置信度高、位置准确的边界框,抑制其他冗余的预测框。
基本思想是:对于每一个预测的类别,按照预测边界框的置信度(Confidence Score)对所有边界框进行排序,然后依次考虑每个边界框,将其与之前的边界框进行比较,如果重叠度过高,则丢弃当前边界框,保留置信度更高的那个,对于每个类别会独立进行操作。
NMS 的步骤:
- 设定目标框置信度阈值,常设置为 0.5,小于阈值的目标框被过滤掉
- 将所有预测的满足置信度范围的边界框按照它们的置信度从高到低排序
- 选取置信度最高的框(不同类型分开处理)添加到输出列表,并将其从候选框列表中删除
- 对于当前正在考虑的边界框,计算其与前面已选定的边界框的重叠程度(IoU),如果当前边界框与已选定边界框的 IoU 大于某个阈值(如 0.5),则将其抑制(即不保留,重合度过高);否则保留当前边界框,并继续处理下一个边界框
- 重复上述步骤,直到所有边界框都被处理完毕
- 输出列表就是最后留下来的目标框
总结
本文简要介绍了计算机视觉方向的一些基础知识。