一种人体姿态的分类方法和装置的制作方法

文档序号:6619129阅读:195来源:国知局
专利名称:一种人体姿态的分类方法和装置的制作方法
技术领域
本发明涉及图像内容分析技术领域,特别涉及一种人体姿态的分类方法和装置。

背景技术
人体姿态是各种各样的,如站立、弯腰、坐、躺、半躺等。图像中的人体姿态分析是图像内容分析的主要内容之一,主要目的是估算图像中人体各个部位的位置,确定头部、四肢的姿态。确定人体姿态之后,可进一步判断人的当前动作等信息,进而应用于行为分析、视频监控、人机交互、虚拟现实等各种应用场景。例如在小时工监控系统中,可以通过人体姿态确定当前小时工有没有偷懒;或者,可以将人体姿态与人所在的地方进行分析,确定人是不是摔倒在地上,进行老年人的摔倒检测;或者,可以根据人体姿态分析人的动作趋势等。
现有技术提供的分析人体姿态的方法,大都是通过感应器或遥控器与人体某部分的接触,对人体姿态进行简单的识别和分析。一般来说,现有技术所提供的方法均是对人体某部分的动作进行简单的捕捉识别。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题现有技术对人体姿态的识别不全面,对人体姿态进行识别时需要人工介入,并且没有提供对人体姿态进行分类的方法。


发明内容
本发明提供一种人体姿态的分类方法和装置,以实现确定图像中人体的位置和动作变化趋势,同时通过人头检测确定头部的位置,根据头部位置、人体形状等信息对人体的姿态进行分类。
为达到上述目的,本发明实施例一方面提供一种人体姿态的分类方法,包括 确定当前帧图像中的人体区域; 在所述人体区域中,进行人体形状的提取,获得人体的外轮廓,并通过人头检测,获得人头的位置信息; 当头部位于人体的外轮廓正中间,此时确定所述人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,进而计算人体外轮廓的长宽比,根据所述人体外轮廓的长宽比确定人体姿态种类。
优选地,所述计算人体外轮廓的长宽比具体包括 计算当前帧图像中头部到脚的距离; 计算所述当前帧图像中人体外轮廓的平均宽度; 根据所述当前帧图像中头部到脚的距离和人体外轮廓的平均宽度,获得人体外轮廓的长宽比。
优选地,所述计算所述当前帧图像中人体外轮廓的平均宽度具体包括 计算所述当前帧图像中人头到脚的连线与摄像头的水平线之间的夹角; 计算人体水平方向的平均像素个数; 根据所述夹角和所述人体水平方向的平均像素个数计算人体外轮廓的平均宽度。
优选地,当所述夹角为a,所述人体水平方向的平均像素个数为w′,人体外轮廓的平均宽度为w时,所述根据所述夹角和所述人体水平方向的平均像素个数计算人体外轮廓的平均宽度具体为 w=w′×cosa, 其中,N为所述当前帧图像中人头到脚共占用的像素个数,ni为第i行对应的像素个数。
优选地,当人体外轮廓的长度为l,人体外轮廓的平均宽度为w,所述人体外轮廓的长宽比为

时,所述根据所述人体外轮廓的长宽比确定人体姿态具体包括 当时,确定人体姿态为平躺; 当时,确定人体姿态为半躺; 当时,确定人体姿态为坐; 当时,确定人体姿态为倾斜站立; 其中,th1、th2和th3为预设的阈值。
优选地,所述在所述人体区域中,进行人体形状的提取,获得人体的外轮廓具体包括 采用Snake的方法确定人体的外轮廓的能量函数,通过循环迭代使所述能量函数达到最小值,获得人体的外轮廓。
当人体的外轮廓上第i个点的坐标为(x(i),y(i)),第i个点的连续性项能量为Ec(i),第i个点的曲率项能量为Es(i),第i个点的图像能量为Ei(i),第i个点的能量函数为E(i)时,所述确定人体的外轮廓的能量函数具体为 其中,α、β、γ分别为Ec(i)、Es(i)和Ei(i)的权重,α、β、γ是正数,α+β+γ=1; dmean为人体的外轮廓上相邻两个点之间的平均距离,Ecmax是Ec(i)的最大值; Esmax是Es(i)的最大值; g″(i)是人体的外轮廓上第i个点的二阶差分, I(x(i),y(i))表示坐标为(x(i),y(i))的像素点的灰度或者亮度值,l是平滑宽度,l=1或其他正整数。
优选地,所述通过循环迭代使所述能量函数达到最小值,获得人体的外轮廓具体包括 设置Snake的初值,计算Ecmax,Esmax和dmean; 按照收敛方向,确定当前轮廓点的候选点,按照能量最小的原则在所述候选点中选择使

