数字图像处理的基本方法_第1页
数字图像处理的基本方法_第2页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、图像的预处理技术图像处理按输入结果可以分为两类,即输入输出都是一副图像和输入一张图像输出不再是图像的数据。图像处理是个很广泛的概念,有时候我们仅仅需要对一幅图像做一些简单的处理,即按照我们的需求将它加工称我们想要得效果的图像,比如图像的降噪和增强、灰度变换等等。更多时候我们想要从一幅图像中获取更高级的结果,比如图像中的目标检测与识别。如果我们将输出图像中更高级的结果视为目的的话,那么我们可以把输入输出都是一幅图像看作是整个处理流程中的预处理。下面我们将谈到一些重要的预处理技术。(一)图像增强与去噪图像的增强是一个主观的结果,原来的图像按照我们的需求被处理成我们想要的效果,比如说模糊、锐化、

2、灰度变换等等。图像的去噪则是尽可能让图像恢复到被噪声污染前的样子。衡量标准是可以度量的。不管是图像的增强与去噪,都是基于滤波操作的。1滤波器的设计方法滤波操作是图像处理的一个基本操作,滤波又可分为空间滤波和频域滤波。空间滤波是用一个空间模板在图像每个像素点处进行卷积,卷积的结果就是滤波后的图像。频域滤波则是在频率域看待一幅图像,使用快速傅里叶变换将图像变换到频域,得到图像的频谱。我们可以在频域用函数来保留或减弱/去除相应频率分量,再变换回空间域,得到频域滤波的结果。而空间滤波和频域滤波有着一定的联系。频域滤波也可以指导空间模板的设计,卷积定理是二者连接的桥梁。(1)频域滤波使用二维离散傅里叶变

3、换(DFT)变换到频域:F(u,v)=f(x,y)e-i2兀(ux/M+vy/N)x=0y=0使用二维离散傅里叶反变换(IDFT)变换到空间域:f(x,y)=F(u,v)ei2兀(ux/M+vy/N)MNu=0v=0在实际应用中,由于该过程时间复杂度过高,会使用快速傅里叶变换(FFT)来加速这个过程。现在我们可以在频域的角度看待这些图像了。必须了解的是,图像中的细节即灰度变化剧烈的地方对应着高频分量,图像中平坦变化较少的地方对应着低频分量。图像中的周期性图案/噪声对应着某一个频率区域,那么在频域使用合适的滤波器就能去除相应的频率分量,再使用傅里叶反变换就能看到实际想要的结果。不同的是,在频域的

4、滤波器不再是做卷积,而是做乘积,因为做乘法的目的在于控制频率分量。比较有代表性的有如下几个滤波器高斯低通滤波器H(u,v)=e-D2(u,v)/2BD是距离频率矩形中心的距离。该滤波器能保留低频分量,逐渐减小高频分量,对原图像具有模糊作用。高斯高通滤波器H(u,v)=1-e-D2(u,v)/2D02可以看出高斯高通滤波器就是高斯低通滤波器的一个上下对称的函数,同理,该滤波器可以保留高频分量,减小低频分量,对图像有锐化的效果。陷波滤波器H(u,v)=rfH(u,v)H(u,v)k-kk=1陷波滤波器就是这样的一些高通滤波器的乘积。每个高通滤波器的中心都被移至希望抑制的频率处,达到选择性滤波的目的

5、。这只是几种典型的滤波器,为了实际需求还有很多不同效果的,不管哪种滤波器,都是为了滤除我们不希望存在的频率分量。(2) 空间滤波空间滤波的基础是卷积,用一个滤波的模板对图像做卷积。卷积的离散定义如下:w(x,y)®f(x,y)=工艺w(s,t)f(xs,y-1)s=-at=-b所以,空间滤波就是使用设计好的模板滑过图像,对每一处都进行卷积操作,计算结果就是滤波后的图像。一些简单的空间滤波器,比如均值滤波器、统计排序滤波器、锐化滤波器等等。关于空间滤波器的设计,我们须知道,有些滤波器的设计有着很明显的意义。有些则没有那么不容易理解。有直接意义的比如均值滤波器、统计排序滤波器,这类的都很

