1.基于特征融合和多分类器投票的多体感人体行为识别算法,具体步骤如下,其特征在于,
步骤1:同时使用三维Kinect摄像头采集人体运动数据,获得人体运动的三视图;
步骤2:利用Kinect for Windows SDK中的骨骼追踪技术,对图像中的人体骨骼进行位置追踪,可获得人体骨骼20个关节点的数据信息,并通过人体骨骼数据计算各个关节的肢体向量特征和肢体加速度特征;
步骤2中人体骨骼关节数据信息如下:使用Kinectfor Windows SDK中的骨骼追踪技术,对人体运动信息进行采集,最终获得人体20个骨骼关节点三维数据信息,并将每个关节用A‑T的编号进行表示,并通过式1计算人体骨骼的关节角:
其中,θ是每帧骨骼数据t时刻关节角的大小,U(t)和V(t)分别是t时刻的两个关节向量,通过式1最终可得17个人体关节角信息;
步骤2中计算各个关节的肢体向量特征和肢体加速度特征如下:根据人体结构学,人体可分为五大部分,Kinectfor Windows SDK中的骨骼追踪技术可获得以上各个关节点数据信息,包括:
1、头部T(t)、颈部C(t)、脊柱D(t)和臀部G(t);
2、左手L(t)、左腕J(t)、左肘H(t)和左肩A(t);
3、右手M(t)、右腕K(t)、右肘I(t)和右肩B(t);
4、左脚R(t)、左踝P(t)、左膝N(t)和左臀E(t);
5、右脚S(t)、右踝Q(t)、右膝O(t)和右臀F(t);
可通过下式来求解五大人体的关节向量特征:由于每个骨骼结点对人体动作表达贡献度的不同,将从每个人体部分中选取两个骨骼结点的夹角作为关节角,并利用式3计算人体肢节的角速度特征:ω(t)=θ(t+1)‑θ(t) (3)θ(t)是t帧关节角的大小,其中躯干部分的角速度特征计算选取角θ4和θ9,左臂部分选取θ3和θ2,右臂部分选取θ6和θ7,左腿部分选取θ12和θ13,右腿部分选取θ15和θ16;人体各部分的角速度特征代表了人体四肢和躯干整体的运动情况;
人体四肢和躯干的弯曲可通过关节点之间距离的变化来体现,即关节点的加速度特征可刻画人体四肢和躯干的弯曲程度:v(t)=d(t+1)‑d(t) (4)其中v(t)是t帧的速度特征,d(t)是人体五个部分的首末关节点的欧式距离;
步骤3:将带有人工标注的图像特征作为训练集,并将N个初始化图像帧,一一对应的训练N个Knn分类器,同时分配并更新每个分类器的权重;
步骤3中更新每个分类器的权重如下:当人体在运动过程中,将会发生形变以及姿态上的变化,这种变化会降低分类算法的识别精度,为了优化多分类器对人体行为的识别和充分利用三维Kinect传感器信息,本发明对N个图像帧分配N个kNN分类器:首先将传感器多次采集的不同人体行为多帧图像进行人工标注,再通过步骤2提取各个关节的肢体向量特征和肢体加速度特征,按照4:1的比例分别作为训练集样本和测试集样本;假设采集人体行为的多帧图像共有N帧,将建立N个kNN分类器,并分别通过式5来计算测试样本到训练样本的距离E(xi,x′i):其中xi是测试特征样本,x′i是训练集特征样本;并通过欧式距离找出训练样本距离测试样本最近的k个训练样本点,同时将根据分类决策规则决定测试样本在该分类器的类别:其中,yi∈{c1,c2,…,ck}是训练样本x′i实例的类别,I是指示函数,当yi=ci时,I为1,否则为0;
在第一次得到N个kNN分类器之后,给每个分类器分配权重Wm={wm1,wm2,…,wmN},m=1,
2,…,M,m代表的分类器迭代分配权重次数;
当m=1时,即第一次迭代过程中,给每个kNN分类器分配相同的权重:在测试样本后续迭代的过程中将会不断更新每个kNN分类器的权重,权重的更新是自适应的调整每个分类器权重:
P′mn是该分类器对测试样本的分类结果,Pn是测试样本实际的人工标注类别,S(P′mn=Pn)代表的是当测试样本被正确分类时其值取‑1,反之取1;这样实现多分类器的优化,从而减小图像中的干扰、提高分类器的鲁棒性;
步骤4:对于一个未知类别的人体行为多帧图像,按照步骤2提取该多帧图像的肢体向量特征和肢体加速度特征,并将其特征送入到分配过权重的N个kNN分类器中,并识别该类人体行为类别;
步骤4中识别该类人体行为类别如下:对于一个未知类别的人体行为多帧图像,按照步骤2提取该多帧图像的肢体向量特征和肢体加速度特征,并将其特征送入到分配过权重的N个kNN分类器中,并识别该类人体行为类别得到每个分类器的分类结果pij,i=1,2,…,N,j=1,2,…,k,N是分类器的个数,j是人体行为类别的种类,对于未知人体行为类别的判别可通过式12获得:Classi(A)=max(w(m+1)ipij) (12)w(m+1)i是迭代m次后第i个kNN分类器的权重,最后将具有最大权重的分类类别确定为该多帧图像的人体行为类别。