最小的点作为下次迭代的初值; 对每个轮廓点都计算一遍后重新计算Ecmax,Esmax和dmean,继续进行迭代,比较每次迭代前后轮廓点的位置,如果某次迭代时所有轮廓点的位置均未发生变化,停止迭代。
优选地,该方法还包括 选择多幅不同姿态的人体图像或人体的外轮廓; 根据人体姿态对所述人体图像或人体的外轮廓进行分组; 提取每组人体外轮廓的特征向量作为训练样本输入到分类器的训练模块,通过训练建立人体姿态的分类器; 提取待确定人体图像或人体的外轮廓的特征向量输入到人体姿态的分类器中,根据所述人体姿态的分类器的输出结果确定人体姿态种类。
另一方面,本发明还提供一种人体姿态的分类装置,包括 人体区域确定模块,用于确定当前帧图像中的人体区域; 轮廓提取模块,与所述人体区域确定模块连接,用于在所述人体区域确定模块确定的人体区域中,进行人体形状的提取,获得人体的外轮廓; 人头位置获得模块,用于通过人头检测,获得人头的位置信息; 人体姿态确定模块,与所述轮廓提取模块和所述人头位置获得模块连接,当头部位于人体的外轮廓正中间,此时所述人体姿态确定模块确定所述人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,进而计算人体外轮廓的长宽比,根据所述人体外轮廓的长宽比确定人体姿态种类。
优选地,所述人体姿态确定模块包括 计算子模块,用于计算当前帧图像中头部到脚的距离和所述当前帧图像中人体外轮廓的平均宽度; 长宽比获得子模块,与所述计算子模块连接,用于根据所述计算子模块计算的当前帧图像中头部到脚的距离和人体外轮廓的平均宽度,获得人体外轮廓的长宽比。
优选地,所述计算子模块具体用于计算所述当前帧图像中人头到脚的连线与摄像头的水平线之间的夹角,并计算人体水平方向的平均像素个数,根据所述夹角和所述人体水平方向的平均像素个数计算人体外轮廓的平均宽度。
优选地,所述轮廓提取模块具体用于采用Snake的方法确定人体的外轮廓的能量函数,通过循环迭代使所述能量函数达到最小值,获得人体的外轮廓; 其中,所述轮廓提取模块确定人体的外轮廓的能量函数为 其中,α、β、γ分别为Ec(i)、Es(i)和Ei(i)的权重,α、β、γ是正数,α+β+γ=1; dmean为人体的外轮廓上相邻两个点之间的平均距离,Ecmax是Ec(i)的最大值; Esmax是Es(i)的最大值; g″(i)是人体的外轮廓上第i个点的二阶差分, I(x(i),y(i))表示坐标为(x(i),y(i))的像素点的灰度或者亮度值,l是平滑宽度,l=1或其他正整数。
优选地,所述轮廓提取模块具体用于设置Snake的初值,计算Ecmax,Esmax和dmean;按照收敛方向,确定当前轮廓点的候选点,按照能量最小的原则在所述候选点中选择使

最小的点作为下次迭代的初值;对每个轮廓点都计算一遍后重新计算Ecmax,Esmax和dmean,继续进行迭代;直到某次迭代中所有轮廓点的位置均未发生变化,停止迭代。
优选地,所述的装置还包括 选择模块,用于选择多幅不同姿态的人体图像或人体的外轮廓; 分组模块,与所述选择模块连接,用于根据人体姿态对所述人体图像或人体的外轮廓进行分组; 提取模块,与所述分组模块连接,用于提取每组人体外轮廓的特征向量作为训练样本输入到分类器的训练模块; 训练模块,与所述提取模块连接,用于通过训练建立人体姿态的分类器; 确定模块,与所述训练模块连接,接收待确定人体图像或人体的外轮廓的特征向量,根据所述人体姿态的分类器的输出结果确定人体姿态种类。
与现有技术相比,本发明具有以下优点本发明通过人体检测和人体跟踪确定当前帧图像中的人体区域,在该人体区域中,进行人体形状的提取,获得人体的外轮廓,并通过人头检测,获得人头的位置信息,根据人体的外轮廓和人头的位置信息,确定人体姿态种类。当头部位于人体的外轮廓中间,并且头部的两侧为肩部时,确定人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,计算人体外轮廓的长宽比,根据人体外轮廓的长宽比确定人体姿态种类,从而实现了对人体姿态进行自动识别和分类,不需人工介入,弥补了现有技术没有提供对人体姿态进行分类的方法的缺陷。



为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种人体姿态的分类方法的流程图; 图2为本发明中Snake的初值设置示意图; 图3为本发明人体外轮廓的长宽比的具体计算方法的流程图; 图4为本发明人头到脚的连线与水平线之间的夹角a示意图; 图5为本发明提供的一种人体姿态的分类装置的结构图; 图6为本发明提供的另一种人体姿态的分类装置的结构图。

