当前位置:文档之家› 基于特征包支持向量机的手势识别

基于特征包支持向量机的手势识别

基于特征包支持向量机的手势识别
基于特征包支持向量机的手势识别

收稿日期:2012-07-23;修回日期:2012-08-29。基金项目:国家自然科学基金资助项目(61064011)。作者简介:张秋余(1966-),男,河北辛集人,研究员,博士生导师,CCF 高级会员,主要研究方向:图像理解与识别、多媒体信息安全;王道东

(1986-),男,甘肃白银人,硕士研究生,主要研究方向:图像处理、模式识别、运动手势识别、人机交互;张墨逸(1985-),女,甘肃武威人,讲师,硕士,CCF 会员,主要研究方向:图像理解与识别、运动手势识别、人机交互;刘景满(1986-),男,山东菏泽人,硕士研究生,主要研究方向:图像处理与模式识别、手势跟踪、人机交互。

文章编号:1001-9081(2012)12-3392-05

doi :10.3724/SP.J.1087.2012.03392

基于特征包支持向量机的手势识别

张秋余,王道东*

,张墨逸,刘景满

(兰州理工大学计算机与通信学院,兰州730050)

(*通信作者电子邮箱wdd66@163.com)

要:针对类肤色信息或复杂背景的影响,难以通过手势分割得到精确手势轮廓而对后期手势识别率与实时

交互的影响,提出了一种基于特征包支持向量机(BOF-SVM )的手势识别方法。采用SIFT 算法提取手势图像局部不变性特征点,将手势局部特征向量(尺度不变特征变换(SIFT )描述子)进行K -means 聚类生成视觉码书,并通过视觉

码书量化每一幅手势图像的视觉码字集合,以此获得手势图像的固定维数的表征向量来训练支持向量机(SVM )多类分类器。该方法只需框定手势所在区域,无需精确地分割人手。实验表明,该方法对9种交互手势的平均识别率达到92.1%,并具有很好的鲁棒性及实时性,能适应环境的变化。

关键词:手势识别;尺度不变特征变换;特征包;视觉码书

中图分类号:TP391.41文献标志码:A

Hand gesture recognition based on bag of features and support vector machine

ZHANG Qiu-yu,WANG Dao-dong *

,ZHANG Mo-yi,LIU Jing-man

(School of Computer and Communication,Lanzhou University of Technology,Lanzhou Gansu 730050,China )

Abstract:According to the influence of approximate skin color information or complex background,it is hard to get precise gesture contour by hand gesture segmentation,which will have effect on later gesture recognition rate and real-time interaction.Therefore,this paper proposed a gesture recognition method based on the BOF-SVM (Bag Of Features-Support Vector Machine).At first,local invariant features of the gesture images were extracted by the Scale Invariant Feature Transformation (SIFT)algorithm.Then the visual code book was generated by gesture local eigenvector (SIFT descriptors)through K -means clustering.And visual code set of every image got quantized by visual code book.As a result,the characterized vector of gesture images with fixed dimensional was obtained to train multi-class SVM classifier.This method only needed to frame the gesture area instead of segmenting gesture accurately.The experimental results indicate that the average recognition rate of the nine interactive hand gestures based on this method can reach 92.1%.Besides,it has good robustness and efficiency,and can adapt to the changes of environment.

Key words:hand gesture recognition;Scale Invariant Feature Transformation (SIFT);Bag Of Features (BOF);visual code book

0引言

手势识别作为一种自然、直观的交互方式,已成为近些年

来人机交互领域的一大研究热点

[1-2]

。手势识别的目标就是

提供一种有效、准确的机制使得计算机能够准确理解人手所

表达的语义。然而,手势形变复杂(高达27个自由度(Degrees Of Freedom ,DOF ))、视角相关度高、冗余信息量大

以及所处环境的复杂性使得手势识别系统面临实时性、准确性及复杂背景下的鲁棒性等众多难题

[3-4]

。为了解决这些问

题,一些手势识别系统借助于指尖标记或数据手套来提高实

时手势检测与识别的准确率。然而,这种基于标记或设备的方式极大地限制了用户操作的方便性。

大部分的手势识别方法都是基于肤色分割的,通过肤色

分割获取二值手势区域,进一步提取手势轮廓特征[5]

(轮廓矩、

傅里叶描述子等)和二维空间分布特征[6]

,或者通过指尖

检测以获得指尖数目或指尖分布信息以识别手势[7]

。然而,

复杂背景、光照变化等因素始终是影响手势精确分割的难点。

近些年来,不断有学者利用手势的内部灰度变化特性实现手

势检测和手势识别。在文献[8-9]中,Haar-like 特征被用来做手势检测,该特征能够很好地表达一定面积内的灰度变化信息。文献[

10]结合Adaboost 学习算法和尺度不变特征变换(Scale Invariant Feature Transformation ,SIFT )特征实现了具

有平面旋转不变性的手势检测。文献[

11]采用快速鲁棒特征(Speeded Up Robust Feature ,

SURF )特征实现了手势的实时性跟踪和动态手势识别。

SIFT 是由Lowe 于1999年提出并于2004年进一步完善的,

用于检测和描述图像局部特征点[8]

。SIFT 特征描述子具

有较强的旋转、尺度、亮度等不变性,能较好地克服一定程度

的视角变化、仿射变化以及噪声的影响,SIFT 特征已被广泛应用于物体识别、图像检索、图像拼接以及目标跟踪等领域。综上所述,为有效解决2D 视觉下手势识别系统在手势

检测阶段,由于类肤色信息或复杂背景的影响难以通过分割

Journal of Computer Applications

计算机应用,2012,32(12):3392-3396ISSN 1001-9081CODEN JYIIDU 2012-12-01

http://www.joca.cn

得到精确手势轮廓而对后期手势识别率的影响,为提高手势交互系统的实用性,本文采用SIFT算法[12]提取手势图像的局部不变性特征点,提出一种基于特征包支持向量机(Bag Of Features-Support Vector Machine,BOF-SVM)的手势识别方法。手势图像中存在大量的显著性局部特征点,它们具有较强的稳定性,对手势具有较强的表征能力。通过对手势的局部不变性特征点进行聚类统计来表征手势,只需框定手势所在区域,无需精确地分割人手。相比于基于图像分割的手势识别方法,该方法对于环境变化具有很好的适应性和鲁棒性。

1手势特征提取

SIFT算法提取到的手势图像中的每一个局部特征点可以表示为一个局部特征向量(SIFT描述子),因此一幅手势图像可以表达为许多局部特征向量的集合,这些局部特征向量的集合,整体体现了手势图像的内容。然而,这个局部特征向量集仅仅是对图像的一种不紧凑的表达,因为每个局部特征虽然体现了一定的局部信息,但并不能体现图像中所表达内容的整体特性,并且支持向量机(Support Vector Machine,SVM)分类器要求以相同维数的特征向量作为输入。为了解决这一问题,采用特征包(Bag Of Features,BOF)模型[13],提取手势图像特征。采用SIFT算法提取手势图像局部不变性特征点,每个局部不变性特征点可以表示为一个局部特征向量,通过K-means聚类算法对手势训练样本集中的所有局部特征向量进行聚类建立视觉码书(Code Book),并通过视觉码书将图像局部特征向量集合映射为视觉码字的集合(BOF向量)。最后,利用每一幅手势训练样本图像的BOF向量来训练SVM并得到手势分类模型。