6、好理解,均值滤波器就是对某个像素的邻域内像素取均值,很容易知道取完均值就能将该像素与邻域像素处灰度接近,也就达到了平滑图像的目的。统计排序滤波器的作用是将一个邻域内的灰度排序后的中值替代中心像素值。可以想象,脉冲噪声可以被轻易的去除。那么在空间滤波器没那么容易直接设计的时候,其实它的设计是和频域滤波密切相关的。下面我们介绍其原理。首先我们介绍一下卷积定理:f(x,y)®h(x,y)oF(u,v)H(u,v)双箭头代表傅里叶变换对,即两个函数在空间里的卷积的傅里叶变换等价于它们各自傅里叶变换的乘积。由卷积定理可以知道,在频域进行滤波的时候,滤波的结果等于频域滤波器的傅里叶反变换在空间域

7、对图像进行卷积。也就是说我们可以通过频域的滤波器得到相应的空间滤波器。在这个对应的过程中,需要对相应的空间函数进行取样,并保证模板中的系数之和为零。一旦找到了适用于某个应用的滤波器,可以使用硬件设备直接在空间域实现该滤波器。2图像去噪(1)均值滤波均值滤波即求某个像素点邻域内像素值的均值,然后赋给该中心点像素。求均值的时候,并不是一定要严格的算术平均值,邻域内像素点可以有不同的权值,但要系数之和为1。均值滤波可以去除由扫描得到的颗粒噪声。但是缺点是会模糊图像。(2)中值滤波算法的原理是将某个像素邻域内的像素值排序,取中值替代中心像素值。是一种非线性平滑滤波器,能将与周围差别过大的像素值替代成为

8、与周围像素值相似的值,可以有效去除椒盐噪声。(3)维纳滤波计算局部方差,局部方差越强,平滑作用越强,可以使得恢复的图像与原始图像的均方误差最小。相对于均值滤波来说,这种方法对保留图像细节即高频分量有不错的效果,不过计算量大,对于白噪声有不错的抑制效果1。(4)小波阈值去噪法这种方法的原理如下,将带噪图像进行小波分解将图像信号分解到各个尺度中,然后把每一尺度中属于噪声的小波系数去掉,保留并增强属于图像信号的系数。最后使用小波逆变换重构出图像。在去掉属于噪声的系数的时候,要预先设定一个阈值,若小波系数小于阈值,则认为该系数主要由噪声引起,则去除这部分系数。反之若大于阈值,则保留。阈值的选取方法如下

9、。全局阈值:九二a.21nNa为噪声标准方差,N为信号长度。除了全局阈值还有局部适应阈值,阈值的选取直接影响到去噪的效果。(5)双边滤波双边滤波器和经典的高斯滤波器一样运用了局部加权平均,不同之处在于双边滤波器的权值由两部分因子的乘积组成,一部分由像素间的空间距离决定,称之为空间临近度因子;另一部分由像素间的亮度差决定,成为亮度像似度因子。双边滤波器比较于经典的低通滤波器来说,具有保持边缘细节的最大优点,同时有不错的去噪能力。二、目标识别一)传统方法1图像特征提取的方法在数字图像处理中,要想对一幅图像做更高级的处理,即不再是输入输出都是图像的话,就需要对图像转换成利于计算机处理的形式。最基本的

10、思想是将图像的特征提取出来,这一个个特征值组合成一个特征向量,用以标识一幅图像,这样就把图像的分类问题转化成了向量的分类问题。值得注意的是,传统方法中的特征提取方法很大程度上是基于问题的。比如汽车车型的识别可以通过识别长宽比与顶棚与车长的比;指纹识别中,脊线上的分叉点和端点又成了我们所关注的特征点;人脸识别中,一种简单的办法是选取鼻尖,嘴角,眼珠这些特征点;识别一个物体是不是苹果,那么可以选取圆度率,形状数,纹理的一致性和平均熵度,颜色等等特征。总的来说,传统方法在解决一系列图像识别问题的时候,要具体问题具体分析。(1)图像分割所谓图像分割是根据灰度、色彩、纹理和几何形状等特征把图像划分成若干