具体实施例方式 下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种人体姿态的分类方法,通过人体检测确定图像中的人体区域,进而从人体区域中提取人体的外轮廓,同时通过人头检测和跟踪确定头部的位置,然后根据头部位置、人体形状等信息对人体的姿态进行分类。
如图1所示,为本发明提供的一种人体姿态的分类方法的流程图,具体包括 步骤101,获得当前帧图像。
本发明中,当前帧图像可以由摄像头拍摄获得,摄像头比较常见的拍摄角度是平拍、斜向下拍和顶拍,对于相同的姿态,当摄像头分别采用上述三种角度进行拍摄时,得到的图像中人体的形状可能完全不同。因此,进行人体姿态分类,首先需要确定摄像头的拍摄角度,在确定了摄像头的拍摄角度之后,后续的处理都是一样的,本发明以摄像头的拍摄角度为顶拍为例进行说明。但本发明并不仅限于此,如前所述,摄像头的拍摄角度并不影响本发明的实现。实际应用中,可以先对摄像头的拍摄角度进行设置或者加入摄像头拍摄角度的自动识别模块,对摄像头的拍摄角度进行自动识别。
本发明中的当前帧图像可以为单幅图像,也可以为视频图像。
步骤102,确定当前帧图像中的人体区域。
具体地,对于给定的单幅图像,可以通过人体检测确定该单幅图像中的人体区域。其中,人体检测是指从静态或视频图像中获取一定区域中存在的人体数目、位置和大小。对于给定的单幅图像,可以采用分类器训练方法确定单幅图像中的人体区域。分类器训练方法采集在各种不同的光照条件、背景环境和各种姿态条件下的人体样本,采用模式识别领域普遍使用的分类器训练的方法进行训练,得到人体区域的模型,再利用该模型对未知的单幅图像进行判定,获得人体区域。
对于视频图像,可以先进行人体检测,确定人体的初始位置。在进行人体检测时,可以使用各种人体检测方法来检测人体,例如可以采用分类器训练方法得到人体区域的模型,再利用该模型对未知的视频图像进行判定,确定人体的初始位置。然后通过人体跟踪确定人体区域。具体可以为首先,通过人体检测确定当前帧图像中的人体初始位置y0,并根据人体初始位置y0得到一个像素点集合,具体地,该像素点集合为该视频图像中以y0为中心的一块预定区域(例如一块以y0为中心,长为l、宽为w的矩形区域)内的像素点。然后,计算这个集合中所有像素点的空间特征和颜色特征,根据计算得出的空间特征和颜色特征计算出当前帧中的人体位置y1,具体地,设{xi}i=1,2,...N是中心点y0,长为h,宽为w的人体模板区域的像素点集合,定义映射bR2→{1,2,...,B},对于每个xi,b(xi)表示该像素点的特征在量化的特征空间中的量化序号。对于任意量化之u∈{1,2,...,B},计算其位置均值vu 其中,
vu表示的是目标人体所在区域内所有像素值等于u的像素点的空间位置平均值,反映的是目标人体的空间位置信息,即空间特征。
U在人体区域中出现的概率

可以按如下公式计算 其中k(·)是Epanechnikov核函数,δ(·)是Kronecker函数,C为归一化常数,使得

表示的是目标人体所在区域中所有其像素值等于u的像素点的颜色信息,即颜色特征。分别完成上述空间特征和颜色特征的计算后,即可得到人体的特征。
根据空间特征和颜色特征获得相似性度量ρ(y),然后根据梯度最优化方法计算当前帧中的人体位置y1,y1应满足进而,对得出的人体位置y1进行检测,判断其是否为正确的人体位置,即对得出的人体位置y1进行人体区域验证,判断以该位置y1为中心的区域是否为人体区域。如果是,则直接将y1作为当前帧中正确的人体位置输出。如果不是,则对该人体位置进行修正,得出正确的人体位置。然后,根据无需修正或修正后的正确人体位置计算其所在的人体区域的颜色特征和空间特征,将这两个特征和正确的人体位置分别作为下一帧的初始人体颜色特征、空间特征和初始人体位置。同时输出该正确的人体位置,从而可以确定以该正确的人体位置为中心的区域为人体区域。
步骤103,在上述人体区域中,进行人体形状的提取,获得人体的外轮廓。
在得到了人体区域之后,可以在该人体区域中进行人体形状的提取,获得人体的外轮廓。常用的提取人体的外轮廓的方法多是先提取闭合的边缘,然后对闭合的边缘进行细化得到人体的外轮廓信息。本发明采用Snake的方法进行人体形状的提取,获得人体的外轮廓。
Snake是在内部约束力和外部约束力作用下移动的变形轮廓线,通过能量函数的最小化,使轮廓线变形最后与人体的外轮廓匹配。
考虑到人体的外轮廓的特殊性,本发明中,人体的外轮廓的能量函数为 当轮廓线收敛到人体的外轮廓时,式(1)计算得到的能量函数最小,因此通过计算式(1)的最小值,可提取出人体的外轮廓。
式(1)中,Ec(i)为第i个点的连续性项能量, 式(2)中,(x(i),y(i))是人体的外轮廓上第i个点的坐标,Ecmax是Ec(i)的最大值。人体的外轮廓可以看作一个连通域,轮廓点可以认为是人体的外轮廓上顺序排列的一组点,可以对轮廓点进行编号,从而确定相邻的轮廓点。dmean为人体的外轮廓上相邻的两个轮廓点之间的平均距离,相邻的两个轮廓点之间的间距与dmean越接近,Ec(i)越小。
式(1)中,Es(i)为第i个点的曲率项能量, 式(3)中,(x(i),y(i))是第i个点的坐标,Esmax是Es(i)的最大值。
式(1)中,Ei(i)为第i个点的图像能量, 式(4)中,g″(i)是人体的外轮廓上第i个点的二阶差分, 式(5)中,I(x(i),y(i))表示坐标为(x(i),y(i))的像素点的灰度或者亮度值,l是平滑宽度,可以取l=1或其他正整数。
由于人体的外轮廓上的点具有二阶差分大的特点,因此g″(i)越大,Ei(i)越小。
式(1)中,α、β、γ分别表示Ec(i)、Es(i)和Ei(i)这三部分的权重,即在E(i)收敛的过程中Ec(i)、Es(i)和Ei(i)这三部分的贡献程度。α、β、γ是正数,通常取α+β+γ=1。在实际应用时,α、β和γ的具体取值可以根据实际情况进行调整。
具体地,利用Snake的方法提取人体的外轮廓,需要先设置Snake的初值。由于人体检测是将图像分为规则的区域如矩形,如图2所示,然后检测此矩形中是否包含人体,也就是说人体检测得到的是矩形,该矩形中包含一个人体,因此可以将此矩形上的点作为Snake的初值,然后可以采用循环迭代的方法,由外向内进行迭代,计算式(1)的最小值,直到Snake收敛到人体的外轮廓上。
Snake的初值是一组点的坐标(x(i),y(i)),初值确定后,计算这组点中相邻点间距d,并按照式(6)和式(7)计算每个初值点对应的Ec和Es,式(6)和式(7)如下所示 将这组点的坐标代入式(6)和式(7),可以计算出这组点的Ec和Es,从中可以找出Ec和Es的最大值即为Ecmax和Esmax,对所有的相邻点间距取平均即为dmean。例如假设Snake的初值是10个点的坐标(x(0),y(0)),(x(1),y(1)),...(x(9),y(9)),将这10个点的坐标代入式(6)和式(7)可以计算出Ec(0),Ec(1),...Ec(9);以及Es(0),Es(1),...Es(9)。比较Ec(0),Ec(1),...Ec(9)可以获得Ec的最大值Ecmax,比较Es(0),Es(1),...Es(9)可以获得Es的最大值Esmax。计算这10个点中相邻点的间距,这10个点中所有的相邻点间距的平均值即为dmean。
设轮廓点总数为N,每次迭代时,分别处理每个轮廓点,如第i个轮廓点为A,其坐标为(a,b)。按照收敛方向,确定点A的候选点,候选点通常是点A的某个邻域,然后将给定的初值,以及计算的Ecmax、Esmax和dmean代入式(1)~式(5)计算点A的所有候选点对应的能量值

