目录
- 1 前言
- 2 YOLO在不同领域的应用
- 3 物体检测指标和NMS
- 3.1 mAP和IOU
- 3.2 mAP计算流程
- 3.2.1 VOC 数据集
- 3.2.2 微软 COCO 数据集
- 3.3 NMS
YOLO系列博文:
- 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】
- 【第2篇:YOLO系列论文、代码和主要优缺点汇总】
- 【第3篇:YOLOv1——YOLO的开山之作】
- 【第4篇:YOLOv2——更好、更快、更强】
- 【第5篇:YOLOv3——多尺度预测】
- 【第6篇:YOLOv4——最优速度和精度】
- 【第7篇:YOLOv5——使用Pytorch框架、AutoAnchor、多尺度预训练模型】
- 【第8篇:YOLOv6——更高的并行度、引入量化和蒸馏以提高性能加速推理】
- 【第9篇:YOLOv7——跨尺度特征融合】
- 【第10篇:YOLOv8——集成检测、分割和跟踪能力】
- 【第11篇:YOLO变体——YOLO+Transformers、DAMO、PP、NAS】
- 【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】
- 【第13篇:YOLOv10——实时端到端物体检测】
- 【第14篇:YOLOv11——在速度和准确性方面具有无与伦比的性能】
- 【第15篇(完结):讨论和未来展望】
1 前言
最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述,所以写了这篇博文,总结一下YOLO从v1到v11的模型架构、优化、优势和局限性。(学术界太卷了,一年更新三版,到今年九月份就已经更新到v11了,印象中两年前还是YOLOv5的天下。)
参考论文:
- A COMPREHENSIVE REVIEW OF YOLO ARCHITECTURES IN COMPUTER VISION: FROM YOLOV1 TO YOLOV8 AND YOLO-NAS
- YOLOV1 TO YOLOV10: A COMPREHENSIVE REVIEW OF YOLO VARIANTS AND THEIR APPLICATION IN THE AGRICULTURAL DOMAIN
- YOLOV10 TO ITS GENESIS: A DECADAL AND COMPREHENSIVE REVIEW OF THE YOU ONLY LOOK ONCE (YOLO) SERIES
目标检测的发展经历了五个比较大的阶段:传统算法、Two-stage、One-stage、Anchor-free、Transformer。
在深度学习出现之前,主要是依赖于手工设计的特征与机器学习分类器的结合,包括相关滤波器、滑动窗口法和Viola-Jones检测器等,这些方法所涉及的特征提取技术包括Gabor特征、梯度方向直方图(Histogram of Oriented Gradients, HOG)、局部二值模式(Local Binary Patterns, LBP)和哈尔特征(Haar-like features)。这些检测器最常用的分类方法包括随机森林、支持向量机、统计分类器(例如贝叶斯分类器和Adaboost)以及多层感知器(MLP)等。
将卷积神经网络(Convolutional Neural Networks, CNN)引入物体检测之后,真正实现了自动化的特征提取和端到端的学习。
CNN的特点包括:
- 层次化的特征学习:CNN在最开始几层可以学习一些低维的特征(如边缘、纹理),在深层可以学习一些高维的特征(如物体部件、形状);
- 空间不变性:卷积层使得CNN能够识别图像中不论位置如何的对象,从而增强了检测的鲁棒性;
- 可扩展性和泛化能力:CNN易于扩展,便于处理更大的数据集和更复杂的模型,在广泛的任务和应用环境中提高性能和鲁棒性。
下图展示了物体检测算法的主要发展历史。
如果直接通过滑动窗口的方法将CNN应用到物体检测中,这种暴力搜索的方法计算成本非常高,并且效率很低,难以做到实时处理。
2013年,Ross Girshick等人提出了R-CNN (Region-based CNN) 架构来解决这些挑战。R-CNN利用选择性搜索算法生成大约2000个区域proposals,然后通过CNN处理这些区域来提取特征。Fast R-CNN改进了这一过程,通过在单次传递中集成区域proposals特征提取和分类来提高效率。Faster R-CNN进一步优化了这种方法,引入了Region Proposal Networks(RPNs)进行端到端训练,去掉了选择性搜索的方法。
“You Only Look Once”(YOLO)物体检测算法是由Joseph Redmon等人在2015年首次提出,用一个单一的神经网络将region proposal和分类结合起来,极大地减少了计算时间,使得实时物体检测开启了新的里程碑。YOLO将图像分割成很多个网格,每个网格直接预测边界框和类别概率,实现了端到端的学习。
2 YOLO在不同领域的应用
YOLO的实时物体检测能力在自动驾驶车辆系统中具有不可估量的价值,能够快速识别和跟踪各种物体,如车辆、行人、自行车和其他障碍物。这些功能已被应用于多个领域,包括用于监控、体育分析和视频动作识别。
在农业方面,YOLO被用来检测和分类作物、害虫和疾病,辅助精准农业技术并实现农作过程自动化。它们也被调整用于生物识别、安全以及面部识别系统中的人脸检测任务。
在医学领域,YOLO已被用于癌症检测、皮肤分割和药片识别,提高了诊断准确性和治疗过程的效率。
在遥感领域,它被用于卫星和航空影像中的物体检测与分类,支持土地利用制图、城市规划和环境监测。
安全系统整合了YOLO模型进行视频流的实时监控和分析,允许快速检测可疑活动、社交距离保持及口罩佩戴检测。这些模型还被应用于表面检查以检测缺陷和异常情况,从而加强制造和生产过程中的质量控制。
在交通应用中,YOLO被用于车牌检测和交通标志识别等任务,为智能交通系统和交通管理解决方案的发展做出了贡献。它们还被用于野生动物检测和监测,以识别濒危物种,促进生物多样性保护和生态系统管理。
最后,YOLO在机器人应用和无人机物体检测中得到了广泛应用。
下图展示了Scopus中标题含有“YOLO”一词的所有论文的文献计量网络可视化,并通过物体检测关键词进行了筛选。
3 物体检测指标和NMS
3.1 mAP和IOU
平均精度(Average Precision, AP),也称为平均平均精度(Mean Average Precision, mAP),衡量所有类别物体的平均精度,是评估物体检测模型性能的常用指标。COCO数据集对AP和mAP不做区分。下文中,我们提到的AP和mAP是等价的。
在YOLOv1和YOLOv2中,用于训练和基准测试的数据集是PASCAL VOC 2007和VOC 2012,但从YOLOv3开始,使用的是COCO(Common Objects in Context)数据集。
mAP指标是基于精确度-召回率指标,处理多个物体类别,并通过交并比(IoU)定义正预测。
精确度Precision:衡量模型正预测的准确性,简单理解就是模型输出的检测框里,检测正确的框的比例。
召回率Recall:衡量模型正确识别的正例的比例,换而言之,就是有多少正例被正常识别出来。
通常,精确度和召回率之间会互相影响,例如:增加检测到的对象数量(更高的召回率)可能导致更多的假阳性(更低的精确度)。为了综合考虑精确度和召回率,需要用mAP来衡量,mAP指标结合了不同置信度阈值下的精确度-召回率曲线,表示的是精确度-召回率曲线下的面积。
通常一个模型会检测多个类别,mAP指标通过分别计算每个类别的平均精度(AP),然后取所有类别AP的均值(这也是为什么它被称为平均平均精度的原因),这种方法能更全面地评估模型的整体性能。
交并比(Intersection over Union, IoU):物体检测旨在通过预测边界框准确地定位图像中的物体,mAP指标通过引入交并比(IoU)来评估预测边界框的质量。IoU是指预测边界框与真实边界框的交集面积与并集面积之比,表示了真实边界框与预测边界框之间的重叠程度。COCO基准采用多个IoU阈值来评估模型在不同定位精度水平上的表现。
3.2 mAP计算流程
在VOC和COCO数据集中,AP的计算方式有所不同。
3.2.1 VOC 数据集
该数据集包括20个物体类别,mAP计算步骤:
- 对于每个类别,通过改变模型预测的置信度阈值来计算精确度-召回率曲线。
- 使用精确度-召回率曲线上11点插值的方法来计算每个类别的平均精度(AP)。
- 通过取所有20个类别的AP均值来计算最终的平均精度(AP)。
3.2.2 微软 COCO 数据集
该数据集包含80个物体类别,并使用更复杂的方法来计算AP。与VOC使用11点插值不同,它使用101点插值,即从0到1以0.01为增量计算101个召回率阈值下的精确度。此外,AP是通过对多个IoU值而不是仅一个IoU值求平均得到的,除了一个常用的AP指标称为AP50,它是单个IoU阈值0.5时的AP。COCO中计算AP的步骤如下:
- 对于每个类别,通过改变模型预测的置信度阈值来计算精确度-召回率曲线。
- 使用101个召回率阈值来计算每个类别的平均精度(AP)。
- 在不同的交并比(IoU)阈值下计算AP,通常是从0.5到0.95,步长为0.05。较高的IoU阈值要求更准确的预测才能被视为TP。
- 对于每个IoU阈值,取所有80个类别的AP均值。
- 最后,通过对每个IoU阈值下计算出的AP值求平均来计算整体AP。
AP计算方法的不同使得直接比较两个数据集上的物体检测模型性能变得困难。目前的标准倾向于使用COCO AP,因为它对模型在不同IoU阈值下的表现进行了更细致的评估。
3.3 NMS
非极大值抑制(Non-Maximum Suppression, NMS)是一种在物体检测算法中使用的后处理技术,用于减少重叠边界框的数量并提高整体检测质量。物体检测算法通常会在同一个物体周围生成多个具有不同置信度分数的边界框,NMS通过过滤掉冗余和无关的边界框,只保留最准确的那些。
非极大值抑制(NMS)的工作原理:
- 初始化:首先获取所有预测的边界框及其对应的置信度分数。
- 排序:根据置信度分数对这些边界框进行降序排列。
选择最高分框:选取置信度最高的边界框作为当前处理的对象。 - 计算IoU:对于剩余的所有边界框,计算它们与当前最高分框之间的交并比(IoU)。
- 抑制重叠框:如果某个边界框与当前最高分框的IoU超过了预设阈值(例如0.5),则认为该边界框是冗余的,并将其从列表中移除。
- 重复步骤3-5:继续选取下一个置信度最高的边界框,并重复上述过程,直到所有边界框都被处理完毕。
通过这种方式,NMS能够有效地去除多余的重叠边界框,从而简化结果并提高检测准确性。这种方法对于确保每个物体只有一个最佳匹配的边界框特别有用,这对于后续的应用如跟踪或识别非常关键。
从下一篇博文开始,我们逐一介绍每一版本YOLO的模型架构、改进点、优势和局限性。