【《基于MATLAB以及机器学习算法支持向量机的数字图像识别探究》14000字】_第1页
【《基于MATLAB以及机器学习算法支持向量机的数字图像识别探究》14000字】_第2页
【《基于MATLAB以及机器学习算法支持向量机的数字图像识别探究》14000字】_第3页
【《基于MATLAB以及机器学习算法支持向量机的数字图像识别探究》14000字】_第4页
【《基于MATLAB以及机器学习算法支持向量机的数字图像识别探究》14000字】_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第1章绪论1.1课题研究目的和意义数字图像识别处理是指使用计算机对输入进电脑的将信息转化为数字信息储存的图像进行降噪、增强、复原、分割、提取特征等处理图片并进行识别的方法和技术。数字图像的组成是一个个分成最基本单位的像素,每一个像素都有自己独特的信息,它携带着自己的位置信息和色彩信息,一个个像素用自己独特的信息拼接一起,拼接成一幅幅数字图像。刚开始图像识别能够产生的目的主要是为了改善图像的质量,以使得图像更方便人类观察各种事物。它是人们为了更好的生活而发明出来的技术,可以过滤掉好多人肉眼无法分辨处理的干扰项。在MATLAB中,输入进来的图片经常被用增强、二值转换、切割加工等等功能进行增强检测的效果,然后改善后的图像被传输出去,方便人们对它进行识别等其它操作。1970年前后开始到现在,该技术随着机器人的发展和发展人工思维科学等理论研究的发展从提出到不断的完善和发展,数字图像识别逐渐应用于机器感知领域,被用来当作计算机或机器人的视觉。但是该领域是新兴起的技术,几乎所有跟计算机视觉有关的理论都刚刚萌芽、不太完善,所以相关的技术仍然有很大的空间来发展。一个技术想要发展,离不开人们的日常需求和数学理论的完善,而数字图像识别除了这两个原因,还离不开计算机技术科学的发展和进步。这就使得在它的发展历程中,图像识别技术能够产生质变性的发展。不仅如此,医学图像研究、地质学地图分析和地质分析和天文学对星体的形状大小研究等需求也使得数字图像处理技术直到今天还在不断发展。数字图像识别技术的确在人们生活中的方方面面都得以应用,因此学习和掌握数字图像识别技术也是从事许多研究工作所需要的。恰当地运用这项技术能够有力地推动许多研究工作的发展,为人类造福。1.2数字图像识别背景综述数字图像处理,就是计算机处理图像信息,通过计算机将事物的图像信号转换成含有大量信息的数字信号然后把信息进行各种运算的过程。数字图像处理技术被提出于1950年,在当时计算机和相关的计算机科学技术已经发展了一定的时间,有了一定的进步,并且人们也愿意用计算机来处理事情以减轻自己的负担,所以人们选择把图像的数字信息传输到计算机中去处理问题。由于希望更多的人能简洁快速的处理图像、改善质量,也为了扩大这种技术的影响力,大约于1960年人们把这种技术设成学校的一门学科。从1975年开始,人工思维科学不断发展,为其它技术的发展壮大奠定了基础,数字图像处理逐渐向深层次发展,人们开始研究如何将计算机系统设计成一条通路把系统当成计算机的读取外界信息的渠道然后解释、分析和理解图像,让计算机系统能够通过这个过程理解外部世界,这其中的过程被称为计算机视觉。1970年末,Marr提出了视觉计算理论,而且该理论成为计算机视觉领域的支柱,但它是一个从来没有被人开发过的全新的研究领域,人们想要对该领域研究的十分透彻其过程需要大量的人力物力以及时间的积累,所以计算机视觉还有更大的潜力待人们去开发。人们在日常生活中因为各种各样的需求需要无时无刻的对物体进行识别和挑选,随着1946年计算机的出现以及1956年人工智能的兴起,人们想要通过使用,计算机来代替人类的部分脑力劳动。模式识别是利用计算机和以数学公式处理数字信息的数据推理方法对数字图像的形状轮廓、曲线粗细、数字符号和图形大小分别进行识别的过程。模式识别含有学习阶段和实现阶段,学习阶段是对样本的相似点、类同点进行提取,总结和得出特征的规律,实现阶段则是从得出的分类规律分类并归纳未知的样本集合里的各个元素。模式识别属于计算机科学的智能模拟范畴,内容包括语言识别、文字识别、指纹识别、声音信号识别和瞳孔识别、脸部识别等等,多种多样应用广泛。近几十年来,模式识别技术发展很快。模式识别问题一般可由统计模式识别、结构模式识别、模糊集理论识别、神经网络识别等方法进行处理。其中发展较成熟、应用较广泛的主要是统计模式识别技术。随着数字图像处理技术的发展和实际应用的需要,人们现在不单单要求其结果只是单单分析图片上明面的信息和特征,而是将经过上述处理后的图像,再进行二次分割和提取有效的特征,进而对比其中的规律加以判断和分类。例如要从遥感图像中分割出各种地形和地貌、森林资源、矿产资源等,还有分析动物是否进行了大规模迁徙,确认动物的迁徙方向和前夕地点;根据天气云量分析天气是否有雨;根据医学影像断层得出各种骨折或者肿瘤的信息;脸部识别统计上下班打卡等等,这些都是图像识别的研究内容。图像识别可以认为就是以图片为处理对象模式然后进行上面介绍的模式识别,它是模式识别技术在图像领域中的具体应用。模式识别的研究对象基本上可以说是生活中的与我们息息相关的任何东西,既是有形体的东西如符号、相片、图案、文字等,也可以是没有实体只能传递信息和波动的信号如语声、心电脉冲、地震波等。对模式识别来说,分析各种无论是有实体的还是没有实体的物体,都能在它们各种各样的特性里去寻找共性去归类,也都能在多样的共性里识别出独特的特性。模式识别研究的目的是研制出能够自动处理信息的机器系统,方便人类、代替人类、解放人类。