找出使其最小的点,作为下一次迭代时第i个轮廓点的初值。
对N个轮廓点均按照上述过程计算一遍之后,称为一次迭代。在进行下一次迭代时,将上一次迭代计算获得的N个轮廓点在下一次迭代时的初值,代入式(6)和式(7),采用与上一次迭代相同的方法重新计算Ecmax,Esmax,dmean,然后继续进行迭代,比较每次迭代前后轮廓点的位置,如果某次迭代时所有轮廓点的位置都没有发生变化,迭代结束。
步骤104,通过人头检测,获得人头的位置信息。
具体地,人头检测可以采用各种人头检测方法,例如可以通过训练层次型Adaboost和基于边缘方向直方图特征进行人头检测。具体地,首先计算检测图像的边缘强度和离散化边缘方向;然后,根据边缘强度和离散化边缘方向,计算预设的检测框内图像的边缘方向直方图;最后,利用层次型自适应增强算法Adaboost分类器对边缘方向直方图进行验证,得到预设的检测框内的人头的位置信息。
步骤105,根据人体的外轮廓和人头的位置信息,确定人体姿态。
具体地,在获得人体的外轮廓和人头的位置信息之后,可以在人体的外轮廓上标出头部的位置,通常这时已经可以判断出人体姿态。
由于头部的位置和人体姿态存在一定的对应关系,因此还可以进行实验统计,根据统计结果设定判断规则来实现自动判断人体姿态。具体可以为 如果头部位于人体的外轮廓正中间,此时可以确定人体姿态为垂直站立;如果头部位于人体的外轮廓的一侧,进而计算人体外轮廓的长宽比,且人体外轮廓的长宽比满足一定要求,则可以确定人体为座、半躺、躺等姿态。
下面详细说明人体外轮廓的长宽比的具体计算方法,如图3所示,具体包括 步骤301,计算当前帧图像中头部到脚的距离l。
当前帧图像中头部到脚的距离即为人体图像的长度。在获得人体的外轮廓和人头的位置信息之后,可以计算出当前帧图像中头部到脚的距离l。具体地,首先需要确定头部和脚的位置,然后找出头顶中心和脚的外边缘中点,头顶中心和脚的外边缘中点之间的距离即为l。如图4所示,头顶中心为C,脚的外边缘中点为B,点C和点B之间的距离即为头部到脚的距离l。
步骤302,计算当前帧图像中人体外轮廓的平均宽度w。
具体地,首先计算人体外轮廓的角度,即人头到脚的连线与水平线之间的夹角a,如图4所示,这里所说的水平线指摄像头的水平线。
然后计算人体水平方向的平均像素个数w′, 式(8)中,N为头部到脚共占用的像素个数,ni为第i行对应的像素个数。像素是组成图像的最基本单元,是一个小的方形的颜色块。一幅图像通常由许多像素组成,这些像素被排成横行或纵列,每个像素都是方形的,图像的分辨率越高,单位面积内的像素越多。因此根据当前帧图像的分辨率和当前帧图像中头部到脚的距离l,可以得出头部到脚共占用的像素个数N,这相当于将当前帧图像分为N行。在获得人体的外轮廓之后,可以确定人体的外轮廓上每一行的宽度,根据当前帧图像的分辨率和第i行的宽度,可以确定第i行对应的像素个数ni。
然后,根据w′和夹角a计算人体外轮廓的平均宽度w, w=w′×cosa(9) 当人体外轮廓的方向接近水平时,还可以利用人体竖直方向的平均像素个数计算人体外轮廓的平均宽度w。
步骤303,根据当前帧图像中头部到脚的距离l和人体外轮廓的平均宽度w,获得人体外轮廓的长宽比。
在获得人体外轮廓的长宽比之后,根据人体外轮廓的长宽比可以确定人体姿态。具体地,当时,确定人体姿态为平躺; 当时,确定人体姿态为半躺; 当时,确定人体姿态为坐; 当时,确定人体姿态为倾斜站立,该站立姿态与前述头部位于人体的外轮廓正中间时的垂直站立姿态不同,该站立姿态为倾斜站立。
其中,阈值th1、th2和th3可以通过统计或者实验获得,例如可以取th1=0.25,th2=0.7,th3=1.2。
另外,本发明还可以选择多幅不同姿态的人体图像或人体的外轮廓,根据人体姿态对选择的人体图像或人体的外轮廓进行分组,提取每组人体外轮廓的特征向量作为训练样本输入到分类器的训练模块,通过训练建立人体姿态的分类器。该人体姿态的分类器可以是Adaboost(自适应增强算法)分类器、SVM(Support Vector Machine,支持向量机)分类器或神经网络等。然后,可以提取待确定人体图像或人体的外轮廓的特征向量输入到人体姿态的分类器中,根据人体姿态的分类器的输出结果确定人体姿态。具体地,在根据人体姿态对选择的人体图像或人体的外轮廓进行分组之后,首先人工标定一组人体姿态,通过特征提取获得这组人体的特征向量。常用的特征有几何特征、Gabor特征、小波特征和矩特征等,在进行特征提取时可采用现有的任意一种特征提取方法。因此,这组人体的特征向量和人体姿态的对应关系相当于已经人工确定,然后将这组人体的特征向量作为训练样本输入到分类器的训练模块,以此类推,还可以将其他组的人体的特征向量作为训练样本输入到分类器的训练模块,通过训练建立人体姿态的分类器。从而可以将未知姿态的人体特征向量输入该人体姿态的分类器,利用该人体姿态的分类器确定未知姿态的人体特征向量对应的人体姿态。
本发明提供一种基于人体检测跟踪、人体姿态分析的人体姿态分类方法,通过人体检测和跟踪确定图像中的人体位置和动作变化趋势,同时分析头部的位置,然后根据头部位置、人体形状等信息识别人体姿态,将人体的姿态分为坐、站、躺三类。
如图5所示,为本发明提供的一种人体姿态的分类装置的结构图,该人体姿态的分类装置包括人体区域确定模块51、轮廓提取模块52、人头位置获得模块53和人体姿态确定模块54。
其中,人体区域确定模块51,用于确定当前帧图像中的人体区域。具体地,对于给定的单幅图像,人体区域确定模块51可以通过人体检测确定该单幅图像中的人体区域。其中,人体检测是指从静态或视频图像中获取一定区域中存在的人体数目、位置和大小。对于给定的单幅图像,人体区域确定模块51可以采用分类器训练方法确定单幅图像中的人体区域。分类器训练方法采集在各种不同的光照条件、背景环境和各种姿态条件下的人体样本,采用模式识别领域普遍使用的分类器训练的方法进行训练,得到人体区域的模型,再利用该模型对未知的单幅图像进行判定,获得人体区域。
对于视频图像,人体区域确定模块51可以先进行人体检测,确定人体的初始位置。在进行人体检测时,可以使用各种人体检测方法来检测人体,例如可以采用分类器训练方法得到人体区域的模型,再利用该模型对未知的视频图像进行判定,确定人体的初始位置。然后通过人体跟踪确定人体区域。具体可以为首先,人体区域确定模块51通过人体检测或采用手工标定的方法确定当前帧图像中的人体初始位置y0,并根据人体初始位置y0得到一个像素点集合,具体地,该像素点集合为该视频图像中以y0为中心的一块预定区域(例如一块以y0为中心,长为l、宽为w的矩形区域)内的像素点。然后,人体区域确定模块51计算这个集合中所有像素点的空间特征和颜色特征,根据计算得出的空间特征和颜色特征计算出当前帧中的人体位置y1,具体地,设{xi}i=1,2,...N是中心点y0,长为h,宽为w的人体模板区域的像素点集合,定义映射bR2→{1,2,...,B},对于每个xi,b(xi)表示该像素点的特征在量化的特征空间中的量化序号。对于任意量化之u∈{1,2,...,B},计算其位置均值vu 其中,
vu表示的是目标人体所在区域内所有像素值等于u的像素点的空间位置平均值,反映的是目标人体的空间位置信息,即空间特征。
U在人体区域中出现的概率