11、个互不相交的区域,使得在同一区域内的特征具有相似性,而在不同区域间表现得不同3。灰度图像有两个基本性质:不连续性和相似性。关注图像的不连续性的话,则以灰度突变为基础来分割一幅图像;如果关注相似性的话,则根据预定义的准则将图像分割为相似的区域,这类方法有阈值处理,区域生长,区域分类和聚合等,最实用的是阈值处理技术。 基于灰度突变的边缘检测图像的大部分信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,即图像中会的变化较为剧烈的地方。因此我们把边缘定义为图像中灰度发生急剧变化的区域边界4。目前几种常用的边缘检测算法有基于梯度的边缘检测、高斯拉普拉斯(LoG)算子、坎尼边缘检测算法。1)基于

12、梯度的边缘检测Sobel算子是一种一阶微分算子,通过计算临近像素与中心像素的插值来近似该点的一阶导数。这个过程可以通过一个Sobel卷积模板来实现。该模板形式如下。to算法过程为:对图像进行预处理即平滑操作,通过Sobel模板来计算出每个像素点的梯度,再根据预设的阈值来对梯度值进行取舍。2)高斯拉普拉斯(LoG)算子由于噪声点对边缘检测影响较大,所以由高斯滤波和拉普拉斯算子结合,形成高斯拉普拉斯算子。由高斯函数根据拉普拉斯算子的公式求导可得。1x2+y2_x2+y2LoG(x,y)=_1_e2®KC4L2c2用LoG滤波器对图像进行滤波这个过程实际上是该滤波函数与图像进行卷积。由于高

13、斯拉普拉斯两个操作是线性的,所以这个过程可以变换为先对图像进行高斯低通滤波,再计算其拉普拉斯。C是二维高斯函数的标准差,也称空间常数。在实际应用中,通常用一个二维空间模板来近似LoG,对该函数的值进行取样,并保证模板中各个系数之和为零。下图为一个5X5模板。roo1oo_0121012-16210121000100这个模板可以是nxn的,在做完这一步后,需要寻找零交叉,方法是在每个像素点的3X3领域内,测试左右、上下、两个对角这四对像素值,要求至少有两对满足以下要求:两值符号不同,且两者差的绝对值要大于某个预设的阈值。这时就找到了一个零交叉像素。使用零交叉可以检测出大部分主要的边缘,而滤掉了一

14、些弱的边缘信息。比如粗糙的纹理也会产生的一些“无关”的边缘。3)坎尼边缘检测算法这个算法的主要步骤为:用高斯滤波器平滑输入图像;计算梯度幅度和方向;对梯度幅值图像采用非最大抑制,此举是为了细化边缘;最后使用双阈值处理和连接分析来检测并连接边缘。这个算法的有点事输出的边缘质量很高,保留了主要的边缘,消除了非主要的“伪边缘”,但是算法实现起来更为复杂,运行速度偏慢,可能会满足不了一些应用中的实时性要求。 阈值处理基于阈值法的分割图像是一种十分简单却又有效的分割算法。这种算法根据图像中不同区域具有不同的灰度级这一特性,按照灰度级来对图像进行划分,灰度级相近的被视为同一个区域。在一些注重效率的场合,这

15、种方法得到了广泛的应用5。这里介绍一种最经典的方法,即otsu法,现今的很多新的方法都是在此基础上进行了改进。Otsu法的算法流程如下:1.计算图像的直方图,并标记各个分量。2对各个分量计算分到类别1中的概率,这个类别1和类别2是被一个阈值k划分开的,计算方法为P(k)=£p1ii二03. 计算全局灰度均值,i为灰度级。m=ipGii=04. 计算类间方差,m(k)和mG的计算方法相同。mp(k)一m(k)b2=G_1BP(k)1-p(k)115选取使得类间方差最大的k值,即为Otsu阈值。一旦阈值选取,则按阈值对图像进行划分。对Otsu法的改进有二维Otsu算法,这是基于二维灰度直

