Deformable Kernel Networks for Joint Image Filtering论文笔记

2019年的IJCV,做引导超分的,最论文最后把应用邻域扩展到了去噪、图像恢复等方向

本博文不是对论文的全文翻译,只是根据自己理解来写的小笔记。该笔记不是手把手教学哈,阅读之前请将原论文看一遍·。


【一】论文概述

主要思想:简而言之,对于每一个像素点,学习一个3*3大小的weight和offset。weight好理解,就是权重值嘛,normalize之后和为1。offset的理解可以看下图:

        图1 offset示意图

图a是一个规范的网格;图b是网络输出的3*3大小的offset;图c中的橙色点,才是最终用于与weight相乘的点,offset表示蓝色点到橙色点的偏移值。(橙色点大多数都是亚像素点,作者使用bilinear插值来计算橙色点的像素值。后文中会提到。)

        得到每一个像素点的weight和offset,然后基于depth图像,可计算结果图像每一个像素的值。

        简而言之,就是设计了一个新的图像滤波器。不同于手工设计的滤波器,它随着图像的改变而改变,且采样点位置也会变化(我感觉这篇文章一大亮点就是学习了offset)


【二】网络结构

(首先吧,我感觉它这个网络图和网络表格就画的有点不严谨。。。)

 图2  网络结构图


2.1 Feature extraction + Weight & offset regression 

输入:Target和Guidance

一次的输出:

weightoffset
1\times k^{2}\times \frac{h}{4} \times \frac{w}{4}1\times 2k^{2}\times \frac{h}{4} \times \frac{w}{4}

 NOTE:

一次输出只能得到1/16的点,所以这个模块作者运行了16次,才得到了完整的weight和offset。

而图2中的weight和offset分别是 k^{2}\times 1\times1和 2k^{2}\times 1\times1,这只是针对一个pixel的。(offset是用\left ( \Delta x,\Delta y \right )来表示的,故为2k^{2} 。文中 k=3)

2.1.1 Feature extraction

这一部分就是一个普通的卷积层。对于每一个128*1*1尺寸的输出,都对应着输入图像中51*51大小的感受野。整个网络结构如下图所示:

 这个D指的应该是通道数,target image的D是1,guidance是3。第一行和最后一行说明的是,对于输入图像中51*51大小的感受野,最后输出一个128*1*1大小的特征向量(并没有把图像划分成51*51的子图像,这里它只是强调其感受野大小是51)。

这里还有一个关键点是DownConv。作者在文中的testing提到,他们设计网络的两个准则是:1)尽量大的感受野;2)速度要快。为了在这两者之间平衡,使用了DownConv模块,本质上就是multi-pixel stride 多像素步长的卷积。

但是,由于有两个步长为2的DownConv,导致一次向前传播仅能得到1/16的结果。所以需要运行16次forward才能得到完整的结果。(FDKN就是针对这一部分进行改进的) 

2.1.2 Weight & offset regression

先看下图:

\bullet Weight:target和guidance都会产生k^{2}\times 1\times1的weight,经过一层sigmoid后(粉红色边框),再将两个分支得到的weight,进行对应元素的相乘,得到合并的weight。为了保证sum(weight)=1,加了一层归一化操作(蓝色边框)。

\bullet offset:操作和weight基本一致,但没有sigmoid层和归一化。(因为偏移量有正有负,爱怎么偏移就怎么偏移,也不需要归一化)


2.2 Weight average

这一步就是讲述了,得到了每个点的offset和weight之后,怎么得到最终的预测residual。

大致思路:先根据offset采样,然后与weight相乘,得到每个点的预测值。

这一里面唯一存在的问题就是,offset是浮点型的,所以采样后点大多数都是亚像素点。这里,作者采用bilinear的方法,获取亚像素点对应的像素值。

下面是几个公式的解释:

\bullet公式3

  \bullet公式4

   \bullet公式5

 s(q)是亚像素点,t0,t1,t2,t3分别是离亚像素点最近的四个像素点。s(q)的值将由这四个点插值来得到。ft就是网络输入的低分辨率深度图。G(s,t)的公式如下:

其实就是普通的bilinear公式,不了解的可以百度一下。


至此,DKN的大致内容已经讲完了,FDKN思路差不多,主要是去掉了DownConv,使得一次就可以得到全部点的weight和offset,而不需要16次。这里就不再细讲。 

论文全文链接:[1910.08373] Deformable Kernel Networks for Joint Image Filtering (arxiv.org)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值