可变形卷积系列(一) 打破常规,MSRA提出DCNv1 | ICCV 2017 Oral
论文提出可变形卷积帮助模型高效地学习几何变换能力,能够简单地应用到分类模型和检测模型中,思想新颖,效果显著,十分值得学习
来源:晓飞的算法工程笔记 公众号
论文: Deformable Convolutional Networks
Introduction
常规卷积操作的感受域是固定的,但不同大小的目标应该需要不同大小的感受域,甚至是不规则的感受域。为此,论文提出两个模块来使CNN具备几何变换的建模能力:
- deformable convolution,在常规的卷积中增加2D偏移值,可以将采样区域自由变形,如图1(d)。偏移值是可学习的,通过额外的卷积层获得,取决于输入的特征。
- deformable RoI pooling,为RoI pooling中的每个bin添加一个偏移值做整体的移动,能够自适应不同形状目标的局部定位。同样,偏移值是可学习的,取决于输入特征和RoI区域。
Deformable Convolutional Networks
Deformable Convolution
2D卷积包含两个步骤,首先采样输入特征的规则区域\(\mathcal{R}\),然后求和采样值与权重\(w\)间的乘积,区域\(\mathcal{R}\)由卷积核大小和膨胀(dilation)决定,如上为\(3\times 3\)、膨胀为1的卷积区域。
输出特征图\(y\)中的点\(p_0\)的值计算如公式1,\(p_n\)为\(\mathcal{R}\)中所有采样点。
在可变性卷积中,使用偏移\(\{\Delta p_n | n=1,...,N \}\)将区域\(\mathcal{R}\)的每个点进行位移,公式1转换成了公式2
由于\(\Delta p\)通常为小数,使用公式3的双线性插值计算偏移位置的值,\(G(\cdot, \cdot)\)为双线性插值权重,\(q\)为特征图\(x\)上所有的点,\(g(a, b)=max(0, 1-|a-b|)\)
如图2所示,偏移特征图通过旁路的卷积层获得,\(N\)为主干的卷积核大小,对输入特征进行变形卷积时取偏移特征图上对应点的偏移值向量组合成完整的offsets。训练时,同时学习两条路径,对于偏移值,通过公式3进行梯度的回传。
Deformable RoI Pooling
RoI Pooling
对于输入特征图\(x\)和RoI区域\(w\times h\),左上角坐标为\(p_0\),RoI pooling将区域分为\(k\times k\)个bin,输出大小\(k\times k\)的特征图
对于序号为\((i,j)\)的bin,输出的计算如公式5,\(n_{i,j}\)为bin中的像素总数,范围为\(\lfloor i \frac{w}{k} \rfloor \le p_x < \lceil (i+1) \frac{w}{k} \rceil\)和\(\lfloor j \frac{h}{k} \rfloor \le p_y < \lceil (j+1) \frac{h}{k} \rceil\)
类似于公式2,可变形RoI pooling采用偏移值\(\{ \Delta p_{ij} | 0 \le i,j < k \}\)对bin进行整体移动,输出计算如公式6,由于\(\Delta p_{ij}\)是小数,同样需要公式3和公式4进行双线性插值计算
可变形RoI pooling的逻辑如图3,偏移值通过旁路卷积层获得,旁路的输入为RoI区域池化后的特征,接一个fc层输出归一化的偏移值\(\Delta \hat{p}_{ij}\),与RoI的尺寸无关,然后根据RoI区域大小转换为偏移值\(\Delta p_{ij}=\gamma \cdot \Delta \hat{p}_{ij} \circ (w, h)\),\(\gamma=0.01\)为预设的幅值,偏移值在RoI区域内所有channel共用,取对应的位置。
Position-Sensitive (PS) RoI Pooling
可变形PS RoI pooling遵循RFCN的全卷积理念,先用一个卷积层获得channel为\(2k^2(C+1)\)的偏移特征图,单图大小与主干的score map一样,然后通过PS RoI pooling得到归一化的偏移值\(\Delta \hat{p}_{ij}\),然后根据RoI大小转换为最终的偏移值\(\Delta p_{ij}\)。在实际实现中,一般会在PS RoI Pooling后接一个输出为\(2N\)全连接层,与可变形RoI pooling类似。
Deformable Convolution/RoI Pooling Backpropagation
公式2可变形卷积的偏移值\(\Delta p_n\)的梯度就算如公式7,\(\frac{\partial G(q,p_0+p_n+\Delta p_n)}{\partial \Delta p_n}\)由公式4计算,\(\Delta o_n\)是2D的,\(\partial \Delta p_n\)实际表示\(\partial \Delta p_n^x\)和\(\partial \Delta p_n^y\)
可变形RoI pooling的偏移值计算如公式8,而归一化偏移值\(\Delta \hat{p}_{ij}\)则可以通过计算\(\Delta p_{ij}=\gamma \cdot \Delta \hat{p}_{ij} \circ (w, h)\)的导数获得。
Understanding Deformable ConvNets
如图5所示,可变形卷积将原本固定的感受域根据目标自适应地调整,随着可变形卷积地叠加,高维像素点对应的感受域将会有很大的差异。
图6为图5中高层像素对应的低维像素的对应图,可以看到高层像素的感受域大都跟物体的位置相关。
图7为RoI区域对应的bin的位置,可以看到bin移动到了与物体更相关的位置。
Experiments
Ablation Study
Deformable Convolution
表1测试了在不同的位置加入可变形卷积的效果,不同的网络的效果不一致,整体都是可以提升的。而表2则是统计了不同大小物体的平均偏移值,偏移值跟物体大小相关,而背景的偏移介于中大物体之间,说明背景需要更大的感受域进行识别。表3与空洞卷积进行了对比,更大的膨胀值能有更好的性能,说明原来的感受域太小了,而不同的任务最优的膨胀值不太一样,说明可变形卷积是有存在意义的。
Deformable RoI Pooling
如表3,可变形RoI Pooling搭配可变形卷积能够达到最优的模型。
Model Complexity and Runtime
可变形卷积只增加了少量参数量和计算耗时,说明可变形卷积是通过提升模型的几何变化能力来提高性能,而不是堆参数。
Object Detection on COCO
Conclusion
论文提出可变形卷积帮助模型高效地学习几何变换能力,能够简单地应用到分类模型和检测模型中,思想新颖,效果显著,十分值得学习
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
可变形卷积系列(一) 打破常规,MSRA提出DCNv1 | ICCV 2017 Oral的更多相关文章
- Deformable Convolutional Networks-v1-v2(可变形卷积网络)
如何评价 MSRA 视觉组最新提出的 Deformable ConvNets V2? <Deformable Convolutional Networks>是一篇2017年Microsof ...
- 深度学习方法(十三):卷积神经网络结构变化——可变形卷积网络deformable convolutional networks
上一篇我们介绍了:深度学习方法(十二):卷积神经网络结构变化--Spatial Transformer Networks,STN创造性地在CNN结构中装入了一个可学习的仿射变换,目的是增加CNN的旋转 ...
- 卷积网络可解释性复现 | Grad-CAM | ICCV | 2017
觉得本文不错的可以点个赞.有问题联系作者微信cyx645016617,之后主要转战公众号,不在博客园和CSDN更新. 论文名称:"Grad-CAM: Visual Explanations ...
- 卷积涨点论文 | Asymmetric Convolution ACNet | ICCV | 2019
文章原创来自作者的微信公众号:[机器学习炼丹术].交流群氛围超好,我希望可以建议一个:当一个人遇到问题的时候,有这样一个平台可以快速讨论并解答,目前已经1群已经满员啦,2群欢迎你的到来哦.加入群唯一的 ...
- 论文阅读:Deformable ConvNets v2
论文地址:http://arxiv.org/abs/1811.11168 作者:pprp 时间:2019年5月11日 0. 摘要 DCNv1引入了可变形卷积,能更好的适应目标的几何变换.但是v1可视化 ...
- 卷积神经网络学习笔记——轻量化网络MobileNet系列(V1,V2,V3)
完整代码及其数据,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 这里结合网络的资料和Mo ...
- CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等
CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量.我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中 ...
- 『计算机视觉』物体检测之RefineDet系列
Two Stage 的精度优势 二阶段的分类:二步法的第一步在分类时,正负样本是极不平衡的,导致分类器训练比较困难,这也是一步法效果不如二步法的原因之一,也是focal loss的motivation ...
- SEPC:使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020
论文提出PConv为对特征金字塔进行3D卷积,配合特定的iBN进行正则化,能够有效地融合尺度间的内在关系,另外,论文提出SEPC,使用可变形卷积来适应实际特征间对应的不规律性,保持尺度均衡.PConv ...
- ESPNet/ESPNetV2:空洞卷积金字塔 | 轻量级网络
ESPNet系列的核心在于空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相对于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高.另外,HFF的 ...
随机推荐
- IPFS的配置记录
IPFS 分布式文件系统, 原理类似于bt, 通过文件分块, 每个块对应CID以及各级Hash做存储和校验, 通过DHT(Distributed Hash Table)做查找和路由. IPFS文档 h ...
- QT C++工程CI环境笔记
开发环境 Ubuntu18.04 or Ubuntu20.04 Qt Creator 4.6.x (Based on Qt 5.11.x) APT list: apt-transport-https ...
- Java Base64编码使用介绍
Base64编码介绍 BASE64 编码是一种常用的字符编码,Base64编码本质上是一种将二进制数据转成文本数据的方案. 但base64不是安全领域下的加密解密算法.能起到安全作用的效果很差 ...
- win32- 函数运行速度测试
LARGE_INTEGER nFreq, t1, t2; int loop_count = 0; double dt; double time_sum = 0; QueryPerformanceFre ...
- 【LeetCode二叉树#13】遍历二叉搜索树
二叉搜索树中的搜索 力扣题目地址(opens new window) 给定二叉搜索树(BST)的根节点和一个值. 你需要在BST中找到节点值等于给定值的节点. 返回以该节点为根的子树. 如果节点不存在 ...
- MBD工具链的云部署
MBD工具链的云部署 "云技术永远不会用于汽车开发".说到云部署在汽车行业的应用,业界曾经认为云技术并不适合用在汽车行业的产品开发.知识产权保护.数据的安全.流程不够透明.迁移成本 ...
- OFDM系统各种QAM调制阶数在多径信道下的误码性能仿真(暂存版本)
本文考虑OFDM系统在多径信道下的误码性能 代码 clc;close all;clear %% Seting parameters EbN0_list = 20:2:40; Q_order_list ...
- 【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
问题描述 在APIM中配置JWT策略,验证JWT,如果认证失败,则跳转到 Azure Entra ID 的 Login 页面. 问题解答 要实现JWT验证失败后,跳转到 Azure Entra ID ...
- 【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误
问题描述 使用Docker Compose方式合并多个镜像(Images)文件,然后部署到App Service中,结果失败.报错 Linux Version 太长,不能超过4000个字符. 错误消息 ...
- 面试官:说说SSO单点登录的实现原理?
单点登录(Single Sign-On, SSO)是一种让用户在多个应用系统之间只需登录一次就可以访问所有授权系统的机制.单点登录主要目的是为了提高用户体验并简化安全管理. 举个例子,您在一个大型企业 ...