当前课程知识点:刑侦视频图像处理 > 第3章 图像超分辨率重建技术 > 3.4基于深度学习的图像超分辨率重建 > 3.4基于深度学习的图像超分辨率重建
同学们大家好
这一节我们来讲基于深度学习的
图像超分辨率重建
我们主要讲两个内容
一 卷积神经网络
二 经典的超分辨率重建算法
卷积神经网络是
一类包含卷积计算
且具有深度结构的前馈神经网络
是深度学习的代表算法之一
可以进行
监督学习和非监督学习
并被应用于计算机视觉
自然语言处理 通信等领域
卷积神经网络与普通神经网络
非常相似
它们的相同点是
他们都具有可学习的权重w
和偏置常量的神经元组成
普通神经网络里的一些计算技巧
这里依旧适用
他的不同之处在于
卷积神经网络是
具有三维体积的神经元卷积网络
利用输入是图片的特点
把神经元设计成三个维度
即深度 高度和宽度
注意一下这里的
深度不是神经网络的深度
而是用来描述神经元的
比如输入的图片大小是
3x32x32的rgb彩色图像
那么输入神经元
也就具有了3x32x32的维度
我们以图像分类为例
从四个方面来说明
卷积神经网络的结构
首先 卷积层
什么是卷积
图像中不同数据窗口的数据
和卷积核做内积的操作叫做卷积
卷积的计算过程又称为滤波
本质是提取图像的特征
那么什么是卷积核呢
卷积核也称为滤波器
通常是n*m的二维矩阵
n和m是神经元的感受野
n*m 矩阵中存放的是
对感受野中数据处理的系数
每个卷积核的参数都是通过
反向传播算法优化得到的
卷积运算的目的是
提取输入的不同特征
第一层卷积层可能只能
提取一些低级的特征
如边缘 线条和角等层级
更多层的网络能从低级特征中
迭代提取更复杂的特征
通过卷积层从原始数据中
提取出新的特征的过程
称为特征映射
那么什么是激活层呢
卷积层对原图运算多个卷积
产生一组线性激活响应
而激活层是对之前的结果
进行一个非线性的激活响应
也就是说激活函数的作用
是用来加入非线性因素
把卷积层输出结果
做非线性映射
常见的激活函数
tanh、sigmoid和relu是
三种非线性函数
实际应用中
激活函数大多采用relu函数
relu的作用是
如果计算出的值小于零
就让他等于零
否则就保持原来的值不变
这种简单粗暴的
强制某些数据为零的方法
使训练后的网络具备适度的稀疏性
同时大大提高了训练速度
池化层的引入是
仿照人的视觉系统对
视觉输入对象进行降维和抽象
最大的作用就是减少数据量
研究者普遍认为
池化层有如下三个功效
一
池化操作使得模型更加关注
是否存在某些特征
而不是特征具体的位置
二池化相当于在空间范围内
做了维度约简
从而使模型可以抽取
更加广范围的特征
同时减小了下一层的输入大小
进而减少计算量和参数个数
三
在一定程度上
防止过拟合更方便优化
池化分为两种
Max pooling最大池化
average pooling平均池化
顾名思义
最大池化就是取最大值
平均池化就是取平均值
其中最大池化最为常见
卷积取的是局部特征
全连接就是把以前的局部特征
重新通过权值矩阵
组装成完整的图
因为用到了所有的局部特征
所以叫全连接
全连接层要做的就是
对之前的所有操作进行一个总结
对特征图进行维度上的改变
来得到每个分类类别
对应的概率值
卷积神经网络主要由两部分组成
一部分是特征提取
即卷积 激活函数 池化
另一部分是分类识别
即全连接
对于超分辨率重建的任务
其网络结构与识别的结构不同
一般情况下不包含全连接层
下面我们就看看几个经典的
基于卷积神经网络的
超分辨率重建算法
Srcnn是深度学习用在
超分辨率重建上的开山之作
Srcnn的网络结构非常简单
仅仅用了三个卷积层
网络结构如下图所示
Srcnn首先使用双三次插值
将低分辨率图像放大成目标尺寸
接着通过三层卷积网络
拟合非线性映射
最后输出高分辨率图像结果
作者将三层卷积的结构
解释成三个步骤
图像块的特征
图像块的提取和特征表示
特征非线性映射和最终的重建
三个卷积层使用的
卷积核的大小分别为
9x9 1x1和5x5
前面两个输出特征个数
分别为64和32
使用均方误差作为损失函数
用set91数据集和I
mageNet大数据集
进行训练后获得了
当时最高的PSNR值
第二个网络是FSRCNN
他跟srcnn是同一个作者
他是对之前SRCNN的改进
主要体现在三个方面
一是在最后使用了一个反卷积层
放大尺寸
因此可以直接将
原始的低分辨率图像输入到网络中
而不是像之前
srcnn那样需要先通过
双三次插值方法进行放大尺寸
二是改变特征尾数
使用更小的卷积核和
使用更多的映射层
三是可以共享其中的映射层
如果需要训练不同
上采样倍率的模型
只需要微调最后的反卷积层
由于FSRCNN不需要在
网络外部进行放大图片尺寸的操作
同时通过添加收缩层和扩张层将
一个大层用一些小层来代替
因此FSRCNN与SRCNN相比
有较大的速度提升
FSRCNN在训练时
也可以只微调最后的反卷积层
因此训练速度也更快
FSRCNN与SCRNN的结构对比
如下图所示
FSRCNN可以分为五个部分
一 特征提取
这里直接是对原始的低分辨率图像
进行操作
因此卷积核可以选小一点
设置为5x5
二收缩
通过应用一乘一的卷积核进行降维
减少网络的参数
降低计算复杂度
三 非线性映射
通过m个卷积核大小为
3x3的卷积层进行串联
多个串联的小卷积核需要的参数
比一个大卷积核的参数要小
四扩张
作者发现低纬度的特征
带来的重建效果并不太好
因此应用1x1的卷积核进行扩维
相当于收缩的逆过程
最后是反卷积层
是卷积层的逆操作
如果步长为n
那么尺寸放大n倍
实现了上采样的操作
FSRCNN中激活函数采用PReLU
损失函数仍然是均方误差
对CNN来说
Set91并不足够去
训练大的网络结构
FSRCNN提出用旋转和缩放的策略
来增强数据
获得了数据量的提升
第三个网络是VDSR
作者发现输入的低分辨率图像
和输出的高分辨率图像
在很大程度上是相似的
也就是低分辨率图像携带的低频信息
与高分辨率图像的低频信息相近
训练时带上这部分会花费大量的时间
实际上我们只需要学习
高分辨率图像和低分辨率图像之间的
高频残差部分即可
残差网络结构的思想
特别适合用来解决超分辨率问题
其网络结构如下图所示
VDSR将插值后得到的
变成目标尺寸的低分辨率图像
作为网络的输入
再将这个图像与
网络学到的残差相加
得到最终的网络输出
VDSR主要有四点贡献
1 加深了网络结构
网络结构是20层
使得越深的网络层拥有
更大的感受野
文章选取3x3的卷积核
深度为D的网络拥有
(2D+1)×(2D+1)的感受野
二采用残差学习
残差图像比较稀疏
大部分值都为零或者比较小
因此收敛速度快
VDSR还应用了
自适应梯度裁剪的方法
将梯度限制在某一范围内
这也能够加快收敛过程
VDSR在每次卷积前
都对图像进行了补零操作
这样保证了所有的特征图和
最终的输出图像
在尺寸上都保持一致
解决了图像通过逐步卷积
会越来越小的问题
文中说
实验证明补零操作对边界像素的
预测结果也会能够得到提升
第4 VDSR将不同倍数的图像
混在一起进行训练
这样训练出来的一个模型
就可以解决不同倍数的
超分辨率问题
第五个模型是SRDenseNet
DenseNet是CVPR2017的
best papaer论文奖
DenseNet在稠密块中将每一层的
特征都输入给之后的所有层
使所有层的特征都串联起来
而不是像ResNet那样直接相加
这样的结构给整个网络带来了
减轻梯度消失问题
加强特征传播
支持特征复用
减少参数数量的优点
一个稠密块的结构
如下图所示
SRDenseNet将稠密块结构
应用到了超分辨率问题上
其网络结构如图所示
该网络可以分成四个部分
首先是用一个卷积层学习低层的特征
接着用多个稠密块儿学习高层的特征
然后通过几个反卷积层
学到上采样的滤波器参数
最后通过一个卷积层
生成高分辨率输出
文章中针对用于最后重建的
输入内容不同
设计了三种结构并做了比较
一是反卷积层只输入
最顶层稠密块的输出
二是添加了一个跳跃连接
将最底层卷积层的输出特征和
最顶层稠密块的输出特征
串联起来
再输入反卷积层
三是添加了稠密跳跃连接
就是把稠密块看成一个整体
第一个卷积层的输出
以及每个稠密块的输出
都输入给在之后的所有稠密块
像是把在反卷积层之前的整个网络
也设计成像稠密块那样的结构
由于这样的操作
所有的特征都串联起来
这样直接输入反卷积层会
产生巨大的计算开销
因此添加了一个
核大小为一乘一的卷积层
来减小特征数量
这个卷积层被称为瓶颈层
最后的实验结果表明
网络越复杂,效果越好
策略三优于策略二
策略二优于策略一
文章中分析了原因是
受益于低层特征和高层特征的结合
超分辨率重建的性能得到了提升
像第三种结构
把所有深度层的特征都串联起来
得到了最佳的结果
说明不同深度层的特征之间
包含的信息是互补的
第五个模型是SRGAN
在这篇文章中将生成对抗网络
用在了解决超分辨率问题上
文章中说
训练网络时
用均方误差作为损失函数
虽然能够获得很高的峰值信噪比
但是恢复出来的图像
通常会丢失高频细节
使人不能有很好的视觉感受
SRGAN利用感知损失和对抗损失
来提升恢复出的图片的真实感
感知损失是利用
卷积神经网络提取出的特征
通过比较生成图片
经过卷积神经网络后的特征和
目标图片经过卷积神经网络后的
特征的差别
使生成图片和目标图片在语义和
风格上更相似
SRGAN网络的结构如下图所示
G网通过低分辨率的图像
生成高分辨率图像
由D网判断拿到的图像是由
G网生成的还是数据库中的原图像
当G网能够成功骗过D网的时候
那么我们就可以
通过这个GAN完成了超分辨率重建
文章中用均方误差优化SRGAN的
生成网络部分
能够得到
具有很高的峰值信噪比的结果
在训练好的vgg模型的高层特征上
计算感知损失函数
来优化SRGAN
并结合SRGAN的判别网络
能够得到峰值信噪比虽然不是很高
但是具有逼真视觉效果的结果
在生成网络部分包含多个残差块
每个残差块中包含两个3x3的卷积层
卷积层后接batch normalization层
和PReLU作为激活函数
两个放大两倍的亚像素卷积层
被用来增大特征尺寸
在判别网络部分包含8个卷积层
随着网络层数增加
特征个数也不断增加
特征尺寸不断减小
选取激活函数为LeakyReLU
最终通过两个全连接层和
最终的sigmoid激活函数
得到预测为自然图像的概率
文章中的实验结果表明
SRGAN得到的结果有更好的视觉效果
这一节我们给大家讲了
几个经典的超分辨率重建算法
希望同学们课后对照文章
来更深入的理解
我们经典算法的精妙之处
好 谢谢各位同学
-1.1 绪论(上)
--1.1绪论(上)
-1.2 绪论(下)
-第1章测试
-2.1 光照不良图像增强处理(上)
-2.2 光照不良图像增强处理(下)
-第2章习题
-3.1图像超分辨率重建技术概述
-3.2基于插值的图像超分辨率重建
-3.3基于深度学习的图像超分辨率重建之神经网络
-3.4基于深度学习的图像超分辨率重建
-3.5基础知识介绍
-3.6压缩感知与超分辨率重建
-3.7基于压缩感知字典学习的超分方法
-第3章测试一
-第3章测试二
-4.1引言-什么是HDR图像
-4.2 概述-HDR图像处理的研究内容
-4.3HDR图像获取—多曝光融合
-4.4色调映射基础
-第4章测试题
-5.1图像水印技术概述
-5.2图像单水印技术
-5.3图像双水印技术
-第5章测试题
-6.1图像检索概述
-6.2词袋(BOW)特征描述
-6.3VLAD特征编码
-6.4PCA降维
--6.4PCA降维
-7.1 监控视频编码的作用
-7.2 监控视频编码的标准
-7.3 监控视频编码标准
-第7章测试
-8.1运动目标检测
-8.2运动目标跟踪
-第8章测试题
-9.1高光谱图像基础知识
-9.2高光谱图像的应用
-9.3高光谱图像处理
-第9章测试题
-10.1现勘足迹的基本知识
-10.2现勘足迹提取方法
-10.3结构光测量技术概况
-10.4结构光提取原理
-10.5现勘三维现场重建技术
-10.6基于二维图像的三维现场重建
-10.7基于深度信息的三维现场重建
-10.8应用案例
--10.8应用案例
-第10章测试题
-11.1研究背景与意义
-11.2图像预处理技术
-11.3基于LBP纹理的鞋印检索
-11.4基于SIFT特征的鞋印检索
-第11章测试题
-12.1什么是案件的智能串并?
-12.2实现智能串并案的机遇与挑战
-12.3智能串并案的实现策略与方案
-12.4真实案件智能串并的实现
-第12章测试题
-13.1刑侦模拟画像概述
-13.2 刑侦模拟画像计算机辅助系统
-13.3刑侦模拟画像计算机辅助系统:两维三维画像辅助
-第13章测试题