16、方图来寻找最佳阈值。总的来说,无论用那种阈值方法,我们总期望于找到一个最佳的阈值,即能使得各个灰度级聚合的区域尽可能的分开。但阈值法也有个问题在于,如果目标物体和背景的灰度级差别很小时,或者目标区域和背景的灰度级存在着交叉的时都会导致阈值法的效果变得很差。(2)目标特征的表示和描述方法对于我们感兴趣额目标区域,我们必须使用某些方法来将里面的特征进行表示和描述,这可以被视为特征提取的关键步骤,对于特征,我们之前也已经谈过了,特征是基于问题的,不同的具体问题,我们需要的特征信息也不尽相同。但我们需要的特征信息大致可以分为:点和线的几何形状特征(这个几何特征既包括空间位置关系也包括几何形状特征),区

17、域特征(比如目标区域的纹理信息,某些情况下即使几何信息一致,纹理信息不一致我们也不会将其识别为同一个物体),PCA分析,结构方法等。边界的表示方法在对边界信息进行表示描述之前,我们必须得进行一些准备工作,因为边界本质上是由边界像素的集合构成的,所以,我们需要首先找到这样一个边界像素的序列,方法是用边界追踪算法,在每个像素点处寻找八领域内的下一个边界点,不停的迭代,直到回到起始点。这些边界点,我们可以使用链码来表述。对于一个形状很复杂的边界来说,将每个细节都纳入我们要表示的范围是一件很不明智的事情,这个时候就需要对这个复杂的形状进行简化,一种经典的算法是MMP算法,使用最小周长多边形来表示边界。

18、这种方法的直观效果是将这个近似边界想象成一个可以收缩的橡皮筋,当出于边界内的橡皮筋收缩的时候,橡皮筋便会紧贴猪边缘的“外墙”和“内墙”,由于有些原始边界总体方向没变,但在局部反复变化,这种方法就能用一条线来替代原始的复杂边,达到简化边界的目的。还有一些方法比如使用类似于极坐标系的标记图来将二维的像素点转化为一维的函数,方便使用。对于一些简单的区域,可以使用形态学的细化方法来将该区域转化成为一个“骨架”,这样就用这个简单的骨架线段来表示出了该区域的形状特征。用少量的线段表示出了一个区域的形状特征,虽然当表示出后处理起来会比较快,但是这个细化出“骨架”的过程并不是那么有效率的。区域的表示方法一些简

19、单的描述比如边界的周长、面积。表示区域致密性的圆度率,即面积和周长平方之比。还有一些比如灰度的均值、中值、最大最小值等等。关于区域,我们有时候还会关心这些区域里面拓扑性质。比如图像中联通分量的数目。关于一个区域,一个很重要的描述特征是该区域的纹理特征。关于纹理,我们常用以下几个度量:平均灰度:m二艺ip(i)i代表灰度级。i=0关于均值的i的n阶矩:卩(z)=E(i-m)”p(i),其中,二阶矩是对比度的度量。ni=0三阶矩是直方图偏斜度的度量,四阶矩则是直方图相对平坦度的度量。一致性度量:U(z)=Sp2(i),值越大代表一致性越高,也就是纹理越平滑。i=0平均熵度:e(z)=-乞p(i)l

20、ogp(i),熵度和一致性相反,代表纹理特征的混乱2i=0程度,熵度越高代表纹理越粗糙。此外,除了这几个度量以外,我们还希望能够度量纹理的“形状”,因为基于统计的以上几个度量只能分析出区域纹理的总体灰度分布情况,得不到像素彼此之间的相对位置的特征。如果想衡量这个特征,可以用共生矩阵来度量。2模式分类器模式就是描绘子的组合,即特征的组合。我们的识别问题在这样的特征描述机制下就转变成为了模式的分类问题。目标图像和模板图像如果“匹配”,那么我们说识别到了目标图像,在模式的角度来看,则是,这两个模式向量很接近,我们可以把它划分到一类模式中,那么这个模式向量就被识别了。(1)基于线性可分问题的分类器决策

