yolov3注意力机制,yolov5改进点
注意机制最早应用于自然语言处理领域。关注是让模型意识到数据的哪一部分最重要,赋予它更多的权重,在一些特征上得到更多的关注,模型才能表现的更好。本文主要介绍YOLOv5改进教程中增加的关注机制的相关信息,有需要的朋友可以参考一下。
本文主要讲解如何在yolov5中加入注意机制。
这里提供SE频道关注的提升方法,其他添加关注的方法类似。
先找到SE注意机制的pytorch代码。
等级SELayer(nn。模块):
def __init__(self,c1,r=16):
超级(SELayer,self)。__init__()
self.avgpool=nn。AdaptiveAvgPool2d(1)
self.l1=nn。线性(c1,c1 //r,bias=False)
self.relu=nn。ReLU(原地=真)
self.l2=nn。线性(c1 //r,c1,bias=False)
self.sig=nn。乙状结肠()
定义向前(自身,x):
b,c,_,_=x.size()
y=self.avgpool(x)。视图(b,c)
y=self.l1(y)
y=self.relu(y)
y=self.l2(y)
y=自我符号(y)
y=y.view(b,c,1,1)
返回x * y.expand_as(x)
将SE注意机制程序直接复制到models文件夹下的common.py文件中。
然后找到yolo.py,并在这个文件中找到下面一行
然后将SE添加到该注册表中,
C3Ghost之后直接加SELayer。
然后我们需要修改yaml文件。对于SE这种即插即用的注意机制来说,输入输出通道数是一样的,所以不会影响其他模块的运行。
注意机制也可以插在其他地方,只要通道数匹配得当。
然后头部部分要做相应的修改,因为我们多加了一层,所以需要稍微改变头部部分,保持头部和最后一个输出层不变。同样的,注意力机制也可以放在头部,和加在主干的方法一样。
这是原来的头部,需要修改如下
因为我们在第八层之后插入了se关注机制,原来的14层变成了15层。同样,最终输出也需要增加一层。
加入这些注意机制是yolov5最基本的改进,但说实话,注意机制可以加在很多地方,不一定有效,所以要看大家讨论在哪里插入效果最好。注意机制有很多种,se注意机制应该是最基本的渠道注意。
总结
关于YOLOv5提升教程的注意机制这篇文章到此为止。关于YOLOv5的注意力机制的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。