Yolov5 已经更新到v6.1版本了,与之前的版本有了不少区别,网络结构有了进一步优化。来整理一下。
本文主要参考 https://blog.youkuaiyun.com/qq_37541097/article/details/123594351,大佬真了不起。
借用大佬的模型图

删除Focus层
之前看的资料,网络的第一层都是Focus层,v6.0之后换成了一个kernel=6,stride=2,padding=2大小的卷积层,有人认为两者在理论上是等价的,可能是觉得两者的输出大小相同。

但是我个人认为从细节的角度Focus确实比卷积或者池化要精致一些,可以减少下采样带来的信息损失。作者改回使用卷积可能是出于工程上的考量,牺牲一点点精度带来速度上的提升,毕竟大多数芯片厂商不一定提供Focus层的优化或者自定义接口。
激活函数改用SiLU
几乎所有的激活函数都使用了SiLU,等同于Swish激活函数( β = 1 \beta=1 β=1),具有无上界有下界、平滑、非单调的特性。可以看做是介于线性函数与ReLU函数之间的平滑函数。


SPPF
yolov5之前的版本的Neck结构采用了SPP模块。
在SPP模块中,使用 k = 1 ∗ 1 , 5 ∗ 5 , 9 ∗ 9 , 13 ∗ 13 k={1*1, 5*5, 9*9, 13*13} k=1∗1,5∗

本文概述了Yolov5 v6.1版本的网络结构变化,包括删除Focus层并采用卷积替代、切换为SiLU激活函数、SPPF模块的使用,以及输出尺寸调整。重点讨论了这些改动背后的理论和工程考量。
最低0.47元/天 解锁文章
3199