21、面是指将各个模式向量分开的那个面或者超平面。一些简单的分类器用单个的决策面来划分模式向量,常用的有最小距离分类器、贝叶斯分类器、单层感知机等。最小距离分类器简单的说,就是比较目标向量与两个平均向量之间的距离,两个平均向量来自两组样本的平均。只有当两组样本类相关性很小,且每个类呈“球状”比较均匀地分布在均值附近时分类效果会很好。贝叶斯分类器是基于统计方法的分类器,是根据变量与变量间的因果关系进行建模6,这种分类器的思想是为目标模式向量计算平均损失,将该向量以最低损失赋给相应的类,那么总体平均损失会是最低的。这种方法由于将平均损失降到最低,故具有最小的错误率,但这是建立在假设向量分布为高斯的基础上

22、,在某些问题上效果不好。(2)一些分类能力更强的分类器但不是每个问题都是线性可分的,在这种情况之下,简单的解决线性可分问题的分类器是没办法胜任的。我们需要分类器必须具有将这些相关性很强的模式向量分开的能力。目前来说,比较常用的有SVM支持向量机、多层神经网络等技术。 SVM支持向量机SVM的最大亮点在于引进了核函数和结构风险函数。核函数的作用是向量映射到另一个向量空间,并且保证这种映射可以将之前的线性不可分在另一个向量空间变得线性可分,是线性到非线性的桥梁。结构风险函数的引入不但使得分类误差最小,还要是所有决策面中最优的,这个最优体现在对样本点的分布结构进行趋近。这也提高了机器学习的泛化能力7

23、。 级联分类器级联分类器的思想就是将多个强弱分类器进行串联组合,最终通过所有分类器的话则被视为检测到了目标。一般来说,弱分类器会被置于级联分类器的前级,被任何一个分类器“否决”的特征被视为肯定不是目标的特征。简单地说就是,被任意一个分类器“承认”的特征不一定是目标的特征,但是被否决的一定不是目标的特征,所以前级的弱分类器可以快速地滤除非目标的检测窗口。在目标检测这类的问题中。最大的问题是该如何确定目标的位置。很容易想到的办法是,用一个能容纳待检测目标的窗口在图像上滑动,使得窗口的中心滑过每个像素点,然后在每一步都检测该窗口内是否含有待检测的目标。但是问题是,一幅图像上的像素点数目十分庞大,如果

24、在每个像素点处都进行目标检测判定,是肯定不能满足实时性需求的。问题在于每次检测都很费时,所以这种级联结构很适合处理目标检测类的问题。它通过简单的前级分类器就将大量的不包含待检测目标的窗口排除,而那些可能包含待检测目标的窗口则被送到后级更复杂的分类器中进行判定8。这大大加快了检测速度。这类级联分类器在行人检测和人脸检测等问题中已经有了很成功的应用。 多层前馈神经网络人工神经网络的最基本的组成单位是一个神经元。神经元的基本结构由输入连接、加法器、激活函数组成。输入连接是来自输入模式向量或者上一层神经元的输出。将输入信号在加法器中进行加权求和,每根连接上都有特定的权值。激活函数是加法器结果和该神经元

25、输出的一个映射函数,常见的激活函数有Sigmoid、Tanh、ReLU等。ReLU由于简单有效获得了广泛的应用。人工神经网络就是由若干个神经元排列连接构成。每一层的神经元都按照上述方法计算输出值,该输出就作为下一层神经元的输入,按照这样的方法计算,直到神经网络的最后一层,若最后一层的第i个输出为高,而其它输出为低,则网络将模式向量X识别为类wi。人工神经网络的学习也称为训练,方法是调整每个连接上的参数。调整的算法为反向传播算法。该算法的主要思想是计算输出层中的期望值和真实值的误差平方,与误差关于权重的偏导数成比例地调整权重,能达到使得误差函数取得最小值的目的。每层都按照这一规则来调整,反向地调