1.1采用SIFT算法提取手势图像局部不变性特征点SIFT描述子的生成分为以下几步:1)通过不断对图像做高斯卷积和降采样的方法构建图像金字塔,在金字塔的每层的相邻图像间做差建立高斯差分尺度空间;2)特征点检测,每个特征点都包含位置、对应尺度和方向三个信息;3)以特征点坐标为原点,特征点方向为坐标轴取16?16的图像数据块,在4?4的图像小块上计算8个梯度方向的累加值,形成如图1所示的种子点,最终形成4?4?8共128维的向量。SIFT特征描述符对光照、噪声、旋转和尺度都具有良好的不变性。

图2为一些手势图像及提取到的显著性局部特征点。箭头末端表示特征点所在坐标,箭头方向表示特征点的方向,箭头长度表示特征点的尺度。SIFT算法提取到的特征点数量大,数目不定,且同一种手势特征点数量会随着手势与摄像头的距离变化而变化。因此,SIFT特征难以直接表征手势来做分类

图1SIFT描述子生成

1.2通过K-means聚类生成视觉码书

本文BOF的关键步骤是将手势图像局部特征向量进行K-means聚类生成视觉码书,通过视觉码书将手势图像局部特征向量集合映射为视觉码字的集合,量化形成表征手势图像的固定维数的特征向量。在此聚类过程中,K-means聚类方法使用广泛且具有较优的分类结果

图2不同手势SIFT特征点提取

下面是视觉码书的详细构建过程:

步骤1初始化聚类中心数为k,针对手势训练样本的特征点集X={x

1

,x

2

,…,x

n

},随机选取k个特征点Z

j

(I)(j=1,2,3,…,k)作为初始聚类中心。

步骤2计算特征点集中的每个特征点x

i

与聚类中心的

距离D(x

i

,Z

j

(I))(i=1,2,…,n;j=1,2,…,k),如果满足

D(x

i

,Z

j

(I))=min{D(x

i

,Z

j

(I))|j=1,2,…,n}

则x

i

∈w k,w k为第k个特征点类别。

步骤3计算误差平方和准则函数J

c

J

c

=∑k

j=1

∑n j

k=1

‖X(j)k-Z j(I)‖

步骤4判断:若|J

c

(I)-J

c

(I-1)|<ξ,则算法结束;

否则I=I+1,计算k个新的聚类中心,Z

j

(I)=1

n

j

∑n j

i=1

x(i)

i (j=1,2,…,k),返回步骤2。

通过K-Means聚类将获得k个聚类中心,每个聚类中心表示不同的特征点类别,每个聚类中心即代表视觉码书中的一个视觉码字。至此,得到了一个容量为k的视觉码书。

值得注意的是,视觉码书长度(聚类中心数目k)对BOF 的性能具有极大的影响,如果视觉码书容量过小,可能会产生过聚类,使得BOF向量不能很好地表达图像中所有的局部特征。然而,过大的视觉码书又可能会产生两种后果:一是使得BOF向量中信息冗余;二是引起图像表示的高维现象,引起维数灾难,影响计算速度。

1.3BOF量化过程

通过K-Means聚类获得视觉码书,进一步将描述手势图像的局部特征向量集映射到视觉码书上,就可以得到表征手势图像的特征向量。具体过程如下:

当测试图像取得特征描述子(descriptor)后,按照最近邻方法查找欧氏距离最近的视觉码字:

如果distance(descriptor,v

i

)≤distance(descriptor,v

j

); j∈{1,…,N v},则Q(descriptor)=v i。

其中:N

v

表示视觉码书容量,视觉码书由K-means聚类后的类中心(即视觉码字)构成。完成图像描述子与视觉码字间的对应后,再按直方图方式进行量化,分别计算各视觉词语在图中对应出现的频率。

VQ(image)=histogram(Q(image))

histogram

i

=n(Q(image),v

i

其中Q(image)是测试图像的视觉码字表示。整个过程如图3所示。

2训练手势识别模型

在构建视觉码书的过程中,手势训练样本皆取自于白色背景下,因此提取到的图像局部特征信息皆来自于手势区域。如图4所示实验发现:palm手势面积最大,包含最大130个特

3933

第12期张秋余等:基于特征包支持向量机的手势识别

征点。因此,

K -means 聚类中聚类中心的数目应该大于130。然而,手势训练集中的图像特征点数目远小于测试时所取到的手势图片特征点数目。实验发现由于手势背景复杂,特征

点的数量将会超过400,在此选择k =500来构建聚类模型

图3构建BOF 向量

在获得每幅手势图像的BOF 向量之后,对其进行归一化,训练支持向量机(SVM )

[14]

作为手势判别器。

本文采用Matlab 2010a 和LibSVM 工具箱[15]

进行编程实

现。在LibSVM 中,SVM 提供了线性、多项式、径向基函数(Radial Basis Function ,RBF )和Sigmoid 4种常用的核函数,本文采用通用的高斯型核函数RBF 。

在此,通过增加训练样本数量来提高系统对不同人手、不同尺度、不同旋转、不同光照环境下的手势识别的准确率。由于SIFT 描述子具有尺度、旋转及光照变化的鲁棒性,因此手势样本采集越多,

K -Means 获得的视觉码书及SVM 分类模型的泛化能力就越强。随着训练样本数量的加大,训练时的时间也将增加,然而这并不影响测试阶段的时间消耗。

本文针对如图4所示9种手势,每种手势采集150张图像作为训练样本,

9种手势依次标记为“拳头”、“手掌”、“小指

”、“食指”、“三”、“枪”、“打电话”、“五”、“剪刀”。手势识别模型的训练过程如图5所示。通过训练得到一个对9种手势具有判别能力的手势识别模型

图4

待识别手势

图5

手势识别模型训练过程

3实验结果与分析

实验中,采用普通网络摄像头(台电L370),视频输入分

辨率为320?240。实验平台为Inter Core i3-

2350M 2.3GHz ,2GB RAM 。

图6所示为3种不同手势的BOF 向量(未归一化)

图6不同手势对应的BOF 向量

3.1

离线识别

为了测试BOF-SVM 模型的手势识别性能,需要建立一个

手势测试集。该测试集包含9种手势,

每种手势100张图片。在手势采集过程中,每种手势针对不同人手、不同旋转、不同

大小、

不同光照环境等条件下采集。手势图像的宽、高取值范围为[50,200],即手势图像的最小尺寸为50?50,最大为200?200。手势测试集采集情况如图7所示。

4933计算机应用第32卷

图7手势测试集

围绕如图7所示的手势测试集,分别统计BOF-SVM模型

对9种手势的识别准确率及时间效率。经统计,该模型对9

种手势的平均识别率达到了92.1%。如表1所示。

表1手势识别准确率及时间效率

手势

识别

正确数

识别

错误数

百幅手势图

像消耗/min

拳头9825.6720

手掌9465.5418

小指90105.0486

食指89114.8974

三9194.8233

枪90105.1308

打电话9285.0104

五90105.4212

剪刀9554.9026

3.2实时手势识别

在视频图像中识别手势,需要一种简单高效的方法实时

地从视频图像中提取手势区域:首先,采用基于YCbCr空间

的肤色椭圆模型[16]提取肤色区域;其次,通过肤色区域的几

何特征定位手势。

Hsu通过统计计算得到的肤色椭圆模型Cb-Cr如式(1)、

(2)所示:

(x-1.6)2

25.392

+

(y-2.41)2

14.032

≤1(1)

[]x

y

=

cosθsinθ

-sinθcos

[]

θ

Cb-109.38

Cr-152.

[]

02

(2)

其中θ=2.53(rad),满足以上公式的即为肤色像素。

在提取到肤色区域之后,脸部区域的一般包括眼部区域

两个空洞。因此去除欧拉洞数大于2的区域,即可排除脸部

区域。其次去除面积小于一定阈值的区域,即可去除其他小

的类肤色区域的干扰,剩余部分即为手势区域。

实验表明:椭圆肤色模型具有高效、鲁棒的肤色提取效

果,图8为基于椭圆肤色模型的肤色检测和手势提取。同时,

为了验证BOF-SVM模型识别手势的准确性和实时性,以

30帧/秒的视频图像作为系统输入。图9为BOF-SVM模型

的对9种手势的实时手势识别结果

图8

肤色检测及手势提取

图9实时手势识别结果

实验结果表明:BOF-SVM模型对于手势的9种变化,具

有较高的识别率,并可以达到实时应用的目的。该方法在识

别过程中,无需精确地分割手势图像,只需框定手势所在区

域,由于背景中人脸及其他类肤色区域的影响,会使得手势所

在框的大小有所变化。本文方法采用SIFT特征描述手势内

部特征点,标定手势区域的目的只在于降低特征提取阶段的

时间消耗。因此,相比于基于分割的手势识别方法,本文方法

对于环境变化具有更好的适应性和鲁棒性。

4结语

本文提出了一种基于BOF-SVM模型的手势识别方法。

5933

第12期张秋余等:基于特征包支持向量机的手势识别

在训练阶段,首先采用SIFT算法提取手势图像的局部特征点,通过K-means算法加以聚类统计构建一个视觉码书;然后将手势图像的局部特征点映射到视觉码书,通过量化形成手势图像的BOF向量,作为SVM分类模型的输入。实验结果表明:该方法可以达到令人满意的实时性能,并能够有效地适应一定程度的尺度、光照、方向等变化。

该模型还有许多需要改进之处:1)需要进一步研究手势检测算法,以更高效地检测和标定手势区域;2)在视觉码书的构建过程中,K-means聚类中心数目k是经验所得,有必要改进聚类算法,以最优的聚类中心数目来构建视觉码书;3)在SVM的训练过程中,有必要引入参数的自动寻优,以进一步提高识别率。

