可变卷积原理总结

简介: 可变卷积原理总结

1 背景

传统的CNN存在固定几何形状的缺陷: 卷积单元在固定位置对输入特征图进行采样池化层以固定比率降低空间分辨率;一个ROI(感兴趣区域)池化层将一个ROI分割成固定的空间单元;缺乏处理几何变换的内部机制等。

上述缺陷会引起下列问题

  1. 1. 同一CNN层中所有激活单元的感受野大小是相同的,这对于在空间位置上编码语义的高级CNN层是不需要的
  2. 2. 对于具有精细定位的视觉识别的实际问题,不同的位置对象可能具有不同尺度或形状。因此,固定位置进行采样很难提取完整的对象特征。尺度或感受野大小的自适应确定是可取的。
  3. 为了解决上面的问题,提出了可变卷积,在文本检测DBNet等文章中使用。

e15e9b85879a4b84af64ab48d92104fe.png上图左侧是传统的CNN提取特征,由于固定位置进行下采样,很难将羊的位置全部覆盖进行下采样,即没有完整提取羊的特征。

右侧是可形变卷积,由于卷积的形状自适应,进行的下采样卷积核形状不定,可以覆盖整个羊,从而提取到完整羊的特征。

2 可变卷积 DCN1

269d061fc8c34fd99f2b883edd9b57f3.png

其中图(a)是传统CNN,(b)©(d)是可变形卷积。

2.1 传统卷积

假设图(a)中虚线框是一个特征图F,9个绿色点构成了一个卷积核,那么该点的值应该是:

3f26745a87554cbc8564bf93a9162516.png

其中是卷积核在位置i的值,而(x,y)是卷积核该位置对应图像中一点的坐标。

2.2 可变卷积

可变卷积的计算与传统CNN的类似,只是多了一个偏移量

56017c4f94e64391ac80b3d603985901.png

该偏移量使得参与计算的点发生变化。如图(b)中,卷积核遍历到了9个绿色点的位置,但是参与计算的是通过9个绿色点和偏移量得到的蓝色点。相当于在控制卷积核的形状。

那么偏移量是如何生成的呢

将输入特征图通过一个卷积核,输出为大小为原特征图大小,out_channlel为2,代表x和y方向山的偏移量。然后提取ROI区域得到卷积核上在该次采样时的偏移量,如下图所示:

356fd2eb397148049a153ce5f1816c68.png

了解上面的东西后,再总结一下DCN 1的过程

c4882e1c42484f4dae2c3d8d79984a5c.png

本质上,我们利用的卷积核还是按照传统CNN一样遍历。但是遍历到某个位置后,由于偏量,我的结果是另外位置和卷积核参数的计算结果。

如上图,我们卷积核遍历到了绿色的位置。但是偏量使得我们真正参与计算的是蓝色的点。

3 可变卷积 DCN 2

DCN 2在DCN 1的基础上添加了一个采样点权重

484ce141d0c24113bf7d45cb7d2b50c8.png这个采样点的区域我们不感兴趣,则把权重学习为0即可。

4 参考文章

https://paddlepedia.readthedocs.io/en/latest/tutorials/CNN/convolution_operator/Deformable_Convolution.html


目录
打赏
0
0
0
0
4
分享
相关文章
MySQL 事务详解
在数据库管理中,事务是一组SQL语句的执行单元,它们被视为一个整体。事务的主要目标是保持数据库的一致性和完整性,即要么所有SQL语句都成功执行,要么所有SQL语句都不执行。在MySQL中,事务起到了非常重要的作用,特别是在需要确保数据的完整性和一致性的应用程序中。 本文将详细介绍MySQL事务的概念、特性、隔离级别、事务的控制和示例代码等内容,以帮助您更好地理解和应用MySQL事务。
459 2
Mybatis之转义符的使用姿势
在 mybatis 的 xml 文件中直接写 sql 比较方便简洁,但是需要注意的是,在 xml 文件中,经常会遇到一些需要转义的场景,比如查询 id < xxx的数据,这个小于号就不能直接写在 sql 中,接下来我们将看一下,mybatis 中的有哪些转义符,可以怎么处理转义问题
852 0
Mybatis之转义符的使用姿势
YOLOv5 | 卷积模块 | 即插即用的可变核卷积AKConv【附代码+小白可上手】
本文介绍了YOLOv5模型的一个改进,即使用AKConv替代标准卷积以提高目标检测效果。AKConv允许卷积核有任意数量的参数和采样形状,增强了对不同目标形状和大小的适应性。教程详细讲解了AKConv的原理,提供了代码实现步骤,包括如何将AKConv添加到YOLOv5中,并给出了相关代码片段。此外,还分享了完整的YOLOv5 AKConv实现代码和GFLOPs计算,鼓励读者动手实践。通过这一改进,网络在保持性能的同时增加了灵活性。
YOLOv8改进-论文笔记】 AKConv(可改变核卷积):任意数量的参数和任意采样形状的即插即用的卷积
AKConv是一种可改变核卷积,旨在解决传统卷积的局限,包括固定大小的卷积窗口和卷积核尺寸。AKConv提供灵活的卷积核参数和采样形状,适应不同尺度特征。其创新点包括:1)支持任意大小和形状的卷积核;2)使用新算法确定初始采样位置;3)应用动态偏移调整采样位置;4)优化模型参数和计算效率。AKConv已应用于YOLOv8,提高网络性能。相关代码可在<https://github.com/CV-ZhangXin/AKConv>找到。
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
255 8
《跨越语言壁垒:Python 人工智能原型到 C++可执行程序的转型之路》
在AI领域,Python因简便和丰富的库被广泛用于原型开发,但在高性能需求下,C++更胜一筹。本文探讨了将Python原型转换为C++程序的方法,包括代码分析、选择转换工具、数据类型匹配、内存管理及优化策略,强调了两者互补的重要性,旨在提升AI应用的性能与可靠性。
121 7
YOLOv8打印模型结构配置信息并查看网络模型详细参数:参数量、计算量(GFLOPS)
YOLOv8打印模型结构配置信息并查看网络模型详细参数:参数量、计算量(GFLOPS)
一文快速读懂Transformer
Transformer模型近年来成为自然语言处理(NLP)领域的焦点,其强大的特征提取能力和并行计算优势在众多任务中取得显著效果。本文详细解读Transformer的原理,包括自注意力机制和编码器-解码器结构,并提供基于PyTorch的代码演示,展示了其在文本分类等任务中的应用。
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问