当前位置:网站首页>YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)
YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)
2022-08-03 23:30:00 【人工智能算法研究院】
前 言:作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv7的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。由于出到YOLOv7,YOLOv5算法2020年至今已经涌现出大量改进论文,这个不论对于搞科研的同学或者已经工作的朋友来说,研究的价值和新颖度都不太够了,为与时俱进,以后改进算法以YOLOv7为基础,此前YOLOv5改进方法在YOLOv7同样适用,所以继续YOLOv5系列改进的序号。另外改进方法在YOLOv5等其他算法同样可以适用进行改进。希望能够对大家有帮助。
需要更多程序资料以及答疑欢迎大家关注——微信公众号:人工智能AI算法工程师
解决问题:YOLOv7主干特征提取网络为CNN网络,CNN具有平移不变性和局部性,缺乏全局建模长距离建模的能力,引入自然语言处理领域的框架Transformer来形成CNN+Transformer架构,充分两者的优点,提高目标检测效果,本人经过实验,对小目标以及密集预测任务会有一定的提升效果。视觉 Transformers 的最新进展在基于点积 self-attention 的新空间建模机制驱动的各种任务中取得了巨大成功。递归门控卷积(gnConv),它通过门控卷积和递归设计执行高阶空间交互。新操作具有高度的灵活性和可定制性,它兼容各种卷积变体,并将自注意力中的二阶交互扩展到任意阶,而不会引入大量额外的计算。gnConv 可以作为一个即插即用的模块来改进各种视觉 Transformer 和基于卷积的模型。Transformer方法融合参考YOLOv5改进往期。
YOLOv5改进之十七:CNN+Transformer——融合Bottleneck Transformers_人工智能算法研究院的博客-CSDN博客
原理:
论文:https://arxiv.org/pdf/2207.14284.pdf
视觉变形金刚的最新进展在各种任务中都取得了巨大的成功由基于点积自注意力的新空间建模机制驱动。在本文中,我们展示了愿景变形金刚背后的关键要素,即输入自适应、长程和高阶空间交互,也可以使用基于卷积的框架有效地实现。我们提出递归门控卷积(gnConv),它通过门控卷积和递归设计执行高阶空间交互。新的操作高度灵活可定制,兼容各种卷积变体并将 self-attention 中的二阶交互扩展到任意阶,而无需引入大量额外的计算。 GnConv 可以作为即插即用模块来改进各种视觉变压器和基于卷积的模型。基于该操作,我们构建了一个新的通用视觉骨干家族
命名为 HorNet。 ImageNet分类、COCO对象的大量实验检测和 ADE20K 语义分割显示 HorNet 优于 Swin Transformers 和 ConvNeXt 具有相似的整体架构和训练配置。 HorNet 还显示出良好的可扩展性更多的训练数据和更大的模型大小。除了视觉编码器的有效性之外,我们还展示了 gnConv 可以应用于特定任务的解码器和以更少的计算持续提高密集预测性能。我们的结果表明,gnConv 可以成为可视化建模的新基础模块它有效地结合了视觉 Transformer 和 CNN 的优点
项目部分代码如下:
class gnconv(nn.Module):
def __init__(self, dim, order=5, gflayer=None, h=14, w=8, s=1.0):
super().__init__()
self.order = order
self.dims = [dim // 2 ** i for i in range(order)]
self.dims.reverse()
self.proj_in = nn.Conv2d(dim, 2*dim, 1)
if gflayer is None:
self.dwconv = get_dwconv(sum(self.dims), 7, True)
else:
self.dwconv = gflayer(sum(self.dims), h=h, w=w)
self.proj_out = nn.Conv2d(dim, dim, 1)
self.pws = nn.ModuleList(
[nn.Conv2d(self.dims[i], self.dims[i+1], 1) for i in range(order-1)]
)
self.scale = s
print('[gnconv]', order, 'order with dims=', self.dims, 'scale=%.4f'%self.scale)
结 果:本人在多个数据集上做了大量实验,针对不同的数据集效果不同,涨点明显。
预告一下:下一篇内容将继续分享深度学习算法相关改进方法。有兴趣的朋友可以关注一下我,有问题可以留言或者私聊我哦
PS:卷积的替换不仅仅是适用改进YOLOv5,也可以改进其他的YOLO网络以及目标检测网络,比如YOLOv7、v6、v4、v3,Faster rcnn ,ssd等。
平台回复不及时欢迎添加微信公众号:人工智能AI算法工程师 。
最后,希望能互粉一下,做个朋友,一起学习交流。
边栏推荐
- Websocket multi-threaded sending message error TEXT_PARTIAL_WRITING--Use case of spin lock replacing synchronized exclusive lock
- Unity intercepts 3D images and the implementation of picture-in-picture PIP
- Jar a key generation document database
- libnet
- 创建函数报错,提示DECLARE定义语法问题
- Storage engine written by golang, based on b+ tree, mmap
- V8中的快慢数组(附源码、图文更易理解)
- utlis thread pool
- Internship: Upload method for writing excel sheet (import)
- 响应式织梦模板餐饮酒店类网站
猜你喜欢

Creo 9.0二维草图的诊断:重叠几何

MiniAPI of .NET6 (14): Cross-domain CORS (Part 1)

完全二叉树问题

AOSP CameraLatencyHistogram的原理与使用

First domestic open source framework 】 【 general cloud computing framework, any program can be made into cloud computing.

响应式织梦模板塑身瑜伽类网站

射频芯片ATE测试从入门到放弃之参数测试

Shell 用法梳理总结

CAS: 178744-28-0, mPEG-DSPE, DSPE-mPEG, methoxy-polyethylene glycol-phosphatidylethanolamine supply

射频芯片(RFIC)的协议之5G及其调制
随机推荐
Republish the lab report
Deep integration of OPC UA and IEC61499 (1)
JS获得URL超链接的参数值
【并发编程】ReentrantLock的lockInterruptibly()方法源码分析
utlis thread pool
为什么我们需要回调
The principle and use of AOSP CameraLatencyHistogram
Scala基础【正则表达式、框架式开发原则】
The salary of soft testers at each stage, come to Kangkang, how much can you get?
IELTS essay writing template
学习笔记 | uiautomation(如何)实现自动化
The longest substring that cannot have repeating characters in a leetcode/substring
(PC+WAP)织梦模板螺钉手柄类网站
complete binary tree problem
2022/8/3 Exam Summary
log4j-slf4j-impl cannot be present with log4j-to-slf4j
数据分析知识点搜集(纯粹的搜集)
Fluorescein-PEG-CLS,胆固醇-聚乙二醇-荧光素科研试剂
Creo 9.0在草图环境中创建坐标系
七夕活动浪漫上线,别让网络拖慢和小姐姐的开黑时间