傅里叶变换和卷积与图像滤波的关系

的朋友,大家好,我是Alvin,从这篇文章开始,我会慢慢把微信公众号中我觉得写的还可以的内容搬到上来,同时也欢迎大家关注我的微信公众号:机器学习和数学

傅里叶变换和卷积与图像滤波的关系_第1张图片
微信公众号

之所以要这样做,是发现了公众号确实有它的不足,就是之前写的内容,很少会被后面关注的朋友看到。不过以后我会保持同步更新。也希望大家能多提意见,一起学习,一起进步!




一、Fourier变换

在我看来,如果把某个东西给一个只有高中生水平的人讲不清楚,那么就是失败的。所以先来回忆一下,高中的时候我们学习的函数,函数是什么?y=f(x), 专业点就扯出了映射的概念,也就是x到y的一一映射,f叫对应法则。而下面的积分变换,说到底也是一种函数,只不过他的对应法则是一个积分。好,接下来看我们的傅里叶Fourier变化是什么鬼。教材上说,Fourier变换是一种对连续时间函数的积分变换,它通过特定形式的积分建立了函数之间的关系。用我的话来说,把“红玫瑰”变为“路易十四”就是Fourier变化。哈哈,其实这里的“红玫瑰”和“路易十四”代表了两个函数的名字而已。他们都是玫瑰花,只不过品种不一样。那“红玫瑰”怎么变为“路易十四”呢,这里给这个变化取了个数学er的名字,叫积分变化,顾名思义,通过积分把他们转换一下。但是直接积分好像太无聊了,所以数学家给“红玫瑰”搭配了一个“伴娘”,这个伴娘的名字叫“核”。所以就是“红玫瑰”+“核” ==>“路易十四”。形式化的写为

傅里叶变换和卷积与图像滤波的关系_第2张图片

其中“红玫瑰”叫象原函数,“路易十四”叫象函数。

用数学的语言来描述就是:


积分变换

下面这个图是比较正式的定义,不再是“红玫瑰”之类的了,自行对照即可。需要说的是,下面的“伴娘”是一个指数形式,听过欧拉公式的小伙伴应该知道怎么把指数形式变为三角形式,聪明的你一定明白我的意思,这里了解即可!既然学习了Fourier变换,那顺便就把Laplace变换也了解一下,他们的区别只不过是变化之后自变量的定义域不同。但是Laplace变换在卷积神经网络里面貌似很少见,至少我还没见到哪里用了。恩,我就是说一下。

傅里叶变换和卷积与图像滤波的关系_第3张图片

了解了Fourier变化,就引出了Fourier逆变换。其实很简单就是由“路易十四”到“红玫瑰”的变换过程。看一下定义7.1,这个不需要记的哈,重点是了解这个概念。

傅里叶变换和卷积与图像滤波的关系_第4张图片

二、卷积

聊完了Fourier变换,接下卷积就是顺理成章了,我不打算按照一般的介绍,从频域,空域的角度,扯了一大堆。那些是做信号处理的比较擅长的,我不是特别清楚,也就不多说什么。我们学习卷积的目的是为了后面卷积神经网络服务的。所以了解概念即可。

下图来自于维基百科,f和g的卷积定义为:

                                             f star g =积分变换{f乘g}

我们暂且可以把f star g定义为F,那么和刚才说的Fourier变换不就是一个形式了,这里的f就是“红玫瑰”,g就是“伴娘”。F就是“路易十四”。好吧,这是最后一次提“红玫瑰”,&“伴娘”&“路易十四”。

傅里叶变换和卷积与图像滤波的关系_第5张图片

三、图像与滤波

首先我们这里讲的图像指的是数字图像,即图像是由离散的数字组成的(和数字图像对应的叫做连续图像或者模拟图像,其像素值在空间和亮度为连续的)。对于彩色图,表现为3通道的彩色值,其通道数为3,每个点的值代表RGB每种颜色的值;对于灰度图,其通道数为1,每个点上的值代表其深度,也把它叫做灰度值。而这里的滤波特指数字图像的滤波,事实上,滤波在信号处理领域无处不在。图像滤波是指在保留原来图像特征,纹理的基础上,去掉噪声的一种图像处理方法。这里你可能会问,噪声是什么?要理解噪声,不妨换个角度,一般来说,噪声和图像所对应的频率是不一样的(不一样暗示噪声的频率可能比图像实质的频率高也可能比真实的图像频率低)。去噪声是为了提高图像的信噪比,突出图像中的期望得到的区域,比如纹理,边界等。而频率是彩色值或者灰度值的变化情况,这里可以联想一下斜率的概念,我觉得这是类似的。而下面要讲的频域(频率域)方法,正是按照处理对象的不同而区分的。然后,我们所处理的图像,从统计的角度讲,其实就是一个随机变量的分布。而不同的彩色值或者灰度值就代表了不同的分布。从这个角度讲就引出了空间分布,对应下面的空域(空间域)方法。

