YOLO系列目标检测框架之间介绍及对比
华为HCIP AI高级工程师证书, 华为HCIA AI证书,目前从事视觉算法工作
文章目录
- YOLO系列目标检测框架之间介绍及对比
- 前言
- 一、YOLOv1
- 二、YOLOv2
- 三、YOLOv3
- 四、YOLOv4
- 五、YOLOv5及后续算法
前言
YOLO系列算法
YOLO 创新性地通过单次网络运行实现目标检测,之前的方法要么使用滑动窗口,要么使用分类器,每个图像需要运行数百次或数千次,从而造成模型计算量大和实时性更低。更先进的方法则将任务分为两步,首先识别含有物体或候选框可能存在的区域,随后对这些候选框进行分类。与之不同 YOLO 采用了一种更为直观的方法,仅通过回归分析来直接预测检测结果,巧妙地平衡了实时性与准确性的需求,大幅提升了目标检测领域的效率和效果。
一、YOLOv1
YOLOv1 算法引入网格划分机制,输入的图像被划分为一个 7×7 的单元网格,当检测到物体的中心落在某个网格的中心时,这个网格就会负责预测这个物体。对于每一个单元网格,都会预先生成两个边界框,而且只预测一个目标,每个边界框包含边界框坐标信息和置信度得分,最终的预测特征由边框的位置、边框的置信度得分以及类别概率组成。作为一阶段目标检测算法的代表,YOLO 利用其特有的网格分割预测策略机制,成功地跳过了传统候选区域生成的计算步骤,大大减少了算法的复杂性,并显著加快了检测的速度。
二、YOLOv2
在确保检测速度不变的前提下,针对 YOLOv1 算法存在的问题,YOLOv2 算法进行了若干优化和完善。首先,YOLOv2 算法在所有的卷积层上进行了批量归一化处理,这一方法不仅提高了模型的收敛性,还减少了对其他正则化形式的依赖。接下来,YOLOv2 算法采用了更高分辨率的图像来对模型进行预先的训练,从而增强了网络在高分辨率输入条件下的表现,同时通过融合卷积操作与先验框策略来进行边界框及其分类的预测,这不仅加快了数据处理和预测流程,而且还通过提高特征图的分辨能力,为后续的分类运算奠定了坚实的基础。这种方法有效地增强了算法对于目标特征的捕捉能力,从而提供了更准确、更细腻的预测结果。
经过改进后,其优势变得尤为明显,通过对 YOLOv2 每一个卷积层都做了归一化,改善了模型收敛性,使得平均精度均值提高了 2%;通过使用高分辨率图像来训练模型,来匹配模型对高分辨率图像输入的适应能力,从而使得模型的平均精度平均提升了 4%;参考了两阶段检测算法中的先验框预测边界框策略,并采用 k-means方法对训练集的边界框进行聚类,这使得模型能够独立地找到最适合的锚框尺寸,从而节约大量时间资源。YOLOv2 使用的新的分类模型被称为 Darknet19 作为骨干架构,Darknet19 整体上卷积操作比 YOLOv1 中更少,从而使计算量更少。此外,YOLOv2 还使用联合训练法,来提高
模型的泛化能力。
三、YOLOv3
针对 YOLOv2 的缺陷,YOLOv3 将当时一些较好的检测思想融入到了该版本的 YOLO系列中,在保持速度优势的前提下,进一步提升了检测精度。YOLOv3 主要做了三个方面的改进:(1)继续吸收了当时优秀的检测框架的思想,如残差网络和特征融合等,提出新的网络结构,称之为 DarkNet53,DarkNet53 借鉴残差连接的思想,在基础网络中大量使用了残差连接,并且缓解了在训练中梯度消失的问题,使得模型更容易收敛,很大程度上提高了数据表征能力。(2)采用多尺度预测,YOLOv3 巧妙地输出三种不同尺寸的特征图,依次对应于深层、中层和浅层特征的提取。深层特征图的尺寸较小但感受野更广,这使其特别适合于大尺寸物体的检测。相反,浅层特征图则具有较大的尺寸和较小的感受野,从而更加专注于小尺寸物体的检测,这种分层的方法大幅增强了模型对不同尺寸物体的检测能力。(3)Logistic 函数替代 Softmax 函数来优化类别预测得分的处理。这一变更背后的逻辑在于 Softmax 函数在输出多个类别预测时存在相互抑制的问题,导致仅能预测单一类别。相比之下,Logistic 分类器的设计保证了预测的独立性,从而使得对多个类别的同时预测成为可能,显著增强了模型的多类别识别能力。
四、YOLOv4
2020 年提出的 YOLOv4 算法,在一个阶段内完成特征提取、位置回归和分类识别的任务,实现了检测的实时性与高精度的完美平衡。YOLOv4 改善了骨干网络结构,引入了专为解决特征图冗余问题设计的 CSPDarknet53 网络。这一网络结构深刻认识到,不同通道的特征图中往往蕴含相似的信息,通过对这些冗余信息的精细优化处理,极大提升了算法的处理效率与性能表现。进一步地,YOLOv4 在继承其前代技术基础上进行了深度优化,将 DarkNet53 中的 LeakyReLU激活函数替换为更为先进的 Mish激活函数。同时,通过引进 Dropblock 技术,该算法随机丢弃部分神经元,既简化了网络架构,也提高了模型的泛化能力。在网络的“Neck”部分,YOLOv4 采纳了包含 SPP 模块和路径聚合网络(Path Aggregation Network, PAN)结构的创新性改进,其中 SPP 模块通过最大池化技术对特征图执行深层次卷积,扩大了特征的感受范围;而 PAN 结构通过有效的特征融合策略,显著增强了模型的精确度。在输入端,YOLOv4 通过 Mosaic 数据增强技术的巧妙运用,随机组合四张图片,这不仅极大地丰富了训练数据集,同时也显著减少了 YOLOv4 算法对GPU 资源的过度依赖,从而进一步优化了算法的性能。
五、YOLOv5及后续算法
YOLOv5 的网络架构融合了当时最新的目标检测技术思想,旨在进一步提升模型的训练效率和检测准确度。
在此基础上,YOLOv6 和 YOLOv7 通过借鉴参数结构化策略来优化网络架构,在保持较好的多尺度特征融合能力的同时,也能保持网络架构高效的推理。而 YOLOv8则在保持 YOLOv5 基本架构的前提下,在 Backbone 中将 YOLOv5 的 C3 模型结构进行梯度流的优化,换成了梯度流更加丰富的 C2f 结构,并对不同尺度模型的通道数进行了不同的调整,加强网络的特征提取和推理速度优化,以实现
性能的进一步提升。在 Head 部分采用解耦头的设计,将分类与检测任务进行分离,同时锚框也从 Anchor based 换成了 Anchor free。相比较 YOLOv5 而言,YOLOv8 属于对模型结构精心微调,不再是像 YOLOv6 和 YOLOv7 那样把一套新的参数应用所有模型,YOLOv8 大幅提升了模型性能,不过YOLOv8 的 C2f 模块中的 Split 操作对特定硬件进行部署不如 YOLOv5 模型结构更加友好。对 YOLOv1-YOLOv8 算法架构、算法框架、是否锚框和公共数据集上取得性能报告进行对比。