改进的SVM分类器在人脸检测算法中的研究
作者 :  黄珍 李明 邢玉娟 曹晓丽

  摘 要: 复杂背景下的人脸检测是近几年来的研究热点,在军事、医疗、安全等多个领域具有广泛的应用前景。本文主要针对人脸检测存在的漏检率和误检率比较高等问题,利用支持向量机的全局优化性和核函数参数的调节作用等特性,拟通过引入支持向量机(SVM)作为AdaBoost算法的弱分类器,从而提高人脸检测的精度、速度和降低人脸检测的误检率。
  关键词: 人脸检测;AdaBoost;SVM分类器
  1 引言
  本文在AdaBoost检测的基础上,加入级联形式的SVM检测器,利用SVM的全局最优性,通过对核函数的调节作用,对AdaBoost检测结果进行二次检测。这种组合式的分类器结构,实现了两种方法的优势互补,既减少了AdaBoost算法本身固有的误检,又避免了用SVM进行全图检测的庞大耗时。
  2 AdaBoost算法介绍
  PaulViola和MichaelJones[2]在2001年提出了基于AdaBoost分类学习算法的人脸检测方法。AdaBoost算法的核心思想是在大量的特征集中选择很小的一部分关键的视觉特征,从而产生一个有效的分类器。它利用大量的分类能力一般的弱分类器(week classifier)通过一定的方法叠加(Boost)起来,构成分类能力很强的强分类器,再把叠加得到的强分类器串联成为级联分类器(Classifier Cascade)来完成整个图像的搜索检测。串联的级数根据检测系统对检测速度和错误率的具体要求。这种通过级联的方式得到的复杂分类器可以把图像中的背景区域快速排除掉而把计算时间花费在更有可能成为目标(人脸)的区域上。
  AdaBoost算法中不同的训练集是通过调整每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的,即其中N为样本的个数,在此样本分布下训练出一个弱分类器。对于分类错误的样本,加大其对应的权重。而对于分类正确的样本,则降低其权重,这样分类错误的样本就被突显出来,从而得到一个新的样本分布。在新的样本分布下,再次对弱分类器进行训练,得到弱分类器。依次类推,经过T次循环,得到T个弱分类器,再把这T个弱分类器按一定的权重叠加(Boost)起来,得到最终想要的强分类器。
  由于利用AdaBoost算法构造的分类器的精度和差异性互为矛盾,只有当精度和差异性达到平衡时AdaBoost才能表现出较好的性能。但这一问题仍没有一个有效的解决措施。
  3 SVM算法
  支持向量机(Support Vector Machine,SVM)是由美国Vapnik教授在上世纪七十年代提出来的。它是在统计学习理论基础上发展起来的一种基于结构风险最小化原理的统计学习方法,有着较强的分类能力,能有效的克服神经网络中可能遇到的局部极小值和过学习问题。SVM算法在很多领域都得到了应用,包括数字识别、对象识别、语音识别、人脸检测等。
  寻找一个最优超平面使分类间隙最大是支持向量机所要解决的问题。对于二维的情况来说,就是寻找最优分类线把两类准确地分开,并且使分类间隙最大。而对于高维空间来说就是找最优分类面的问题了。对于高维空间的线性函数,其计算的时间复杂度取决于样本的数量,支持向量机避开了高维空间的计算,利用事先定义好的核函数来实现样本间的内积运算,从而实现了非线性空间到线性空间的转换。
  4 改进的SVM分类器
  RBFSVM有高斯宽度σ和规则化参数C两个参数,任一个的改变都导致分类器性能的改变。通过选择合适的σ和C可以有效避免过拟合。对RBFSVM的性能进行分析发现:C值如果过小,分类器分类能力不好。只有C在一个合适的范围内取值时,RBFSVM的性能可以简单地通过调整σ值改变,且σ对分类器的影响更大。可是如果对所有RBFSVM都取相同σ值,也会出现问题:过大的σ产生的RBFSVM性能过弱,分类精度都小于50%,不能满足AdaBoost中对分量分类器的要求;相对小的σ常常使得RBFSVM已经很健壮,分量分类器的差异性小,无法进行进一步的增强使其变为强分类器。更重要的是,σ太小甚至可能使RBFSVM对训练样本过拟合。因此需要为各分量分类器找到合适的σ。由于对于RBFSVM,在选择合适的参数C时,用训练样本集的标准差作为高斯宽度σ,可以获得较高的分类精度。因此本文通过将每个分量分类器的样本集的标准差作为该分量分类器的σ值,以控制分量分类器的分类精度,避免了参数σ在所有分量分类器中取相同值所带来的问题,从而得到一种标准差σ-RBFSVM算法。
  5 实验及结果
  本文所用的人脸训练样本是从CMU及FERET图像库中提取的1500幅人脸图像、Internet上下载的图片、实验室用数码相机拍摄的图像。在实验中,分别采用AdaBoost算法与标准差σ-RBFSVM算法构造的分类器进行了仿真检测实验与比较,两种分类器采用了相同的训练样本和训练过程。实验结果表1和图2所示。从中我们可以看出,本文的算法比普通的AdaBoost算法具有更好的性能,检测精度更高,漏检率更低。
  6 结束语
  本文在分析AdaBoost的性能与分量分类器性能间的关系的基础上,对如何用AdaBoost算法提升SVM的分类精度进行了研究。针对AdaBoost的分量分类器的分类精度和它的差异性互为矛盾,以至于该矛盾的存在降低了AdaBoost算法整体的分类精度和泛化性的问题,提出了一种标准差σ-RBFSVM算法。它通过根据训练样本调整各个分量分类器的核函数参数σ值,使AdaBoost的每个分量分类器都达到一个适当的分类精度,在精度和差异性之间达到一定的平衡,从而提高了组合分类器的分类精度和泛化性。试验结果表明,该算法具有更好的性能,检测精度更高,漏检率更低。
  参考文献:
  [1]Yang M H,Kriegman D,Ahuja N.Detecting Faces in Images:A Survey[J].IEEE Trans Pattern Analysis and Machine Intelligence.2002,24(1):34-58.
  [2]Burges C J C.A tutorial on support weetor machines for paRern recognition[J].Data Milling and Knowledge Discovery,1998,2(2):121-167.
  [3]魏伟波、陈娅莎,基于支持向量机的AdaBoost人脸检测方法[J].计算机仿真,2008,6.
  [4]牛胜石,基于AdaBoost和SVM的人头检测[D].武汉:中南民族大学,2010.

文秘写作 期刊发表