参考文献:

[1]王西颖,戴国忠,张习文,等.基于HMM-FNN模型的复杂动态手势识别[J].软件学报,2008,19(9):2302-2312.

[2]RAUTARAY S S,AGRAWAL A.Real time multiple hand gesture recognition system for human computer interaction[J].International Journal of Intelligent Systems and Applications,2012,5(8):56-64.

[3]SONG Y,DEMIRDJIAN D,DAVIS R.Continuous body and hand gesture recognition for natural human-computer interaction[J].ACM Transactions on Interactive Intelligent Systems,2012,2(1):5.[4]REN Z,YUAN J,ZHANG Z.Robust hand gesture recognition based on finger-earth movers distance with a commodity depth cam-era[C]//Proceedings of the19th ACM International Conference on Multimedia.New York:ACM,2011:1093-1096.

[5]ROOMI S M M,PRIYA R J,JAYALAKSHMI H.Hand gesture rec-ognition for human-computer interaction[J].Journal of Computer Science,2010,6(9):994-999.

[6]杨波,宋晓娜,冯志全,等.复杂背景下基于空间分布特征的手势识别算法[J].计算机辅助设计与图形化学报,2010,22

(10):1841-1848.

[7]RAVIKIRAN J,MAHESH K,MAHISHI S,et al.Finger detection

for sign language recognition[C]//Proceedings of the International MultiConference of Engineers and Computer Scientists.Hong Kong: IAENG,2009:489-493.

[8]BARCZAK A.DADGOSTAR F.Real-time hand tracking using a set of co-operative classifiers based on Haar-like features[R].Palm-erston North,New Zealand:Massey University,Institute of Informa-tion and Mathematical Sciences,2005.

[9]CHEN Q,GEORGANAS N D.Real-time vision-based hand gesture recognition using Haar-like features[C]//Proceedings of the IEEE Instrumentation and Measurement Technology Conference.Piscat-away:IEEE,2007:1-6.

[10]WANG C C,WANG K C.Hand posture recognition using Ada-boost with SIFT for human robot interaction[C]//Proceedings of

International Conference on Advanced Robotics.Berlin:Springer-

Verlag,2008:317-329.

[11]包加桐,宋爱国,郭晏,等.基于SURF特征跟踪的动态手势识别算法[J].机器人,2011,33(4):482-489.

[12]LOWE D G.Distinctive image features from scale-invariant key-points[J].International Journal of Computer Vision,2004,60

(2):91-110.

[13]NOWAK E,JURIE F,TRIGGS B.Sampling strategies for bag-of-features image classification[C]//Proceedings of the9th European

Conference on Computer Vision in Computer Vision.Berlin:

Springer,2006:490-503.

[14]WESTON J,WATKINS C.Support vector machines for multi-class pattern recognition[EB/OL].[2012-04-29].http://www.cse.

yorku.ca/course_archive/2005-06/F/6002B/Readings/weston99.

pdf.

[15]CHANG C C,LIN C J.LIBSVM:A library for support vector ma-chines[EB/OL].[2012-04-04].http://www.csie.ntu.edu.tw/

cjlin/papers/libsvm.pdf.

[16]HSU R L,ABDEL-MOTTALEB M.Face detection in color images [J].IEEE Transactions on Pattern Analysis and Machine Intelli-

gence,2002,24(5):696-706.

(上接第3391页)

6结语

本文所提出的针对不同地貌和地形的积雪仿真模型,能在三维仿真平台中动态生成积雪场景。通过调整阈值还可以获得不同的积雪覆盖效果。另外,本文所述的积雪仿真模型,具备很大的拓展性。由于已经对地貌进行了分类,可以根据不同的地貌进行很复杂的融雪计算,比如周围环境温度的影响、海拔高度的影响等因素,以此达到更加逼真的仿真效果。然而,本文所述的积雪仿真模型,基于所有区域积雪均匀覆盖的假设,并没有体现出积雪累计以后的厚度,在实验分析中,也忽略了原本就已经存在的积雪地貌。在后续的工作中,将进一步提升仿真模型的真实性,增加积雪厚度的体现。

参考文献:

[1]NISHITA T,IWASAKI H,DOBASHI Y,et al.A modeling and rendering method for snow by using metaballs[J].Computer Graph-

ics Forum,1997,16(3):357-364.

[2]PREMOZE S,THOMPSON W B,SHIRLEY P.Geospecific render-ing of alpine terrain[EB/OL].[2012-05-12].http://diglib.eg.

org/EG/DL/WS/EGWR/EGWR99/107-118.pdf.abstract.pdf.[3]FEARING P.Computer modeling of fallen snow[C]//International

Conference on Computer Graphics and Interactive Techniques.New York:ACM,2000:37-46.

[4]OHLSSON P,SEIPEL S.Real-time rendering of accumulated snow [C]//The Annual SIGRAD Conference.Link ping,Sweden:Link ping University Electronic Press,2004:25-32.

[5]FOLDES D,BENES B.Occlusion-based snow accumulation simula-tion[EB/OL].[2012-05-12].http://www.docin.com/p-267805418.html.

[6]贺怀清,薛军涛.一种大场景环境下降雪和积雪仿真的新方法[J].中国图象图形学报,2007,12(9):1676-1680.