第2章数字图像预处理2.1图像的基本操作由于在拍摄时的光照条件不理想,拍照镜头的整洁程度不高,摄像机的焦距调整不到位以及摄像机镜头的光学畸变等所产生的噪声都会不同程度地造成照片事物的边界模糊、细节不清、粗细不均,影响数字图片识别的准确性。因此,需要在数字图像识别之前对照片进行一次针对性的图像处理;采集到的照片是彩色图像,而彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,此在对图像进行处理是经常将彩色图像转变为灰度图像,以加快处理速度。把图片变灰操作之后,像素的最大不失真电平和噪声电平的差增加,图像更有层次感,图像的明暗区域的最亮和最暗之间不同的亮度层级扩展,可以说图像处理后更加清晰、易识别。图像的预处理是指对采集到的图像进行灰度化和去噪声处理,以使图像的质量得到改善,同时保留和增强照片中纹理和颜色的信息,去除噪点,为特征区域定位提供方便。2.1.1图像的读取在处理图像前,需要将图像读取到MATLAB中,所以需要用imread()函数来读取一幅图像,文件名需要用单引号括起来,在语句的末尾还需要加分号在来取消输出:I=imread('cat1.jpg');有的时候本程序在只打文件名的时候,MATLAB找不到该文件,所以可以在文件名前面打上该文件的路径信息,imread()函数会根据语句里的路径信息去读入图像文件,这里路径既可以给的很完整,也可以只给上一级或者最高级,比如︰I=imread('C:\cat1.jpg');2.1.2图像的写入函数imwrite()是用来写入图像文件的,比如该程序需要把经过处理后的图像存储在电脑中,就可以用到该函数,如:imwrite(I,'filename');I在里面表示的是一个二维图像数组,可以由通过imread()函数得到,filename必须是一种可识别的文件格式。例如,下面的命令可以将图像以cat1为文件名存储为PNG格式的文件:imwrite(I,'cat1.png');如果filename中不包含路径信息,那么imwrite()就会把文件保存至MATLAB当前运行路径的工作文件夹中。此外imwrite()函数还有一种适用于JPEG图像的语法形式,如下:imwrite(I,'filename.jpg','quality',q);系统给定q的取值范围是0~100之间的整数,是说明图像的画质会被压缩的标准,q值大就表示图像越接近本来的质量,q值小就表示图像的画质受损比较严重。2.1.3图像的显示imshow()函数在本论文里用来显示图像文件,尤其是在经过一系列程序的处理想要看原图像处理后的效果时,就用到了该函数。如果想要同时输出多个图像,就可以搭配着figure()函数使用,可以得到多个图像窗口,避免前面的图像被后面的新的要展示的图像覆盖,里面分别展示了每个步骤所获得的图像,不同窗口叠放在一起进行对比,能更明显的展示出经过程序运行后的图片的不同。imshow()函数的基本语法形式如下:imshow(I);%figureimshow(IMG1);figure(5);imshow(IMG2);2.2图像的增强处理图像增强是通过一些处理将对最终目的有益处的一些信息有选择地突出出来,将一些无用的信息识别出来并进行抑制或削弱。图象增强有两种方法,分别是空域增强和频域增强两种方法。空域增强∶在图像的第二维度直接对每一个像素进行处理,而处理的对象是每一个像素的灰度值。空域增强可分为灰度变换和空间滤波。灰度变换是基于点操作,将每一个基础组成部分的灰度数值都进行置换,以数学原理为基础,并得到新的数值;空间滤波是基于领域处理,应用某种数学变换运算对每个像素及其周围领域的所有像素进行运算并得到新的灰度值,再赋值回给像素,比如图像平滑和图像锐化。频域增强要运用数学原理傅里叶变换处理图像的空域,使之转换到频率域中,然后在频率域中更改频谱的各种指标,再将其反变换到空域,就能得到需要的图像了。2.2.1图像的灰度处理灰度图只有亮度间的对比,没有颜色的差和对比,平时看到的亮度连续变化的黑白照片就是一幅灰度图。灰度化处理就是将一幅彩色图像转化为灰度图像。彩色图像有R、G、B三个分量,分别合成各种彩色图像,灰度化就是使彩色的R、G、B分量相等的过程。灰度值大的像素点比较亮为自色,反之比较暗是黑色。当3个分量的值相等时,像素的颜色就是介于黑和白之间的一个灰度等级。所以分别提取R、G、B分量中的一个分量来作为结果图像的灰度,其他两个分量再置为与选定分量同等大小的值,这就类似于读者现在看到的黑白印刷结果。但是经过这种方式处理的图像,其显示效果并不十分理想,毕竟有两个分量被忽略掉了,而它们对于最终,其显示效果显然也有贡献。图像灰度化的算法[2主要有以下3种:(1)平均值法:使转化后R、G、B的值为转化前R、G、B的平均值G=B=R=(R+G+B)/3这种方法产生的灰度图像比较柔和。(2)最大值法:使转化后R、G、B的值等于转化前3个值中最大的一个,即:G=B=R=max(R,G,B)这种方法转换的灰度图亮度很高。(3)加权平均值法:根据重要性或其他指标给R、G、R\GB赋予不同的权值,并使R,G.B的值加权平均,R=G=B=WR+VG+UB,W、V、U分别表示权重,研究表明,人对绿色的敏感度最高,对红色次之,对蓝色的敏感度最低,因此W>V>U,实验和理论证明当W=0.30,V=0.59,U=0.11时,能得到最合理的灰度图像。我在做实验的时候,将我的实验图片通过程序按照R、G、B三通道进行了采样,更加直观感受出对图片各种颜色的敏感度:rgb2gray灰度处理原理是以R、G、B为轴建立空间直角坐标系,则RCB图的每个象素的颜色可以用该三维空间的一个点来表示,而Gray图的每个象素的颜色可以用直线R=G=B上的一个点来表示。于是rgb转gray图的本质就是寻找一个三维空间到一维空间的映射,最容易想到的就是过rgb空间的一个点向直线R=G=B做垂线,像射影一样,并且有Gray=0.29900*R+0.58700*G+0.11400*B。灰度可以说是亮度的量化值,而RGB的定义是客观的三个波长值,转换时需要考虑人眼对不同波长的灵敏度曲线,所以系数不相等。所以经过rgb2gray处理后的照片与原照片对比非常明显,我经过实验调试后得到对比图:这样就算灰度处理完了,灰色的图像是得到的灰度处理的结果,可以看到灰色的图像对比原图确实少了有关颜色的信息,但是轮廓更加清晰、明暗对比也更加明显。2.2.2图像的二值处理二值处理需要用到MATLAB的工具箱函数im2bw把灰度图像转换成二值图像。所谓二值图像,是指当灰度图像的灰度只有两个等级时,这种图像就叫二值图像,可以只用"全黑"与"全白"来对图像进行描述。一般意义上是指只有0、255两种色度的图像。不过也可以换做其他任意两种颜色的组合。图像二值化是将灰度图像转化为只有黑白两类像素的图像,最主要采用阈值化算法处理,阈值的选取决定着图像特征信息的保留程度也决定着往后图像识别的准确度,所以要想保留好图像的关键信息,一定要注意图像二值化时如何选取阈值。灰度图像,顾名思义是没有色彩信息的图像,它只能通过灰色的亮暗反映原图片的亮暗,所以它只能反映图片的亮度信息。该技术就是将图像上的点的不是黑或者白的灰色置为黑色或者白色,也就是让灰色图像变成只有黑白的图像。将灰度图像通过设置合适的阀值而获得仍然可以反映图像只有暗亮对比的颜色数值只有两个的图像。阀值分割选取算法有:典型的全局阀值算法的Otsu算法、局部阀值方法中的Bersen算法、灰度拉伸法、直方图方法等等。1.Otsu算法的设计思想:设置一个合适的阀值把图像分割开来,一半灰度与目标平齐,另一半灰度与背景呼应,则这两组灰度值的背景和目标之间的方差最小,两组间的错分概率最大。2.Bersen算法的设计思想:该函数不是固定的,它会把灰度阈值的选值随像素位置变化而变化,它是一种动态选择阈值的自适应方法。3.灰度拉伸算法设计思想:灰度拉伸就是把图像中最亮的和最暗的区域的值作比并拉伸,它使用的是数学函数里的分段函数,该函数是线性的变换的,所以可以扩大图像的像素灰度的动态范围。4.直方图算法的设计思想:如果说原图像分析直方图时将灰度分布到直方图的坐标上可以发现很不均匀,尤其是会集中在一个区域上,该算法运算后灰度会在每个坐标上比较均匀的分布。为了更好的比对四种阀值分割选取算法,我每一个算法都通过MATLAB进行探索过,并把得到的结果进行对比,得到以下四种结果:Otsu算法:Berse算法程序太过复杂,运行时间非常长,而且得出的结果照片特别的不清晰,直接跳过。后两种方法也运行了程序得到了二值化结果。通过对比发现用OTSU算法二值化后的人物比较清晰,背景和前景分割比较明显,改进的Bersen算法分开人物和背景的效率明显提高,而Bersen算法人物与背景老是混杂在一起,分界太不明显了。这个结果使我对图像处理有了更深一步的了解。Otsu算法可以切割的更加完美,切割的程序处理速度也很快,可以很快的得到处理后的图像,算出来的阈值更合适,保证了分割后的准确度,该算法快速且准确;Bersen算法处理不好需要处理重点的与背景的去留,用这种算法不能正确地区分重点与干扰的界线,改进过后的Bernsen算法分割效果要更加明显且清晰,在直方图上分散的效果不错。2.2.3图像的平滑与锐化图像的低频部分主要存储着能量,图像的高频段主要存在着噪音,尤其是图形的边缘突出的地方也在图像的高频区域。所以原始图像在平滑处理之后,平滑是去除噪声,也就导致不仅仅高频段的噪音被去除了,而且在高频段的图像的边缘也被去除了,图像的外围和形状边缘会出现模糊不清的情况。为了避免这种情况在程序处理中发生,需要将图像边缘增强而且要细化突出,使图像的轮廓变得明了易于分辨。经过平滑的图像变得模糊的图像需要对其进行微分运算等逆运算,运算完后会发现图像变得非常清楚。微分运算求算了信号的变化,考虑了傅里叶级数和拉普拉斯变换,所以频率很高分量较强。频率域也是图像考虑为什么会模糊的一个重要比较环境,图像的高频分量衰减也会导致图像不清晰、发花,使用滤波器不失为让图像清晰的好方法,这里我们为了清楚,可以选择高通滤波器。但能够进行滤波处理的图像需要有很高的性噪比,要不然性噪比会越来越低,也就是说噪音会越来越多,图像会越来越模糊不清,所以进行滤波前要先除噪再进行锐化处理。滤波之后要注意很多问题,也用到很多工具,比如赋予了像素灰度值的模板。模板应该按照以下步骤处理数据:1.将模板在图中摆放,将模板与像素重合;2.将模板里的系数与基础组成部分的灰度值乘起来;3.将上面得到的数值相加,再除以模板的系数;4.将上面的输出响应结果赋给图中对应模板中心位置的像素。空域滤波增强的目的主要是对图像进行平滑或者锐化,所以空域滤波器对应两种目的分别设计了一种滤波器:1.平滑滤波器:可以模糊、消除噪声,前面提到原理是把图片里的高频率的信号减弱或消除,低频率的信号原封不动的保存。平滑滤波器将变得太快跨度较大的灰度值部分分量滤去可减少局部灰度的起伏,使图像平滑。2.锐化滤波器:使模糊的地方更加模糊,把低频率的信号增强,高频率的信号没有影响和变化。锐化滤波器将变得太慢基本没有跨度的灰度值部分分量滤去,可使图像反差以及轮廓更加明显。平滑与锐化可以说是完全相反的两种处理方式。平滑又称为低通滤波,把高频率的像素其中包含的信息消除、削弱,从而达到减少数字图像里的噪声,使图像变得模糊。使用均值滤波和中值滤波来验证线型的和非线性不同模板大小的滤波效果均值滤波和和中值滤波的对比,均值滤波和和中值滤波都可以起到平滑图像,滤去噪声的功能。均值滤波采用线性的方法,就是把所有的像素的数值平均化了,但是如果太过平均,没有突出或者低矮的数值,就表明数字图像的细节全部被掩盖了,虽然这样图像里的噪声会被去除大部分,但是细节也会被破坏绝大部分,图像也会因此变得模糊,不能很好地进行接下来的有关图像的很细致的处理。均值滤波高斯噪声表现较好,对椒盐噪声表现较差。中值滤波是采用的非线性方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好,对椒盐噪声表现较好,对高斯噪声表现较差。这是我用彩色图片通过调试程序得出来的结果,分别加入了不同系数的高斯噪声以及分别进行高斯滤波,都在figure1图表中显示了出来。同理灰色图像也可以加入不同系数的高斯噪声以及分别进行高斯滤波的图片结果并进行操作以下时灰色图像加入不同系数的高斯噪声的几种结果:锐化又称为高通滤波,把低频率的像素其中包含的信息消除、削弱,从而达到增加数字图像里的噪声,减少图像的模糊模糊程度,从而让图像变得清晰。以下是拉普拉斯算子的程序进行的锐化结果:以下是普瑞斯特算子的程序进行的锐化结果:以下是Sobel算子的程序进行的锐化结果:

第3章数字图像的识别3.1图像的边缘检测图像边缘,它的凸起和凹陷以及每一个拐点往往表明了一幅图像的大部分信息,是图像最基本的特征之一。边缘的不规则结构和不平稳发展标明了图像轮廓的位置,这些轮廓携带着图像的绝大部分信息,所以我们要想知道一个图像的特点就要检测完并把它的轮廓形状从图像整体里剜出来。边缘是指一个物体最外围用线条和拐点组成的一个封闭形状,这个形状既可以规则也可以充斥着拐点与转折,可以代表一个特征的结束,也可以代表另一个特征的开始,利用该特征可以分割图像。在观察一个物体时,首先关注到的便是图形的边缘,是否圆润又或者是否方正。图像的边缘有方向和幅度这两个衡量的基准,平行于边缘切线方向的像素变化平稳缓慢,垂直于边缘切线方向的像素变化要更加急切和剧烈。边缘上的这种变化可以用一阶导数或二阶导数等微分算子计算出来:但是一阶导数的最大值对应其边缘位置,而二阶导数以过零点的值对应其边缘位置,这两种微分算子对于图像中的任意边缘都可以进行微分算子分析。图像边缘检测的一阶导数可以利用梯度的幅度变化来获得,二阶导数可以通过拉普拉斯算子得到。图像边缘检测和分析是一种获取、校正、增强变换、检测有形体图像的技术。其目的是提高信息的质量,能够更方便的将有用信息提取出来。图像边缘检测中的变换属于图像输入到图像输出转换的模式,图像边缘检测是一种为了人们解决数字图像的特殊问题而开发的图像处理的新技术。图像边缘检测的主要研究内容包括:(1)图像获得和抽样,图像获得的方式多种多样,不仅仅是相机,包括现在的手机、电视机都可以获取到图像,且能把所获得数字图像里面所包含的信息分别进行归纳分类,图像数字化是把图像中全部彩色内容拆解变成能被计算机接受的数字化的内容;电荷耦合装置,用作图像传感器,对景物扫描然后输入到计算机中间。一幅图像实质上是把三维空间的景色压缩在只有二维的一个平面之中,所以图像边缘检测的处理对象也是数字化的信息。(2)图像分割,目的是把一个图像分解成它的一个个小的易于检测的组成的小分子,然后进行测量统计得出最后的总量。图像分割的过程十分的复杂,需要细致的操作,其测量结果的正确与否很依赖于图像分割的精准性。进行图像分割的方法有两类:一种方法是假设图像各成分的强度值是均匀的并利用这种均匀性;另一种方法寻找图像成分之间的边界,因而是利用图像的不均匀性。运用到图像分割的技术主要有直方图分割、区域生长、梯度法等。(3)边界查索,分割图像的整体轮廓成一个个小的轮廓碎片,然后对其中的碎片进行线性检测和匹配。大多数图像边缘检测技术应用像向量的梯度算子,分别对水平方向、垂直方向进行计算,然后用向量法计算它们的复合结果然后确认边界的方向。(4)图像增强和复原,用于改进图像的质量。不同的增强技术可以用于不同的目的,这取决于应用的类型。如果打算直接观察图像,可以增强对比度。如果是为了进一步对图像作数字处理,可以选择分割,就是一种突出各图像成分之间的边界和线状结构的运算。该技术可以是整体的或局部的,也可以在某个频域或者空间域中进行。图像增强如果不考虑图像的质量下降等原因,可以把图像中所有特色的部分突出出来。(5)图像分类,图像分类就是把很多种图片集合在一起,统一进行输入转换成数字化的信息,然后进行梳理规律并且分类图像分割和特征提取后的照片,从而得到分类结果。图像分类常采用经典的模式识别方法,有统计模式分类和句法结构模式分类。(6)图像变换:现在的图像信息量大、清晰度高,不对原图像进行数字量上的转换以及减负的话,涉及到的运算的计算量很大。所以想要解决计算量的问题就需要采用各种图像变换的方法,如傅立叶变换、拉普拉斯变换等数学技术,将三元函数的处理转换为二元函数处理,不仅大大减少计算步骤,还使处理更加有效率,比如傅立叶变换可在频域中进行数字滤波处理。目前新发现的小波变换都具有良好的把整体化局部的特性,它在图像边缘检测中也有着广泛而有效的应用。以下介绍两种常用的边缘检测算子:3.1.1Sobel检测算子是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。Sobel算子有两个,一个是检测水平边沿的,另一个是检测垂直平边沿的。Sobel算子另一种形式是各向同性Sobel算子,也有两个,一个是检测水平边沿的﹐另一个是检测垂直平边沿的。各向同性Sobel算子比普通Sobel算子的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。3.1.2Canny检测算子检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。图像边缘检测必须满足两个条件:一是必须能有效地抑制噪声;二是必须尽量精确确定边缘的位置。既要提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感。Canny边缘检测基本原理:(1)具有既能滤去噪声又保持边缘特性的边缘检测最优滤波器,其采用一阶微分滤波器。采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘。根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。类似与Marr(LOG)边缘检测方法,也属于先平滑后求导数的方法。(2)Canny边缘检测算法:step1:用高斯滤波器平滑图像;step2:用一阶偏导的有限差分来计算梯度的幅值和方向;step3:对梯度幅值进行非极大值抑制;step4:用双阙值算法检测和连接边缘。(3)Canny算子检测方法的优点:①低误码率,很少把边缘点误认为非边缘点;②高定位精度,即精确地把边缘点定位在灰度变化最大的像素上;③抑制虚假边缘。在这几种算法中除Roberts算子外都使用了图像模板,模板运算是图像的一种处理手段——邻域处理,有许多图像增强效果都可以采用模板运算实现,如平滑效果,中值滤波,油画效果,图像的凹凸效果等等。3.2图像的图像分割图像分割就是将图像整体割分成若干小的组成区域的过程,各区域彼此相互连接、相互呼应。图像分割就是指把图像里独立分开的各个组成区域分辨并切割分离出自己的操作处理目标的技术过程。这个操作目标可以是独特的物体、也可以是背景中的一块区域,目标可以是一块单独的区域,也可以是多块区域彼此链接。图像分割是将图像间的数字化信息分类切割的过程,分类可以根据信息间的相同规律,也可以根据数字之间的相似性。其中有很多检测方法和分割方法,主要有:双峰法、区域分裂与合并和自适应阈值分割等;对于灰度不连续性检测方法,即基于边缘的分割方法,主要有:边缘检测、边缘跟踪和霍夫变换等。此外,还有综合特定理论工具的分割方法,这些方法包括基于形态学分水岭的分割、基于统计模式识别的分割、基于神经网络的分割、基于小波变换的分割。以下是图像分割的几种类型:(1)阈值分割灰度阈值分割法是一种最好用的对区域进行归类的方法,它在图像分割中最常见也最实用。阈值分割方法实际上是输入图像f到输出图像g的如下变换:可以看出T是阈值的数值,对于物体的图像元素g(ij)=1,对于图像背景的图像信息区域g(ij)=0。可以知道阈值分割算法最关键的是阈值的数值,如果能找出一个最适合的数值带入式子便可以将图像按理想分割开来。数值一旦确定,将阈值的数值与基础区域的灰度值逐个比较,并且能够对整个图片全部完成该操作,那么分割的结果直接就是需要分割出来操作的图像区域。阈值分割只要找到合适的数值,它的计算过程便会飞速的进行,处理数字图像并进行切割会有很高的效率,并且可以应用于各种场合。(2)区域分割区域生长和分裂合并都是属于区域分割的技术,这两种技术都需要一步一步的打好基础,然后一环扣一环的发展下去。区域生长先将一个个分割开的小的组成区域整理、分割好,然后找一个自己想要寻找分割的区域,把该区域的像素信息作为分割的起点,然后把周围紧邻的区域像素信息进行梳理整合,寻找有没有相似规律的区域,然后筛选出相似的区域,相连整合,再往周围继续辐射发展,不断筛选、不断整合,等辐射完了整幅数字图像,整合出的一个新的区域就长成了。区域生长要提前选出一个模范像素来当作区域选择过程的规律准则,如果被测试的像素周围的其它像素区域的数值和信息都不符合该准则,便可以停止生长,直接输出到停止前的像素图像。该准则可以以任何特性作为标准,选取的种子也可以是单个像素或者多个像素链接起来的区域。大部分有关该技术的准则都会根据局部或者整体、特性或者共性在需要切割的图像的不同的目的而改变,并且生长准则的改变会影响分割的过程。从该技术的过程和原理可以发现该技术计算量小,对于紧密挨在一起能够联通的图像会切割的更加方便。但是它需要人为确定发芽的起点,一旦断开,可能会导致切割完的区域不完整、有空缺。它是一种一步一步往下走的算法,当图像的数字信息量较大时,分割区域的速度会很慢。(3)边缘分割图像边缘处像素的灰度值的不连续性可以通过求导数来检测到,其位置对应一阶导数的极值点,对应二阶导数的零交叉点。因此常用微分算子进行边缘检测。常用的一阶微分算子有Roberts算子、Prewitt算子和Sobel算子,二阶微分算子有Laplace算子和Kirsh算子等。因为边缘和噪声都是一个个不连续的没有颜色的点组成,而且均属于高频像素范畴,所以在进行微分算子检测边缘前要对图像做平滑滤波处理。就像在前面提到的Log算子和Canny算子是具有平滑功能的二阶和一阶微分算子,都有着很好的检测能力,能抑制噪声之后把边缘近乎完好的检测出来。(4)直方图法基于直方图的方法,比其他三个方法要更加直观、更加有效,它只需要一个像素,用该像素定位好坐标轴,直接通过坐标轴将图片的数字信息体现出来,并在直方图的波峰和波谷是用于定位图像中的簇,颜色和强度可以作为坐标轴的衡量单位。基于直方图的方法也能适用于多个像素,使像素间的单向互通效率不断提高。直方图可以在多个像素同时考虑的时候采取不同的方式,比如把设计好的一个框架可以应用到多个情形,并和其它方式的结果合并,将得到的信息去确定的所求的像素点的区域的位置以及最基本的数字信息。

第4章支持向量机SVM机器学习是一门涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科交杂的学科,该学科专门研究计算机怎样模拟或实现人类的学习行为用来获取新的知识、技能,重新构建已有的知识结构并使之不断改善自身的性能,是一门有着强大学习能力的学科。它是人工智能发展的核心,是使计算机具有自主处理东西的根本途径。而支持向量机是十大机器学习方法其中的一种。支持向量机英文名为SupportVectorMachine,简称为SVM,是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面。SVM使用函数计算经验风险并在求解系统中加入了可以优化结构风险的项目,本身是一个分类器,但是特性要更加稳健。首先在1964年提出了SVM这一算法,后来于1990年后有了快速发展的机会并被人们研究并创造出一系列改进的更加方便的算法,在对人像和文本进行识别或者分类等模式问题中有得到应用,在有关识别的领域大放异彩。4.1线性分类4.1.1线性可分性在二维空间上,两类点被一条直线完全分开叫做线性可分,如下图蓝点与红点被分隔开来:在分类问题中需要有着输入的数据和输出的学习目标:X={X1,...,XN},y={y1,...,yN},其中输入数据的每个包含多个特征的样本负责构成特征空间:Xi=[x1,...,xn]∈x,而学习目标为二元变量y∈{-1,1}表示负类和正类。若输入数据所在的特征空间存在作为决策边界的超平面将学习目标按正类和负类分开,并使任意样本的点到平面距离大于等于1:decisionboundary:wTX+b=0pointtoplanedistance:yi(wTXi+b)≥1那就可以称该分类问题具有线性可分性,而且参数w是超平面的法向量,参数b为超平面的截距。满足该条件的决策边界其实构造了两个平行的超平面以判别样本的分类,而且这两个超平面需要作为间隔边界:wTX+b≥+1,→Ji=+1wTX+b≤-1,→Ji=—1所有在上间隔边界的上方的样本属于正类,在下间隔边界的下方的样本属于负类。两个间隔边界的距离d被定义为边距,位于间隔边界上的正类和负类样本为支持向量。4.1.2损失函数在一个分类问题不具有线性可分性时,使用超平面作为决策边界会导致部分支持向量不再位于间隔边界上,而是进入了间隔边界内部,或落入决策边界的错误一侧,并且造成损失。这就需要使用损失函数量化分类损失到底损失了多少,并且可以得到的形式是0-1损失函数:当p<0时,L(p)=0;当p≥0时,L(p)=1。0-1损失函数不是连续函数,不利于优化问题的求解,因此更会去选择是连续函数且利于优化问题的构造代理损失。SVM使用的是饺链损失函数:L(p)=max(0,1-p);由结果可知,当结果是连续凸函数时,并在任意取值下都是该损失函数的上界,然后求出来的代理损失最小化的解也是0-1损失最小化的值。4.2标准算法4.2.1线性SVM硬边距给定输入数据X={X1,,XN},y={y1yN},硬边界SVM是求解最大边距超平面的算法,约束条件是样本点到决策边界的距离大于且等于一。硬边距SVM可以转化为一个等价的二次凸优化问题进行求解。软边距在线性可分问题软边距SVM是求解最小边距超平面的算法,但在线性不可分问题中使用硬边距SVM将产生分类误差,因此可在最大化边距的基础上引入软边距损失函数来优化问题。SVM使用饺链损失函数,所以软边距SVM的优化问题有如下表示:可知,软边距SVM是一个L2正则化分类器,式中Li表示较链损失函数。该公式表明决策边界的确定与支持向量关,且使用饺链损失函数使得SVM具有稀疏性。4.2.2非线性SVM非线性函数把输入数据输出至高维空间后应用于线性SVM可以得到非线性SVM。而非线性SVM有以下对偶问题:4.2.3数值求解SVM的求解可以使用二次凸优化问题的数值方法,其求解算法都拥有充足学习样本,也可使用随机梯度下降。在SVM里主要有以下3种数值求解方法:内点法;序列最小优化;随机梯度下降。

第5章程序调试及分析首先本程序建库的时候先前期预处理,将图像读取并输入到MATLAB里并进行灰度处理,简单去噪之后再转换成二值图像。读取的图片已经全部变成全黑和全白组成的二值图像,能够更加方便MATLAB系统程序的运行,也更加方便后面检测程序的识别。传统的机器学习在进行图片分类时输入的不是原始图片而是先进行一个特征提取的步骤,所以我在这里用的是方向梯度直方图HOG以及灰度共生矩阵GLCM。MATLAB中灰度共生矩阵的提取我调用了graycomatrix()函数,不过这里为了取不同方向(0、45、90、135度)的灰度共生矩阵,通过循环计算各个方向的灰度共生计算然后取平均值和方差作为最终提取的特一化处理,就是和计算对比度、逆差距、嫡、自相关,然后取平均值和方差作为最终提取的特征。另外新建getGLCMFeatures文件里的函数,该函数输入为彩色图像转换后的灰度图像矩阵,把输出设置为提取后的灰度共生矩阵特征。另外我还创建了一个extractFeature函数,这个函数输入为整理过的训练集和测试集,输出为训练集的特征、标签和测试集的特征、标签。这个函数的功能是将HOG特征和前面提取的GLCM特征合并。代码第2到13行是为了

温馨提示

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

评论

0/150

提交评论