Pixel-Adaptive Convolutional Neural Networks
CODE:https://suhangpro.github.io/pac/
摘要
卷积是cnn的基本组成部分。它们的权重在空间上是共享的,这是它们广泛使用的一个主要原因,但这也是一个主要的限制,因为它使得卷积不可知论的争论。我们提出了一种像素自适应卷积(PAC)操作,这是对标准卷积的一种简单而有效的改进,在这种操作中,滤波器权重与依赖于可学习的局部像素特征的空间变化的核相乘。PAC是几种流行的过滤技术的综合,因此可以用于广泛的用例。具体地说,我们展示了PAC用于深关节图像上采样时的最新性能。PAC还提供了一种有效的替代完全连接CRF(Full-CRF)的方法,称为PAC-CRF,与Full-CRF相比,PAC-CRF具有竞争力,同时速度也快得多。此外,我们还证明了PAC可以作为预训练网络中卷积层的替换,从而获得一致的性能改进。
方法
在这项工作中,我们提出了一种新的内容自适应卷积层,解决了现有的内容自适应层的一些局限性,同时保留了几个有利的空间不变卷积性质。
双边滤波
https://blog.csdn.net/chenlufei_i/article/details/78897926
Pixel Adaptive 解析
- Pixel Adaptive CNN主要内容
这篇文章[1]来自CVPR2019, 主要提出了文中所称的“Pixel Adaptive Convolution(PAC)”模块,本质上是采用双边滤波的思想来扩展CNN中的标准卷积操作,而不仅仅只是考虑空间域卷积。下面简要介绍原文[1]的主要部分(即PAC模块),为了跟原文内容的一致性,下面的公式符号尽量与原文一致。令
vl=(vl1,vl2,…,vln),vli∈Rc
vl=(v1l,v2l,…,vnl),vil∈Rc,表示来自CNN中第ll层的feature maps,具有cc个通道;
Wl∈Rc′×c×s×s Wl∈Rc′×c×s×s,表示CNN的第ll层与l+1l+1层之间的卷积核,c′c′表示第l+1l+1层的通道数,ss表示卷积核尺寸;
pi=(ui,vi)T pi=(ui,vi)T表示像素坐标,blbl表示偏置项;
Ω(i) Ω(i)表示像素ii周围s×ss×s的卷积窗口尺寸;
fi∈Rd fi∈Rd表示像素ii的某种特征,例如在RGB图像中取fi=(ui,vi,ri,gi,bi)fi=(ui,vi,ri,gi,bi)。
则CNN中的标准空间卷积操作,可以表示为:
vl+1i=∑j∈Ω(i)Wl[pi−pj]vlj+bl∈Rc′(1)vil+1=j∈Ω(i)∑Wl[pi−pj]vjl+bl∈Rc′(1)
为了融合像素的其他特征信息先验(可以来自网络学习的其他特征或者预先设定的特征),一种直接的方式就是使得卷积操作不仅仅是在空间上考虑,如下:
vl+1i=∑j∈Ω(i)W˜(fi−fj)vlj+blvil+1=j∈Ω(i)∑W~(fi−fj)vjl+bl理想的类双边滤波的过程(不仅仅只是考虑空间域的滤波,例如同时考虑将该特征作为函数时,其值域空间的相邻关系),如果要对特征vljvjl进行类双边滤波,一般会把vljvjl投到高维空间中,如
vli↦(ui,vi,fi,vli)∈R1×1×dimfi×dimvlivil↦(ui,vi,fi,vil)∈R1×1×dimfi×dimvil 因为在高维空间中更加容易把特征点集{vli}i{vil}i,但是把vljvjl投射到高维空间中,会使得点集{vli}i{vil}i在高维空间中非常稀疏和不规则,使得标准的卷积操作不太容易实现,也即使得W˜(fi−fj)W~(fi−fj)的计算相当困难。