发明内容
本发明目的是针对上述第一种方法的不足,从人体的结构特性出发,提出的一种基于时空兴趣点检测的人体运动识别方法,以降低图像特征提取的复杂度,提高特征的表征能力,有效地提高人体识别的正确率。
为实现上述目的,本发明的技术方案包括如下步骤:
(1)取一个视频样本I,检测视频中的时空兴趣点;
(2)检测视频中人体的重心G(x0,y0),其中,x0,y0为人体重心的坐标;
(3)以人体重心为基准中心,计算各个时空兴趣点到人体重心的角度θ和距离r;
(4)将计算得到的角度θ和距离r在极坐标系中进行区域划分,分别统计每个区域内角度θ和距离r的个数nθ(i)和nr(j),并计算每个区域内角度θ和距离r分布个数的百分比dθ(i)和dr(j),其中,i,j分别表示角度θ和距离r中的第i和第j区域,i=1,...,12;j=1,...,5;
(5)将所得的角度θ和距离r的百分比dθ(i)和dr(j)级联,作为该运动视频的特征;
(6)将Weizmann数据库按照8:1的比例划分为训练样本集X和测试样本集T;按照上述步骤(1)~(5)分别提取训练样本集X和测试样本集T中的所有视频特征,获得训练样本特征集X'和测试样本特征集T';
(7)利用SVM算法对训练样本特征集X'进行训练学习得到分类器;将测试样本特征集T'输入分类器得到各类运动的分类结果。
本发明与现有的技术相比具有以下优点:
1)本发明利用检测人体运动区域的方式,通过计算该区域对人体重心的角度和距离进行人体运动识别的方法,有效地提高了人体运动识别的正确率。
2)本发明利用检测人体运动区域的方式对视频进行提取特征,不需要对图像序列中的人体运动区域提取边缘特征,从而降低了图像特征提取的复杂度,比传统的特征提取方法能更加节省计算资源和时间复杂度。
3)本发明利用检测人体运动区域的方式,计算该区域对人体重心的角度和距离,通过划分一定区域的角度和距离的方式来最优的表示运动的特征,较传统的图像描述方法维度低,特征的表征能力强,在学习训练阶段能有效缩减时间和数据计算量。
具体实施方式
参照图1,本发明的具体实现步骤如下:
步骤一,获取整个人体运动识别训练样本集X和测试样本集T。
(1a)从WEIZMANN人体数据库提取本发明试验所需的样本集,下载地址为http://www.wisdom.weizmann.ac.il/~vision/SpaceTimeActions.html;图2给出了数据库中的部分序列图像;
(1b)将WEIZMANN数据库中的视频按照8:1的比例构建训练样本集X和测试样本集T。
步骤二,对训练样本集X中视频,检测视频中的时空兴趣点。
(2a)对原始视频采用二维Gauss滤波器进行降噪,得到滤波后的视频数据L:
L=I*g,
其中,I表示原始视频数据,L表示滤波后的视频数据,g为高斯平滑核,g的计算公式为:
其中,x,y为像素坐标,σ为空间维度的尺度参数;
(2b)在时间维度上进行一维Gabor滤波,得到视频数据L在时间维度上的响应数据R:
其中,hev和hod是Gabor滤波器的一组正交对,其定义公式如下:
其中,ω=4/τ,t=2τ,τ为时间维度的尺度参数;
(2c)设定响应数据R的阈值
将响应数据R大于阈值
的点记为时空兴趣点。
步骤三,计算视频中人体的重心G=(x0,y0)。
(3a)背景剪除:将视频的图像序列和背景图片进行差分处理,使用阈值法得到前景图像区域和背景图像区域,将前景图像区域的像素设为0,背景图像区域的像素设为1,获得原图像序列的前景二值图像v;
(3b)使用形态学中膨胀腐蚀的方法,对原图像序列的前景二值图像v填补坑洞,修补缺失部分,获得理想的前景二值图像v';
(3c)对前景二值图像v'利用光栅扫描法获得人体的边界像素点坐标(xi,yi);
(3d)利用人体边界像素点坐标(xi,yi),计算人体重心坐标G(x0,y0),计算公式为:
其中,Nb为构成人体边缘的所有像素的个数,(xi,yi)为人体边界像素点坐标。
步骤四,以人体重心为基准中心,计算各个时空兴趣点到人体重心的角度θ和距离r,并在极坐标内显示,角度θ和距离r的计算公式为:
其中,(x',y')为时空兴趣点的坐标,(x0,y0)为人体重心的坐标。
步骤五,将计算得到的角度θ和距离r在极坐标系中进行区域划分,分别统计每个区域内角度θ和距离r的个数nθ(i)和nr(j),并计算每个区域内角度θ和距离r分布个数的百分比dθ(i)和dr(j)。
(5a)对于角度θ,选择每30度作为一个区域,总共划分12个区域;分别统计每个区域内角度θ的个数nθ(i);
(5b)对于距离r,按照距离r值的大小划分为5个直方图区域;分别统计每个区域中距离r的个数nr(j);
(5c)计算每个区域内角度θ和距离r分布个数的百分比dθ(i)和dr(j):
dθ(i)=nθ(i)/nθ,
dr(j)=nr(j)/nr,
其中,i表示角度θ的第i区域,i=1,...,12,
nθ(i)为第i区域内角度θ的个数,
nθ为全部角度θ的个数,
j表示距离r的第j区域,j=1,...,5,
nr(j)为第j区域中距离r的个数,
nr为全部距离r的个数;
步骤六,将所得的角度θ和距离r的百分比dθ(i)和dr(j)级联,作为该运动视频的特征。
步骤七,按照上述步骤二至步骤六,分别将训练样本集X和测试样本集T中的所有运动视频提取特征,获得训练样本特征集X'和测试样本特征集T'。
步骤八,利用SVM算法对训练样本特征集X'进行训练学习得到分类器,并输入测试样本特征集T'进行分类。
(8a)将训练数据先采用“leave-one-out”的方法进行交叉验证,选取交叉验证实验中分类准确率最高的参数作为最优参数;
(8b)将最优参数和训练样本特征集X'用于SVM训练分类器;
(8c)将测试样本特征集T'输入已经训练好的分类器,得到各类运动的预测标签L';
(8d)根据测试样本特征集T'的预测标签L'和真实标签L得出每一类的分类准确率,并画出混淆矩阵,该真实标签L表示WEIZMANN数据库中十类运动的名字及其对应的编号:1,2,3,4,5,6,7,8,9,10。
1.实验条件
实验所需的样本集来源于WEIZMANN数据库,包括bend,jack,jump,pjump,side,wave1,wave2,run,walk,skip十类运动视频,对原始数据库按周期分割后,整个人体运动识别的样本有242个,其中各类运动样本分别有9,26,34,33,15,28,32,20,23,22个,样本的大小均为144×180像素。
硬件平台为:Intel Core2Duo CPU E65502.33GHZ、2GB RAM。软件平台为MATLAB R2010a。
2.对比实验
本发明使用的对比实验方法是J.C.Niebles和李飞飞博士在文章“J.C.Nieblesand L.Fei-Fei,“A hierarchical model of shape and appearance for human actionclassification,”IEEE Conference on Computer Vision and Pattern Recognition,2007.”中提出的基于形状和表观模型的人体运动识别方法。首先提取训练样本基于形状的特征,然后训练一个判别性分类器,最后通过计算测试样本特征和分类器中模型的相似性来实现分类。
3.实验内容与结果分析
仿真一,使用本发明对WEIZMANN数据库中动作bend的第一个视频样本进行时空兴趣点的检测,检测结果如图3所示,图3中白点即为检测出的时空兴趣点。
从图3可以看出,本发明的方法能将人体运动时的时空兴趣点精确地检测出,且具备良好的表征能力。
仿真二,使用本发明计算仿真一检测出的时空兴趣点到人体重心的距离和角度,并将距离和角度在极坐标系中显示,结果如图4所示。
从图4中可以看出,本发明的方法能将检测出的时空兴趣点分布清晰的表示出来,具备表征人体运动的能力。
仿真三,使用本发明对WEIZMANN数据库进行人体运动识别的仿真实验,步骤如下:
1)对WEIZMANN数据库在上述实验条件中进行训练样本和测试样本的划分;
2)对训练样本集X和测试样本集T进行特征提取,得到训练样本特征集X'和测试样本特征集T';
3)利用SVM算法对训练样本特征集X'训练,之后将测试样本特征集T'输入分类器得到各类运动的预测标签L';
4)根据测试样本特征集T'的预测标签L'和真实标签L,得出总的分类准确率为100%,并画出混淆矩阵,如图5所示。
从图5的混淆矩阵可以看出,经过调整参数,所有运动都能得到有效地识别,且分类准确率100%,高于对比实验中李飞飞博士的72.8%。
综上,本发明提出的人体运动识别方法有效可行,且提出的特征提取方法能准确的表征人体运动,降低了特征提取的计算复杂度。