为什么不能早看到这篇文章呢?感觉之前基本上在白淦。。。
本文标题FOCNet: A Fractional Optimal Control Network for Image Denoising,网络模型即FOCNet
是看到的继TNRD后,总第2篇结合DE和网络结构的文章,引入的是分数阶ODE的离散化,带来长期记忆性。有点动态网络的味道,但不是❗
文献简介
FOCNet是2019CVPR的文章,是贾老师、张磊老师等的文章,至2021/03/24谷歌显示有31引用量
略读笔记
【1】谁的文章:贾老师、张老师等
【2】什么问题:图像去噪
【3】有动机否:基于DnCNNs的方程解释,改成分数阶方程;分数阶方程似乎有长期记忆性
【4】有无框架:FOCNet,分数最优控制网络,算是分数阶微分方程的离散化;并加强多尺度特征交互来加强网络
【5】什么模型:与框架一致,求解分数最优控制(FOC)问题,有不少理论保证。有DenseNet/动态网络的味道
【6】方程类型:分数阶方程,原文第4页式$(7)$,好像就是条件pde变成了分数阶方程,其它都是网络套的
【7】实验:很多,有经典单图加多种噪声,用多种模型;还有数据集同样处理的
打算细看一点点~
要解决的问题
从标题知,本文的目标是图像去噪问题。从正文看也是general的图像去噪,没有什么特殊假设
背景方法
本文的背景领域是去噪,其中主要关注的是背景方法是DnCNNs和动力系统解释DNN这两个:
DnCNNs在low-level的去噪中表现出色
ps:本文在引言部分介绍了大量去噪网络模型,需要的话再看
深度卷积网络DCNN结合残差可以解释为动力系统,由此引入分数阶ODE
动机/Idea
本文的动机/idea有两个
整数阶ODE在时间尺度上局部之间的关系显然是大的,但是全局就不大了,因此只有所谓短期记忆;而分数阶(fractional)ODE有长期记忆(原文第3页图$(1)$所示的power-law memory)。在去噪这个问题上,历史状态(原图)应该也是对稳健控制有关的
ps1:DenseNet、MemNet似乎也可以看成学习长期记忆
ps2:至于为什么要长期记忆,这是从动力系统当前state可能和历史states都相关启发得到的结论
多尺度特征交互加强网络性能
模型FOCNet
FOCNet这个框架就是结合了上述动机的去噪网络。网络的(前向)结构根据分数阶ODE的离散化设计
介绍一下分数阶网络,其实就是根据power-law memory的power-law机制重新定义了分数阶导数:
这个式子是很广泛使用的一种分数阶导数定义(确实有别的),叫做Grünwald-Letnikov定义
但是这个定义咋一看式子有些难懂,看维基百科的话,即知,这个定义是推广出来的概念,可以写个2阶导,分子其实就有$f(x),f(x+h),f(x+2h)$三项,推广至整数n阶导其实就是上面$(1)$的形式,$(1)$又把这个阶数推广到一般阶数,如$(0,1)$之间的阶数,至于里面的二项式系数我就不知道咋算的了哈哈
那么FOCNet的FOC问题整体是这样的:
其中输入的脏图是$\mathbf{y}(s)$,真实的gt干净图是$\mathbf{x}(s)$,$s\in\Omega$是图像上的二维坐标。$\Phi$和$\Psi$都是线性变换如卷积,大概是要把图像稍微处理一下,具体是啥应该不是特别重要
然后就到了加强性能的时候,idea是考虑多尺度特征交互,加强长期记忆能力。哎,这个多尺度交互的过程我看了好长时间才看明白。。。是我太菜了
尺度的变换是通过上pooling或者pooling(平均池化)完成的
注:趁机复习补充了一堆上下采样、上pooling、pooling的知识,参考:
先上网络的结构图:
用数学形式表示交互的过程为原文第4页的$(8)$式:
这个$(3)$式要配合上图一起看,以一般的中间式子$\mathscr{D}_t^{\beta}\mathbf{u}(t,s,l_i) = f(\mathbf{u}(t,s,l_i),g(\mathbf{u}(t,s,l_{i\pm 1})),\theta_i (t))$为例,这个$\beta$阶导数指的是第$i$个尺度(scale)的变化过程,即图中的第$i$行网络。图中第$i$行网络中每个侧着的方形都是一个状态(state),为了前进到下一步,以变化率$f$前进,$f$取决于三个因素,$\mathbf{u}$、$g$和$\theta_i$。其中
- $\mathbf{u}=\mathbf{u}(t,s,l_i)$是前当前state
- $g=g(\mathbf{u}(t,s,l_{i\pm 1}))$中的$g$本身叫做scale switch函数(图中最左下角的黑字),包含在图中的浅绿色箭头中,$g(x)=wT(x)$,$w$是0-1二元变量,$T$是pooling或者上pooling算子,也就是说,$g$是把前一个($i-1$)或者下一个($i+1$)尺度信息利用到当前尺度($i$)中的算子,就是图中的浅绿色箭头,式子中的$\pm$就是指中间的尺度可能接受来自上下两个尺度的信息。如图中深蓝色圆圈所示,状态2就从下一个尺度的状态1进行了scale switch,状态4就从上一个尺度的状态3进行了scale switch
- 最后$\theta_i$就是尺度$i$的网络参数了
实验
实验在Berkeley Segmentation Dataset和DIV2K的部分数据上进行训练,其中有超参数的选择,如分数阶$\beta$,用多少尺度
测试则在Set12、BSD68、Urban100三个常用数据集上测试,并和其它诸多方法进行了对比,效果显著。具体可参考文中实验结果表,以及PSNR和计算时间的对比,显然它表现在几个方法中最优,且计算也不慢:
FOCNet
代码中,FracDCNN.m
定义了添加网络模块的函数,以及定义了本文的FOCNet,FracDCNN_train_dag.m
则包含了训练的过程设置
优点
- 通过引入分数阶ODE,网络前向后向传播过程中都有一定的长期记忆能力
- 利用多尺度特征交互,即网络分层的形式,加强了网络性能
- 方程做成网络,是残差的形式,训练也好弄
- 实验表示去噪的视觉效果和指标都不戳
思考
图像去噪的过往方法:PDE-based,稀疏编码(可能是GAN一类的)、低秩估计(分解),etc
而过去的方法很多对图像先验的假设是有限的
那么是否对于general的去噪,先验的作用要削弱;对于specific的去噪任务,自适应加强先验呢❓大概是的,应该有不少工作是要自适应学习图像的先验信息,这个模块不能丢掉
既然分数阶ODE记忆长期,那么分数阶ODE会有混沌么❓
FOCNet也是堆积了网络模块,但其实不是动态网络,结构还是固定的
能不能糅合DnCNNs、FOCNet、动态网络得到动态+残差+BN+分数阶方程。。。是不是在瞎搞❓也没啥创意。。。
参考文献
[1] X. Jia, S. Liu, X. Feng, and L. Zhang. Focnet: A fractional optimal control network for image denoising. In 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 6047–6056.
1 | @inproceedings{RN45, |