轻量级通用上采样算子-CARAFE
转载:https://zhuanlan.zhihu.com/p/76063768
前言
这篇论文被 ICCV 2019 接收为 oral presentation。之前我们主要研究物体检测(例如 Hybrid Task Cascade,Guided Anchoring,Libra R-CNN 和 Prime Sample Attention),这次尝试跳出单纯的物体检测框架,解决一些通用模块和算子的问题。上采样操作是各种网络结构里广泛使用的运算之一,我们提出了一个轻量级的通用上采样算子 CARAFE(音[kə'ræf]),相对最近邻和双线性等上采样算子,在不同任务中都取得了显著的提升,同时只引入很少的参数量和计算代价。
【一分钟批阅版】
上采样操作可以表示为每个位置的上采样核和输入特征图中对应邻域的像素做点积,我们称之为特征重组。我们提出的上采样操作 CARAFE 在重组时可以有较大的感受野,会根据输入特征来指导重组过程,同时整个算子比较轻量级。具体来说,我们首先利用输入特征图来预测上采样核,每个位置的上采样核是不同的,然后基于预测的上采样核来进行特征重组。在不同的任务中,CARAFE 都取得了明显的提升,同时仅带来很小的额外参数和计算量。
【十分钟催眠版】
上采样的表示
我们将特征图的上采样运算看做是特征重组的过程。对于输出特征图中的每个像素点 L',我们都可以找到它在输入特征图中的对应位置 L,L' 这个点的值可以表示成以输入特征图中以 L 为中心的一个邻域内的像素和一个上采样核的点积(加权和)。以双线性上采样为例,输出特征图中每个像素可以看作是一个 2x2 的上采样核和输入特征图中一个 2x2 的邻域的点积。在下图中,上采样核的 4 个数值均为 0.5。
Motivation
最近邻或者双线性上采样仅通过像素点的空间位置来决定上采样核,并没有利用到特征图的语义信息,可以看作是一种“均匀”的上采样,而且感知域通常都很小(最近邻 1x1,双线性 2x2)。Deconvolution 算子的上采样核并不是通过像素间的距离计算,而是通过网络学出来的,但对于特征图每个位置都是应用相同的上采样核,不能捕捉到特征图内容的信息,另外引入了大量参数和计算量,尤其是当上采样核尺寸较大的时候。Dynamic filter 对于特征图每个位置都会预测一组不同的上采样核,但是参数量和计算量更加爆炸,而且公认比较难学习。
那么我们所希望的上采样算子应该具备以下几个特性。
- Large receptive field:需要具有较大的感受野,这样才能更好地利用周围的信息。
- Content-aware:上采样核应该和特征图的语义信息相关,基于输入内容进行上采样。
- Lightweight:不能引入过多的参数和计算量,需要保持轻量化。
从全称 Content-Aware ReAssembly of FEatures 可以看出,CARAFE 正是具备这几个特性的上采样算子。
方法概述
CARAFE 分为两个主要模块,分别是上采样核预测模块和特征重组模块。假设上采样倍率为 ,给定一个形状为
的输入特征图,我们首先利用上采样核预测模块预测上采样核,然后利用特征重组模块完成上采样,得到形状为
的输出特征图。
上采样核预测模块
1. 特征图通道压缩
对于形状为 的输入特征图,我们首先用一个
卷积将它的通道数压缩到
,这一步的主要目的是减小后续步骤的计算量。
2. 内容编码及上采样核预测
假设上采样核尺寸为 (越大的上采样核意味着更大的感受野和更大的计算量),如果我们希望对输出特征图的每个位置使用不同的上采样核,那么我们需要预测的上采样核形状为
。
对于第一步中压缩后的输入特征图,我们利用一个 的卷积层来预测上采样核,输入通道数为
,输出通道数为
,然后我们将通道维在空间维展开,得到形状为
的上采样核。
3. 上采样核归一化
我们对第二步中得到的上采样核每个通道利用 softmax 进行归一化,使得卷积核权重和为 1。
特征重组模块
对于输出特征图中的每个位置,我们将其映射回输入特征图,取出以之为中心的 的区域,和预测出的该点的上采样核作点积,得到输出值。相同位置的不同通道共享同一个上采样核。
实验结果
我们将 FPN 中的上采样操作替换成 CARAFE,并可视化上采样的区域和权重。对于高层特征图中不同的点,我们展示在 CARAFE 多次上采样后的采样核权重较大的点,可以看到采样点会集中在物体区域而忽略背景区域,达到 content-aware 的效果。
以 Faster R-CNN w/ FPN 为例,我们对比了 CARAFE 和其他上采样算子的性能以及参数量和计算量。在性能明显优于其他算子的情况下,CARAFE 保持了轻量级的特性,参数量和计算量都较小。
我们将 CARAFE 应用于不同的任务中,例如物体检测,语义分割,image inpainting ,都取得了不错的效果。
物体检测
在物体检测任务上,对于 Faster R-CNN 和 Mask R-CNN,CARAFE 都取得了一个点以上的提升。
语义分割
在语义分割任务中,我们将 UperNet(为啥用 UperNet,因为有好用的开源 code 啊)作为 baseline,用 CARAFE 替换其中的上采样操作,取得了显著的提升。
Image inpainting
我们也尝试把 CARAFE 应用在 low-level 任务比如 image inpainting 中,同样取得了较大的提升,刷新了 SOTA。
总结
轻量级通用上采样算子
- Large receptive field
- Content-aware
- Lightweight
Arxiv
CARAFE: Content-Aware ReAssembly of FEaturesarxiv.org
Code
照例将开源在 mmdetection 中,人长得好看说话还好听的一作小哥哥正在努力优化中,预计 ICCV 开会之前 release。
轻量级通用上采样算子-CARAFE的更多相关文章
- 图像的下采样Subsampling 与 上采样 Upsampling
I.目的 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的: 1.使得图像符合显示区域的大小: 2.生成对应图像的缩略图. 放大图像(或称为上采样(ups ...
- 【转】图像的上采样(upsampling)与下采样(subsampled)
转自:https://blog.csdn.net/stf1065716904/article/details/78450997 参考: http://blog.csdn.net/majinlei121 ...
- 机器学习入门-数据过采样(上采样)1. SMOTE
from imblearn.over_sampling import SMOTE # 导入 overstamp = SMOTE(random_state=0) # 对训练集的数据进行上采样,测试集的 ...
- 图像的上采样(upsampling)与下采样(subsampled)
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像(或称为上采样(upsampli ...
- 上采样和PixelShuffle(转)
有些地方还没看懂, mark一下 文章来源: https://blog.csdn.net/g11d111/article/details/82855946 去年曾经使用过FCN(全卷积神经网络)及其派 ...
- upsampling(上采样)& downsampled(降采样)
缩小图像 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的是两个: 使得图像符合显示区域的大小: 生成对应图像的缩略图: 下采样的原理: 对于一幅图像尺寸为 ...
- 图像上采样(图像插值)增取样(Upsampling)或内插(Interpolating)下采样(降采样),
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图.放大图像(或称为上采样(upsamplin ...
- opencv::图像上采样和降采样
图像金字塔概念 . 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 . 一个图像金字 ...
- 卷积和池化的区别、图像的上采样(upsampling)与下采样(subsampled)
1.卷积 当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去. ...
随机推荐
- 微信小程序开发(十三)安卓手机调用wx.getConnectedWifi API失败
安卓手机调用wx.getConnectedWifi API失败,返回的错误码是12000.需要先startWifi 接口: wx.startWifi({ success(res) { console. ...
- javascript获取用户按了哪个键
浏览器好像不允许js获取F5这个键的按下事件,应该屏蔽了,这个键太过特殊,猜测可能是,防止用户失去对浏览器的控制? <!DOCTYPE html> <html> <hea ...
- Ubuntu死机解决方法汇总
为什么不建议强制关机 如果长按电源按键强制关机,有可能损坏硬件或者丢失数据,甚至导致磁盘坏道! 其实, 大部分时候的死机是假死, 不是真死... 有时候鼠标还能动呢. 还有一个原因: 对于平时忠贞不二 ...
- virtualBox+centOS的一些报错
step1: 安装系统后进入命令行模式 安装virtualBox:https://www.virtualbox.org/wiki/Downloads 下载centOS7镜像:https://www.c ...
- JS中constructor,prototype
First: this this定义: this就是函数赖以执行的对象. 分析这句话: 1. this是对象. 2. this依赖函数执行的上下文环境. 3. this存在函数中. 直接看例子: al ...
- jQuery获取父窗口的元素
js获取父页面的元素可以用 $(window.parent.document).find("#customer_id").val();这里的customer_id表示父页面某一个元 ...
- 关于b站爬虫的尝试(二)
前几天学习了scrapy的框架结构和基本的使用方法,部分内容转载自:http://blog.csdn.net/qq_30242609/article/details/52810840 scrapy由编 ...
- redis在linux服务器部署
0)参考资料 http://www.cnblogs.com/liuling/p/2014-4-19-02.html 1)下载安装包地址 http://download.redis.io/release ...
- 如何预测 Pinterest 和 Instagram 的未来发展潜力?
作者:陈琪链接:https://www.zhihu.com/question/20169268/answer/14229241来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...
- SessionState,默認mode應該是"InProc"
在ASP.NET的sessionState的三種屬性 http://www.dotblogs.com.tw/boei/archive/2010/07/06/16414.aspx需要在另外的config ...