[7]殷海明,乐光学,李永刚.一种基于图像的雪景模拟算法[J].系统仿真学报,2009,21(2):621-624.

[8]韩秀珍,张立强.大尺度三维复杂场景中雪动态模拟的方法[J].计算机工程与应用,2011,47(34):222-227.

[9]GONZALEZ R C,WOODS R E.数字图像处理:第二版[M].北京:电子工业出版社,2007:263-265.

[10]韩忠民.知经纬度计算两点精确距离[J].科技传播,2011(11): 196,174.

[11]唐勇,张倩.雪场景真实感的实时建模与绘制[J].计算机科学,2010,37(4):289-292.

[12]百度百科.FLOPS[EB/OL].[2012-05-02].http://baike.baidu.com/view/1473198.htm.

6933计算机应用第32卷

(完整word版)支持向量机(SVM)原理及应用概述分析

支持向量机(SVM )原理及应用 一、SVM 的产生与发展 自1995年Vapnik (瓦普尼克)在统计学习理论的基础上提出SVM 作为模式识别的新方法之后,SVM 一直倍受关注。同年,Vapnik 和Cortes 提出软间隔(soft margin)SVM ,通过引进松弛变量i ξ度量数据i x 的误分类(分类出现错误时i ξ大于0),同时在目标函数中增加一个分量用来惩罚非零松弛变量(即代价函数),SVM 的寻优过程即是大的分隔间距和小的误差补偿之间的平衡过程;1996年,Vapnik 等人又提出支持向量回归 (Support Vector Regression ,SVR)的方法用于解决拟合问题。SVR 同SVM 的出发点都是寻找最优超平面(注:一维空间为点;二维空间为线;三维空间为面;高维空间为超平面。),但SVR 的目的不是找到两种数据的分割平面,而是找到能准确预测数据分布的平面,两者最终都转换为最优化问题的求解;1998年,Weston 等人根据SVM 原理提出了用于解决多类分类的SVM 方法(Multi-Class Support Vector Machines ,Multi-SVM),通过将多类分类转化成二类分类,将SVM 应用于多分类问题的判断:此外,在SVM 算法的基本框架下,研究者针对不同的方面提出了很多相关的改进算法。例如,Suykens 提出的最小二乘支持向量机 (Least Square Support Vector Machine ,LS —SVM)算法,Joachims 等人提出的SVM-1ight ,张学工提出的中心支持向量机 (Central Support Vector Machine ,CSVM),Scholkoph 和Smola 基于二次规划提出的v-SVM 等。此后,台湾大学林智仁(Lin Chih-Jen)教授等对SVM 的典型应用进行总结,并设计开发出较为完善的SVM 工具包,也就是LIBSVM(A Library for Support Vector Machines)。LIBSVM 是一个通用的SVM 软件包,可以解决分类、回归以及分布估计等问题。 二、支持向量机原理 SVM 方法是20世纪90年代初Vapnik 等人根据统计学习理论提出的一种新的机器学习方法,它以结构风险最小化原则为理论基础,通过适当地选择函数子集及该子集中的判别函数,使学习机器的实际风险达到最小,保证了通过有限训练样本得到的小误差分类器,对独立测试集的测试误差仍然较小。 支持向量机的基本思想:首先,在线性可分情况下,在原空间寻找两类样本的最优分类超平面。在线性不可分的情况下,加入了松弛变量进行分析,通过使用非线性映射将低维输

特征加权的核学习方法

Computer Engineering and Applications 计算机工程与应用 2015,51(14)1引言支持向量机(Support Vector Machines ,SVMs )[1]的提出与发展,使得人们开始注意到核方法的强大优势。其理论基础建立在由Vapnik 等人建立并完善的统计学习理论,该理论是基于VC 维和结构风险最小化原理,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折衷,在很大程度上克服了传统机器学习中的维数灾难和局部极小等问题,从而获得较好的泛化能力。然而,以支持向量机为代表的核方法普遍存在寻求最优参数难的问题[2]。多核学习[3]通过组合不同的核函数在一定程度上解决了核函数参数选取,但同时增加了 学习过程的计算复杂度。当前常用的多核学习方法普遍使用这样一个流程:(1)对当前任务的数据集使用不同的核函数进行映射,进而组成不同的核矩阵;(2)将得到的核矩阵以某种方式(线性或非线性)进行组合,使之成为一个带未知参数的核矩阵,这些未知参数是相应核矩阵的权值,这些权值反映了不同核矩阵在当前任务中所做贡献的大小;(3)将组合得到的带未知权值的核矩 阵带入到支持向量机求解框架,通常将问题转化为求解一个凸优化问题进行求解。求解多核学习问题的优化特征加权的核学习方法 胡湘萍,李彦勤 HU Xiangping,LI Yanqin 1.解放军信息工程大学,郑州450002 2.河南经贸职业学院,郑州450018 1.PLA Information Engineering University,Zhengzhou 450002,China 2.Henan Economy and Trade Vocational College,Zhengzhou 450018,China HU Xiangping,LI https://www.doczj.com/doc/fc15859000.html,bination multiple kernels with feature weight https://www.doczj.com/doc/fc15859000.html,puter Engineering and Applications,2015,51(14):104-107. Abstract :A kernel learning algorithm is proposed based on feature weight.As in the classification task,each feature of data sample is not taken the same contribution,some features are very related to the classification task,it should be given more attention.The proposed algorithm integrates the advantages of multiple kernels learning,which is a weighted combi-nation of different kernel functions,but at a lower computational complexity required.Experimental results show that the proposed algorithm,compared to the multiple kernel learning and support vector machines,obtains the state of art results,and its computational complexity is slightly higher than support vector machines,but with far less than multiple kernels learning algorithm. Key words :feature weight learning;support vector machine;kernel learning 摘要:提出了一种特征加权的核学习方法,其主要为了解决当前核方法在分类任务中对所有数据特征的同等对待的不足。在分类任务中,数据样本的每个特征所起的作用并不是相同的,有些特征对分类任务有促进作用,应该给予更多的关注。提出的算法集成了多核学习的优势,以加权的方式组合不同的核函数,但所需的计算复杂度更低。实验结果证明,提出的算法与支持向量机、多核学习算法相比,分类准确度优于支持向量机和多核学习算法,在计算复杂度上略高于支持向量机,但远远低于多核学习算法。 关键词:特征加权;支持向量机;核学习 文献标志码:A 中图分类号:TP391doi :10.3778/j.issn.1002-8331.1403-0080 作者简介:胡湘萍(1982—),女,讲师,主要研究领域为数据挖掘、人工智能;李彦勤(1981—),女,讲师,主要研究领域为数据库应 用技术、人工智能。E-mail :yanqinli2006@https://www.doczj.com/doc/fc15859000.html, 收稿日期:2014-03-10修回日期:2014-06-11文章编号:1002-8331(2015)14-0104-04 CNKI 网络优先出版:2014-08-15,https://www.doczj.com/doc/fc15859000.html,/kcms/doi/10.3778/j.issn.1002-8331.1403-0080.html 104

基于支持向量机的飞机图像识别算法

