Paddle是百度开发的机器学习框架,之前没学过机器学习的其他框架(tf,咖啡等),没办法比较。
学习一个形象感觉上手难度还行,适合新手学习,百度AI stdio提供免费的Gpu cpu资源,里面有公开的项目可以提供学习。
SRCNN 即基于CNN(卷积神经网络)对图像经行超分辨率重建,训练过程为有监督学习。训练数据集为高分辨率原图,训练过程中将原图进行分割后降采样,得到低分辨率图像。
原论文《Single Image Super-Resolution Using Deep Learning》,卷积网络模型为三层卷积层。
srcnn.jpg
def net(self, X, Y):

    # 搭建模型           
    conv1 = fluid.layers.conv2d(X, 64, 9,act='relu', name='conv1' , 
                                param_attr= fluid.ParamAttr(initializer=fluid.initializer.NormalInitializer(scale=0.001),
                                                           name='conv1_w'),
                                bias_attr=fluid.ParamAttr(initializer=fluid.initializer.ConstantInitializer(value=0.),
                                                           name='conv1_b'))
    print("conv1_shape: {}".format(conv1.shape)) 
    conv2 = fluid.layers.conv2d(conv1, 32, 1, act='relu', name='conv2' , 
                                param_attr= fluid.ParamAttr(initializer=fluid.initializer.NormalInitializer(scale=0.001),
                                                           name='conv2_w'),
                                bias_attr=fluid.ParamAttr(initializer=fluid.initializer.ConstantInitializer(value=0.),
                                                           name='conv2_b'))
    print("conv2_shape: {}".format(conv2.shape))
   * pred = fluid.layers.conv2d(conv2, 1, 5, name='pred', 
                                param_attr= fluid.ParamAttr(initializer=fluid.initializer.NormalInitializer(scale=0.001),
                                                           name='pred_w'),
                                bias_attr=fluid.ParamAttr(initializer=fluid.initializer.ConstantInitializer(value=0.),
                                                           name='pred_b'))  
    print("pred_shape: {}".format(pred.shape))     
    loss = fluid.layers.reduce_mean(fluid.layers.square(pred - Y))        
    return pred, loss

第一层卷积层参数为
输入 低分辨率图像33*33(分割后降采样)
卷积核为9*9
卷积核个数为64
激活函数 relu
输出conv1_shape: (-1, 64, 25, 25)

第二层卷积层参数为
输入 第一层输出
卷积核为1*1
卷积核个数为32
激活函数 relu
输出conv2_shape: (-1, 32, 25, 25)

第三层卷积层参数为
输入 第二层输出
卷积核为5*5
卷积核个数为1
激活函数 pred
输出pred_shape: (-1, 1, 21, 21)

该模型对彩色图像的单通道进行训练,前两层卷积学习率为0.0001,最后一层学习率为0.00001
学习率是按论文来的,没改过

AI studio上原项目名称为 用PaddlePaddle实现SRCNN网络超分辨率重建 ,里面实现了单通道和三通道的模型,非常详细的注释,易于学习。
之后希望用于毫米波成像超分辨率重建,目前在知网上看到的论文中有
[1]沈松. 基于深度学习的毫米波无源成像超分辨算法研究[D].电子科技大学,2019.
[2]张棋筌. 毫米波及太赫兹无源探测成像超分辨算法研究[D].电子科技大学,2018.
[3]赵春林. 战场目标毫米波辐射特性及无源成像超分辨算法研究[D].电子科技大学,2017.

其中使用的毫米波成像方法均属于 无源成像(被动成像),三篇硕士论文都出自电子科技大学,里面对常见的超分辨方法经行比较,提出了深度神经网络模型。有参考价值。