沈阳理工大学数字图像处理课程设计I摘要图像是信息的一种重要来源,对数字图像的处理已经成为国内外研究的一项重点。图像分割作为图像处理中的重要环节,已经引起大量研究者的关注。由于图像分割无统一的分割标准,传统的图像分割仅适用于特定的应用。而利用支持向量机算法进行图像分割,可以利用图像的多种特征,理论应该能够得到比较的分割效果。本文首先对传统的图像分割方法进行研究,并利用Matlab实现了图像分割算法,对分割的结果进行分析和比较。然后将图像分割看做像素分类,将支持向量机用于图像的分割,包括样本的选择、特征的提取,训练支持向量机,最终实现了基于支持向量机的图像分割算法,结果表明,支持向量机能够很好的将图像目标从源图像中分割出来。关键词:图像分割;支持向量机;样本选择;特征提取沈阳理工大学数字图像处理课程设计I摘要.............................................I1支持向量机与图像分割的关系......................22基于支持向量机在图像分割算法设计...............22.1算法设计及流程...............................32.2样本选择.....................................42.3特征提取.....................................62.4核函数选择...................................72.5分割结果及其分析..............................73MATLAB程序设计..................................83.1Matlab图像编程概要.............................83.2SVM的Matlab工具箱使用指南....................9附录..............................................12附录A程序源代码.................................12沈阳理工大学数字图像处理课程设计21支持向量机与图像分割的关系对一幅图像而言,像素是基本组成,从图像分割定义来说,对图像的分割实际就是对像素进行分类,SVM就是通过对每一个像素进行分类来完成图像分割的,根据支持向量机原理,样本特征到最优分类面的距离大于零为+1类,样本特征到最优面的距离小于零为-1类,因此它是一种全局门限分割方法,全局门限T=0,只是这时的图像由图像是由图像的多种特征组成的SVM的图像[12]。支持向量机是一种有监督的分类方法,因此实现基于支持向量机图像分割就是要完成训练样本的选择、特征提取、核函数及其参数确定。首先分别选择代表两类的像素作为训练样本,提取两类的特征,作为支持向量机的输入:然后选取合适的核函数及其参数,训练分类器。获得支持向量模型:最后提取测试样本特征,产生待分类样本集,用支持向量机进行分类,将像素点归入所属类,从而完成图像分割。2基于支持向量机在图像分割算法设计传统图像的分割方法,大多是基于图像的部分特征来进行分割的。因此,目前尚未有对所有的图像都有合适的方法。而分类的算法是一种重要的图像分割方法。本章主要介绍如何使用支持向量机,来对图像进行分割。基于支持向量机的图像分割,主要有三个问题:样本的选择、特征的提取、核函数及其参数确定。本文采用SVM-1.5工具箱,针对这三个问题进行讨论。沈阳理工大学数字图像处理课程设计32.1算法设计及流程此处进入SVM的训练阶段,一般来说,SVM的训练分为5个阶段,分别为:输入训练样本。训练样本选择、提取训练样本、确定核函数及其参数和训练样本。根据结果是否理想,来决定是否调整参数,重新进行训练。整个过程如图3-2-1:图3-2-1基于支持向量机分割流程图训练样本选择特征提取确定核函数参数训练样本图像分割是开始结束沈阳理工大学数字图像处理课程设计4首先对训练样本进行选择,选定对训练样本采用3×3区域的灰度值、均值和方差作为基本特征,然后确定利用高斯核函数为本次设计的函数,最后训练样本,对图像进行分割,最终得到分割图像。2.2样本选择根据对支持向量机图像分割研究,选取尺度为256×256的大米粒图像作为分割样本,图4-2为分割样本图。之所以选择此图,在于大多基于支持向量机的图像分割都在此样本图像上进行,便于进行分割方法的比较[13]。支持向量机是一种有监督的分类方法,需要预先确定训练样本分类,训练样本的正确与否决定了支持向量机分类的效果。本文通过两种方式训练样本,手动选择训练样本和自动选择训练样本。(1)手动选择训练样本:对于未知样本分类的情况下,样本选择最直接的方法就是手动选择训练样本,通过人为的判断目标和背景区域,随即选择目标和背景的样本点。本文尝试采用随机选点和随机选择区域两种方式。随机选点方式点与点之间没有固定的位置关系,利用手动选点方式来选择训练样本,需浪费大量的时间和精力,因此尝试采用手动选择区域和方式来选择训练样本,可以减少重复选点的麻烦,可以减少重复选点的麻烦。随即选择样本区域,点与点之间在空间上是连通的。(2)自动选择训练样本:为了克服手动选择样本的盲目性,本文引入模糊C均值聚类的方法来选择训练样本。常用的均值聚类方法有硬C均值聚类的算法和模糊C均值聚类的方式来选择训练样本[14],对于图像分类来说,两者的不同在于像素对聚类子集的隶属关系即隶属度函数不同。在硬C均值聚类中,样本像素和聚类子集的隶属度函数为:jjijjx1==0,xiiiXxxX,()(3-2-1)即样本是绝对的非此即彼的属于某一类。对于模糊C均值来说,样本对子集的隶属度函数不是定值,而是[0,1]之间的一个数。它表明样本对某一类的相似程度,隶属度越大,表明跟某一类越相似。相比硬C均值聚类来说,模糊C均值聚类更符合图像分割的特点。模糊C均值聚类算法是通过最小化以下的目标函数:沈阳理工大学数字图像处理课程设计5211min(,=(,)cnmmijjiijJUVdxv)(3-2-2)来实现同性质像素聚类的。目标函数越小,表明同类间像素的相似性越大。C为聚类数目,n为样本数,m∈[1,+∞]为加权指数,是为了加强图像之间的对比度。μij表示第j像素点对第i类的隶属度,d(xj,vi)表示第j个像素点距离第i个聚类的距离。根据拉格朗日乘数法优化目标函数得:1121121111,2,mijijcmijkddi…,N:j=1,2,…,c(3)模糊C均值聚类后,每个像素产生了对背景和目标的隶属度,隶属度的大小代表了像素与类的相似程度,因此设计了一种选择训练样本的方法。首先将各个像素对目标类的隶属度按照从大到小的顺序排列,选择前隶属度对应的像素作为训练样本的+1类;然后将各个像素对背景类按照从小到大排列。这样做的目的是保证了样本的正确性,可以减少模糊像素对支持向量机的影响。通过此处选择的聚类样本为:图2聚类样本由以上前提条件便对其进行训练样本,对其用仿真实现运行结果如下:沈阳理工大学数字图像处理课程设计6图3训练样本2.3特征提取样本的特征是支持向量机分类的依据,分类效果的好坏在很大程度上取决于从图像中提取的特征。可以说,所提取的特征越完备,则分割效果越有保障。而特征的提取,并不以单一类别的特征为主,在选取特征的时候,需要考虑所移动窗口中所有像素的各种性质,才能获取较完备的图像特征,为图像分割做好准备。此处主要提取灰度特征。其中灰度特征采用3×3邻域的灰度值、均值和方差作为特征。由于所选择的大米粒图像,其背景和目标在灰度上差别较大,且灰度分布较为均匀,仅以待分割图像的一个小邻域里中低层次的灰度,作为输入矢量X.具体做法为:在待分割的样本图像上移动一个s×s(其中s为奇数)的窗口,每个当前像素,及窗口中心的像素为(i,j)令I(i,j)为该像素的灰度值,且0≤i<256,0≤j<256,将其窗口中所有的灰度值按照从左到右、从上到下的顺序,组成一个包含s×s个元素的矢量作为特征矢量。根据向量机的特点以及反复试验的结果,选取s=3的领域窗口作为其分割窗口。即形成一个由当前像素灰度值与其8个领域像素的灰度值所组成的包含了9个元素的特征矢量。I(i-1,j-1)I(i-1,j)I(i-1,j+1)2I(i,j-1)I(i,j)I(i,j+1)I(i+1,j-1)I(i+1,j)I(i+1,j+1)图像的均值和方差的大小表示灰度区域是否均匀,因此本次设计方案采用像素灰度值及其领域的灰度均值和方差作为特征向量。灰度均值为:沈阳理工大学数字图像处理课程设计72111=(,),300ssEIijssji(4)方差为:2var((,))p(i,j)IijE(5)将3×3窗口内对应像素的灰度值构成的九维向量作为特征向量。P(i,j)为窗口内的灰度统计值。为了避免各个分量在量值上的差异对分类的影响和特征向量可能出现的溢出,故将特征进行归一化处理,将特征归一化到[0,1]。2.4核函数选择本文中鉴于高斯核函数和线性核函数的参数比较少,因此选用高斯核函数其形式为:222ijxxKij(x,x)=e(6)此处的2=100即为其高斯核函数的参数。高斯核函数(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯核函数的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷。2.5分割结果及其分析用训练好的支持向量机对原图进行分割,分割结果如下:沈阳理工大学数字图像处理课程设计8图4原始图像图5用支持向量机对图像的分割结果本文所采取的细菌图像像素大小为256×256,在图像上移动一个3×3大小的窗口,共获取51302个样本数据。采取随机抽取的方式,从中获取多个样本作为训练样本,所抽取的样本数量较大。可以做到较为准确的分割,并且此方法是在大量的样本抽取下进行的,可以大大提高分割的精度和准确度,较其他传统分割方法相比较而言,其对边缘分割精度和对于背景和灰度值相比较而言都有了非常明显的进步,并且利用自动选择法对其进行分割也可较少工作量与降低计算难度,节省了我们分割过程中较为宝贵的时间。3MATLAB程序设计3.1Matlab图像编程概要读入图像:RGB=imread(‘1.jpg’);该函数的返回值RGB是一个三维的数组,分别代表像素点所在的行号、列号和像素点的R、G、B三个通道的值。例:RGB(1,1,1);%图像第一行第一列的R值;RGB(1,3,2);%图像第一行第三列的G值;RGB(2,4,3);%图像第二行第四列的B值;RR=RGB(:,:,1);%彩色图像的红色像素通道GG=RGB(:,:,2);%彩色图像的绿色像素通道BB=RGB(:,:,3);%彩色图像的蓝色像素通道鼠标输入:[xx,yy,button]=ginput;沈阳理工大学数字图像处理课程设计9接受鼠标输入直到敲回车键结束。其中:xx、yy:记录鼠标按下时横坐标和纵坐标值;button:记录鼠标按下时的状态。1表示左键,2表示中间键,3表示右键。绘制图形:plot(x,y,‘b*’);plot(x,y,‘b*’):在坐标(x,y)处绘制一个蓝色的”*”3.2SVM的Matlab工具箱使用指南1训练SVM:[nsv,alpha,b0]=svc(X,Y,ker,C)X:训练样本的输入特征,X的行数为训练样本的个数,X的列数代表训练样本的特征维数;Y:训练样本对应的标号,为一个列矩阵。矩阵的行数为样本的个数。Y的值只能是1或者-1;Ker:核函数类型,常用的包括:’linear’,’poly’,’rbf’C:经验风险与结构风险的权衡参数,详见SVM的数学优化模型。nsv:支持向量的个数;alpha:对偶问题的解;b0:svm表达式中的偏移量。