可以按如下公式计算 其中k(·)是Epanechnikov核函数,δ(·)是Kronecker函数,C为归一化常数,使得

表示的是目标人体所在区域中所有其像素值等于u的像素点的颜色信息,即颜色特征。分别完成上述空间特征和颜色特征的计算后,即可得到人体的特征。
人体区域确定模块51根据空间特征和颜色特征获得相似性度量ρ(y),然后根据梯度最优化方法计算当前帧中的人体位置y1,y1应满足进而,人体区域确定模块51对得出的人体位置y1进行检测,判断其是否为正确的人体位置,即对得出的人体位置y1进行人体区域验证,判断以该位置y1为中心的区域是否为人体区域。如果是,则人体区域确定模块51直接将y1作为当前帧中正确的人体位置输出。如果不是,则人体区域确定模块51对该人体位置进行修正,得出正确的人体位置。然后,根据无需修正或修正后的正确人体位置计算其所在的人体区域的颜色特征和空间特征,将这两个特征和正确的人体位置分别作为下一帧的初始人体颜色特征、空间特征和初始人体位置。同时输出该正确的人体位置,从而可以确定以该正确的人体位置为中心的区域为人体区域。
轮廓提取模块52,与人体区域确定模块51连接,用于在人体区域确定模块51确定的人体区域中,进行人体形状的提取获得人体的外轮廓。轮廓提取模块52具体用于采用Snake的方法进行人体形状的提取,获得人体的外轮廓。具体地,轮廓提取模块52确定人体的外轮廓的能量函数,通过循环迭代使该能量函数达到最小值,获得人体的外轮廓。
当人体的外轮廓上第i个点的坐标为(x(i),y(i)),第i个点的连续性项能量为Ec(i),第i个点的曲率项能量为Es(i),第i个点的图像能量为Ei(i),第i个点的能量为E(i)时,本发明中,轮廓提取模块52确定的人体的外轮廓的能量函数为 其中,dmean为人体的外轮廓上相邻两个点之间的平均距离,相邻两个点之间的间距与dmean越接近,Ec(i)越小; g″(i)是人体的外轮廓上第i个点的二阶差分, I(x(i),y(i))表示坐标为(x(i),y(i))的像素点的灰度或者亮度值,l是平滑宽度,可以取l=1或其他正整数。由于人体的外轮廓上的点具有二阶差分大的特点,因此g″(i)越大,Ei(i)越小。
具体地,轮廓提取模块52利用Snake的方法提取人体的外轮廓,需要先设置Snake的初值。由于人体检测是将图像分为规则的区域如矩形,如图2所示,然后检测此矩形中是否包含人体,也就是说人体检测得到的是矩形,该矩形中包含一个人体,因此轮廓提取模块52可以将此矩形上的点作为Snake的初值,然后可以采用循环迭代的方法,由外向内进行迭代,计算式(1)的最小值,直到Snake收敛到人体的外轮廓上。
Snake的初值是一组点的坐标(x(i),y(i)),初值确定后,计算这组点中相邻点间距d,并按照式(6)和式(7)计算每个初值点对应的Ec和Es,然后,找出Ec和Es的最大值即为Ecmax和Esmax,对所有的相邻点间距取平均即为dmean。设轮廓点总数为N,每次迭代时,分别处理每个轮廓点,如第i个轮廓点为A,其坐标为(a,b)。按照收敛方向,确定点A的候选点,候选点通常是点A的某个邻域,然后将给定的初值,以及计算的Ecmax、Esmax和dmean代入式(1)~式(5)计算点A的所有候选点对应的能量值

