发明名称 基于序列简化支持向量的人脸检测方法
摘要 本发明公开了一种基于序列简化支持向量的人脸检测方法,主要解决现有人脸检测方法鉴别速率低和求解约减向量集速率低的问题。该方法通过用约减向量集来代替支持向量集策略提高鉴别速率,采用序列简化方法求解约减向量集,它包括对待训练图像训练和对待测试图像鉴别两部分,其中:对待训练图像训练是将原始训练图像进行行拉伸的预处理、利用行拉伸后的训练样本训练支持向量机和求解约减向量集;对待测试图像鉴别是对待测试图像进行行拉伸的预处理、用约减向量集鉴别行拉伸后的测试样本和鉴别结果输出。本发明可对图像进行实时检测,具有计算复杂度和存储空间低的优点,用于机器学和模式识别范畴内的人脸检测以及其他大规模数据的检测系统。
申请公布号 CN101609502A 申请公布日期 2009.12.23
申请号 CN200910023416.4 申请日期 2009.07.24
申请人 西安电子科技大学 发明人 张莉;陈桂荣;宴哲;胡志;焦李成
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 陕西电子工业专利中心 代理人 王品华;朱红星
主权项 1、基于序列简化支持向量的人脸检测方法,包括如下步骤:(1)对原始训练图像进行行拉伸的预处理,将行拉伸后的图像数据作为训练样本x<sub>i</sub>∈R<sup>n</sup>,i=1,...,l,其中n为训练样本维数,l为训练样本总个数,并且对每一个训练样本进行标识,使+1类表示人脸样本,-1类表示非人脸样本,得到训练样本集x<sub>i</sub>∈R<sup>n</sup>,y<sub>i</sub>∈{+1,-1},i=1,...l,将该训练样本集输入到计算机中进行步骤(2);(2)用训练样本集在计算机中训练支持向量机,得到最优的偏置b∈R、支持向量系数α<sub>i</sub>∈R和支持向量s<sub>i</sub>∈R<sup>n</sup>,i=1,...,Nx,其中Nx为支持向量个数;(3)利用序列优化约减向量方法对支持向量系数α<sub>i</sub>∈R,和支持向量s<sub>i</sub>∈R<sup>n</sup>,i=1,...,Nx进行约减,具体步骤如下:3a)设定求解约减向量的有约束目标函数:<maths num="0001"><![CDATA[<math><mrow><msub><mi>F</mi><mi>C</mi></msub><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>|</mo><mo>|</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>l</mi></munderover><mrow><mo>(</mo><msub><mi>&beta;</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>&beta;</mi><mi>i</mi><mo>*</mo></msubsup><mo>)</mo></mrow><mi>&phi;</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>Nx</mi></munderover><msub><mi>&alpha;</mi><mi>i</mi></msub><mi>&phi;</mi><mrow><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>+</mo><mi>C</mi><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>l</mi></munderover><mrow><mo>(</mo><msub><mi>&beta;</mi><mi>i</mi></msub><mo>+</mo><msubsup><mi>&beta;</mi><mi>i</mi><mo>*</mo></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mi>A</mi><mo>)</mo></mrow></mrow></math>]]></maths>st.β<sub>i</sub>≥0,<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>&beta;</mi><mi>i</mi><mo>*</mo></msubsup><mo>&GreaterEqual;</mo><mn>0</mn><mo>,</mo></mrow></math>]]></maths>i=1,...,l式中,<maths num="0003"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>&beta;</mi><mi>i</mi><mo>*</mo></msubsup><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>l</mi></mrow></math>]]></maths>表示第i个训练样本x<sub>i</sub>对应的系数,φ为将训练样本从n维实空间映射到高维特征空间F的映射函数,C为惩罚因子,通过调节C的大小,控制约减向量的个数;3b)求取约束目标函数的Lagrange对偶函数;3c)由约束目标函数和Lagrange对偶函数得到最优解满足的Karush-Kuhn-Tucker(KKT)条件;3d)以KKT条件作为求解约减向量的终止条件判断,判断当前所有样本是否满足KKT条件,若有违反KKT条件的样本,继续步骤(3e),否则跳至步骤(3f);3e)设定当前工作集中有且仅有一个元素,并且选用违反KKT条件最大者作为该元素,计算该元素的最优解;3f)设定一个正常数θ,通过调节该常数控制约减向量的个数Nz,计算每一个训练样本所对应的系数<maths num="0004"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>&beta;</mi><mi>i</mi><mo>*</mo></msubsup><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>l</mi><mo>,</mo></mrow></math>]]></maths>在这l个系数中找到大于该常数θ的项为<maths num="0005"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mi>j</mi></msub><mo>-</mo><msubsup><mi>&beta;</mi><mi>j</mi><mo>*</mo></msubsup><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>Nz</mi><mo>,</mo></mrow></math>]]></maths>则这些项所对应训练样本被称为约减向量z<sub>j</sub>,j=1,...,Nz,这些约减向量对应的系数定义为<maths num="0006"><![CDATA[<math><mrow><msub><mi>&gamma;</mi><mi>j</mi></msub><mo>=</mo><msub><mi>&beta;</mi><mi>j</mi></msub><mo>-</mo><msubsup><mi>&beta;</mi><mi>j</mi><mo>*</mo></msubsup><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>Nz</mi><mo>,</mo></mrow></math>]]></maths>得到约减向量集{z<sub>j</sub>,γ<sub>j</sub>},j=1,...,Nz,其中Nz为约减向量个数;(4)对测试图像进行行拉伸的预处理,将行拉伸后的图像数据作为测试样本x∈R<sup>n</sup>,其中n为测试样本维数,并且对这个测试样本x进行标识,当该输入测试图像为人脸时,y=+1,否则y=-1,得到测试样本集x∈R<sup>n</sup>,y∈{+1,-1},将该测试样本输入到计算机中进行步骤(5);(5)用步骤(3)中得到的约减向量集{z<sub>j</sub>,γ<sub>j</sub>},j=1,...,Nz对测试样本x进行鉴别,计算函数值<maths num="0007"><![CDATA[<math><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>Nz</mi></munderover><msub><mi>&gamma;</mi><mi>j</mi></msub><mi>k</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>z</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>+</mo><mi>b</mi><mo>,</mo></mrow></math>]]></maths>其中b为支持向量机训练得到的偏置,k为人工设定的核函数;如果函数值f(x)>0,则测试样本x是+1类样本,该测试图像为人脸;否则x是-1类样本,该测试图像为非人脸样本;如果得到的分类结果+1类或者-1类与步骤(4)中的标识y相同,则说明鉴别结果正确;否则鉴别结果错误。
地址 710071陕西省西安市太白南路2号