基于支持向量机的飞机图像识别算法 发布:2011-09-05 | 作者: | 来源: qihongchao | 查看:902次 | 用户关注: 计算机的模式识别技术是目前研究的热点,本文将探讨运用图像处理技术来进行飞机图像识别。通过神经网络的图像边缘检测方法得到飞机轮廓,再进行特征提取,运用模式识别技术将目标正确的分类。传统的分类方法,如人工神经网络在处理小样本问题时一方面容易出现过学习现像,导致算法的推广性差;另一方面学习的性能差,处理非线性问题算法复杂。而统计学习理论是一种专门的小样本统计理论,基于统计学习理论的支持向量机技术是一种新 计算机的模式识别技术是目前研究的热点,本文将探讨运用图像处理技术来进行飞机图像识别。 通过神经网络的图像边缘检测方法得到飞机轮廓,再进行特征提取,运用模式识别技术将目标正确的分类。传统的分类方法,如人工神经网络在处理小样本问题时一方面容易出现过学习现像,导致算法的推广性差;另一方面学习的性能差,处理非线性问题算法复杂。而统计学习理论是一种专门的小样本统计理论,基于统计学习理论的支持向量机技术是一种新的模式识别方法,能够较好地解决小样本学习问题。本文对基于支持向量机的飞机图像识别算法做了研究。 1 飞机图像识别算法 1.1 基于邻域灰度变化极值和神经网络的图像边缘检测方法 要提取物体的轮廓特征首先必须在图像上得到轮廓的位置,即得到边界象素在图像上的位置。传统的边缘检测算法,如sobel算子、robert算子等有一些缺点,一是提取的边缘很粗,无法精确得到边缘象素,而且边缘具有很强的方向性,使用某一方向性的算子造成的结果是与之垂直方向的边缘较为明显,而相同方向的边缘则检测不到。本文提出了基于邻域灰度变化极值和神经网络的图像边缘检测方法。 由于图像的数据量大,边缘检测网络的训练时间较长,而非边界候选象素对于图像边缘提取作用不大。因此,本文采用一种边界候选象素提取方法,使训练数据规模可观地减少。 图像中的边缘象素都是灰度变化较大的地方,边界候选象素提取算法就是找到这些点。为此,借鉴经典图像锐化的方法,引入一个3×3的检测窗口扫描图像,考察其中心象素与其邻域象素的灰度变化的最大值,通过设定适当的阈值将原始图像变换为二值边缘图像。假定点(x,y)与其邻域灰度变化的最大值为max,阈值为T,二值图像相应点处的值为g(x,y),则其实现算法为: 此方法求取边界候选象素的优点是对每一象素都考虑了其邻域象素的灰度信息,更符合图像的边缘灰度变化的特点,因此对各类图像都具有广泛的适

支持向量机

支持向量机 支持向量机模型选择研究 摘要:统计学习理论为系统地研究有限样本情况下的机器学习问题提供了一套 比较完整的理论体系。支持向量机 (suPportvectorMachine,SVM)是在该理论体系下产生的一种新的机器学习方法,它能较好地解决小样本、非线性、维数灾难和局部极小等问题,具有很强的泛化能力。支持向量机目前已经广泛地应用于模式识别、回归估计、概率密度估计等各个领域。不仅如此,支持向量机的出现推动了基于核的学习方法(Kernel-based Learning Methods) 的迅速发展,该方法使得研究人员能够高效地分析非线性关系,而这种高效率原先只有线性算法才能得到。目前,以支持向量机为主要代表的核方法是机器学习领域研究的焦点课题之一。 众所周知,支持向量机的性能主要取决于两个因素:(1)核函数的选择;(2)惩罚 系数(正则化参数)C的选择。对于具体的问题,如何确定SVM中的核函数与惩罚系 数就是所谓的模型选择问题。模型选择,尤其是核函数的选择是支持向量机研究的中心内容之一。本文针对模型选择问题,特别是核函数的选择问题进行了较为深入的研究。其中主要的内容如下: 1.系统地归纳总结了统计学习理论、核函数特征空间和支持向量机的有关理论与算法。 2.研究了SVM参数的基本语义,指出数据集中的不同特征和不同样本对分类结 果的影响可以分别由核参数和惩罚系数来刻画,从而样木重要性和特征重要性的考察可以归结到SVM的模型选择问题来研究。在

对样本加权SVM模型(例如模糊SVM)分析的基础上,运用了特征加权SVM模型,即FWSVM,本质上就是SVM与特征加权的结合。 3,在系统归纳总结SVM模型选择。尤其是核函数参数选择的常用方法(例如交叉验证技术、最小化LOO误差及其上界、优化核评估标准)。关键词:机器学习;模式分类;支持向量机;模型选择;核函数;核函数评估 支持向量机基础 引言 机器学习的科学基础之一是统计学。传统统计学所研究的是渐近理论,即当样本数目趋于无穷大时的极限特性。基于传统统计学的机器学习,也称为统计模式识别,由Duda等人提出。Duda的贡献主要是以经典统计理论为工具刻画了模式识别与机器学习的各类任务,同时暗示了对所建模型的评价方法。然而,在实际应用中,学习样本的数目往往是有限的,特别当问题处于高维空问时尤其如此。统计学习理论研究的是有限样本情况下的机器学习问题,它基于PAC(Probably Approximately Correct)框架给出关于学习算法泛化性能的界,从而可以得出误差精度和样木数目之间的关系。这样,样木集合成为泛化指标的随机变量,由此建立了结构风险理论。 Minsky和PaPert在20世纪60年代明确指出线性学习机计算能力有限。总体上,现实世界复杂的应用需要比线性函数更富有表达能力的假设空间"多层感知器可以作为这个问题的一个解,由此导向了 多层神经网络的反向传播算法。核函数表示方式提供了另一条解决途径,即将数据映射到高维空间来增强线性学习机的计算能力。核函数的引入最终使得在适当的特征空间中使用人们熟知的线性算法高效地检测非线性关系成为一可能。SVM是建立在统计学习理论(包括核函数的表示理论)基础上的第一个学习算法,目前主要应用于求解监督学习问题,即分类和回归问题。SVM以泛化能力为目标,其目的不是

支持向量机的matlab代码

支持向量机的matlab代码 Matlab中关于evalin帮助: EVALIN(WS,'expression') evaluates 'expression' in the context of the workspace WS. WS can be 'caller' or 'base'. It is similar to EVAL except that you can control which workspace the expression is evaluated in. [X,Y,Z,...] = EVALIN(WS,'expression') returns output arguments from the expression. EVALIN(WS,'try','catch') tries to evaluate the 'try' expression and if that fails it evaluates the 'catch' expression (in the current workspace). 可知evalin('base', 'algo')是对工作空间base中的algo求值(返回其值)。 如果是7.0以上版本 >>edit svmtrain >>edit svmclassify >>edit svmpredict function [svm_struct, svIndex] = svmtrain(training, groupnames, varargin) %SVMTRAIN trains a support vector machine classifier % % SVMStruct = SVMTRAIN(TRAINING,GROUP) trains a support vector machine % classifier using data TRAINING taken from two groups given by GROUP. % SVMStruct contains information about the trained classifier that is % used by SVMCLASSIFY for classification. GROUP is a column vector of % values of the same length as TRAINING that defines two groups. Each % element of GROUP specifies the group the corresponding row of TRAINING % belongs to. GROUP can be a numeric vector, a string array, or a cell % array of strings. SVMTRAIN treats NaNs or empty strings in GROUP as % missing values and ignores the corresponding rows of TRAINING. % % SVMTRAIN(...,'KERNEL_FUNCTION',KFUN) allows you to specify the kernel % function KFUN used to map the training data into kernel space. The % default kernel function is the dot product. KFUN can be one of the % following strings or a function handle: % % 'linear' Linear kernel or dot product % 'quadratic' Quadratic kernel % 'polynomial' Polynomial kernel (default order 3) % 'rbf' Gaussian Radial Basis Function kernel % 'mlp' Multilayer Perceptron kernel (default scale 1) % function A kernel function specified using @,