找出使其最小的点,作为下一次迭代时第i个轮廓点的初值。
对N个轮廓点均按照上述过程计算一遍之后,称为一次迭代。在进行下一次迭代时,将上一次迭代计算获得的下一次迭代时N个轮廓点的初值,代入式(6)和式(7),采用与上一次迭代相同的方法重新计算Ecmax,Esmax,dmean,然后继续进行迭代,比较每次迭代前后轮廓点的位置。如果某次迭代时所有轮廓点的位置都没有发生变化,迭代结束。
人头位置获得模块53,用于通过人头检测,获得人头的位置信息。具体地,人头检测可以采用各种人头检测方法,例如可以通过训练层次型Adaboost和基于边缘方向直方图特征进行人头检测。具体地,人头位置获得模块53首先计算检测图像的边缘强度和离散化边缘方向;然后,根据边缘强度和离散化边缘方向,计算预设的检测框内图像的边缘方向直方图;最后,利用层次型自适应增强算法Adaboost分类器对边缘方向直方图进行验证,得到预设的检测框内的人头的位置信息。
人体姿态确定模块54,与轮廓提取模块52和人头位置获得模块53连接,用于根据轮廓提取模块52提取的人体的外轮廓和人头位置获得模块53获得的人头的位置信息,确定人体姿态种类。
人体姿态确定模块54具体用于当头部位于人体的外轮廓正中间,此时确定人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,进而计算人体外轮廓的长宽比,根据所述人体外轮廓的长宽比确定人体姿态。具体地,当人体外轮廓的长度为l,人体外轮廓的平均宽度为w,所述人体外轮廓的长宽比为

