图像处理论文详解 | Deformable Convolutional Networks | CVPR | 2017
文章转自同一作者的微信公众号:【机器学习炼丹术】
- 论文名称:“Deformable Convolutional Networks”
- 论文链接:https://arxiv.org/abs/1703.06211
0 前言
首先理解:
- deformable Convolution可变卷积针对的对象是卷积本身,因此膨胀卷积,3D卷积都可以用可变卷积的形式
- 本篇文章讲解理论和论文,我还没有用上这个可变卷积测试效果,因为PyTorch好像还没有封装这个卷积方式,有点麻烦。所以我计划下一篇文章结合github上已经有的pytorch复现的可变卷积来做一个简单的测试。
- 本来我是在学轮廓检测算法的,看到了一个SOTA的算法叫做deep snake,然后看了半天代码,发现里面嵌套了DCN,DLA等多个算法,所以就从头开始学了。
1 论文概述
论文中作者最大的贡献为:
- 提出了可变卷积,可变卷积网络为Deformable ConvNet(DCN)。
- 用同样的原理提出了可变池化层,叫做deformable ROI pooling。
- 这两个模块可以非常简单的用在其他网络结构中,并且不会增加很多的参数,但是效果还是不错的。(论文把这个方法用在了主流模型中)。
这个核心贡献在于,为什么卷积过程中卷积核一定要是正方形的?我的检测目标各种形状都有,为什么卷积核一定要是正方形的呢?
因此,这里的卷积核不再是正方形了,而是可以通过梯度下降更新的参数了:

a图就是最基本的卷积核,b就是可变卷积的卷积核,c和d是可变卷积的特殊情况。听起来不难吧,原理确实非常的简单。
2 实现原理

上图是表示可变卷积过程的。大概看一眼这个图,不难发现这种结构似乎和SEnet有点类似。在下一篇的代码实战中再考虑如何实现这个过程把。
泛泛地说的话,就是这个特征图,再额外的经过一个卷积层,生成一个offset的结果,然后把这个offset和这个特征图融合。
3 实验结果
论文中提到,在特征提取网络的后面3层使用可变卷积的效果比较好。

上图是在实际任务中,deformable convnets学习到的采样点,我认为这是一种非常有意思的可解释性的体现。

上表中最后三行体现了这个可变卷积的效果,确实是不错,确实有一定提升,那么这种可变卷积对与参数量的影响大吗?

可以看到,这个参数的影戏那个微乎其微,运行时间也基本差不多。我决定等我复现了这个可变卷积之后,我在以后的模型中都要用这个试试能不能有提升。(奇怪的奇技淫巧又增加了)。
大概就这么多,从理论上看,这个deformable convolution不难,关键是如何实现,希望我在复现的过程上不会太坎坷。
参考文章:
- https://arxiv.org/abs/1703.06211
- https://littletomatodonkey.github.io/2018/12/02/2018-12-02-Deformable ConvNets/
- https://zhuanlan.zhihu.com/p/52476083
图像处理论文详解 | Deformable Convolutional Networks | CVPR | 2017的更多相关文章
- pytorch实现 | Deformable Convolutional Networks | CVPR | 2017
文章转载自微信公众号:[机器学习炼丹术],请支持原创. 这一篇文章,来讲解一下可变卷积的代码实现逻辑和可视化效果.全部基于python,没有C++.大部分代码来自:https://github.com ...
- 目标检测论文阅读:Deformable Convolutional Networks
https://blog.csdn.net/qq_21949357/article/details/80538255 这篇论文其实读起来还是比较难懂的,主要是细节部分很需要推敲,尤其是deformab ...
- 论文阅读笔记三十八:Deformable Convolutional Networks(ECCV2017)
论文源址:https://arxiv.org/abs/1703.06211 开源项目:https://github.com/msracver/Deformable-ConvNets 摘要 卷积神经网络 ...
- 深度学习方法(十三):卷积神经网络结构变化——可变形卷积网络deformable convolutional networks
上一篇我们介绍了:深度学习方法(十二):卷积神经网络结构变化--Spatial Transformer Networks,STN创造性地在CNN结构中装入了一个可学习的仿射变换,目的是增加CNN的旋转 ...
- Deformable Convolutional Networks
1 空洞卷积 1.1 理解空洞卷积 在图像分割领域,图像输入到CNN(典型的网络比如FCN)中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预 ...
- C#数字图像处理算法详解大全
原文:C#数字图像处理算法详解大全 C#数字图像处理算法详解大全 网址http://dongtingyueh.blog.163.com/blog/#m=0 分享一个专业的图像处理网站(微像素),里面有 ...
- VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan[‡] & Andrew Zi ...
- Attention is all you need 论文详解(转)
一.背景 自从Attention机制在提出之后,加入Attention的Seq2Seq模型在各个任务上都有了提升,所以现在的seq2seq模型指的都是结合rnn和attention的模型.传统的基于R ...
- [论文理解] Learning Efficient Convolutional Networks through Network Slimming
Learning Efficient Convolutional Networks through Network Slimming 简介 这是我看的第一篇模型压缩方面的论文,应该也算比较出名的一篇吧 ...
随机推荐
- 金九银十已到!掌握这300道java高频面试题,助你面试BAT无忧!
前言 不知不觉已经到了九月了,回首看年初的时候简直像做梦一样.不得不说时间真的是无情一般的流逝,题外话就不多说了!回归正题,现在已经到了今年最后一波大好的跳槽涨薪的时机了,错过了这一次可能你就得等到明 ...
- 使用Camtasia 让照片变身动态视频
视觉化影像已经慢慢渗入我们平日的生活了,很多人已经慢慢地从单纯的文字记录,发展到使用照片记录生活,而视频化的记录也随着智能手机的普及而迅速发展起来.对于一些曾经使用照片记录的瞬间,我们也可以将其变身为 ...
- docker中启动容器提示端口被占用
docker中启动容器提示端口被占用,但是 docker ps -a 查不到信息 1.查询端口被占用的id netstat -ntpl |grep 3306 2.杀掉该id kill -9 如果kil ...
- (原创)用.NET Core实现一个在线客服系统(上篇)
前言 没有视频的介绍显得尤为空白仓促.所以,如果你不赶时间,看看视频先 → → 戳我看视频 ← ← 在线演示访客端:http://role.fuyue.xyz/visitor/index客服端:ht ...
- Java基础教程——JUnit和TDD
JUnit JUnit是一个Java的单元测试工具. package ah; public class MyCode { public int m1() { System.out.println(&q ...
- JVM类加载机制详解,建议看这一篇就够了,深入浅出总结的十分详细!
类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类加载的时机 遇到new(比如n ...
- 10万级etl批量作业自动化调度工具Taskctl之轻量级Web应用版
什么是批量作业: 批量处理是银行业整个信息后台最为重要的技术形态,也是银行核心信息资产数据的分享.传输.演化的重要技术手段.有调查指出,全球70%的数据是经过批量处理得以再次使用,可见批量处理在整个信 ...
- Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
vs2019升级16.8后,原来.net core 3.1的项目编译时出现了莫名其妙的错误: 1. "RazorTagHelper"任务意外失败 2. ...provide a v ...
- MySQL 当前时间,今日时间,前日时间 详解
MySQL 获取当前日期及日期格式 获取系统日期: NOW() 格式化日期: DATE_FORMAT(date, format) 注: date:时间字段 format:日期格式 返回系统日期,输出 ...
- Java面试专题-基础篇(1)