基于支持向量机的图像分类(上篇)

基于⽀持向量机的图像分类(上篇)
摘要:本⽂通过图⽂详细介绍如何利⽤⽀持向量机对图像进⾏分类。这篇⽂章从什么是图像分类任务开始⼀步步详细介绍⽀持向量机原理,以及如何⽤它解决图像多分类任务。将这部分内容分为上下两篇:上篇重点详细介绍实现原理,下篇衔接上篇进⾏编程实现并对程序进⾏解释,本篇为上篇。本⽂将主要介绍以下⼏个⽅⾯:
图像分类任务
收集训练集与测试集
⽀持向量机分类基本原理
特征选择与提取
⽤SVM进⾏图像分类
分类结果评价
1. 图像分类任务
图像分类是模式分类(Pattern C1assification)在图像处理中的应⽤,它完成将图像数据从⼆维灰度空间转换到⽬标模式空间的⼯作。分类的结果是将图像根据不同属性划分为多个不同类别的⼦区域。⼀般地,分类后不同的图像区域之问性质差异应尽可能的⼤,⽽区域内部性质应保证平稳特性。
应⽤SVM进⾏分类的步骤如下:⾸先收集各个类的训练集和测试集,接着选择合适的⽤来分类的图像特征,从训练集中提取特征,然后⽤SVM分类器训练从⽽得到分类模板,最后通过模板对待分类图像进⾏分类。
伸缩车棚
2. 收集训练集与测试集
在进⾏图像分类前,从待处理的数据中取出相当数量的具有代表性的数据作为训练样本。另外,取出⼀定数量的样本作为测试样本。这个⼯作很重要,在算法上没有改进的空间时,通常通过建⽴好的训练集来提⾼分类效果。训练集要满⾜以下的条件:(1)训练集要有代表性。(2)训练集中不能有错误的样本。(3)训练集要尽量完备
膏药制作
cifar10图像集是常⽤的图像分类数据集,由多伦多⼤学的Geoffrey Hinton教授等⼈收集整理,包含了60000张⼤⼩为32*32的彩⾊图像,其中50000张作为训练数据,10000张⽤于测试数据。50000张训练图⽚分为5个⼦集,分别命名为data_batch_1~5。每个⼦集都包含正好10000张图⽚,cifar10包含的图⽚类别如下图所⽰
三维网页
3. ⽀持向量机分类基本原理
SVM是以最优化理论为基础来处理机器学习的新⽅式。它的提出主要是⽤来解决两类分类的问题,在两类中寻⼀个最优超分平⾯将两类分开,来提⾼分类的正确率。
分类问题主要包括两⽅⾯:⼀个是线性可分,⼀个是⾮线性可分。能使两类正确分开且使两类之间的距离最⼤的分类平⾯称为最优超平⾯,其⽅程记为:
对其进⾏归⼀化,使得样本
满⾜
是表⽰的是最优分类超平⾯,图中m1为分类超平⾯,m2、m3分别为与超分平⾯平⾏且是过两类中离分类超平⾯最近的样本,他们间的距离称作分类间隔,间距为。
3.1 线性可分情况
设线性可分样本集为,,则超平⾯,使得训练样本中的正类输⼊和负类输⼊分别位于该超平⾯的两侧。即存在参数对,使得,即最优分类平⾯应使两类之间的间隔最⼤,则求取最优平⾯问题转化为了下⾯的优化问题:
其中,为约束的拉格朗⽇乘⼦,因为都是不等式约束,所以这些乘⼦都是⾮负的。对式(1)求偏导得:
此式称为式(1)的对偶形式。同时,优化问题的最优解必须满⾜如下KKT条件:,任意,可求得b。因为,结果可得⼤部分等于0,将不等于0所对应的样本称为⽀持向量
分类平⾯由⽀持向量确定,也就是说只需少量样本就可构成最优分类⾯。
3.2 ⾮线性可分
⽀持向量机实现⾮线性分类是通过某种事先选择的⾮线性映射(核函数)将输⼊向量映射到⼀个⾼维特征空间,在这个空间中构造最优分类超平⾯。使⽤SVM进⾏数据集分类⼯作的过程中,⾸先是通过预先选定的⼀些⾮线性映射将输⼊空问映射到⾼维特征空间。变换后空间的分类平⾯为:,和线性情况类似,优化⽅程为:
其中,是]是变换后的空间内积。此时,我们并不知道的具体形式。
如果能在原空问构造⼀个函数使之等于变换后空间的内积运算,那么尽管通过⾮线性变换将样本数据映射到⾼维甚⾄⽆穷维空问,并在⾼维空间中构造最优分类超平⾯。但是,在求解最优化问题和计算分类平⾯时并不需要显式计算该⾮线性函数,甚⾄不需知道其具体形式。⽽只需计算函数,即核函数。常⽤的核函数如下所⽰,这些核函数已被证明适合绝⼤部分⾮线性分类问题。
多项式核函数:;
基于径向基函数RBF核函数形式:;
硅酸铝生产线Sigmoid核函数:。
SVM数据集形成的分类函数具有这样的性质:它是⼀组以⽀持向量为参数的⾮线性函数的线性组合。
因此,分类函数的表达式仅和⽀持向量的数量有关,⽽独⽴于空间的维度。在处理⾼维输⼊空间的分类时,这种⽅法尤其有效。
3.3 ⼀对⼀SVM(1-VS-1 SVMS)
⽀持向量机是⽤来处理⼆分类问题的,但现实中碰到的多是多类分类问题,因此⽀持向量机采⽤不同⽅式来达到多类分类的⽬的。⽬前⽀持向量机多类分类⽅法主要分为两个⽅向:⼀个是⼀次求解法,即通过⼀个优化的公式来优化所有类别的参数:还有⼀种通过组合多个SVM分类来解决多类分类问题。
⼀对⼀⽅式就是对每两个类样本之问构建出⼀个分类超平⾯,所有K类样本共能构造出K(K⼀1)12个分类超平⾯。具体分类操作如下:流媒体直播系统
取出所有满⾜条件,通过两分类法构造最优分类函数:
这种⽅式的优点:对于每个⼦,由于训练样本少,因此其训练速度显⽽易见快于l对多SVM⽅式,同时其精度也较⾼。这种⽅式的缺点:随着类数K的增多,SVM的个数也越来越⼤,随着k个数的增多,其训练速度也会越来越慢,这是需要改进的地⽅。
4. 特征选择与提取
ca1214
特征的选择过程分为两个步骤:(1)⽬测。对两类图像的颜⾊、纹理、形状进⾏分析,选择可能分开两类的特征。(2)实验。提取特征,⽤SVM进⾏训练,看测试效果好坏来决定是否进⾏优化(如分块)或更换其他特征。本⽂实验中选择了2个特征:⽅向梯度直⽅图、灰度共⽣矩阵。
4.1 ⽅向梯度直⽅图
HOG特征描述⼦,它通过计算和统计图像局部区域的梯度⽅向直⽅图来构成特征,⼴泛应⽤于图像处理中进⾏物体检测。提取HOG特征包括以下⼏个步骤:
1) 归⼀化图像。⾸先把输⼊的彩⾊图像转灰度图像,然后对图像进⾏平⽅根Gamma压缩,从⽽达到归⼀化效果。这种压缩处理能够有效地降低图像局部的阴影和光照变化,从⽽提⾼HOG特征对于光照变化的鲁棒性。
2) 计算图像梯度。⾸先⽤⼀维离散微分模版[-1,0,1]及其转置分别对归⼀化后的图像进⾏卷积运算,得到⽔平⽅向的梯度分量以及垂直⽅向的梯度分量。然后根据当前像素点的⽔平梯度和垂直梯度,得到当前像素点的梯度幅值和梯度⽅向。公式如下:
其中,分别表⽰当前像素点的⽔平梯度,垂直梯度和像素值。分别为当前像素点的梯度幅值和梯度⽅向。
3) 为每个细胞单元构建梯度⽅向直⽅图。⾸先把尺⼨为64×128的图像分为8×16个cell,即是每个cell为8×8个像素。然后把梯度⽅向限定在[0, π],并将梯度⽅向平均分为9个区间(bin),每个区间20度。最后对cell内每个像素⽤梯度⽅向在直⽅图中进⾏加权投影,也就是说cell中的每个像素点都根据该像素点的梯度幅值为某个⽅向的bin进⾏投票,这样就可以得到这个cell的梯度⽅向直⽅图,也就是该cell对应的9维特征向量。
4) 把细胞单元组合成⼤的块(block),块内归⼀化梯度直⽅图。把相邻的2×2个cell形成⼀个block,这样每个block就对应着36维的特征向量。由于局部光照的变化以及前景和背景对⽐度的变化,使得梯度强度的变化范围⾮常⼤。为了进⼀步消除光照的影响,最后对block内的36维特征向量进⾏归⼀化。公式如下:
其中,v 是未经归⼀化的描述⼦向量是v的2范数,ε是⼀个极⼩的常数。
5) 收集HOG特征。如图1所⽰,采⽤滑动窗⼝的⽅法,⽤block对样本图像进⾏扫描,扫描步长为⼀个cell,所以block之间其实是有重叠的。最后把所有归⼀化后的block特征串联起来就得到3780维特征向量。
4.2 灰度共⽣矩阵
⼀幅图像的灰度共⽣矩阵能反映出图像灰度关于⽅向、相邻间隔、变化幅度的综合信息,它是分析图像的局部模式和它们排列规则的基础。1973年Haralick从纯数学的⾓度,研究了图像纹理中灰度级的空间依赖关系,提出灰度共⽣矩阵的纹理描述⽅法,其实质是从图像中灰度为i的像素(其位置为(x,y))出发,统计与其距离为d灰度为J的像素(x+Dx,y+Dy)同时出现的次数p(i,j,d,θ),数学表达式为:
式中:是图像中的像素坐标;是灰度级;是位置偏移量;d为⽣成灰度共⽣矩阵的步长;θ⽣成⽅向,可以取四个⽅向,从⽽⽣成不同⽅向的共⽣矩阵。要使其特征值不受区域范围的影响,还需对此灰度共⽣矩阵进⾏归⼀化处理:
由灰度共⽣矩阵能够导出许多纹理特征,可以计算出14种灰度共⽣矩阵特征统计量。对图像上的每⼀像元求出某种邻域的灰度共⽣矩阵,再由该灰度共⽣矩阵求出各统计量.就得到对应纹理图像的统计量。若⼲统计量可以组成图像分类的特征向量。
这四个特征之间不相关,可以有效地描述光学或遥感图像的纹理特征,便于计算⼜具有较好的鉴别能⼒。由于要处理的原始图像灰度级⽐较⼤,从计算时间和纹理可分性上对其灰度级压缩⾄9级,考虑到参数的旋转不变性,选取4个⽅向上的均值作为纹理特征参数,步长d为1。由灰度共⽣矩阵的的定义进⽽求出原始图像的灰度共⽣矩阵,并依据公式进⾏归⼀化处理,计算出灰度共⽣矩阵下的4个纹理特征,作为分类器的输⼊。
5. ⽤SVM进⾏图像分类
在⽀持向量机中,采⽤不同的内积函数将导致不同的⽀持向量机算法,因此内积函数的选择对⽀持向量机的构建有重要作⽤,本⽂采⽤⾼斯径向基核函数,从⽽得到径向基函数分类器,因为RBF核可以将样本映射到⼀个更⾼维的空间,它可以处理类标签与特征之间的⾮线性关系,是局部性很强的核函
数,具有相当⾼的灵活性,也是使⽤最⼴泛的核函数。使⽤RBF核函数时要考虑两个参数C 和γ,好的(C,γ)能使分类器正确的预测未知数据,得到⾼的训练正确率,即分类器预测类别标签的正确率。
图像库选⽤我们从COREL 图像库中选取4个类别共1000幅图像组成图像数据库,它们包括车辆、猫、花朵、鱼等各100幅图,图4.1 为图像库的每⼀类的四幅⽰例图像。随机选取每⼀类的70幅作为训练数据,剩下的30幅作为测试数据。通过实验⽐较在提取的各种图像特征加权前后通过⽀持向量机进⾏分类的结果。
6. 分类结果评价
混淆矩阵是模式识别领域中⼀种常⽤的表达形式。它描绘样本数据的真实属性与识别结果类型之间的关系,是评价分类器性能的⼀种常⽤⽅法。假设对于N 类模式的分类任务,识别数据集D包括个样本,每类模式分别含有个数据(i=1,…,N)。采⽤某种识别算法构造分类器C ,表⽰第i类模式被分类器C判断成第j类模式的数据占第i类模式样本总数的百分率,则可得到N×N 维混淆矩阵CM(C,D):
将提取得到的特征向量作为SVM的输⼊。其中图像划分以及特征提取均利⽤matlabR2016b完成。利⽤LIBSVM训练图像的语义分类。我们选取车,猫,花,鱼四类图像。每类图像100幅,按7:3的⽐例分成训练集和测试集。
本⽂主要从基本原理上简单介绍了⽀持向量机,了解了基本原理接下来就需要⽤程序实现为我所⽤,具体如何⽤实现在下篇博⽂中将详细介绍。

本文发布于:2024-09-22 09:45:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/294279.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分类   图像   特征   训练   梯度   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议