卷积和反卷积
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积和反卷积相关的知识,希望对你有一定的参考价值。
参考技术A 卷积是通过Filter提取原图像的特征,Filter会随着梯度下降提取出图像的主要特征。如图:再看看下图卷积是如何进行运算的:
细节过程:
我们将上述过程用矩阵表示一下
Filter:
你可能在想这些蓝色的0是怎么来的?看图:
那么卷积的运算就可以用矩阵表示为:
其结果和细节过程中的output是一样的。接下来我们介绍反卷积。
反卷积,输入图片的特征,输出图片,起到通过特征还原原图的作用。如图:
有了上面的Convolution Matrix(4x16),我们对它进行transpose得到Transposed Convolution Matrix(16x4)然后进行如下操作:
神奇的事情发生了:通过Transposed Convolution Matrix 的矩阵乘法,我们将input的特征转变成了与原图类似结构的图像。这样一来只要我们通过训练去调整Transposed Convolution Matrix中的weight,就可以通过特征尽可能的还原原图。
小伙伴们如果觉得文章还行的请点个赞呦!!同时觉得文章哪里有问题的可以评论一下 谢谢你!
基于深度卷积神经网络和跳跃连接的图像去噪和超分辨
Image Restoration Using Very Deep Convolutional Encoder-Decoder Networks with Symmetric Skip Connections
作者:Xiao-Jiao Mao、Chunhua Shen等
本文提出了一个深度的全卷积编码-解码框架来解决去噪和超分辨之类的图像修复问题。网络由多层的卷积和反卷积组成,学习一个从受损图像到原始图像的端到端的映射。卷积层负责特征提取,捕获图像内容的抽象信息,同时消除噪声/损失。相对应,反卷积层用来恢复图像细节。
网络结构
在底层图像修复领域,由于池化操作会丢失有用的图像细节信息,因此,本网络没有用到池化层,是一个全卷积的网络结构。
卷积层的特征图和与之相应成镜像关系的反卷积层特征图进行跳跃连接,对应像素直接相加后经过非线性激活层然后传入下一层。
受 VGG 模型的启发,卷积核大小都设置为为 3*3。另外,由于网络结构本质上是一个像素级的预测,因此输入可以是任意大小的图片,输出和输入保持一致。
反卷积解码器
在全卷积的情况下,噪声一步步地被消除。经过每一个卷积层后,噪声等级减小,图像内容的细节也可能会随之丢失。在本篇论文提出的结构中,卷积层保留了主要的图像内容,而反卷积层则用来补偿细节信息,可以达到良好去噪效果的同时较好地保留图像内容。
另一方面,卷积层逐渐减小特征图的大小,反卷积层再逐渐增大特征图的大小,最终确保输入输出大小一致,也可以保证在移动端计算能力有限情况下的测试效率。
跳跃连接
正如残差网络的设计初衷,跳跃连接可以解决网络层数较深的情况下梯度消失的问题,同时有助于梯度的反向传播,加快训练过程。
通过传递卷积层的特征图到反卷积层,有助于解码器拥有更多图像细节信息,从而恢复出更好的干净图像。
针对输入噪声图像 X 和输出干净图像 Y,本网络致力于学习一个残差即 F(X) = Y - X。
讨论
实验 (a) 对比有无跳跃连接情况下 PSNR 随迭代次数的变化,可以看到有跳跃连接的情况下 PSNR 有显著提高。
实验 (b) 对比不同网络结构下 Loss 值随迭代次数的变化,可以看到在同等层数的网络下,有跳跃连接时 Loss 值相对要小很多。
实验 (c) 对比一般的残差网络(由一系列的残差块组成)和本文提出的网络情况下 PSNR 随迭代次数的变化,可以看到本文中提出的这种跳跃连接方式可以获得更好的 PSNR。
网络的大容量使得本文提出的结构能够处理不同噪声等级的图像去噪问题和不同尺寸参数的超分辨问题。
实验
因为本网络的卷积核仅仅是为了消除噪声,因此对图像内容的方向不敏感。所以,在测试的时候,我们可以旋转或者镜像翻转卷积核进行多次前向传播,然后对多次的输出取平均从而得到一个更平滑的结果。
图像去噪的实验结果对比
图像超分辨的实验结果对比
可以看到,RED-20, 10 层卷积 10 层反卷积的情况下已经取得了比传统方法好的效果,而且加深网络之后还可以取得更好的效果。
噪声等级越大,本文中提出的网络比其他网络的提高幅度就越大,也就是优势越明显。
微信关注「seniusen」,获取更多精彩!
以上是关于卷积和反卷积的主要内容,如果未能解决你的问题,请参考以下文章
使用 scipy.signal 在 Python 中进行卷积和反卷积