YOLOv1
首次提出实时目标检测的概念,通过一个神经网络来在一张图像上实现目标定位和分类的任务。
将输入图像分割成SXS网格(论文中S=7),每个网格负责检测该区域内中心点落在此网格内的物体。每个网格需要预测出B个bbox、对应的置信度、属于各个类别的概率(一共是C个类别),论文中B=2,此处的置信度是「有object的概率*预测框和真实框的IOU」,如果此处没有object,这个置信度应该为0,并且类别的概率只针对有object的网格进行预测,没有object则不进行预测,主要体现在loss上。由于训练集中没有object的区域太多,为了让模型更容易学习预测object,此处在loss中增加对于object检测的损失权重,减小没有object的损失权重。对于每一个bbox而言,需要预测四个值------x,y,w,h。为了便于网络训练,这里使用「相对值」,即x,y是相对于网格边缘的距离,w,h为相对于整张图像的大小。
预测的时候,输出的类别概率是「原始训练的类别概率有object的概率 预测框和真实框的IOU」。
实时性好,速度快。
对 小物体和密集物体的检测效果较差。
YOLOv2 (2017)
特点:引入了批处理标准化(Batch Normalization)来提高收敛速度,并使用了高分辨率分类器来帮助检测小物体。
架构:增加了锚点框(anchor boxes)来提高检测精度,同时引入了多尺度训练来增强模型的泛化能力。
优点:检测精度提高,仍然保持了较快的速度。
YOLOv3 (2018)
特点:进一步提高了检测精度,特别是在小物体检测方面有所改进。
架构:采用了类似FPN(Feature Pyramid Network)的设计,通过多尺度特征融合来检测不同大小的物体。
优点:在保持速度的同时,显著提升了检测精度。
YOLOv4 (2020)
特点:集成了许多先进的技术,如CSPNet、Mish激活函数、SPP模块等,旨在最大化检测性能。
架构:使用了改进的骨干网络CSPDarknet53,并加入了注意力机制来增强特征表示。
优点:在准确性和速度之间达到了很好的平衡。
YOLOv5 (2020)
特点:开源版本,易于训练和调整,提供了更多的灵活性。
架构:使用了PyTorch框架,提供了更灵活的模型配置。
优点:代码开源,易于使用和定制,社区支持活跃。
YOLOv6 (2022)
特点:进一步优化了模型架构,专注于提高实时性能。
架构:引入了新的骨干网络和颈部网络设计。
优点:在保持高速的同时,提供了良好的检测精度。
YOLOv7 (2022)
特点:结合了Transformer架构,引入了Efficient Attention机制来提高特征提取能力。
架构:使用了Efficient Channel Attention(ECA)和Spatial Attention(SA)来增强特征表达。
优点:在多种基准测试中表现优异。
YOLOv8 (2023+)
特点:最新的版本,提供了统一的框架来支持多种视觉任务,如目标检测、实例分割等。
架构:继续优化模型设计,简化使用流程。
优点:功能全面,易用性强,适用于多种应用场景。