26、整整个网络的连接权值。在系统在使用训练集进行训练后,就可以使用这一网络来对目标的模式向量来进行分类。我们来分析一下多层神经网络的分类能力,即它的决策机制。我们知道一个单层感知机可以实现用一个超平面来划分模式向量。如果将网络层数增加的话,决策面就会变得相应的复杂,理论上,三层网络可以实现任意复杂的决策面。正是由于这个特性,多层神经网络的分类能力相比于传统分类器来说,计算速度更快、分类能力更强。二)深度学习在图像处理中的应用近些年深度学习在涉及人工智能的各个领域都取得了广泛的应用,在图像处理这个领域,不得不谈的是卷积神经网络。卷积神经网络最大的优点是自带低层特征提取这一能力。可以直接将整个图片输入

27、系统,由系统自己去提取该图片具有的特征并进行识别9。我们在前一节介绍过多层前馈式神经网络的结构和性能,而卷积神经网络和传统的多层神经网络结构相比,对模式的分类能力没有任何下降,因为卷积神经网络在最后也有全连接层,相当于传统的多层神经网络,而在前级层中,为提取图像特征增加了卷积层和池化层,卷积层是特征提取的关键,卷积在图像处理中有着特殊的作用,卷积和相关操作都有一个重要的能力就是“匹配”,将模板滑过图像进行卷积,卷积的结果值代表了目标区域和模板的“相关性”,值越高则匹配结果越好,池化层则是做到一个将计算结果进行取样的作用,就这样一层卷积层一层池化层不断重复的结构,就能将图像的特征由最初的边缘特征

28、到更高级的特征,层层“理解”图像,最终得到一个最终的特征向量,再在全连接层里对该模式向量进行分类,以达到识别整张图像的目的。接下来我们将对卷积神经网络的技术细节进行简单的表述。卷积神经网络的结构卷积神经网络的结构如下图所示,通过这个结构也能看清整个图像的处理流程。首先我们来看卷积层。卷积层是卷积神经网络特征提取的关键所在。我们以第一层卷积层为例,输入一张待处理的图像,然后放入第一层卷积层进行卷积处理。卷积单元的结构类似以一个“手电筒”,一个手电筒里面有若干个卷积模板,每个手电筒只能“看见”一个固定大小的区域,有这样若干个完全一样的手电筒,一起点亮了整幅图像。若每个手电筒里面有四个模板,则点亮四

29、次后,可以输出四张卷积后的图像,这种被一种模板滤波处理后的图像我们成为特征图。每一幅特征图通过ReLU(修正线性单元)处理之后送入下一层即池化层中进行下采样。池化层将特征图的大小减小。就这样循环往复地OUGpiltUMl'32x32P5x5CCmoldESDIl1x25a5T2x2规bMuapJ呛feann说:忙肚iGnC|尙C;S;uuJeahiatcoapitariurteu叩ft拭电亡anapteaaueDsaii-s28k2S14k141X1D5x5*=*rrl,昭隔、_、曾注Aclassificatian层层处理,最后得到尺寸很小的一串特征图。然后将这一串特征图转换成相应的向量,p>L最后在全连接层中进行向量的分类。卷积层ConvolvedFeature卷积层的处理过程如上图所示,这个过程和空间滤波本质上是一样的,空间滤波输出就是我们想要的图像,而这个卷积层是为了提取边缘特征,输出的图像称为特征图。值得注意的是,在卷积之前可以对图像进行0填充,这样的好处是卷积后的图像大小与输入的图像大小保持了一致,就不会在多次卷积时让图像的信息丢失。特征降维的工作就交给池化层来做。池化层池化层的作用是减小特征图的大小。这里介绍一种常用的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论