基于星型模型的人体运动识别方法

文档序号:6382161阅读:290来源:国知局
专利名称:基于星型模型的人体运动识别方法
技术领域
本发明属于图像处理技术领域,涉及人体运动识别方法,可用于虚拟视频、智能监控和姿态估计。
背景技术
人体运动识别是近几年来计算机视觉领域的重大热点之一,人体运动识别在运动捕获,人机交互,视频监控等多领域获得了初步的应用,具有重大的应用前景。由于人体运动的多变性和多样性,背景的嘈杂以及光照条件,衣服纹理和自身遮挡等多方面的因素严重影响人体运动的识别效果,故从视频图像中准确估计人体姿态,实现人体运动识别是计算机视觉领域长期存在的问题。目前,人体运动识别的方法主要分为三大类基于学习的人体运动识别、基于模型的人体运动识别和基于表现的人体运动识别。第一种,基于学习的人体运动识别方法,是先在训练的视频图像和目标视频图像数据库里提取精确的图像特征,通过机器学习从一系列训练数据中学习得到一个分类器,用该分类器来表示人体运动;然后利用该分类器对输入窗口进行分类及识别。如IvanLaptev等人采用的基于HOG和HOF的特征提取方法和基于KNN和SVM的识别方法。另外还有Somayeh Danafar和Niloofar Cheissari在其论文中采用了基于光流的特征提取方法和基于SVM的运动识别方法,其中基于光流的特征是从图像序列的相邻帧中提取。该识别方法的优点与人体模型的方法和模板匹配的方法相比是比较鲁棒,检测结果较优,但是缺点是运动信息的计算过程缺乏对行为的全局分析,且计算特征的复杂度较高,需要很多训练数据,通常需要上万的数据。第二种,基于模型的方法,是利用人体结构的先验知识建立人体模型,然后提取图像底层特征匹配到模型中,并以运动规律加以约束。当前比较典型的方法如Ju Sun采用了基于SIFT描述子和基于Markov模型的识别方法;Hsuan_Sheng Chen等人采用了基于星形骨架描述轮廓信息的特征表述方法和基于HMM的动作识别方法。这种方法简单,容易实现,但是特征表征能力较弱,信息包含较少,识别性能低,准确率不高,且容易受遮挡和人体服装差异的影响,常作为一种辅助方法。第三种,基于表现的方法,无须对人体建模,直接提取图像中感兴趣区域的底层二维表观特征,然后找出区域特征与人体动作的对应关系进行匹配。如Bobick和Davis采用了基于轮廓表征的特征表示方法和基于MHI和MEI模板的识别方法。这种方法与基于模型的方法相比计算比较简单,缺点是提出的特征对环境的动态变化敏感,易受背景变化的影响,对纹理变化不够敏感,不能最优的表征图像边缘,同时由于人体姿态的复杂性,很难构造出足够的模板以处理不同的姿态,故正确率也不高。

