发明名称 一种基于手势识别的手势运动基元过渡帧定位方法
摘要 一种基于手势识别的手势运动基元过渡帧定位方法,包括利用视频或图像采集装置获取手势图像,进行预处理,将人物图像按照轮廓、颜色、纹理分割为轮廓图像、颜色图像和纹理图像;将经过处理的轮廓图像、颜色图像和纹理图像进行再合成,建立手势图像数据库;基于手势图像数据库中的手势图像,定位到过渡帧,通过关键帧插值进行平滑连接合成连贯的手势动作,建立与手势图像匹配的手势运动基元模型。基于手势识别的手势运动基元过渡帧定位方法基于真人图像建立,画面生动真实,并且虚拟人模型灵活多变,能够直观、生动的表现,消除了运动跨度过大导致运动过渡的难题并有效地实现了运动细节的增强与保持。
申请公布号 CN104484034A 申请公布日期 2015.04.01
申请号 CN201410711947.3 申请日期 2014.11.27
申请人 韩慧健 发明人 韩慧健;张锐;贾可亮;刘峥;梁秀霞;其他发明人请求不公开姓名
分类号 G06F3/01(2006.01)I;G06K9/62(2006.01)I;G06T7/20(2006.01)I 主分类号 G06F3/01(2006.01)I
代理机构 北京元本知识产权代理事务所 11308 代理人 秦力军
主权项 一种基于手势识别的手势运动基元过渡帧定位方法,其特征在于,依次包括以下步骤:(1)利用视频或图像采集装置获取一个或多个分辨率为N×M的手势图像,对一个或多个手势图像进行预处理,将一个或多个手势图像中的人物图像提取出来,删除除了人物图像部分之外的背景图像;(2)对提取后的人物图像进行去噪处理,消除传输和采集过程中的噪声干扰,之后将去噪后的人物图像按照轮廓、颜色、纹理分割为轮廓图像、颜色图像和纹理图像;(3)对轮廓图像进行修正,进行平滑处理;(4)将颜色图像按照RGB图像的R、G、B三个分量通道进行分解,分别将三个分量通道中的每一个像素与其邻近的8个像素构成3×3的像素块,按照如下公式分别得到处理后的每一个像素分别对应的R、G、B三个分量的值:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>P</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mfrac><mrow><mo>(</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>)</mo></mrow><mn>4</mn></mfrac><mo>+</mo><msub><mi>R</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mrow>]]></math><img file="FDA0000618476560000011.GIF" wi="1574" he="129" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>P</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>G</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mfrac><mrow><mo>(</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>)</mo></mrow><mn>4</mn></mfrac><mo>+</mo><msub><mi>R</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mrow>]]></math><img file="FDA0000618476560000012.GIF" wi="1571" he="128" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>P</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>B</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mfrac><mrow><mo>(</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>P</mi><mrow><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mrow><mn>3</mn></mfrac><mo>)</mo></mrow><mn>4</mn></mfrac><mo>+</mo><msub><mi>R</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mrow>]]></math><img file="FDA0000618476560000013.GIF" wi="1567" he="133" /></maths>P<sub>ij</sub>(R)、P<sub>ij</sub>(G)、P<sub>ij</sub>(B)分别为经过处理后的R、G、B三个分量通道中的像素值,P<sub>ij</sub>为R、G、B三个分量通道中对应第i行、第j列的像素值,其中i=1,2,…,N,j=1,2,…,M;(5)将经过处理后的R、G、B三个分量通道中的像素值进行分配,合成经过处理后的颜色图像;(6)对纹理图像进行修正,进行平滑处理;(7)将经过处理的轮廓图像、颜色图像和纹理图像进行再合成,建立手势图像数据库;(8)基于手势图像数据库中的手势图像,按照身体的生理结构以及各个关节运动时的约束关系,以关键帧的方式建立手势动作的基本单位,并且描述所述基本单位的时序变化信息,具体包括如下步骤:对两个待合成手势运动基元Φ<sub>i</sub>和Φ<sub>j</sub>,假设长度分别为m和n;a.提取手势运动基元Φ<sub>i</sub>运动恢复时段的关键帧序列F1,假设长度为len1;b.提取手势运动基元Φ<sub>j</sub>运动准备时段关键帧序列F2,假设长度为len2;c.对运动关键帧序列F1,从起始关键帧位置1,开始移动到末尾关键帧位置len1,对每一个位置k,依次循环计算关键帧序列F2中第len2‑i个关键帧与运动关键帧序列F1中第k关键帧的相似度Sim,如果存在相似度小于阈值ε,则终止循环,否则直至循环结束,定位到过渡帧;(9)通过关键帧插值进行平滑连接合成连贯的手势动作,建立与手势图像匹配的手势运动基元模型;(10)将手势运动基元模型和图像数据库中的手势图像对应合成,建立虚拟人数据库;(11)将虚拟人数据库中的数据上传至云数据库单元,所述云数据库单元将接收到的数据存储后作为备份数据,供远程客户端下载;远程客户端下载云数据库单元中存储的数据,进行自定义编辑,将自定义编辑后的数据回传至虚拟人数据库,对虚拟人数据库中的数据进行更新。
地址 250014 山东省济南市二环东路7366号