支持向量机的实现

模式识别课程大作业报告——支持向量机(SVM)的实现 姓名: 学号: 专业: 任课教师: 研究生导师: 内容摘要

支持向量机是一种十分经典的分类方法,它不仅是模式识别学科中的重要内容,而且在图像处理领域中得到了广泛应用。现在,很多图像检索、图像分类算法的实现都以支持向量机为基础。本次大作业的内容以开源计算机视觉库OpenCV为基础,编程实现支持向量机分类器,并对标准数据集进行测试,分别计算出训练样本的识别率和测试样本的识别率。 本报告的组织结构主要分为3大部分。第一部分简述了支持向量机的原理;第二部分介绍了如何利用OpenCV来实现支持向量机分类器;第三部分给出在标准数据集上的测试结果。 一、支持向量机原理概述

在高维空间中的分类问题实际上是寻找一个超平面,将两类样本分开,这个超平面就叫做分类面。两类样本中离分类面最近的样本到分类面的距离称为分类间隔。最优超平面指的是分类间隔最大的超平面。支持向量机实质上提供了一种利用最优超平面进行分类的方法。由最优分类面可以确定两个与其平行的边界超平面。通过拉格朗日法求解最优分类面,最终可以得出结论:实际决定最优分类面位置的只是那些离分类面最近的样本。这些样本就被称为支持向量,它们可能只是训练样本中很少的一部分。支持向量如图1所示。 图1 图1中,H是最优分类面,H1和H2别是两个边界超平面。实心样本就是支持向量。由于最优超平面完全是由这些支持向量决定的,所以这种方法被称作支持向量机(SVM)。 以上是线性可分的情况,对于线性不可分问题,可以在错分样本上增加一个惩罚因子来干预最优分类面的确定。这样一来,最优分类面不仅由离分类面最近的样本决定,还要由错分的样本决定。这种情况下的支持向量就由两部分组成:一部分是边界支持向量;另一部分是错分支持向量。 对于非线性的分类问题,可以通过特征变换将非线性问题转化为新空间中的线性问题。但是这样做的代价是会造成样本维数增加,进而导致计算量急剧增加,这就是所谓的“维度灾难”。为了避免高维空间中的计算,可以引入核函数的概念。这样一来,无论变换后空间的维数有多高,这个新空间中的线性支持向量机求解都可以在原空间通过核函数来进行。常用的核函数有多项式核、高斯核(径向基核)、Sigmoid函数。 二、支持向量机的实现 OpenCV是开源计算机视觉库,它在图像处理领域得到了广泛应用。OpenCV 中包含许多计算机视觉领域的经典算法,其中的机器学习代码部分就包含支持向量机的相关内容。OpenCV中比较经典的机器学习示例是“手写字母分类”。OpenCV 中给出了用支持向量机实现该示例的代码。本次大作业的任务是研究OpenCV中的支持向量机代码,然后将其改写为适用于所有数据库的通用程序,并用标准数据集对算法进行测试。本实验中使用的OpenCV版本是,实验平台为Visual

支持向量机非线性回归通用MATLAB源码

支持向量机非线性回归通用MA TLAB源码 支持向量机和BP神经网络都可以用来做非线性回归拟合,但它们的原理是不相同的,支持向量机基于结构风险最小化理论,普遍认为其泛化能力要比神经网络的强。大量仿真证实,支持向量机的泛化能力强于BP网络,而且能避免神经网络的固有缺陷——训练结果不稳定。本源码可以用于线性回归、非线性回归、非线性函数拟合、数据建模、预测、分类等多种应用场合,GreenSim团队推荐您使用。 function [Alpha1,Alpha2,Alpha,Flag,B]=SVMNR(X,Y,Epsilon,C,TKF,Para1,Para2) %% % SVMNR.m % Support Vector Machine for Nonlinear Regression % All rights reserved %% % 支持向量机非线性回归通用程序 % GreenSim团队原创作品,转载请注明 % GreenSim团队长期从事算法设计、代写程序等业务 % 欢迎访问GreenSim——算法仿真团队→https://www.doczj.com/doc/fc15859000.html,/greensim % 程序功能: % 使用支持向量机进行非线性回归,得到非线性函数y=f(x1,x2,…,xn)的支持向量解析式,% 求解二次规划时调用了优化工具箱的quadprog函数。本函数在程序入口处对数据进行了% [-1,1]的归一化处理,所以计算得到的回归解析式的系数是针对归一化数据的,仿真测 % 试需使用与本函数配套的Regression函数。 % 主要参考文献: % 朱国强,刘士荣等.支持向量机及其在函数逼近中的应用.华东理工大学学报 % 输入参数列表 % X 输入样本原始数据,n×l的矩阵,n为变量个数,l为样本个数 % Y 输出样本原始数据,1×l的矩阵,l为样本个数 % Epsilon ε不敏感损失函数的参数,Epsilon越大,支持向量越少 % C 惩罚系数,C过大或过小,泛化能力变差 % TKF Type of Kernel Function 核函数类型 % TKF=1 线性核函数,注意:使用线性核函数,将进行支持向量机的线性回归 % TKF=2 多项式核函数 % TKF=3 径向基核函数 % TKF=4 指数核函数 % TKF=5 Sigmoid核函数 % TKF=任意其它值,自定义核函数 % Para1 核函数中的第一个参数 % Para2 核函数中的第二个参数 % 注:关于核函数参数的定义请见Regression.m和SVMNR.m内部的定义 % 输出参数列表 % Alpha1 α系数 % Alpha2 α*系数 % Alpha 支持向量的加权系数(α-α*)向量

支持向量机分类器

支持向量机分类器 1 支持向量机的提出与发展 支持向量机( SVM, support vector machine )是数据挖掘中的一项新技术,是借助于最优化方法来解决机器学习问题的新工具,最初由V.Vapnik 等人在1995年首先提出,近几年来在其理论研究和算法实现等方面都取得了很大的进展,开始成为克服“维数灾难”和过学习等困难的强有力的手段,它的理论基础和实现途径的基本框架都已形成。 根据Vapnik & Chervonenkis的统计学习理论 ,如果数据服从某个(固定但未知的)分布,要使机器的实际输出与理想输出之间的偏差尽可能小,则机器应当遵循结构风险最小化 ( SRM,structural risk minimization)原则,而不是经验风险最小化原则,通俗地说就是应当使错误概率的上界最小化。SVM正是这一理论的具体实现。与传统的人工神经网络相比, 它不仅结构简单,而且泛化( generalization)能力明显提高。 2 问题描述 2.1问题引入 假设有分布在Rd空间中的数据,我们希望能够在该空间上找出一个超平面(Hyper-pan),将这一数据分成两类。属于这一类的数据均在超平面的同侧,而属于另一类的数据均在超平面的另一侧。如下图。 比较上图,我们可以发现左图所找出的超平面(虚线),其两平行且与两类数据相切的超平面(实线)之间的距离较近,而右图则具有较大的间隔。而由于我们希望可以找出将两类数据分得较开的超平面,因此右图所找出的是比较好的超平面。 可以将问题简述如下: 设训练的样本输入为xi,i=1,…,l,对应的期望输出为yi∈{+1,-1},其中+1和-1分别代表两类的类别标识,假定分类面方程为ω﹒x+b=0。为使分类面对所有样本正确分类并且具备分类间隔,就要求它满足以下约束条件: 它追求的不仅仅是得到一个能将两类样本分开的分类面,而是要得到一个最优的分类面。 2.2 问题的数学抽象 将上述问题抽象为: 根据给定的训练集

