王 芬,马 涛,马 旭
(宁夏师范学院 数学与计算机科学学院,宁夏 固原 756000)
基于SVM分类的图像边缘检测研究
王 芬,马 涛,马 旭
(宁夏师范学院 数学与计算机科学学院,宁夏 固原 756000)
针对经典边缘检测算子检测含噪声图像边缘结果不理想的问题,提出采用基于统计学习理论的支持向量机(Support Vector Machine,SVM)方法建立分类模型,并对图像进行边缘检测.实验基于 MATLAB平台,运用OSU_SVM3.0和LS_SVM工具箱建立模型,实验表明:该方法不仅可以有效地检测图像边缘,还在一定程度上克服了噪声干扰,并可以将被测图像中的特定图形检测出来.
边缘检测;机器学习;SVM
边缘是图像中像素灰度有阶跃变化或屋顶状变化的像素集合,它存在于目标与背景、目标与目标、区域与区域以及基元与基元之间[1],属于图像的最基本特征.边缘包含了丰实的信息,如方向、阶跃性质和形状等,是在图像识别过程中需要抽取的重要属性[2],在边界检测、图像分割、模式识别和机器视觉中具有重要作用.边缘检测是图像处理与识别中最基本的内容之一[3],图像的边缘检测是图像分割、目标区域识别以及区域形状提取等图像分析领域非常重要的基础,图像理解和分析首先要做到边缘检测,目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有非常重要的地位.对于边缘检测,有很多经典算子,如Roberts算子、Sobel算子、Prewitt算子、Laplacian算子和Canny算子等[4].Roberts算子对含有陡峭低噪声的图像处理效果较好,但提取的边缘较粗,定位不准;Sobel算子对灰度渐变和噪声较多的图像处理效果较好,且定位准确;Prewitt算子对灰度渐变的图像处理效果较好;Laplacian算子对图像中的阶跃性边缘定位准确,但对噪声非常敏感;Canny算子不易受噪声干扰,能检测出真正的弱边缘,但这些算子由于其模板相对固定,在检测被噪声污染的复杂图像的边缘时效果欠佳.针对具体的应用场景,边缘提取算法的各种改进层出不穷,但大部分改进都表现在边缘算子模板的不同构造方法上[5-7].近年来,出现了如基于小波与分形理论、基于模糊理论和基于形态学等多种检测手段,但它们都存在自身的缺陷,有的抗噪性能较差,有的检测精度不够[1].因此,找到一种算法简单,既能较好的检测边缘又能抑制噪声的边缘检测算法是图像处理的目标.
投稿日期:2011-06-21
统计学习理论的支持向量机方法在模式识别中对解决小样本、非线性及高维问题具有显著优势,它从数据(样本)出发寻找规律,并利用这些规律对未来数据或无法观测的数据进行分类、预测和插值,已在诸如生物信息学、文本和手写识别等许多领域取得了成功的应用.本研究将支持向量机方法应用于图像边缘检测,发挥其在模式识别中解决小样本、非线性及高维问题的优势,以期在抑制噪声的同时可以有效地检测出图像边缘.
支持向量机(SVM)是统计学习理论的一种具体实现,SVM分类器应用结构风险最小化原则,不仅要求最优分类面无错误的分开各类,而且要使类间间隔最大,以保证真实风险最小[8-10].
设{x i,yi},i=1,2,…l为包含l个样本的训练集,其中x i∈Rm为输入向量,y i∈(+1,-1)为类别标识,l为样本数,m为输入维数.对于边缘检测问题,+1代表边缘点,-1代表非边缘点.
当样本数据线性可分时,判别函数的一般形式为g(x)=wx+b,即有一个超平面使两类样本完全分开.将函数归一化,使两类样本满足 |g(x)|≥1,离分类面最近的样本的 |g(x)|≥1,其分类间隔等于1/(2‖w‖),故要使间隔最大等价于使‖w‖最小,并要求没有错误分类的样本,满足上述条件且使‖w‖2最小的分类面就是最优分类面.过两类样本中离分类面最近的点且平行于最优分类面的超平面H1和H2上的训练样本就是支持向量(Support Vector,SV).
当样本数据非线性可分时,SVM分类通过一个非线性函数Φ(x)将训练集数据x i映射到一个高维线性特征空间[11],在这个维数可能为无穷大的线性空间中构造最优分类超平面:
式(2)中,‖w‖2是描述复杂度的结构化项,ξi为松弛项,C为惩罚因子.利用拉格朗日乘子法求解此二次规划问题的对偶形式,即最优化下式
经典算子在理想场景的效果很好,但在处理复杂场景时,很难在提取边缘的同时有效抑制图像噪声,也基本不能选择提取图像中具有特定形状的边缘,只能应用于有限的较理想场合.故经典算子失效时,基于机器学习的边缘提取方法就显现出其优势来.为了实现边缘检测,本研究将图像的边缘点看作一类,其他像素点看作另一类,利用分类算法建模后,对图像中全部像素进行处理,提取相应边缘.
边缘检测算法的流程如图1所示.
图1 边缘检测算法流程图Figure 1 Edge detection algorithm flow chart
边缘检测算法流程的具体描述为:
(1)构建训练样本.通过提供不同的训练数据改变检测模型的性能,不同目的的训练数据经学习后得到的模型具有不同的分类目的.本研究分别对理想图像(图2(a))、含噪声图像(图2(b))和含有特定图形的图像(图2(c))进行边缘检测,所选训练样本的图像既有目标图像,又有背景的Lena图像和人工绘制的含有特殊图形的图像,如图2所示.
图2 训练样本图像实例Figure 2 Image examples of training samples
在对理想图像(图2(a))进行边缘检测时,由于canny算子在无噪声污染时边缘提取效果较好,故认为由canny算子得到的图像边缘是图像中像素灰度有阶跃变化或屋顶状变化的像素集合,因此将这些像素点作为正样本点,如图3所示;其他像素点作为负样本点.对含噪声图像(图2(b))进行检测时,同样选取图3所示的边缘点作为正样本,其他非边缘像素点和噪声点作为负样本.对于提取含有特定图形的图像(图2(c)),则选取预提取的特定图形的边缘像素点作为正样本点,其他像素点为负样本点,本研究要提取图2(c)中的圆形,则用图2(c)中圆形的边缘点作为正样本,如图4所示,其他边缘点作为负样本.
图3 正样本Figure 3 Positive samples
图4 提取图像中圆形的正样本Figure 4 Circular image of the extracter samples
(2)训练分类器.实验选用 OSU-SVM3.0工具箱,利用径向基核函数训练SVM分类器,通过k重交叉验证的验证方法确定惩罚参数C和RBF核参数r的值,然后分别建立样本图像的8邻域和24邻域分类模型.
(3)测试环节.利用训练环节得到的8邻域和24邻域检测模型分别对被测图像逐像素进行分类,得到测试图像的边缘像素.
SVM分类模型的建立需要通过学习训练.在应用中,如果训练样本已经确定,则该过程是对惩罚因子C和核函数参数的选择过程.实验采用k重交叉验证的验证方法,即训练时将N个样本分为k(1≤k≤N)个子集,其中的(k-1)个子集构成训练集,剩余的1个子集作为测试集;验证步骤重复进行k次,使所有样本子集都参加过测试,实验中选取k=2.
实验通过对不同的8邻域和24邻域边缘检测模型进行训练得到如表1所示的参数集.表1中,惩罚参数C和RBF核参数r都在2重交叉验证下对应于最高分类识别率参数集.
表1 边缘检测模型参数?Table 1 Edge detection model parameters
模型对人物图像的检测结果以及与传统算子的比较如图5所示.由图5可以看出,利用Canny算子对图像进行检测的效果较好,但存在伪边缘,如人物的肩上;而8邻域模型的检测结果并没出现伪边缘,这说明即使在训练集中含有干扰样本,利用本研究提出的基于机器学习的边缘检测模型也可以较好地提取边缘;检测模型对24邻域模型的检测效果优于对8邻域模型的检测效果.
图5 无噪声图像的边缘检测结果与传统算子的检测结果对比Figure 5 Compare of the edge detection results of noise-freeimage with the traditional operator
模型对含噪声人物图像的检查结果以及与传统算子的比较如图6所示.由图6可以看出,在canny算子对噪声图像的检测结果中,人物的脸部被噪声污染严重;而8邻域模型的检测结果则表明即使在训练集中含有一些干扰样本,本研究提出的边缘检测模型不仅可以有效地提取边缘,而且可以抑制噪声,这得益于SVM基于结构风险最小化的噪声抑制的推广性能;同时,比较24邻域模型与8邻域模型的检测结果,二者均能有效提取边缘,24邻域模型抑制噪声的效果要优于8邻域模型.
图6 有噪声图像的边缘检测结果与传统算子的检测结果对比Figure 6 Compare of the edge detection results of noise image with the traditional operator
图7(a)所示图像为特定图形边缘检测的测试图像,图7(b)和图7(c)分别为8邻域模型和24邻域模型检测训练图形中特定图形即圆形的训练图形;图7(d)和图7(e)分别为8邻域模型和24邻域模型检测测试图形中特定图形即圆形的检测结果.结果表明:利用机器学习算法通过训练学习,建立分类模型,可以有效地提取特定图形,并且24邻域模型提取效果均优于8邻域模型.
图7 特定图形边缘提取的测试图像和2种模型的检测结果Figure 7 Test image of extracting Specific graphicand the detection of results of two models
上述实验中建立的模型(简称为9点模型)只考虑了每个像素点的灰度和它8邻域像素的灰度,造成模型对目的图形的提取结果存在缺失,因此考虑加入像素点的位置信息,构建包含8邻域和像素点位置信息的模型(简称为11点模型),结果如图8所示.
图8 11点模型提取的目的图像Figure 8 Purpose image of the model 11
由图8可以看出,11点模型的提取质量很好.但是构建的11点模型只能用来检测原训练图像,检测出的圆形位置与训练时的样本位置相关,但如果用该模型来检测任意图像,则可能检测不出任何图像,这说明11点模型表现出一种排他性.鉴于2种模型各自的优点,本实验在检测图形时,将上述2种方法贯穿使用,9点模型作为一种粗略检测方法,可以检测任何图像中的相应图形,但图形可能不完整,本实验将9点模型检测到的不完整边缘结果作为11点模型的训练样本,再次构建检测模型,这样就将9点模型丢失的边缘提取出来,结果如图9所示.
图9 9点+11点模型的检查结果Figure 9 Purpose image of the model 9 and 11
改进方法用11点模型插补9点模型缺失边缘的过程就像人类视觉中的扫视和注视过程,扫视可以检测和定位特定图形,但不精确,注视对扫视定位后的特定图形进行进一步的检测,考虑像素位置信息,视觉感知因此变得更为准确.
本研究提出用SVM分类方法对图像进行边界检测,介绍了算法在图像边缘检测时对不同模型的构建方法,说明了算法的训练策略.从实验仿真结果可以看出:本研究提出的算法使得模型在检测边缘的同时,可以一定程度地克服噪声干扰,并利用SVM分类器将被测图像中的特定图形有效地检测出来.
[1] 张小琳.图像边缘检测技术综述[J].高能量密度物理,2007,22(1):37-40.
[2] 吴炯,张秀彬,张峰,等.数字图像中边缘算法的实验研究[J].微计算机信息,2004,120(5):106-107.
[3] 甘玲,李涛,赵辉,等.CP神经网络在图像边缘检测中的应用[J].四川大学学报:工程科学版,2003,35(3):93-96.
[4] 肖峰.基于BP神经网络的数字图像边缘检测算法的研究[J].西安科技大学学报,2005,25(3):372-375.
[5] 薛丽霞,李涛,王佐成.一种自适应的canny边缘检测算法[J].计算机应用研究,2010,27(9):3588-3590.
[6] 陈志强,郭永亮,陈诗哲.基于小波变换与改进的Roberts算子融合的图像边缘检测[J].传感器世界,2011,24(4):15-17.
[7] 王鲲鹏.基于Otsu算法和Sobel算子的连接件图像边缘检测[J].现代计算机,2011,19(7):17-19.
[8] Vapnik V N.统计学习理论[M].许建华,张学工,译.北京:电子工业出版社,2004:21-24.
[9] Jeng J T.Hybrid approach of selecting hyper-parameters of support vector machine for regression[J].Systems,Man,and Cybernetics,Part B:Cybernetics,2006,36(3):699-709.
[10] Jin B,Tang Y C,Zhang Y Q.Support vector machines with genetic fuzzy feature transformation for biomedical data classification[J].Information Sciences,2007,177:476-489.
[11] 边肇祺,张学工.模式识别[M].北京:清华大学出版社,1999:105-110.
[12] 陈其松.智能优化支持向量机预测算法及应用研究[D].贵阳:贵州大学,2009:23-25.
[13] Vapnik V N.Statistical Learning Theory[M].New York:Wiley-Interscience,1998:198-203.
[14] 吴涛.核函数的性质、方法及其在障碍检测中的应用[D].北京:国防科学技术大学,2003:27-32.
Study on image edge detection based on classification using SVM
WANGFen,MATao,MAXu
(Institute of Mathematics and Computer Science,Ningxia Normal University,Guyuan 756000,Ningxia Province,China)
According to the problem of bad edge of the image with noise detected using the classical edge detectors,a method based on support vector machine(SVM)of statistical learning theory is proposed to create classification model and detect the image edge.The experiment is based on MATLAB and OSU_SVM3.0 and LS_SVM toolbox are used to create the model.The experiment shows that the method can detect edges of the image very well,and overcomes the noise disturbance in some degree.The specific graphic image can be detected using the method.
edge detection;machine learning;SVM
TP391
A
1671-1114(2011)04-0050-05
宁夏自然科学基金资助项目(NZ11257);宁夏高等学校科学研究基金资助项目(NGNS201003);宁夏师范学院资助项目(ZD2010002,YB2010013)
王 芬(1979—),女,讲师,主要从事图像处理与分析方面的研究.
(责任编校 纪翠荣)