可变形卷积系列(一) 打破常规,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的 ...
随机推荐
- Oracle SQL 注入攻击
All about Security - SQL Injection 最近做个一个有关ORACLE数据库安全的网上研讨.我们有1300多位参与者,反馈相当丰富. I recently did a we ...
- UtilMeta - 简洁高效的 Python 后端元框架
最近开源了我开发多年的一个 Python 后端框架:UtilMeta 项目介绍 UtilMeta 是一个用于开发 API 服务的后端元框架,基于 Python 类型注解标准高效构建声明式接口与 ORM ...
- Centos下配置python环境
https://blog.csdn.net/longzhoufeng/article/details/109879818
- 老生常谈的iOS- weak原理,你真的懂得还是为了应付面试
前言 weak对于iOS开发来说只要解决一些对象相互引用的时候,避免出现强强引用,对象不能被释放,出现内存泄露的问题. weak 关键字的作用域弱引用,所引用对象的计数器不会加一,并在引用对象被释放的 ...
- hibernate-delete(Entity)的顺序问题
hibernate为我们提供了删除直接根据实体参数删除数据的方法: HibernateTemplate().delete(entity); public void delete(final Objec ...
- DataGear数据可视化分析平台介绍
DataGear 是一款开源免费的数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL.CSV.Excel.HTTP接口.JSON等多种数据源. 系统特点: 友好的数据源接入 支持运行时接 ...
- 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)
问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...
- 标准差为什么除以n-1
参考:https://blog.csdn.net/qian2213762498/article/details/80558018 如果要测量中国人的平均身高,假设为μ,通常会随机取假设10000人,求 ...
- 软件架构(四)单体架构(Monolithic Architecture)
系列目录 软件架构(一)概览 软件架构(二)编程语言的历史 软件架构(三)名词解释:架构.设计.风格.模式 软件架构(四)单体架构(Monolithic Architecture) 软件架构(五)分层 ...
- zabbix“专家坐诊”第178期问答汇总
大家好,我是乐乐.早在三年前,我们就在社区举办了zabbix公益问答活动,并且定在每周三邀请资深的zabbix技术工程师,为社群的小伙伴进行免费的答疑.到现在已经178期了.后续我将会把每期的答疑汇总 ...