MATLAB-智能算法30个案例分析-终极版(带目录)

MATLAB 智能算法30个案例分析(终极版) 1 基于遗传算法的TSP算法(王辉) 2 基于遗传算法和非线性规划的函数寻优算法(史峰) 3 基于遗传算法的BP神经网络优化算法(王辉) 4 设菲尔德大学的MATLAB遗传算法工具箱(王辉) 5 基于遗传算法的LQR控制优化算法(胡斐) 6 遗传算法工具箱详解及应用(胡斐) 7 多种群遗传算法的函数优化算法(王辉) 8 基于量子遗传算法的函数寻优算法(王辉) 9 多目标Pareto最优解搜索算法(胡斐) 10 基于多目标Pareto的二维背包搜索算法(史峰) 11 基于免疫算法的柔性车间调度算法(史峰) 12 基于免疫算法的运输中心规划算法(史峰) 13 基于粒子群算法的函数寻优算法(史峰) 14 基于粒子群算法的PID控制优化算法(史峰) 15 基于混合粒子群算法的TSP寻优算法(史峰) 16 基于动态粒子群算法的动态环境寻优算法(史峰) 17 粒子群算法工具箱(史峰) 18 基于鱼群算法的函数寻优算法(王辉) 19 基于模拟退火算法的TSP算法(王辉) 20 基于遗传模拟退火算法的聚类算法(王辉) 21 基于模拟退火算法的HEV能量管理策略参数优化(胡斐)

22 蚁群算法的优化计算——旅行商问题(TSP)优化(郁磊) 23 基于蚁群算法的二维路径规划算法(史峰) 24 基于蚁群算法的三维路径规划算法(史峰) 25 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测(郁磊) 26 有导师学习神经网络的分类——鸢尾花种类识别(郁磊) 27 无导师学习神经网络的分类——矿井突水水源判别(郁磊) 28 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断(郁磊) 29 支持向量机的回归拟合——混凝土抗压强度预测(郁磊) 30 极限学习机的回归拟合及分类——对比实验研究(郁磊) 智能算法是我们在学习中经常遇到的算法,主要包括遗传算法,免疫算法,粒子群算法,神经网络等,智能算法对于很多人来说,既爱又恨,爱是因为熟练的掌握几种智能算法,能够很方便的解决我们的论坛问题,恨是因为智能算法感觉比较“玄乎”,很难理解,更难用它来解决问题。 因此,我们组织了王辉,史峰,郁磊,胡斐四名高手共同写作MATLAB智能算法,该书包含了遗传算法,免疫算法,粒子群算法,鱼群算法,多目标pareto算法,模拟退火算法,蚁群算法,神经网络,SVM等,本书最大的特点在于以案例为导向,每个案例针对一

支持向量机matlab实现源代码知识讲解

支持向量机m a t l a b 实现源代码