发明内容
本发明目的是针对上述已有技术的不足,提出一种基于星型骨架模型的人体行为识别方法,从人体的结构特性出发,降低人体特征提取的复杂度,在无需大量训练数据的情况下,有效地提高人体运动识别的正确率。为实现上述目的,本发明的技术方案包括如下(I)将Weizmann数据库中的视频按照8 I的比例构建训练视频集X和测试视频集T,并将训练视频集X和测试视频集T中的每段视频转换为连续的单幅序列图像;(2)利用帧差法对训练视频集X中的单幅序列图像进行背景减除,并将背景减除后的彩色图像变为二值图像;(3)构造上述二值图像最左下角的像素点为坐标中心的直角坐标系O1,提取图像中人体的星型模型,并记录星型模型的5个顶点在直角坐标系O1中的位置,其中,星型模型的5个顶点为人体轮廓上的像素点和人体重心点之间距离最大的5个像素点,分别记为(X1, Y1), (x2, y2), (x3, y3), (x4, y4),(x5, J5);(4)在上述二值图像中构造以人体重心点为坐标中心的直角坐标系O2,进行平移直角坐标系变换,并将步骤(3)中星型模型的5个顶点在直角坐标系O1中的坐标转换到直角坐标系02中,得到这5个顶点在坐标系02中的对应坐标,分别为(x/,y/ ),
(X' 2, y' 2),(x' 3. J1 3),(χ/ 4. J1 4),(χ/ 5. j' 5);(5)计算星型模型的5个顶点在直角坐标系O2中的坐标(χ/ ,y/ ),(x, 2,y2),U丨3,y/ 3),(χ' 4, Yr 4),(χ' 5, Yr 5)到直角坐标系O2的坐标中心点的距离,依次记为di,d2,d3,d4,d5 ;(6)利用上述(I1, d2, d3, d4, d5中的最大值D,计算星型模型5个顶点的极径=di/D,其中i = I, 2......5, D = max ((I1, d2, d3, d4, dj ;(7)利用上述(x, !, Y1' ), (x/ 2,y' 2),(x, 3, yf 3),(x' 4, y ' 4),(x' 5,l' 5),计算星型模型5个顶点的极角Θ i = arctan(XiAi),其中i = 1,2......5 ;(8)根据人体结构特征找出这5个顶点分别对应的人体部位(8.1)将5个顶点的极径r” i = I, 2. . . . 5,从大到小排序,找出最大两个极径对应的坐标点(X1, ,1’ Kx, 2,y, 2),根据人体脚到人体重心的距离最大,且左脚和右脚分布于人体重心两侧的比例结构,若X/ >0,则判定(X' ,,y' i)为左脚坐标,(X' 2,y' 2)为右脚坐标;(8.2)在剩余 3 个点顶点(X' 3,y' 3),(x' 4,y' 4),(x' 5,y' 5)中,根据人体头部是偏离人体重心角度最小的部位,对应极角的绝对值最大的结构,比较3个顶点对应极角θ3,Θ 4, 05的绝对值的大小,若θ3绝对值最大,则(X' 3, I' 3)为头部坐标; (8.3)在其余两个顶点(X' Α,γ' 4),(χ' 5,γ' 5)中,若 X' 4>0,则判定U丨4,y' 4)为左脚坐标,(X' 5,y! 5)为右脚坐标;(9)按照上述步骤(2Γ(8)将一个运动视频中的所有序列图片都做如上处理,得到一个视频中所有图片中人的5个部位的极径和极角;(10)将极径的取值范围等分为5个连续的子区间,极角的取值范围等分为10个连续的子区间,将极径的5个子区间和极角的10子区间分别两两组合,构成50个联合子区 间,分别统计步骤(9)得到的一个视频的所有图片中人的5个部位的极径和极角的值落在这50个联合子区间中的次数,得到5个部位的位置特征向量,分别记为Ii1, η2,η3,η4,η5,将5个部位的位置特征向量级联,得到一个运动视频的最终特征N= {ηι,η2,η3,η4,η5};(11)按照上述步骤(2广(10)提取训练视频集X和测试视频集T中的所有运动视频的最终特征,获得训练视频特征集X*和测试视频特征集T* ;(12)利用SVM算法对训练视频特征集X*进行训练学习得到分类器,将测试视频特征集T*输入到分类器中,得到各类运动的分类结果。本发明与现有的技术相比具有以下优点1、本发明是利用了人体的结构特性,通过人体星型骨架模型获取人体部位的位置特征向量进行人体行为识别,有效的提高了基于视频的人体行为识别的正确率。
2、本发明利用了基于部位的方法,通过构造部位属性的统计直方图,很好的描述在不同行为下人体部位的位置差异,同时较传统的描述方法维度低,在学习训练阶段能有效缩减时间和数据计算量。


图1是本发明的流程示意图;图2是是本发明仿真使用的数据库中部分视频的序列图像;图3是本发明中利用Weizmann数据库进行仿真后的混淆矩阵图。
具体实施例方式参照图1,本发明的具体实现步骤如下步骤一,获取整个人体运动识别的训练视频集X和测试视频集T。(11)将Weizmann数据库中的运动视频按照8 I的比例构建训练视频集X和测试视频集T ;其中,Weizmann数据库的下载地址为http://www. wisdom, weizmann.ac.1l/ vision/SpaceTimeActions. html,图2给出了数据库中部分视频的序列图像;(1. 2)将训练视频集X和测试视频集T中的每段视频转换为连续的单幅序列图像。步骤二,利用帧差法对训练视频集X中的单幅序列图像进行背景减除,并将背景减除后的彩色图像变为二值图像,具体步骤为(2.1)定义FG (X,y) = {R, G, B}表示当前视频图像中像素点(x, y)的RGB数值,定义BG(x,y) = (R1, G1, B1I表示Weizmann数据库相应背景图片中对应背景像素点的RGB数值,其中,R表示当前视频图像中像素点(x,y)的红色分量数值,G表示当前视频图像中像素点(x,y)的绿色分量数值,B表示当前视频图像中像素点(x,y)的蓝色分量数值,R1表示相应背景图片中对应背景像素点的红色分量数值,G1表示相应背景图片中对应背景像素点的绿色分量数值,B1表示相应背景图片中对应背景像素点的蓝色分量数值;(2. 2)分别计算红色分量R的差值Cl (X,y) = I R-R11,绿色分量G的差值c2 (x, y)=|6-61|,蓝色分量8的差值。3(\7) = B-B1 ;(2. 3)将当前视频图像中像素点(X,y)的三个颜色分量差值Cl (X,y),c2 (x, y),c3(x, y)与设定的阈值t相比较,若三个颜色分量差值都小于或等于阈值t,则将像素点U,y)设为背景像素点,否则将像素点U,y)设为前景像素点,其中,阈值t根据具体序列图像设定;(2. 4)将步骤(2. 3)中判定为背景像素点的像素值都设为I,将判定为前景像素点的像素值都设为O,将得到的所有背景像素点和前景像素点联合起来构成二值图像;(2. 5)使用形态学中膨胀腐蚀的方法,对步骤(2. 4)得到的二值图像中人体像素缺失的部分进行膨胀,对人体像素的多余部分进行腐蚀,获得理想的前景二值图像。步骤三,构造上述二值图像最左下角的像素点为坐标中心的直角坐标系O1,提取图像中人体的星型模型,并记录星型模型的5个顶点在直角坐标系O1中的位置,其中,星型模型的5个顶点为人体轮廓上的像素点和人体重心点之间距离最大的5个像素点,分别记为(X1, Y1), (x2, j2), (x3, y3), (x4, y4),(x5, J5),具体步骤为·(3.1)对二值图像利用光栅扫描法获得人体边界像素点坐标;(3.1a)对二值图像进行光栅扫描,当某像素的像素值从I变为O时,将此像素记为Pd,且作为人体边界像素点的起始点,并存储它的坐标(X,y);(3.1b)从像素(X,y-D开始逆时针方向在像素(x,y)的8_领域内寻找像素值为
O的像素点,当第一次出现像素值为O的像素点时,将此像素点记为Pk, k = I,并存储它的坐标;(3.1c)从像素Plri开始逆时针方向在像素Pk的8-领域内寻找像素值为O的像素,把最新发现的像素值为O的像素记为pk+1,并存储它的坐标;(3.1d)重复步骤(3.1c),当pk = P(!且pk+1 = P1时,扫描结束,记录所有边缘像素点的位置(XiJi);(3. 2)利用人体边界像素点坐标,计算运动人体边界像素点所围成区域的重心坐标(X。,yc),计算公式为
权利要求
1.一种基于星型模型的人体运动识别方法,包括如下步骤 (1)将Weizmann数据库中的视频按照8:1的比例构建训练视频集X和测试视频集T,并将训练视频集X和测试视频集T中的每段视频转换为连续的单幅序列图像; (2)利用帧差法对训练视频集X中的单幅序列图像进行背景减除,并将背景减除后的彩色图像变为二值图像; (3)构造上述二值图像最左下角的像素点为坐标中心的直角坐标系O1,提取图像中人体的星型模型,并记录星型模型的5个顶点在直角坐标系O1中的位置,其中,星型模型的5个顶点为人体轮廓上的像素点和人体重心点之间距离最大的5个像素点,分别记为(X1, Y1), (x2, y2), (x3, y3), (x4, y4), (x5, y5); (4)在上述二值图像中构造以人体重心点为坐标中心的直角坐标系O2,进行平移直角坐标系变换,并将步骤(3)中星型模型的5个顶点在直角坐标系O1中的坐标转换到直角坐标系O2中,得到这5个顶点在坐标系O2中的对应坐标,分别为(X1',y/ ),(x' 2,y' 2),(X' 3. l' 3),(X, 4. l' 4),(X, 5. l' 5); (5)计算星型模型的5个顶点在直角坐标系O2中的坐标(X1',y/), (x' 2, y' 2),(x/ 3,y/ 3),(x' 4,y/ 4),(x/ 5,y/ 5)到直角坐标系O2的坐标中心点的距离,依次记为di,d2,d3,d4,d5 ; (6)利用上述Cl1,d2, d3, d4, d5中的最大值D,计算星型模型5个顶点的极径ri = di/D,其中 i = I, 2......5, D = max {(I1, d2, d3, d4, dj ;(7)利用上述(X'!, Y11 ), U1 2. y' 2),(X' 3. y' 3),(X' 4. y' 4),(X' 5. y' 5),计算星型模型5个顶点的极角0 i = arctanU' Jj'其中i = l,2......5 ; (8)根据人体结构特征找出这5个顶点分别对应的人体部位 (8.1)将5个顶点的极径巧,i = 1,2. . . . 5,从大到小排序,找出最大两个极径对应的坐标点(X/ ,y' Kx' 2,y/ 2),根据人体脚到人体重心的距离最大,且左脚和右脚分布于人体重心两侧的比例结构,若X/ >0,则判定(X' i,y' D为左脚坐标,(X' 2,y/ 2)为右脚坐标; (8. 2)在剩余3个点顶点(X' 3. l' 3),(X' 4. y' 4),(X' 5. y' 5)中,根据人体头部是偏离人体重心角度最小的部位,对应极角的绝对值最大的结构,比较3个顶点对应极角.0 3, 0 4, 0 5的绝对值的大小,若%绝对值最大,则(X' 3, I' 3)为头部坐标; (8. 3)在其余两个顶点(X' 4. l' 4),(X' 5. l' 5)中,若X'4. l' 4)为左脚坐标,(X' 5,y/ 5)为右脚坐标; (9)按照上述步骤(2广(8)将一个运动视频中的所有序列图片都做如上处理,得到一个视频中所有图片中人的5个部位的极径和极角; (10)将极径的取值范围等分为5个连续的子区间,极角的取值范围等分为10个连续的子区间,将极径的5个子区间和极角的10子区间分别两两组合,构成50个联合子区间,分别统计步骤(9)得到的一个视频的所有图片中人的5个部位的极径和极角的值落在这50个联合子区间中的次数,得到5个部位的位置特征向量,分别记为Ii1, n2,n3,n4,n5,将5个部位的位置特征向量级联,得到一个运动视频的最终特征N= {ni,n2,n3,n4,n5}; (11)按照上述步骤(2广(10)提取训练视频集X和测试视频集T中的所有运动视频的最终特征,获得训练视频特征集X*和测试视频特征集T* ;(12)利用SVM算法对训练视频特征集X*进行训练学习得到分类器,将测试视频特征集T*输入到分类器中,得到各类运动的分类结果。
2.根据权利要求1所述的人体运动识别方法,其中步骤(2)所述的利用图像差分法对所有的训练视频集X中的单幅序列图像进行背景减除,并将背景减除后的彩色图像其变为二值图像,具体步骤为 (2.1)定义FG(x,y) = {R,G,B}表示当前视频图像中像素点(x,y)的RGB数值,定义BG(x, y) = (R1, G1, B1I表示Weizmann数据库相应背景图片中对应背景像素点的RGB数值,其中,R表示当前视频图像中像素点(x,y)的红色分量数值,G表示当前视频图像中像素点(x, y)的绿色分量数值,B表示当前视频图像中像素点(x,y)的蓝色分量数值,R1表示相应背景图片中对应背景像素点的红色分量数值,G1表示相应背景图片中对应背景像素点的绿色分量数值,B1表示相应背景图片中对应背景像素点的蓝色分量数值; (2. 2)分别计算红色分量R的差值cl (x,y) = I R-R11,绿色分量G的差值c2 (x, y)=6-61|,蓝色分量8的差值。3 0^,7) = B-B1 ; (2. 3)将当前视频图像中像素点(x,y)的三个颜色分量差值cl (x,y),c2 (x, y),c3 (x, y)与设定的阈值t相比较,若三个颜色分量差值都小于或等于阈值t,则将像素点(x,y)设为背景像素点,否则将像素点(x,y)设为前景像素点,其中,阈值t根据具体序列图像设定; (2. 4)将步骤(2. 3)中判定为背景像素点的像素值都设为I,将判定为前景像素点的像素值都设为O,将得到的所有背景像素点和前景像素点联合起来构成二值图像; (2. 5)使用形态学中膨胀腐蚀的方法,对步骤(2. 4)得到的二值图像中人体像素缺失的部分进行膨胀,对人体像素的多余部分进行腐蚀,获得理想的前景二值图像。
3.根据权利要求1所述的人体运动识别方法,其中步骤(3)所述的提取图像中人体的星型模型,并记录星型模型的5个顶点在直角坐标系O1中的位置,按如下步骤进行 (3.1)对二值图像利用光栅扫描法获得人体的边界像素点坐标; (3. 2)利用人体边界像素点坐标,计算运动人体边界像素点所围成区域的重心坐标(xc, yc),计算公式为
全文摘要
本发明提出了一种基于星型模型的人体运动识别方法,主要解决现有技术中特征提取复杂、表征能力弱的问题。其实现步骤是(1)获得人体运动视频数据,并按8∶1的比例构建训练视频集X和测试视频集T;(2)提取每个视频中人体星型模型的5个顶点在以人体重心为坐标中心的直角坐标系中的坐标;(3)计算人体星型模型的5个顶点的极径和极角;(4)利用人体结构特征和5个顶点的极径,极角找出这5个顶点分别对应的人体部位,得到5个部位的位置特征;(5)分别对训练视频集X和测试视频集T中的所有视频进行特征提取,获得训练视频特征集X*和测试视频特征集T*,并对其进行学习训练,获得分类结果。本发明能准确识别人体运动,可用于视频监控、目标识别和运动识别的视频处理。
文档编号G06K9/54GK103020631SQ20121048340
公开日2013年4月3日 申请日期2012年11月23日 优先权日2012年11月23日
发明者韩红, 李晓君, 韩启强, 张红蕾, 谢福强, 顾建银 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1