【扫盲】YOLOV7训练
群粉直接在群上回复:“yolov7” 获取视频素材,想进群的盆友可以关注公众号:小鸡炖技术,点击底部菜单QQ群。
创新点
作者主要从两点进行模型的优化:模型结构重参化和动态标签分配。
从近几年来看,模型结构重参化和动态标签分配已经成为了目标检测领域中的主要优化方向。针对于结构重参化,YOLOv7的作者是通过分析梯度的传播路径来为网络中的不同层进行结构重参化优化,并且提出了不同规划的模型结构重参化。在动态标签分配上,因为模型有多个输出层,所以在训练时就难以为不同的分支分配更好地动态目标。所以作者提出了一个新的动态标签分配办法:coarse-to-fine,即由粗到细引导标签分配的策略。
除了以上两点,作者还提出了扩展和复合缩放的方式,通过这种方式可以更高效利用参数量和计算量。这样不仅可以减少大量参数,还可以提高推理速度以及检测精度。这个其实和YOLOv5或者YOLOv4所使用不同规格分化成几种模型类似,既可以是width和depth的缩放,也可以是module的缩放。
并且设计了几个可以训练的bag-of-freebies。这样使得模型在不更改本身结构时,大大提高检测精度。
为了增强网络的实时性检测,研究者们一般会从模型的参数量、计算量、内存访问次数、输入输出的通道比、element-wise操作等方面分析参数的数量、计算量和计算密度。其实这些研究方法和当时的ShuffleNetV2是差不多的。YOLOv7里使用的是CSPVOVNet, 是VoVNet的一种变体。CSPVoVNet不仅考虑到了前面所提到的模型设计问题,还分析了梯度的在模型中流动路径,通过这个来使得不同层的权重能够学习到更加多样化的特征。不管是训练阶段还是推理阶段,以上方法都能起到不错的效果,尤其是在推理方面。可以提升推理的速度与精度。