YOLOv7
- 1 摘要
- 2 网络架构
- 3 改进点
- 4 和YOLOv4及YOLOR的对比
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 摘要
- 发表日期:2022年7月
- 作者:Wong Kin-Yiu, Alexey Bochkovskiy, Chien-Yao Wang
- 论文:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
- 代码:https://github.com/WongKinYiu/yolov7
- 主要优缺点:
- 在COCO数据集上达到新的速度与精度平衡;
- 跨尺度特征融合提高对不同尺度物体的检测能力;
- 改进训练过程中的标签分配方式提高训练效率。
2 网络架构
2022年7月,YOLOv7由YOLOv4和YOLOR的同一组作者发布在ArXiv上。当时,它在5 FPS到160 FPS的速度范围内,在速度和精度上超过了所有已知的目标检测器。与YOLOv4一样,它仅使用MS COCO数据集进行训练,而没有使用预训练的Backbone。YOLOv7提出了一些架构上的改进和一系列bag-of-freebies,这些改进提高了准确性,但不影响推理速度,只增加了训练时间。
下图展示了YOLOv7的详细架构。
3 改进点
YOLOv7的架构变化包括:
- 扩展高效层聚合网络(E-ELAN):ELAN是一种通过控制最短最长梯度路径,使深度模型能够更高效地学习和收敛的策略。YOLOv7提出了E-ELAN,适用于具有无限堆叠计算块的模型。E-ELAN通过打乱和合并基数来结合不同组的特征,增强网络的学习能力,而不破坏原始的梯度路径。
- 基于拼接模型的模型缩放:通过调整一些模型属性生成不同大小的模型。YOLOv7的架构是基于拼接的架构,在这种架构中,标准的缩放技术(如深度缩放)会导致过渡层输入通道和输出通道之间的比例变化,从而导致模型硬件利用率的下降。YOLOv7提出了一种新的缩放策略,其中块的深度和宽度以相同的因子缩放,以保持模型的最佳结构。
YOLOv7中使用的bag-of-freebies包括:
- 计划重参数化卷积:类似于YOLOv6,YOLOv7的架构也受到重参数化卷积(RepConv)[98] 的启发。然而,他们发现RepConv中的恒等连接会破坏ResNet [61] 中的残差和DenseNet [109] 中的拼接。因此,他们移除了恒等连接,并将其称为RepConvN。
- 辅助头的粗标签分配和主头的细标签分配:主头负责最终输出,而辅助头则帮助训练。
- 卷积-批量归一化-激活中的批量归一化:这将批量归一化的均值和方差集成到卷积层的偏置和权重中,以便在推理阶段使用。
- 受YOLOR启发的隐性知识。
- **指数移动平均(EMA)**作为最终推理模型。
4 和YOLOv4及YOLOR的对比
YOLOv7相对于同一组作者开发的先前YOLO模型的改进如下:
- 与YOLOv4相比,YOLOv7参数量减少了75%,计算量减少36%,同时AP提高了1.5%。
- 与YOLOv4-tiny相比,YOLOv7-tiny分别减少了39%的参数量和49%的计算量,同时保持了相同的AP。
- 与YOLOR相比,YOLOv7分别减少了43%的参数量和15%的计算量,并且AP略微提高了0.4%。
在MS COCO 2017测试开发集上的评估显示,YOLOv7-E6在输入尺寸为1280像素的情况下,在NVIDIA V100上以50 FPS的速度达到了55.9%的AP和73.5%的AP50。