YOLOv5、v7改进之二十八:ICLR 2022涨点神器——即插即用的动态卷积ODConv

这篇具有很好参考价值的文章主要介绍了YOLOv5、v7改进之二十八:ICLR 2022涨点神器——即插即用的动态卷积ODConv。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前 言:作为当前先进的深度学习目标检测算法YOLOv5、v7系列算法,已经集合了大量的trick,但是在处理一些复杂背景问题的时候,还是容易出现错漏检的问题。此后的系列文章,将重点对YOLO系列算法的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。

具体改进办法请关注后私信留言!关注即免费获取深度学习资料!

解决问题:ICLR2022前段时间已经放榜,涌现了大量优秀的工作。动态卷积的工作:ODConv,其通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插即用”的操作,它可以轻易的嵌入到现有CNN网络中。并且实验结果表明它可提升大模型的性能,又可提升轻量型模型的性能

主要原理:

论文:Omni-Dimensional Dynamic Convolution | OpenReview

      ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度动态卷积。ODConv通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插即用”的操作,它可以轻易的嵌入到现有CNN网络中。ImageNet分类与COCO检测任务上的实验验证了所提ODConv的优异性:即可提升大模型的性能,又可提升轻量型模型的性能,实乃万金油是也!值得一提的是,受益于其改进的特征提取能力,ODConv搭配一个卷积核时仍可取得与现有多核动态卷积相当甚至更优的性能

YOLOv5、v7改进之二十八:ICLR 2022涨点神器——即插即用的动态卷积ODConv

添加方法: 

第一步:common.py构建ODConv模块。部分代码示例如下。

class ODConv2d(nn.Module):
    def __init__(self, in_planes, out_planes, kernel_size, stride=1, padding=0, dilation=1, groups=1,
                 reduction=0.0625, kernel_num=4):
        super(ODConv2d, self).__init__()
        self.in_planes = in_planes
        self.out_planes = out_planes
        self.kernel_size = kernel_size
        self.stride = stride
        self.padding = padding
        self.dilation = dilation
        self.groups = groups
        self.kernel_num = kernel_num
        self.attention = Attention(in_planes, out_planes, kernel_size, groups=groups,
                                   reduction=reduction, kernel_num=kernel_num)
        self.weight = nn.Parameter(torch.randn(kernel_num, out_planes, in_planes//groups, kernel_size, kernel_size),
                                   requires_grad=True)
        self._initialize_weights()

        if self.kernel_size == 1 and self.kernel_num == 1:
            self._forward_impl = self._forward_impl_pw1x
        else:
            self._forward_impl = self._forward_impl_common

第二步:yolo.py中注册ODConv模块。部分代码示例如下。

第三步:修改yaml文件,需要修改。

第四步:将train.py中改为本文的yaml文件即可,开始训练。

结 果:本人在多个数据集上做了大量实验,针对不同的数据集效果不同,需要大家进行实验。有效果有提升的情况占大多数。

预告一下:继续分享深度学习相关内容。有兴趣的朋友可以关注一下我,有问题可以留言或者私聊我哦

PS:系列改进算法不仅仅是可以添加进YOLOv5,也可以添加进任何其他的深度学习网络,不管是分类还是检测还是分割,主要是计算机视觉领域,都可能会有不同程度的提升效果。

最后,希望能互粉一下,做个朋友,一起学习交流。关注即免费获取深度学习资料!文章来源地址https://www.toymoban.com/news/detail-451066.html

到了这里,关于YOLOv5、v7改进之二十八:ICLR 2022涨点神器——即插即用的动态卷积ODConv的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包