主权项 |
基于RGB‑D数据构成的少量训练样本的手势识别方法,包括:特征提取单元,其用于对RGB‑D相机采集到的对齐的RGB‑D数据进行特征提取;训练单元,其用于对少量的手势训练样本提取的特征进行训练,得到训练后的模型;识别单元,其用于对输入的连续的RGB‑D数据利用训练单元生成的模型进行识别;在特征提取单元中,首先,对连续两帧RGB‑D图像序列检测特征点;然后对特征点邻域区域进行特征向量计算,这样每个训练或者待识别样本可以用这些特征向量表示;所述的特征提取单元具体步骤为:步骤(1).对输入的图像序列中的每一帧都建立金字塔,包括了灰度图金子塔和深度图金字塔;其中灰度图金字塔是由RGB图经过灰度转换而来的,而深度图金字塔是由深度图计算而来的;该金字塔的第一层是原图,第n层是第n‑1层经过下采样得到的;步骤(2).对t时刻的深度图金字塔,利用角点检测器检测金字塔每层图像中的角点,由此可以知道这些角点位于金字塔图像中的位置信息;步骤(3).利用光流跟踪这些角点在t+1时刻灰度图金字塔中的位置,由此可以知道这些角点的速度;当角点的速度小于某个阈值K的时候,该角点舍弃;同时保留速度大于该阈值K的角点,这些保留的角点即为特征点;在该步骤中,所述阈值的取值为K=max{Sm*0.2,0.5},其中Sm是指同一层金字塔中所有检测到角点速度的最大值;步骤(4).检测完特征点后,即可知道这些特征点所处金字塔的位置;在t和t+1时刻,从灰度图金字塔和深度图金字塔上分别提取特征点位置周围的一小块图像区域,这样就包括了四个局部图像:t时刻的局部灰度图像G1,t时刻的局部深度图像D1,t+1时刻的局部灰度图像G2,t+1时刻的局部深度图像D2;然后对这四个图像进行高斯滤波,得到对应的滤波后的图像G1',D1',G2',D2';利用G1'求水平梯度图像G1<sub>x</sub>和垂直梯度图像G1<sub>y</sub>;利用D1'也求水平和垂直梯度图像Z<sub>x</sub>,Z<sub>y</sub>;利用G1'和G2'计算灰度图的水平光流场V1<sub>x</sub>和垂直光流场V1<sub>y</sub>;同样利用D1'和D2'计算深度图的水平和垂直光流场VZ<sub>x</sub>,VZ<sub>y</sub>;步骤(5).利用G1<sub>x</sub>,G1<sub>y</sub>,Z<sub>x</sub>和Z<sub>y</sub>构建三维梯度空间,其中三维坐标中,X方向为G1<sub>x</sub>,Y方向为G1<sub>y</sub>,Z方向由Z<sub>x</sub>和Z<sub>y</sub>构成;利用V1<sub>x</sub>,V1<sub>y</sub>,VZ<sub>x</sub>和VZ<sub>y</sub>构建三维运动空间,其中三维坐标中,X方向为V1<sub>x</sub>,Y方向为V1<sub>y</sub>,Z方向由VZ<sub>x</sub>和VZ<sub>y</sub>构成;步骤(6).在三维梯度和运动空间,分别在XY,YZ,XZ平面,求取SIFT描绘算子,这样就可以计算6个SIFT描绘算子;最后这6个算子组成一个长的特征算子,即三维稀疏SIFT算子;三维稀疏SIFT算子就是提取的特征向量。 |