发明名称 基于第二代Bandelet变换和星型模型的静态人体检测方法
摘要 本发明提出了一种基于第二代Bandelet变换和星型模型的人体检测方法,主要解决现有方法不能较好处理遮挡问题。实现步骤是:(1)通过INRIN数据库获得大量负样本,并与数据库中其它正样本一起构成整个人体的训练样本集FB,再对FB切割得到各个部位训练样本集;(2)利用Bandelet变换,计算各训练样本集的Bandelet联合特征,组成六个训练样本特征集;(3)利用Adaboost算法,对样本特征集进行分类训练,得到相应部位分类器,通过对各部位的学得到人体星型模型;(4)计算待检图像的Bandelet系数矩阵,通过星型模型进行人体部位检测,再利用主窗口合并法,对所有人体及部位的扫描窗口进行组合,得到最终人体检测结果。本发明能够准确检测人体,可用于视频监控和目标识别等视频处理领域。
申请公布号 CN102426653B 申请公布日期 2013.04.17
申请号 CN201110334700.0 申请日期 2011.10.28
申请人 西安电子科技大学 发明人 韩红;王瑞;冯光洁;苟靖翔;顾建银;李晓君;张红蕾
分类号 G06K9/66(2006.01)I 主分类号 G06K9/66(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 1.一种基于第二代Bandelet变换和星型模型的静态人体检测方法,包括如下步骤:(1)从INRIA数据库中通过自举操作获取大量的负样本,并与数据库中其它的正样本一起构成整个人体训练样本集FB,对FB进行手动切割,得到人体头部,左肩,右肩,下肢,脚部五个人体部位的训练样本集;(2)提取FB和五个部位训练样本集的Bandelet系数和该系数的统计值,将其作为Bandelet联合特征,得到相应的样本特征集,并利用Adaboost算法对这些样本特征集进行分类训练,得到整个人体分类器和五个部位分类器;(3)对人体各个部位进行基于星型模型的学习,得到整个人体星型模型,将步骤(2)中得到的整个人体分类器和五个部位分类器的输出值作为人体星型模型中相应部位滤波器的输入值:(3a)通过连接参数C<sub>k</sub>建立人体各个部位与对应的人体根部位间的弹性连接,初步确定基于人体部位的星型模型,该模型符合高斯分布,表示为:P(l<sub>k</sub>,l<sub>0</sub>/C<sub>k</sub>)=N(l<sub>k</sub>-l<sub>0</sub>,V<sub>k</sub>,∑<sub>k</sub>)式中,N表示高斯分布,l<sub>k</sub>表示人体第k个部位所在位置,k=1,…,5,依次表示头部,左肩部,右肩部,下肢部,脚部所在位置;l<sub>0</sub>表示人体根部位所在位置,该根部位是指整个人体的中心位置;V<sub>k</sub>是一个二维矢量,是第k个部位相对于其根部位的理想位置,由第k个部位滤波器最大输出值确定;连接参数C<sub>k</sub>=(V<sub>k</sub>,∑<sub>k</sub>),∑<sub>k</sub>是第k个部位与对应根部位之间弹性连接刚度的全协方差矩阵;(3b)对∑<sub>k</sub>进行奇异值分解,表示为:<img file="FDA00002626177400011.GIF" wi="292" he="65" />式中,U<sub>k</sub>是∑<sub>k</sub>的奇异向量,U<sub>k</sub>=∑<sub>k</sub>∑<sub>k</sub><sup>T</sup>,<img file="FDA00002626177400012.GIF" wi="59" he="57" />是∑<sub>k</sub>另外一个奇异向量,<img file="FDA00002626177400013.GIF" wi="242" he="57" />D<sub>k</sub>是一个对角矩阵,代表∑<sub>k</sub>的奇异值,由∑<sub>k</sub>的奇异值分解,得到第k个部位与根部位的变换式T<sub>k0</sub>(l<sub>k</sub>)和根部位本身的变换式T<sub>0k</sub>(l<sub>0</sub>):<maths num="0001"><![CDATA[<math><mrow><msub><mi>T</mi><mrow><mi>k</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><msubsup><mi>U</mi><mi>k</mi><mi>T</mi></msubsup><mrow><mo>(</mo><msub><mi>l</mi><mi>k</mi></msub><mo>-</mo><msub><mi>V</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msub><mi>T</mi><mrow><mn>0</mn><mi>k</mi></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>=</mo><msubsup><mi>U</mi><mi>k</mi><mi>T</mi></msubsup><mrow><mo>(</mo><msub><mi>l</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>根据上述变换式得到基于人体部位的星型模型为:P(l<sub>k</sub>,l<sub>0</sub>/C<sub>k</sub>)=N[T<sub>k0</sub>(l<sub>k</sub>)-T<sub>0k</sub>(l<sub>0</sub>),0,D<sub>k</sub>]式中,N表示高斯分布,T<sub>k0</sub>(l<sub>k</sub>)-T<sub>0k</sub>(l<sub>0</sub>)表示该高斯分布的随机变量,0表示该高斯分布的均值,D<sub>k</sub>表示该高斯分布的协方差;(3c)根据步骤(3b)可将l<sub>k</sub>相对于V<sub>k</sub>的形变代价<img file="FDA00002626177400023.GIF" wi="95" he="72" />表示为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>d</mi><mrow><mi>k</mi><mo>,</mo><msub><mi>l</mi><mi>k</mi></msub></mrow></msub><mo>=</mo><msup><mrow><mo>[</mo><msub><mi>T</mi><mrow><mi>k</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>T</mi><mrow><mn>0</mn><mi>k</mi></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>]</mo></mrow><mi>T</mi></msup><msubsup><mi>M</mi><mi>k</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>[</mo><msub><mi>T</mi><mrow><mi>k</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>T</mi><mrow><mn>0</mn><mi>k</mi></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>式中M<sub>k</sub>=2×D<sub>k</sub>;由此可将每一个人体部位滤波器的输出值<img file="FDA00002626177400025.GIF" wi="83" he="59" />表示为:<maths num="0004"><![CDATA[<math><mrow><msub><mi>R</mi><mrow><mi>k</mi><mo>,</mo><msub><mi>l</mi><mi>k</mi></msub></mrow></msub><mo>=</mo><munder><mi>max</mi><msub><mi>l</mi><mi>k</mi></msub></munder><mrow><mo>(</mo><msub><mi>f</mi><mrow><mi>k</mi><mo>,</mo><msub><mi>l</mi><mi>k</mi></msub></mrow></msub><mo>-</mo><msub><mi>d</mi><mrow><mi>k</mi><mo>,</mo><msub><mi>l</mi><mi>k</mi></msub></mrow></msub><mo>+</mo><mi>b</mi><mo>)</mo></mrow></mrow></math>]]></maths>式中,<img file="FDA00002626177400027.GIF" wi="74" he="63" />表示第k部位在l<sub>k</sub>位置滤波器的输入值,b是第k部位相对于其根部位的偏移量;(3d)根据各个人体部位滤波器输出值<img file="FDA00002626177400028.GIF" wi="103" he="61" />由下式得到整个人体滤波器F<sub>0</sub>输出值:<maths num="0005"><![CDATA[<math><mrow><mi>Score</mi><mrow><mo>(</mo><msub><mi>F</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>f</mi><mn>0</mn></msub><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>5</mn></munderover><msub><mi>P</mi><mrow><mi>k</mi><mo>,</mo><msub><mi>l</mi><mi>k</mi></msub></mrow></msub><mrow><mo>(</mo><msub><mi>l</mi><mn>0</mn></msub><mo>+</mo><msub><mi>V</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>式中,f<sub>0</sub>是整个人体滤波器的输入值,l<sub>0</sub>表示人体根部位所在位置,V<sub>k</sub>是第k个部位相对于其根部位的理想位置;(4)输入任意大小的待检图像,利用Bandelet变换计算待检图像的Bandelet系数矩阵;(5)根据待检图像的Bandelet系数矩阵,计算待检图像中所有扫描窗口的Bandelet联合特征,输入步骤(2)中所得整个人体分类器和五个部位分类器,初步判定待检图像中人体候选区域,在人体候选区域内进行从左到右9×9的邻域扫描;(6)根据步骤(3)中所得的人体模型,计算待检图像中各扫描窗口在星型模型中滤波器的输出值,并根据滤波器的输出值判定扫描窗口中是否存在人体,若滤波器输出值大于零则认为该扫描窗口中存在人体和人体部位,反之则认为不存在人体和人体部位;(7)对存在人体和人体部位的窗口利用主窗口合并法进行窗口合并,得到最终人体检测结果。
地址 710071 陕西省西安市太白南路2号