时, 如果人体姿态确定模块54确定人体姿态为平躺; 如果人体姿态确定模块54确定人体姿态为半躺; 如果人体姿态确定模块54确定人体姿态为坐; 如果人体姿态确定模块54确定人体姿态为倾斜站立。
其中,阈值th1、th2和th3可以通过统计或者经验获得,例如可以取th1=0.25,th2=0.7,th3=1.2。
其中,如图6所示,人体姿态确定模块54包括 计算子模块541,用于计算当前帧图像中头部到脚的距离和当前帧图像中人体外轮廓的平均宽度; 长宽比获得子模块542,与计算子模块541连接,用于根据计算子模块541计算的当前帧图像中头部到脚的距离和人体外轮廓的平均宽度,获得人体外轮廓的长宽比。
优选地,计算子模块541具体用于计算当前帧图像中人头到脚的连线与摄像头的水平线之间的夹角,并计算人体水平方向的平均像素个数,根据上述夹角和人体水平方向的平均像素个数计算人体外轮廓的平均宽度。
具体地,计算子模块541先计算当前帧图像中头部到脚的距离,然后计算当前帧图像中人体外轮廓的平均宽度,再由长宽比获得子模块542根据计算子模块541计算的当前帧图像中头部到脚的距离和人体外轮廓的平均宽度,获得人体外轮廓的长宽比。优选地,在计算当前帧图像中人体外轮廓的平均宽度时,计算子模块541先计算当前帧图像中人头到脚的连线与摄像头的水平线之间的夹角,然后计算人体水平方向的平均像素个数,再根据人头到脚的连线与摄像头的水平线之间的夹角和人体水平方向的平均像素个数计算人体外轮廓的平均宽度。
当人头到脚的连线与摄像头的水平线之间的夹角为a,人体水平方向的平均像素个数为w′,人体外轮廓的平均宽度为w时,计算子模块541计算的人体外轮廓的平均宽度具体为 w=w′×cosa, 其中,N为当前帧图像中人头到脚共占用的像素个数,ni为第i行对应的像素个数,像素是组成图像的最基本单元,是一个小的方形的颜色块。一幅图像通常由许多像素组成,这些像素被排成横行或纵列,每个像素都是方形的,图像的分辨率越高,单位面积内的像素越多。因此根据当前帧图像的分辨率和当前帧图像中头部到脚的距离l,可以得出头部到脚共占用的像素个数N,这相当于将当前帧图像分为N行。在获得人体的外轮廓之后,可以确定人体的外轮廓上每一行的宽度,根据当前帧图像的分辨率和第i行的宽度,可以确定第i行对应的像素个数。
优选地,所述的装置还包括选择模块,用于选择多幅不同姿态的人体图像或人体的外轮廓;分组模块,与所述选择模块连接,用于根据人体姿态对所述人体图像或人体的外轮廓进行分组;提取模块,与所述分组模块连接,用于提取每组人体的特征向量作为训练样本输入到分类器的训练模块;训练模块,与所述提取模块连接,用于通过训练建立人体姿态的分类器;确定模块,与所述训练模块连接,接收待确定人体图像或人体的外轮廓的特征向量,根据所述人体姿态的分类器的输出结果确定人体姿态种类。
上述模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种人体姿态的分类方法,其特征在于,包括
确定当前帧图像中的人体区域;
在所述人体区域中,进行人体形状的提取,获得人体的外轮廓,并通过人头检测,获得人头的位置信息;
当头部位于人体的外轮廓正中间,此时确定所述人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,进而计算人体外轮廓的长宽比,根据所述人体外轮廓的长宽比确定人体姿态种类。
2、如权利要求1所述的方法,其特征在于,所述计算人体外轮廓的长宽比具体包括
计算当前帧图像中头部到脚的距离;
计算所述当前帧图像中人体外轮廓的平均宽度;
根据所述当前帧图像中头部到脚的距离和人体外轮廓的平均宽度,获得人体外轮廓的长宽比。
3、如权利要求2所述的方法,其特征在于,所述计算所述当前帧图像中人体外轮廓的平均宽度具体包括
计算所述当前帧图像中人头到脚的连线与摄像头的水平线之间的夹角;
计算人体水平方向的平均像素个数;
根据所述夹角和所述人体水平方向的平均像素个数计算人体外轮廓的平均宽度。
4、如权利要求3所述的方法,其特征在于,当所述夹角为a,所述人体水平方向的平均像素个数为w′,人体外轮廓的平均宽度为w时,所述根据所述夹角和所述人体水平方向的平均像素个数计算人体外轮廓的平均宽度具体为
w=w′×cos a,
其中,N为所述当前帧图像中人头到脚共占用的像素个数,ni为第i行对应的像素个数。
5、如权利要求1所述的方法,其特征在于,当人体外轮廓的长度为l,人体外轮廓的平均宽度为w,所述人体外轮廓的长宽比为
时,所述根据所述人体外轮廓的长宽比确定人体姿态具体包括
当时,确定人体姿态为平躺;
当时,确定人体姿态为半躺;
当时,确定人体姿态为坐;
当时,确定人体姿态为倾斜站立;
其中,th1、th2和th3为预设的阈值。
6、如权利要求1所述的方法,其特征在于,所述在所述人体区域中,进行人体形状的提取,获得人体的外轮廓具体包括
采用Snake的方法确定人体的外轮廓的能量函数,通过循环迭代使所述能量函数达到最小值,获得人体的外轮廓。
7、如权利要求6所述的方法,其特征在于,当人体的外轮廓上第i个点的坐标为(x(i),y(i)),第i个点的连续性项能量为Ec(i),第i个点的曲率项能量为Es(i),第i个点的图像能量为Ei(i),第i个点的能量函数为E(i)时,所述确定人体的外轮廓的能量函数具体为
其中,α、β、γ分别为Ec(i)、Es(i)和Ei(i)的权重,α、β、γ是正数,α+β+γ=1;
dmean为人体的外轮廓
上相邻两个点之间的平均距离,Ec max是Ec(i)的最大值;
Es max是Es(i)的最大值;
g″(i)是人体的外轮廓上第i个点的二阶差分,
I(x(i),y(i))表示坐标为(x(i),y(i))的像素点的灰度或者亮度值,l是平滑宽度,l=1或其他正整数。
8、如权利要求7所述的方法,其特征在于,所述通过循环迭代使所述能量函数达到最小值,获得人体的外轮廓具体包括
设置Snake的初值,计算Ec max,Es max和dmean;
按照收敛方向,确定当前轮廓点的候选点,按照能量最小的原则在所述候选点中选择使
最小的点作为下次迭代的初值;
对每个轮廓点都计算一遍后重新计算Ec max,Es max和dmean,继续进行迭代,比较每次迭代前后轮廓点的位置,如果某次迭代时所有轮廓点的位置均未发生变化,停止迭代。
9、如权利要求1所述的方法,其特征在于,还包括
选择多幅不同姿态的人体图像或人体的外轮廓;
根据人体姿态对所述人体图像或人体的外轮廓进行分组;
提取每组人体外轮廓的特征向量作为训练样本输入到分类器的训练模块,通过训练建立人体姿态的分类器;
提取待确定人体图像或人体的外轮廓的特征向量输入到所述人体姿态的分类器中,根据所述人体姿态的分类器的输出结果确定人体姿态种类。
10、一种人体姿态的分类装置,其特征在于,包括
人体区域确定模块,用于确定当前帧图像中的人体区域;
轮廓提取模块,与所述人体区域确定模块连接,用于在所述人体区域确定模块确定的人体区域中,进行人体形状的提取获得人体的外轮廓;
人头位置获得模块,用于通过人头检测,获得人头的位置信息;
人体姿态确定模块,与所述轮廓提取模块和所述人头位置获得模块连接,当头部位于人体的外轮廓正中间,此时所述人体姿态确定模块确定所述人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,进而计算人体外轮廓的长宽比,根据所述人体外轮廓的长宽比确定人体姿态种类。
11、如权利要求10所述的装置,其特征在于,所述人体姿态确定模块包括
计算子模块,用于计算当前帧图像中头部到脚的距离和所述当前帧图像中人体外轮廓的平均宽度;
长宽比获得子模块,与所述计算子模块连接,用于根据所述计算子模块计算的当前帧图像中头部到脚的距离和人体外轮廓的平均宽度,获得人体外轮廓的长宽比。
12、如权利要求11所述的装置,其特征在于,所述计算子模块具体用于计算所述当前帧图像中人头到脚的连线与摄像头的水平线之间的夹角,并计算人体水平方向的平均像素个数,根据所述夹角和所述人体水平方向的平均像素个数计算人体外轮廓的平均宽度。
13、如权利要求10所述的装置,其特征在于,所述轮廓提取模块具体用于采用Snake的方法确定人体的外轮廓的能量函数,通过循环迭代使所述能量函数达到最小值,获得人体的外轮廓;
其中,所述轮廓提取模块确定人体的外轮廓的能量函数为
其中,α、β、γ分别为Ec(i)、Es(i)和Ei(i)的权重,α、β、γ是正数,α+β+γ=1;
dmean为人体的外轮廓
上相邻两个点之间的平均距离,Ec max是Ec(i)的最大值;
Es max是Es(i)的最大值;
g″(i)是人体的外轮廓上第i个点的二阶差分,
I(x(i),y(i))表示坐标为(x(i),y(i))的像素点的灰度或者亮度值,l是平滑宽度,l=1或其他正整数。
14、如权利要求13所述的装置,其特征在于,所述轮廓提取模块具体用于设置Snake的初值,计算Ec max,Es max和dmean;按照收敛方向,确定当前轮廓点的候选点,按照能量最小的原则在所述候选点中选择使
最小的点作为下次迭代的初值;对每个轮廓点都计算一遍后重新计算Ec max,Es max和dmean,继续进行迭代;直到某次迭代中所有轮廓点的位置均未发生变化,停止迭代。
15、如权利要求10所述的装置,其特征在于,还包括
选择模块,用于选择多幅不同姿态的人体图像或人体的外轮廓;
分组模块,与所述选择模块连接,用于根据人体姿态对所述人体图像或人体的外轮廓进行分组;
提取模块,与所述分组模块连接,用于提取每组人体外轮廓的特征向量作为训练样本输入到分类器的训练模块;
训练模块,与所述提取模块连接,用于通过训练建立人体姿态的分类器;
确定模块,与所述训练模块连接,接收待确定人体图像或人体的外轮廓的特征向量,根据所述人体姿态的分类器的输出结果确定人体姿态种类。
全文摘要
本发明公开了一种人体姿态的分类方法和装置,人体姿态的分类方法包括确定当前帧图像中的人体区域;在所述人体区域中,进行人体形状的提取,获得人体的外轮廓,并通过人头检测,获得人头的位置信息;当头部位于人体的外轮廓正中间,此时确定所述人体姿态为垂直站立;当头部位于人体的外轮廓的一侧时,进而计算人体外轮廓的长宽比,根据所述人体外轮廓的长宽比确定人体姿态种类,从而实现了对人体姿态进行自动识别和分类,不需人工介入,弥补了现有技术没有提供对人体姿态进行分类的方法的缺陷。
文档编号G06K9/00GK101576953SQ200910086889
公开日2009年11月11日 申请日期2009年6月10日 优先权日2009年6月10日
发明者王俊艳, 英 黄 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1