小结一下,频率域处理是指先将图像变化到频域,再做滤波等处理;而空间域处理是指直接对原始的像素空间进行计算。频率域处理是一种间接的图像处理方法,而空域是一种直接的处理办法,操作的对象是像素值。另外对于滤波的分类并不是唯一的,一般有频域和空域,高通滤波和低通滤波,线性滤波和非线性滤波三类。这里只介绍按照频域和空域分有哪些方法。

频域方法

刚才讲了频域方法需要先将图像变换到频域,那么问题来了,怎么变换到频域?注意了,这里是个坑点!!!首先变换的方法同样有很多,常用的是快速傅里叶变换。而快速傅里叶变换得益于昨天没讲的卷积定理。卷积定理其实就一句话,至于证明有兴趣的自己去背书- * -;

卷积定理:

傅里叶变换和卷积与图像滤波的关系_第6张图片

这个定理可以表述为:时域上的卷积等于频域上的乘积

对应于时域(也就是图像的空域)

傅里叶变换和卷积与图像滤波的关系_第7张图片

对应于频域。所以将我们的图像f1和滤波器f2(“核”)通过快速傅里叶变换(暂且认为是一种傅里叶变换)变换到频域后,直接将他们相乘,最后再变换回空间域。关于频域的方法,根据功能划分可以分为平滑滤波和锐化滤波,【了解】平滑滤波:能减弱或者消除图像中高频率分量,但不影响低频率分量,在实际应用中可用来消除噪声。锐化滤波:与平滑滤波相反,能减弱或者消除图像中低频率分量,但不影响高频率分量,可使图像反差增加,边缘明显。这里提一下主要的方法以及在opencv中实现的方法。均值滤波:blur();高斯滤波:GaussianBlur();方框滤波:boxblur();中值滤波:medianBlur(); 双边滤波:bilateralFilter()。

空域方法

空域方法就是直接对原始像素值进行操作的方法。而卷积神经网络中的卷积正是如此。频域方法中提到一个问题就是“核”,这个“核”就是我们后面在卷积神经网络中要讲的卷积核。(在图像滤波里叫做滤波器,也就是通过这个器,可以把一部分波过滤掉,如果滤掉了低频波保留高频波,就叫高通滤波,反之就是低通滤波。而滤波器的种类也有很多)从数学的角度讲,卷积神经网络中的卷积核就是一个矩阵, 卷积核的大小就是矩阵的维度。和原始图像像素做运算的卷积核的值就是经常说的初始化。

回归到图像卷积中,这里贴一个别人总结的一个计算步骤:

(1)卷积核绕自己的核心元素顺时针旋转180度

(2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方

(3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘

(4)第三步各结果的和做为该输入像素对应的输出像素

第一步做旋转,这里我不知道它做旋转的意义是什么,如果有知道的可以给我公众号或者微信留言!万分感谢!第二部移动,移动的目的是为了第三步与对应位置的像素相乘,第四步就是一个求和的过程。

总结

总结一下,说了这么多就是想说一件事情,图像滤波,尤其是图像的卷积运算是卷积神经网络的基础。作者当初学习卷积神经网络的时候,并不知道这些,学习的过程那叫一个心累啊!当然卷积神经网络发展到现在,已经不仅仅应用在图像领域,它在文本,视频等各个方面都有应用。另外一个事情,就是里面涉及的一些概念,因为时间原因(lan),公式比较多(lan),涉及范围广(lan),需要各位看官再继续查资料。

这里是几个比较好的网络资源,供大家参考!


[参考文献]

http://blog.csdn.net/zouxy09/article/details/49080029(推荐)

http://blog.csdn.net/augusdi/article/details/20041643

http://m.blog.csdn.net/article/details?id=51321109

https://yq.aliyun.com/articles/852

你可能感兴趣的:(傅里叶变换和卷积与图像滤波的关系)