YOLOv6网络结构学习
《YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications》
学习yolov6之前,可以先了解一下RepVGG
推理是基于已训练好的模型或知识库,对新的或未知数据进行预测、分类或决策的过程。它的目的是应用已学到的知识和能力来解决实际问题。相比之下,训练是通过给定的数据集和算法调整模型参数,使模型能够从数据中学习并捕获有用的特征和规律。训练的目的是使模型在特定任务上达到较高的性能。
主要的参考文献:
1.Backbone
与其他主流架构相比,作者发现RepVGG骨干网络具备和小型网络一样的推理速度,但是提取到的特征更丰富,性价比很高,但是由于参数和计算成本的爆炸性增长,它很难被缩放以获得更大的模型。所以作者把RepBlock作为小型网络的子模块;对于大型模型,作者基于现在的CSP模块进行改进得到了CSPStackRep模块。将Yolov5的CSP中的BottleNeck中的CBS换成RepConv+Relu。如下图所示为RepBlock和CSPStackRep的结构图:
作者将Backbone中stride=2的普通Conv层替换成了stride=2的RepConv层。同时,将原始的CSP-Block都重新设计为RepBlock,其中RepBlock的第一个RepConv会做channel维度的变换和对齐。另外,作者还将原始的SPPF优化设计为更加高效的 SimSPPF。
2.Neck
YOLOv6也和v4/v5一样采用了PAN结构,不同的是,作者用RepBlocks(N/S)或CSPStackRep(M/L)对CSPBlock进行了替换,同时对整体 Neck 中的算子进行了调整,目的是在硬件上达到高效推理的同时,保持较好的多尺度特征融合能力,命名为Rep-PAN,结构如下图所示:
3.Head
像FCOS和YOLOX一样,也是解耦了分类和回归任务,但它们都在每个分支中引入额外的两个3x3卷积层用于提取任务特征;在YOLOv6中,作者采用混合通道策略,将3x3卷积层简化到只使用一个,检测头的宽度由骨干和颈部的宽度乘数共同缩放。这些修改进一步降低了计算成本,以实现更低的推理延迟。使其更加高效,命名为Efficient Decoupled Head。
但这一部分其实不太理解
主要对BackBone和Neck结构的改进进行学习,其他改进的方法先不学啦
原文地址:https://blog.csdn.net/Linxiaojiejieya/article/details/140389074
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!