训练样本采集与处理.docx
《训练样本采集与处理.docx》由会员分享,可在线阅读,更多相关《训练样本采集与处理.docx(14页珍藏版)》请在冰豆网上搜索。
![训练样本采集与处理.docx](https://file1.bdocx.com/fileroot1/2023-1/26/cfcad160-ff56-405a-a3df-49fc4bcdf335/cfcad160-ff56-405a-a3df-49fc4bcdf3351.gif)
训练样本采集与处理
摘要
支持向量机是统计学习方法,正成为当今研究的热点。
支持向量机在模式识别和文本分类等方面获得了极大的成功,分类的准确率很高,用支持向量机的方法处理一些二值图像和灰度图像,能获得较好的统计结果,从中摸索出了一种特征向量集的选取方法,讨论了判断结果优劣的标准,比较了支持向量方法与其他方法得到的结果,得出了重要结论:
用支持向量机识别图像的边缘具有非常优异的统计特性。
V.Vapnik提出的支持向量机(SupportVectorMchine,以下简称SVM)的基本思想是:
现在样本空间或特征空间,构造出最优超平面,是的超平面与不同类样本集之间的距离最大,从而达到最大的泛化能力。
关键词:
支持向量机;图像识别;边缘检测;统计学习;数字图像处理
1.概述2
1.1图像识别的概念2
1.2支持向量机的概念2
1.3支持向量机与图像识别的关系2
2.支持向量机模型的建立3
2.1SVM核函数3
2.2SVM学习算法的步骤3
3.算法设计及流程4
3.1SVM图像识别流程4
3.2样本选择5
3.3特征提取7
3.4识别结果及其分析8
4.MATLAB程序设计9
4.1Matlab图像编程概要9
4.2SVM的Matlab工具箱使用指南9
4.3程序源代码11
结论14
参考文献14
基于支持向量机的图像识别程序设计
—训练样本的采集与处理
1•概述
1.1图像识别的概念
图像识别是模式识别技术在图像领域中的具体运用,是运用模式识别的原理,以图像的主要特征为基础,利用计算机对图像中的物体进行分类,或者可以说是找出图像种有哪些物体。
一个图像识别系统可用图1.1所示的框图來表示。
图1.1图像识别系统
1.2支持向量机的概念
支持向量机(SupportVectorMachine,SVM)是建立在统计学理论和结构风险最小原理基础上的,能较好地解决小样本、非线性、高维数等问题。
支持向量为训练集中一组特征子集,使得对特征子集的线性划分等价于对整个数据集的分割。
1.3支持向量机与图像识别的关系
对一幅图像而言,像素是基本组成,从图像识别定义来说,对图像的识别实际就是对像素进行分类,SVM就是通过对每一个像素进行分类來完成图像识别的,根据支持向量机原理,样本特征到最优分类面的距离大于零为+1类,样本特征到最优
面的距离小于零为-1类,因此它是一种全局门限分类方法,全局门限20,只是这时的图像由图像是由图像的多种特征组成的SVM的图像。
支持向量机是一种有监督的分类方法,因此实现基于支持向量机图像识别就是要完成训练样本的选择、特征提取、核函数及其参数确定。
首先分别选择代表两类的像素作为训练样本,提取两类的特征,作为支持向量机的输入:
然后选取合适的核函数及其参数,训练分类器。
获得支持向量模型:
最后提取测试样本特征,产生待分类样本集,用支持向量机进行分类,将像素点归入所属类,从而完成图像识别。
2.支持向量机模型的建立
2.1SVM核函数
本文中鉴于高斯核函数和线性核函数的参数比较少,因此选用高斯核函数其形
式为:
此处的O--100即为其高斯核函数的参数。
高斯核函数(决定着平滑程度)是由参数。
表征的,而且。
和平滑程度的关系是非常简单的.。
越大,高斯核函数的频带就越宽,平滑程度就越好.通过调节平滑程度参数6可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷。
2.2SVM学习算法的步骤
(1)获取学习样本:
(x,y),i-1,2,...,n.
(2)选择进行非线性变换的核函数对错分(误差)进行惩罚的惩罚因子C。
(3)形成二次优化问题。
(4)用优化方法解决优化问题。
(5)获得样本各特征值,带入方程中,获得分类的支持向量机。
(6)将需要预测或分类的数据代付支持向量机方程中获得结果。
3.算法设计及流程
3.1SVM图像识别流程
此处进入SVM的训练阶段,一般來说,SVM的训练分为5个阶段,分别为:
输入训练样本、训练样本选择、提取训练样本、确定核函数及其参数和训练样本。
根据结果是否理想,来决定是否调整参数,重新进行训练。
整个过程如图3.1:
图3.1基于支持向量机识别图像流程图
首先对训练样本进行选择,选定对训练样本釆用3X3区域的灰度值、均值和方差作为基本特征,然后确定利用高斯核函数为本次设计的函数,最后训练样本,对图像进行识别,最终得到识别后的图像。
3.2样本选择
支持向量机是一种有监督的分类方法,需要预先确定训练样本分类,训练样本的正确与否决定了支持向量机分类的效果。
本文通过两种方式训练样本,手动选择训练样本和自动选择训练样本。
(1)手动选择训练样本:
对于未知样本分类的情况下,样本选择最直接的方法就是手动选择训练样本,通过人为的判断目标和背景区域,随即选择目标和背景的样本点。
本文尝试采用随机选点和随机选择区域两种方式。
随机选点方式点与点之间没有固定的位置关系,利用手动选点方式來选择训练样本,需浪费大量的时间和精力,因此尝试釆用手动选择区域和方式來选择训练样本,可以减少重复选点的麻烦,可以减少重复选点的麻烦。
随即选择样本区域,点与点之间在空间上是连通的。
(2)自动选择训练样本:
为了克服手动选择样本的盲目性,本文引入模糊C均值聚类的方法來选择训练样本。
常用的均值聚类方法有硬C均值聚类的算法和模糊C均值聚类的方式來选择训练样本少】,对于图像分类来说,两者的不同在于像素对聚类子集的隶属关系即隶属
度函数不同。
在硬c均值聚类中,样本像素和聚类子集的隶属度函数为:
(鬲)=“ij=P'(3-2-1)
即样本是绝对的非此即彼的属于某一类。
对于模糊C均值来说,样本对子集的隶属度函数不是定值,而是[0,1]之间的一个数。
它表明样本对某一类的相似程度,隶属度越大,表明跟某一类越相似。
相比硬C均值聚类來说,模糊C均值聚类更符合图像分割的特点。
模糊C均值聚类算法是通过最小化以下的目标函数:
(3-2-2)
niiiiJm(U,V)=2J;jLlij"'d-(%,V.)
来实现同性质像素聚类的。
目标函数越小,表明同类间像素的相似性越大。
C
为聚类数目,□为样本数,mW[l,十8]为加权指数,是为了加强图像之间的对比度。
U1J表示第j像素点对第1类的隶属度,d(xj,vi)表示第j个像素点距离第1个聚类的距离。
根据拉格朗日乘数法优化目标函数得:
模糊C均值聚类后,每个像素产生了对背景和目标的隶属度,隶属度的大小代表了像素与类的相似程度,因此设计了一种选择训练样本的方法。
首先将各个像素对目标类的隶属度按照从大到小的顺序排列,选择前隶属度对应的像素作为训练样本的十1类;然后将各个像素对背景类按照从小到大排列。
这样做的目的是保证了样本的正确性,可以减少模糊像素对支持向量机的影响。
通过此处选择的聚类样本为:
图2聚类样本
由以上前提条件便对其进行训练样本,对其用仿真实现运行结果如下:
图3训练样本
3.3特征提取
样本的特征是支持向量机分类的依据,分类效果的好坏在很大程度上取决于从图像中提取的特征。
可以说,所提取的特征越完备,则分割效果越有保障。
而特征的提取,并不以单一类别的特征为主,在选取特征的时候,需要考虑所移动窗口中所有像素的各种性质,才能获取较完备的图像特征,为图像分割做好准备。
此处主要提取灰度特征。
其中灰度特征采用3X3邻域的灰度值、均值和方差作为特征。
由于所选择的大米粒图像,其背景和目标在灰度上差别较大,且灰度分布较为均匀,仅以待分割图像的一个小邻域里中低层次的灰度,作为输入矢量X.具体做法为:
在待分割的样本图像上移动一个sxs(其中s为奇数)的窗口,每个当前像素,及窗口中心的像素为(1,J)令I(i,j)为该像素的灰度值,且0Wi<256,OWjV256,将其窗口中所有的灰度值按照从左到右、从上到下的顺序,组成一个包含sXs个元素的矢量作为特征矢量。
根据向量机的特点以及反复试验的结果,选取s=3的领域窗口作为其分割窗口。
即形成一个由当前像素灰度值与其8个领域像素的灰度值所组成的包含了9个元素的特征矢量。
1(1-1,J-1)
I(i-bj)
Ki-1,j+1)
21(i,j-1)
I(i,j)
I(i,j+1)
I(i+1,j-1)
I(i+bj)
I(i+1,j+1)
图像的均值和方差的大小表示灰度区域是否均匀,因此本次设计方案釆用像素灰度值及其领域的灰度均值和方差作为特征向量。
灰度均值为:
15-15-1
E=「ZL/(门),23
5z=Oj=O
方差为:
将3X3窗口内对应像素的灰度值构成的九维向量作为特征向量。
P(ij)为窗口内的灰度统计值。
为了避免各个分量在量值上的差异对分类的影响和特征向量可能出现的溢出,故将特征进行归一化处理,将特征归一化到[0,11o
3.4识别结果及其分析
用训练好的支持向量机对原图进行识别,识别结果如下:
图3.2原始图像
图3.3用支持向量机对图像的识别结果
本文所采取的细菌图像像素大小为256X256,在图像上移动一个3X3大小的窗口,共获取51302个样本数据。
采取随机抽取的方式,从中获取多个样本作为训练样本,所抽取的样本数量较大。
可以做到较为准确的像素识别,并且此方法是在大量的样本抽取下进行的,可以大大提高识别的精度和准确度。
4.MATLAB程序设计
4.1Matlab图像编程概要
读入图像:
RGB二imread('l.png');
该函数的返回值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;
接受鼠标输入直到敲回车键结束。
其中:
xx、yy:
记录鼠标按下时横坐标和纵坐标值;
button:
记录鼠标按下时的状态。
1表示左键,2表示中间键,3表示右键。
绘制图形:
plot(x,y,计);
plot(x,y,'b*'):
在坐标(x,y)处绘制一个蓝色的
4.2SVM的Matlab工具箱使用指南
(1)训练SVM:
[nsv,alpha,bO]=svc(X,Y,ker,C)
X:
训练样本的输入特征,X的行数为训练样本的个数,X的列数代表训练
样本的特征维数;
Y:
训练样本对应的标号,为一个列矩阵。
矩阵的行数为样本的个数。
Y的值只能是1或者-l;Ker:
核函数类型,常用的包括:
'linear','poly','rbf*
C:
经验风险与结构风险的权衡参数,详见SVM的数学优化模型。
DSV:
支持向量的个数;
alpha:
对偶问题的解;
bO:
svm表达式中的偏移量。
⑵测试SVM:
piedictedY=svcoutput(tniX,trnYtstX,ker,alpha,bias)
tniX-训练样本的输入特征;
tinY-训练样本的标号;
TstX-测试样本的输入特征;
kei-核函数
alpha-SVM的求解结果
bias-SVM的偏移量
(3)核函数参数的设置:
svkeinel.m
switchlower(kei)
caselinear1
k=u*v:
case'poly1
pl=2;
k=(u*v'十l)Apl;
caseTbf'
pl=l;
k=exp(-(u-v)*(u-v)7(2*plA2));
case'sigmoid4
pl=l;p2=l;
k=taiili(p1*u*v71engtli(u)十p2);
othenvise
k=u*vr;
end
(4)在二维坐标中绘制SVM的训练和测试结果:
svcplot(X,Y;ker,alplia.bias)
其中:
X-训练样本的输入特征
Y-训练样本的标号
kei-核函数
alpha-SVM的求解结果
bias-SVM的偏移量
4.3程序源代码
subplot(1,2,1);mishow('C:
\Users\Adniimstiator\Desktop\l.png1);%显示图像TitleC手动训练样本)%命名图像
[xx,yy,button]=ginput;%用户点击,计算机记录数据
RGB=inuead('C:
\Useis\AdnuiHstiatoi\Desktop\l.png');%读入图像
RR=RGB(:
:
1);GG=RGB(:
:
2);BB=RGB(:
:
3);%图像的RGB通道赋予矩阵[count,asd]=size(xx);%记录数据的数目
subplot(l,2,2);
xlabelfE卩章R')
ylabel(,背景G')%x表示点击的印章,y表示背景
holdon
fori=l:
count
switchbutton(i)
case1
tniy=-l;
plot(tnix(i,l),tnix(i,2),'i*');%左键点击,红色'*'
case3
tniy=-l;
plot(tnix(i,1),tnix(i,2),'b+');%右键点击,蓝色'十'
otherwise
end
end
holdoff
(1)利用SVM的Matlab工具箱进行印签提取的示例程序
%选择线性核函数
%训练SVM
%显示分类器效果
kei-'linear9;
[nsvalphabias]=svc(tnix,trny,kei;10);svcplot(tnix,tiny,kei;alpha,bias);
(2)利用SVM的Matlab工具箱进行印签提取的示例程序
tstnum=l;
foii=1:
size(RGB,l)
forj=l:
size(RGB.2)
testx=double(RGB(ij,1:
2));
preY=svcoutput(tnix,tniy,testx,ker,alpha,bias);%引用SVC数据包函数tstnum=tstnum+l;
if(pieY==l)
resliii(ij)=255;
else
iesIm(i,j)=O;%转化为二值图像
end
end
end
unshow(iesLn);%显示图像
印签提取结果如图3.5:
图3.5E卩签识别结果图
结论
(1)本文通过支持向量机技术和图像特征提取技术实现了一个图像分类实验系统;
(2)文中首先引入了向量机与图像识别概念,对支持向量机做了较全面的介绍;
(3)本文分析了核函数的特性,探讨了参数的选择与SVM分类性能之间的关系,着重分析了训练样本的釆集过程以及对样本的训练;
(4)通过印签提取实例,首先写出MATLAB程序,根据所采集的样本中印签与背景之间的灰度值的不同,对样本进行训练,最后完成印签的提取。
参考文献
[11里朝锋,曾生根,许磊.遥感图像智能处理[M].北京:
电子工业出版社.2007
[2]罗述谦,周果宏.医学图像处理及分析[M],北京:
科技出版社,2003
[3]一种新的支持向量机大规模训练样本集缩减策略[M],河北工业大学
[4]邢伟,基于支持向量机的图像分割[J],微计算机信息,2008:
24(I)
[5]CR.Brice,C.L.Fenema,SceneAnalysisUsingRegions[J].ArtificialIntelligence1970,205—226
[6]郭磊,武优西,刘雪娜等.基于主成分分析和支持向量机的MRJ图像多目标分割[J],中国生物医学工程学报.2007:
26(4):
498—502
[7]赵衍运,蔡安妮.使用支持向量机分割指纹图像的方法[J],北京邮电大学学报,2006:
29(02)
[8]徐海洋.基于支持向量机方法的图像分割与目标分类[D].武汉:
华中科技大学,2005
[9]杨丽,杨新.基于区域划分的曲线演变多目标分割[J].计算机学报,2004,
(3):
420—425