介绍·
普通的图像反卷积是否与深度学习中的反卷积相同?不要愚蠢,无法说出区别!实际上,它们根本不是相同的概念
图像反卷积
对反卷积的最早支撑是由于图像deNoing和Defuzzing。当分类图像时,将使用反卷积技术。那是真正的反卷积计算,可以估计内核,并且将有非常复杂的数学推导,该导数主要用于图像预处理和数字信号处理。从本质上讲,反卷积是一种图像恢复技术。典型的图像模糊可以看作是图像卷积操作的结果。将模糊的图像恢复到清晰的图像中的过程通常称为Defuzzy Technology。根据Blur的类别,可以将其分为Motion Blur和Defocus Blur。 OPENCV支持对这两个模糊图像的反卷积处理,以获得清晰的图像。反卷积的基本原理是将图像转换为频域,并通过估算图像的内核函数,在乘以频域的图像点之后,重新回顾图像信息并返回到空间域。主要操作在频域中。转换是通过离散的傅立叶(DFT)转换和反变形的,并且通过Wiener过滤处理获得了反模糊信息。 OPENCV使用Wiener过滤支持Defuzzy,但参数调整是一个大坑。基本上,每个图像的参数都是不同的,并且很难获得相同的结果。近年来,图像抗模糊逐渐由深度学习方法领导。人们知道,OpenCV提供的功能变得越来越少,主要是因为它们的多功能性非常差。发布图片:
OPENCV抗模糊后的效果:
深度学习中的反卷积
深度学习中的典型网络是卷积神经网络,可以在图像分类和对象检测中获得良好的结果。但是,在语义分割任务中,网络模型涉及提升采样操作,最常见的方法是通过填充0或最近的邻居插值来完成UPSPLAPTION。在2015年ICCV的一篇论文中,提出了一个可学习的反卷积网络。不再简单地填充0或最近的邻居插值方法来完成UP的采样,从而使整个过程都可以学习,并且训练UPS采样过程在图像语义分割网络中实现。论文中提到的反卷积操作实现上提到的采样与图像处理中图像分解的反卷积实现基本不同。更准确的反卷积陈述应是转置卷积。
卷积操作·
该图中的第二行是卷积和反向卷积的示意图。以下是一个简单的示例来解释上图的内容。假设有一个4x4大小的二维矩阵D和一个3x3尺寸的卷积内核C。该图如下:
直接输出具有上述卷积操作的2x2结果的矩阵(不考虑边缘填充)
2x2卷积的输出结果来自第二行的像素位置的相应输出和D中的第二列。
0x3+1x3+2x2+2x0+2x0+0x1+0x3+0x1+1x1+2x2 = 12,可以看出,卷积操作是通过将矩阵上的相应位置点乘以卷积内核来获得的输出。对于d = 4x4尺寸的矩阵,它从从头到底部扩展,从上到下,以获得16个维的向量,如下所示:
我们还可以表达3x3卷积内核如下:
为了获得卷积内核4x4的向量表示,我们可以用零填充零件的其余部分kaiyun全站网页版登录,因此卷积内核在D上移动的位置以及相应的一维矢量表示如下:如下:
考虑到卷积内核C和D的点是相关的,它们也可以以以下形式编写:
用实际的卷积内核C替换上述卷积内核中的字符表示,并获得:
因此,上述卷积操作可以简单地写为:
重新排序后,您将获得上述2x2输出结果。
转置卷积:
现在,我们有了2x2数据块开yun体育app官网网页登录入口,我们需要通过卷积操作完成UPSLEPTION,以获得4x4数据矩阵。如何完成此类操作非常容易。我们将2x2转换为1x4矢量E,然后转换为卷积内核C,然后乘以它,这意味着我们获得了16维矢量。重新安排后,我们将获得一个4x4数据块。这是深度学习中卷积和反卷积的最易于理解的解释。
最终的解释是一维的转置卷积
什么!我还不明白,所以我最终只能使用一个终极举动!我举了一个一维转移卷积的例子:
有一个先决条件,您必须首先了解哪些基本概念是卷积,一维卷积,二维卷积和其他基本概念。这个示例非常直接。我以Excel进行了画,首先看图片:
让我解释说,一维卷积最初是1xn,但它变成了NX1。然后,输入数据还乘以卷积内核点。点如下。如果有重叠的零件,只需将它们添加在一起。该部分也可以通过代码进行验证和证明。 Pytorch的代码演示如下:
你好
来自__future__importprint_function
ImportTorch
Expientnumpyasnp
#enter一维数据
d = torch.tensor([1.,2。])
#一维卷积内核
f = TORCH.TENSOR([[3.0,4.0])
#维度转换DD
d = d.view(1,1,2)
F = F.View(1,1,2)
#1D转置卷积
ct1d = torch.nn.convtranspose1d(in_channels = 1,out_channels = 1,kernel_size = 2,stride = 2,bias = 0)
CT1D.WEEPT = TORCH.NN.PARAMETER(F);
#打印出
打印(“输入数据:”,D)
打印(“输出提升结果:”,CT1D(d))
操作结果如下:
根据我的手绘Excel图,您可以想到:
[x,y] = [1,2]云开·全站体育app登录,卷积内核[a,b] = [3,4],输出结果[ax,bx,ay by] = [3,4,6,8]
这是卷积的卷积!我现在不明白我真的做不到!
参考:
2015 ICCV论文“学习语义分割的学习卷积网络”
OPENCV4系统学习
深度学习的系统学习