edit svmtrain >>edit svmclassify >>edit svmpredict function [svm_struct, svIndex] = svmtrain(training, groupnames, varargin) %SVMTRAIN trains a support vector machine classifier % % SVMStruct = SVMTRAIN(TRAINING,GROUP) trains a support vector machine % classifier using data TRAINING taken from two groups given by GROUP. % SVMStruct contains information about the trained classifier that is % used by SVMCLASSIFY for classification. GROUP is a column vector of % values of the same length as TRAINING that defines two groups. Each % element of GROUP specifies the group the corresponding row of TRAINING % belongs to. GROUP can be a numeric vector, a string array, or a cell % array of strings. SVMTRAIN treats NaNs or empty strings in GROUP as % missing values and ignores the corresponding rows of TRAINING. % % SVMTRAIN(...,'KERNEL_FUNCTION',KFUN) allows you to specify the kernel % function KFUN used to map the training data into kernel space. The % default kernel function is the dot product. KFUN can be one of the % following strings or a function handle: % % 'linear' Linear kernel or dot product % 'quadratic' Quadratic kernel % 'polynomial' Polynomial kernel (default order 3) % 'rbf' Gaussian Radial Basis Function kernel % 'mlp' Multilayer Perceptron kernel (default scale 1) % function A kernel function specified using @, % for example @KFUN, or an anonymous function % % A kernel function must be of the form % % function K = KFUN(U, V) % % The returned value, K, is a matrix of size M-by-N, where U and V have M % and N rows respectively. If KFUN is parameterized, you can use % anonymous functions to capture the problem-dependent parameters. For % example, suppose that your kernel function is % % function k = kfun(u,v,p1,p2) % k = tanh(p1*(u*v')+p2); % % You can set values for p1 and p2 and then use an anonymous function: % @(u,v) kfun(u,v,p1,p2).

matlab四种支持向量机工具箱

matlab四种支持向量机工具箱 [b]使用要点:[/b] 应研学论坛<<人工智能与模式识别>>版主magic_217之约,写一个关于针对初学者的<<四种支持向量机工具箱>>的详细使用说明。同时也不断有网友向我反映看不懂我的源代码,以及询问如何将该工具箱应用到实际数据分析等问题,其中有相当一部分网友并不了解模式识别的基本概念,就急于使用这个工具箱。本文从模式识别的基本概念谈起,过渡到神经网络模式识别,逐步引入到这四种支持向量机工具箱的使用。 本文适合没有模式识别基础,而又急于上手的初学者。作者水平有限,欢迎同行批评指正! [1]模式识别基本概念 模式识别的方法有很多,常用有:贝叶斯决策、神经网络、支持向量机等等。特别说明的是,本文所谈及的模式识别是指“有老师分类”,即事先知道训练样本所属的类别,然后设计分类器,再用该分类器对测试样本进行识别,比较测试样本的实际所属类别与分类器输出的类别,进而统计正确识别率。正确识别率是反映分类器性能的主要指标。 分类器的设计虽然是模式识别重要一环,但是样本的特征提取才是模式识别最关键的环节。试想如果特征矢量不能有效地描述原样本,那么即使分类设计得再好也无法实现正确分类。工程中我们所遇到的样本一般是一维矢量,如:语音信号,或者是二维矩阵,如:图片等。特征提取就是将一维矢量或二维矩阵转化成一个维数比较低的特征矢量,该特征矢量用于分类器的输入。关于特征提取,在各专业领域中也是一个重要的研究方向,如语音信号的谐振峰特征提取,图片的PCA特征提取等等。 [2]神经网络模式识别 神经网络模式识别的基本原理是,神经网络可以任意逼近一个多维输入输出函数。以三类分类:I、II、III为例,神经网络输入是样本的特征矢量,三类样本的神经网络输出可以是[1;0;0]、[0;1;0]、[0;0;1],也可以是[1;-1;-1]、[-1;1;-1]、[-1;-1;1]。将所有样本中一部分用来训练网络,另外一部分用于测试输出。通常情况下,正确分类的第I类样本的测试输出并不是[1;0;0]或是[1;-1;-1],而是如 [0.1;0;-0.2]的输出。也是就说,认为输出矢量中最大的一个分量是1,其它分量是0或是-1就可以了。 [3]支持向量机的多类分类 支持向量机的基本理论是从二类分类问题提出的。我想绝大部分网友仅着重于理解二类分类问题上了,我当初也是这样,认识事物都有一个过程。二类分类的基本原理固然重要,我在这里也不再赘述,很多文章和书籍都有提及。我觉得对于工具箱的使用而言,理解如何实现从二类分类到多类分类的过渡才是最核心的内容。下面我仅以1-a-r算法为例,解释如何由二类分类器构造多类分类器。二类支持向量机分类器的输出为[1,-1],当面对多类情况时,就需要把多类分类器分解成多个二类分类器。在第一种工具箱LS_SVMlab中,文件Classification_LS_SVMlab.m中实现了三类分类。训练与测试样本分别为n1、n2,它们是3 x 15的矩阵,即特征矢量是三维,训练与测试样本数目均是15;由于是三类分类,所以训练与测试目标x1、x2的每一分量可以是1、2或是3,

基于SVM支持向量机的水质图像分析

龙源期刊网 https://www.doczj.com/doc/fc15859000.html, 基于SVM支持向量机的水质图像分析 作者:李昂金晓军万权性 来源:《电脑知识与技术》2018年第08期 摘要:针对运用水色图像来判别水质状况的问题,设计了一种基于计算机视觉与机器学习的水质图像评价方法。利用颜色矩阵对水质图像进行特征提取,采用SVM支持向量机算法对水质图像的RGB三通道特征进行数据分析,使用Python语言进行编程,得到一个水质评价模型。实验表明,该方法能有效通过水体的颜色对不同水质进行识别,具有一定的实际应用价值。 关键词:计算机视觉;机器学习;Pvthon;水质图像 中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)08-0157-03 随着工业技术的日益提升,人类的生活变得越来越便利。但与此同时环境污染问题日趋严重,大气、土壤、水质污染是各个工业国家不得不面对的问题。污染需要治理,因此对于污染物的评价与监测十分重要。水产养殖业是我国国民经济的一个重要组成部分,在水产养殖过程中,选择没有污染的水域进行养殖十分重要。有经验的渔业生产从业者能够通过水体的颜色来判断水质的好坏,从而确定水体是否适合鱼类生长。在生产环境下,通常是以传统的肉眼观测法,以经验来观察判断,这种方式虽然有效,但观察结果不够稳定,主观性较强,容易引起观察性偏差。因此寻求一种定量分析有便于推广的方法十分必要。随着计算机视觉技术的快速发展,利用机器视觉代替人工视觉已经用于工业生产的诸多领域,同时也为水产养殖业提供了更好的技术支持。通过合理将计算机视觉技术与专家经验相结合,可以通过水体的颜色,对水质的优劣程度进行分级,对水质情况进行自动快速的识别。本文针对水质污染的评价方法进行研究,通过计算机科学技术对水质图像进行特征提取与数据分析,得到一个有效的水质自动评价模型。 1数据预处理 颜色直方图产生的特征维数一般大于颜色矩的特征维数,为了避免过多变量影响后续的分类效果,在本案例中选择采用颜色矩来提取水样图像的特征,即建立水样图像与反映该图像特征的数据信息关系,同时由有经验的专家对水样图像根据经验进行分类,建立水样数据信息与水质类别的专家样本库,进而构建分类模型,得到水样图像与水质类别的映射关系,并经过不断调整系数优化模型,最后利用训练好的分类模型,用户就能方便地通过水样图像判别出该水样的水质类别。水色分类如表1所示。 图1为基于图像处理的水质评价流程,主要包括以下步骤。

Matlab8个例子

1、囧 function happynewyear axis off; set(gcf,'menubar','none','toolbar','none'); for k=1:20 h=text(rand,rand,... ['\fontsize{',num2str(unifrnd(20,50)),'}\fontname {隶书} 新年快乐'],... 'color',rand(1,3),'Rotation',360 * rand); pause(0.5) End 2、小猫进洞 function t=cat_in_holl(n) t=zeros(1,n); for k=1:n c=unifdnd(3,1); while c~=1 if c==2 t(k)=t(k)+4; else t(k)=t(k)+6; end c=unifdnd(3,1); end t(k)=t(k)+2; End

3、 Slow function example2_3_6s tic;A=unidrnd(100,10,7); B=zeros(10,3); for m=1:10 a=A(m,:); b=[4,6,8]; for ii=1:3 dd=a(a==b(ii)); if isempty(dd)==0 b(ii)=0; end end B(m,:)=b; toc end A,B Fast function example2_3_6fast2 clear A = unidrnd(100,1000000,7); B = repmat([4,6,8],1000000,1); tic;C = [any(AA == 4,2) any(AA == 6,2) any(AA == 8,2)]; B(C) = 0; Toc 4、随机行走法 function [mx,minf]=randwalk(f,x,lamda,epsilon,N) %随机行走法求函数的极小值。输入f为所求函数的句柄, %x为初始值。lamda为步长。epsilon为控制lamda的减小的阈值,即lamda 减小到epsilon时 %迭代停止。

支持向量机(SVM)原理及

支持向量机(SVM)原理及应用概述

支持向量机(SVM )原理及应用 一、SVM 的产生与发展 自1995年Vapnik (瓦普尼克)在统计学习理论的基础上提出SVM 作为模式识别的新方法之后,SVM 一直倍受关注。同年,Vapnik 和Cortes 提出软间隔(soft margin)SVM ,通过引进松弛变量i ξ度量数据i x 的误分类(分类出现错误时i ξ大于0),同时在目标函数中增加一个分量用来惩罚非零松弛变量(即代价函数),SVM 的寻优过程即是大的分隔间距和小的误差补偿之间的平衡过程;1996年,Vapnik 等人又提出支持向量回归 (Support Vector Regression ,SVR)的方法用于解决拟合问题。SVR 同SVM 的出发点都是寻找最优超平面(注:一维空间为点;二维空间为线;三维空间为面;高维空间为超平面。),但SVR 的目的不是找到两种数据的分割平面,而是找到能准确预测数据分布的平面,两者最终都转换为最优化问题的求解;1998年,Weston 等人根据SVM 原理提出了用于解决多类分类的SVM 方法(Multi-Class Support Vector Machines ,Multi-SVM),通过将多类分类转化成二类分类,将SVM 应用于多分类问题的判断:此外,在SVM 算法的基本框架下,研究者针对不同的方面提出了很多相关的改进算法。例如,Suykens 提出的最小二乘支持向量机 (Least Square Support Vector Machine ,LS —SVM)算法,Joachims 等人提出的SVM-1ight ,张学工提出的中心支持向量机 (Central Support Vector Machine ,CSVM),Scholkoph 和Smola 基于二次规划提出的v-SVM 等。此后,台湾大学林智仁(Lin Chih-Jen)教授等对SVM 的典型应用进行总结,并设计开发出较为完善的SVM 工具包,也就是LIBSVM(A Library for Support Vector Machines)。LIBSVM 是一个通用的SVM 软件包,可以解决分类、回归以及分布估计等问题。 二、支持向量机原理 SVM 方法是20世纪90年代初Vapnik 等人根据统计学习理论提出的一种新的机器学习方 法,它以结构风险最小化原则为理论基础,通过适当地选择函数子集及该子集中的判别函数,使学习机器的实际风险达到最小,保证了通过有限训练样本得到的小误差分类器,对独立测试集的测试误差仍然较小。 支持向量机的基本思想:首先,在线性可分情况下,在原空间寻找两类样本的最优分类超平面。在线性不可分的情况下,加入了松弛变量进行分析,通过使用非线性映射将低维输

相关主题
文本预览
相关文档 最新文档