双手互为参考的目标控制方法 【技术领域】
本发明属于人机交互技术领域, 具体涉及一种双手互为参考的目标控制方法。背景技术 随着技术的发展以及 “以人为本” 设计理念的深入, 人机交互技术在近几十年得到 了快速的发展, 以虚拟现实为代表的计算机系统的拟人化, 和以手持电脑、 智能手机为代表 的微型化、 随身化、 嵌入化, 是当前重要的发展趋势, 通过人的一种或多种感觉通道或动作 通道, 如语言、 姿势、 视线或表情等输入, 可以提高人机交互的自然性和高效性。
现阶段, 人机交互的方式繁多, 就其中的输入方式而言, 除鼠标、 键盘、 触摸屏、 遥 控器等, 还有一系列的其它控制方式, 如基于语音识别的控制方法、 基于手势的控制方法、 基于视线的控制方法等。
中国专利 200910103357.1 提供了一种基于手势识别的界面漫游操作方法与装 置, 通过用户自定义模板完成手势识别, 通过不同手势对界面进行控制, 其中包括完成鼠标 的移动、 点击等功能, 此外还有图片缩放旋转的功能。
中国专利 200710021403.4 提供了一种基于手指端标记的视频手指定位系统及定 位方法, 在用户指甲和手背上贴上不同颜色的图形标记点, 使用机器视觉技术跟踪定位这 些标记, 完成用户与手指的跟踪定位, 通过手的动作, 进行交互控制。
目前的控制方法存在如下缺陷 : 无法快速、 精确的对目标 ( 如光标、 图像或选项菜 单, 以下相同 ) 进行定位, 导致操作时的便捷性较差。
发明内容
本发明的目的在于克服现有技术的缺陷, 提供一种双手互为参考的目标控制方 法, 本发明可以快速、 准确的对目标进行定位, 并方便的实现对目标的控制。
其技术方案如下 :
一种双手互为参考的目标控制方法, 该方法包括如下步骤 : A、 开机 ; B、 摄像头采 集图像序列, 并在摄像头采集的图像序列中搜索用户双手 ; C、 在摄像头采集的图像序列中 跟踪双手的运动 ; D、 控制系统根据双手的运动, 来控制目标的移动方向并使其与手的移动 方向相同, 且其中一只手为漂移手, 通过漂移手对目标进行大范围的移动控制 ( 即低精度 的移动控制 ), 另一只手为精确手, 通过精确手对目标进行高精度的移动控制。
在对目标进行定位时, 先通过漂移手实现大范围的移动, 缩小目标的移动范围, 再 采用另一只手 ( 即精确手 ), 实现目标的高精度移动, 来对目标进行定位。本发明由于两个 手采用不同的精度, 漂移手控制目标快速移动, 精度低, 精确手控制目标慢速移动, 控制精 度高, 通过两只手结合使用, 可以快速、 精确的对目标进行定位, 控制过程更方便。
前述技术方案进一步细化的技术方案可以是 :
所述 B 步骤包括如下步骤 : B1、 搜索人脸, 并判定是否有人脸存在 ; B2、 若有人脸存 在, 在人脸附近设立敏感区域, 在敏感区域中搜索用户双手 ; B3、 控制系统判定用户双手是否为有效手势, 若为有效手势, 控制系统进行用户控制状态 ; 若为无效手势, 则控制系统继 续进行人脸搜索。
在所述 B3 步骤中, 用户一手握拳一手五指伸展, 或者双手五指伸展, 同时保证手 心或拳面正对摄像头, 则为有效手势。
在所述 D 步骤中, 控制系统通过左手实现大范围的移动控制, 通过右手实现高精 度的移动控制。 由于大部分人的右手比较灵敏, 通过右手实现高精度的移动控制, 更符合人 们的操作习惯, 当然, 对于 “左撇子” 来说, 可以对控制系统的默认设置进行更改。
在所述 D 步骤中, 若两只手同时移动, 则大范围的移动控制失效, 高精度的移动控 制有效。避免两只手同时移动时造成目标定位混乱。
在所述 D 步骤中, 通过手指的弯曲或伸展来控制目标的选中或启用。如精确手的 食指蜷曲和伸展分别定义为鼠标左键的按下与弹起 ; 精确手的拇指蜷曲和伸展分别定义为 鼠标右键的按下与弹起。
在所述 D 步骤中, 通过手指的弯曲或伸展来控制目标的向上或向下滚动。漂移手 的食指 ( 或拇指 ) 的蜷曲或伸展分别定义为鼠标滚轮的向上、 向下滚动。
在所述 D 步骤中, 若用户某一只手握拳, 则控制系统忽略该手的移动 ; 若五指伸 展, 则控制系统跟踪该手的移动, 并通过该手对目标的移动进行控制。 本发明中, 通过摄像头获取或跟踪人脸或双手的图像, 或者对图像进行数字处理, 并将处理结果作相应的数学运算, 此已是现有技术。 在对图像进行处理或运算过程中, 可以 采用多种数学算法来实现。
本发明所述高精度、 低精度仅仅是一个相对的概念, 与目标的实际移动量没有必 然联系, 在低精度移动控制时, 其移动范围相对较大, 在高精度控制时, 其移动距离较小, 可 以对目标的移动距离进行微调, 由此可见, 本发明所述 “高” 、 “低” 、 “大” 、 “小” 均只是一个相 对的概念, 所以, 也不存在表述不清的问题。
综上所述, 本发明的创新在于 :
1、 相对于鼠标、 遥控器或数据手套的控制方式, 本控制方法不需要用户接触、 持 有、 或穿戴控制设备 ;
2、 相对现有基于计算机视觉的手势控制方式, 本控制方法不需要用于对手进行视 觉标记 ;
3、 相对现有基于计算机视觉的使用模板匹配方法的手势控制方式, 本控制方法无 需用户记忆繁杂手势, 结合传统的基于鼠标光标的控制方法达到对电脑、 电视等设计进行 控制的目的, 易于原有设备改造 ;
4、 相对现有基于计算机视觉的控制方式, 本控制方法通过双手联合进行光标控制 的方法, 其中一只手实现目标的漂移控制, 另一只手实现精度控制, 解决了大范围目标移动 或控制操作效率低下问题。
附图说明
图 1 是本发明实施例中, 控制手势的示意图 ;
图 2 是本发明实施例中, 所述控制方法的流程简图 ;
图 3 是本发明实施例中, 所述控制方法的详细流程图。具体实施方式
下面结合附图对本发明的实施例进行详细说明 :
如图 1 所示, 一种双手互为参考的目标控制方法, 该方法包括如下步骤 :
A、 开机 ;
B、 摄像头采集图像序列, 并在摄像头采集的图像序列中搜索用户双手 ( 所述 B 步 骤包括如下步骤 : B1、 搜索人脸, 并判定是否有人脸存在 ; B2、 若有人脸存在, 在人脸附近 设立敏感区域, 在敏感区域中搜索用户双手 ; B3、 控制系统判定用户双手是否为有效手势, 若为有效手势, 控制系统进行用户控制状态 ; 若为无效手势, 则控制系统继续进行人脸搜 索);
C、 在摄像头采集的图像序列中跟踪双手的运动 ;
D、 控制系统根据双手的运动, 来控制目标的移动方向并使其与手的移动方向相 同, 且其中一只手为漂移手, 通过漂移手对目标进行大范围的移动控制, 另一只手为精确 手, 通过精确手对目标进行高精度的移动控制。
其中, 控制系统通过左手实现大范围的移动控制, 通过右手实现高精度的移动控 制。
若两只手同时移动, 则大范围的移动控制失效, 高精度的移动控制有效。
通过手指的弯曲或伸展来控制目标的选中或启用, 或者用来控制目标的向上或向 下滚动。
若用户某一只手握拳, 则控制系统忽略该手的移动 ; 若五指伸展, 则控制系统跟踪 该手的移动, 并通过该手对目标的移动进行控制。
具体而言, 本实施例所述方法及该方法所采用的算法如下 :
系统开机, 此时系统处于搜索用户状态, 即:
1、 摄像头采集用户图像, 在图像中根据人脸检测算法在图像中搜索人脸, 通过检 测图像中是否有人脸来判别是否有用户的存在。
2、 在到人脸后进行后续操作, 对每一个人脸附近设立敏感区域, 在敏感区域中搜 索用户双手, 如果用户双手存在且手势为有效手势, 系统进入用户控制状态 ; 在户控制状态 中, 系统不再进行人脸搜索, 而只跟踪定位用户双手并对手势进行判别。
3、 在用户控制状态中, 通过左手及右手来控制目标进行移动, 并通过手指动作控 制光标进行点击。
如上所述的人脸检测算法, 使用 Harr-like 特征表示人脸, 使用积分图实现特征 数值的快速计算 ; 使用 Adaboost 算法挑选出一些最能代表人脸的矩形特征的弱分类器, 按 照加权投票的方式将弱分类器构造为一个强分类器 ; 将训练得到的若干强分类器串联组成 一个级联结构的层叠分类器, 级联结构能有效地提高分类器的检测速度 ; 使用得到的分类 器对图像中人脸区域与非人脸区域进行分类, 并最终找出人脸区域, 找到人脸区域后, 记录 人脸所在矩形, 其左上角为 (xfaceK, yfaceK), 宽为 afaceK, 高为 bfaceK, 其中 K 表示检测到的第 K 个 人脸, 取正整数。
如上所述的通过人脸位置建立的敏感区域为矩形, 左上角坐标为 (xroiK, yroiK), 宽 为 aroiK, 高为 broiK, 其中 K 表示检测到的第 K 个人脸, 取正整数。在这里我们取值 :xroiK = xfaceK-afaceK
yroiK = yfaceK+bfaceK
aroiK = 3afaceK
broiK = 2.5bfaceK
在敏感区域内搜索人手的方法, 使用基于肤色分割的快速手势检测方法, 分为三 个步骤 : 首先使用肤色提取方法, 检测出敏感区域内的肤色区域 ; 其次通过先验知识初步 排除一些不可能是人手的区域。最后通过形态判断确实剩余的联通区域是否是人手, 并且 精确定位指尖位置, 获取手指动作。
所述的肤色分割方法, 是基于 YCbCr 色彩空间的高斯概率模型肤色分割方法。首 先用下面的公式将 RGB 色彩空间转换到 YCbCr 色彩空间。
在 YCbCr 色彩空间中, 采集不同环境条件下的肤色样本训练, 得到肤色概率计算 T -1 参数。通过肤色概率计算公式 p(Cb, Cr) = exp[-0.5(x-m) C (x-m)] 计算出像素点是肤色 点的概率。
肤色概率计算公式中, 均值和方差通过采集到的肤色样本统计获得, 其余参数如下: x = (Cb, Cr)T, 为 CbCr 空间中的像素点 ;
m = E{x}, 为 CbCr 空间中所有像素的均值 ;
C = E{(x-m)(x-m)T}, 为 CbCr 空间中所有像素的方差 ;
最终计算出 p(Cb, Cr) 的值, 取 0.6 为阈值, 认为概率超过 0.6 即是肤色像素点。
在肤色检测过后, 得到肤色区域的二值图像, 对二值图像进行闭操作, 填补空洞, 消除噪点。对敏感区域内的每个肤色区域做初步判别, 排除一些完全不可能为人手区域的 联通区域。判断依据如下 :
1、 根据联通区域面积判断 : 面积小于 300 像素的联通区域必然不是有效人手区
域。用户脸区域面积为 afaceKbfaceK, 那么在其对应的敏感区域内面积小于 区域必然不是有效人手区域。的联通2、 根据联通区域长宽比判断 : 如果联通区域的长与宽的比值大于 5 或小于 0.2, 那 么必然不是人手区域。
对联通区域使用 Sobel 算子进行边缘提取, 搜索边缘并计算每一个点的曲率, 曲 率在一定区域内达到极大值的点可确定为指尖点, 检测到五个手指的手为有效手。
在搜索用户状态下, 如果检测到人脸和有效手势, 那么系统进入用户控制状态, 系 统对用户双手运动进行跟踪定位识别, 通过用户双手运动对目标进行控制。
进入用户控制状态后, 仍然通过用户脸部的大小来确定跟踪区域, 因为人手运动 速度有限, 两帧之间人手位置变化不大, 所以在当前帧中上一帧双手的附近搜索用户的手, 检测和识别用户双手的方法依然使用上面的曲率检测方法, 并精确获得指尖位置。
获取人手指尖精确位置信息后, 判断手的移动, 通过这两个特征来区别手的移动
和手指的运动 : 手的整体移动会导致五指指尖整体位置都发生变化 ; 单个手指运动时, 其 他指尖位置不发生变化。
所以可以通过每一帧指尖的运动信息对手的运动进行判别 :
1、 计算两帧之间每个指尖的运动向量 ;
2、 分别计算五个手指指尖 X 轴运动向量的方差和 X 轴运动向量的标准差 ;
3、 判别其方差大小, 如果大于那么说明有一手指发生了单独运动, 取运 那么说明五指整体运动, 取五动向量最大的指尖, 即为运动的手指指尖 ; 如小于指运动向量的均值作为手掌整体运动向量。其中 D 为修正参数, 依照实际用户习惯改变, 可 以调节目标移动与点击之间的灵敏度。
根据双手的运动信息对设备进行操作, 漂移手运动映射为目标漂移运动, 精确手 运动映射为目标精确运动, 手指的动作映射为各个按键与滚轮。由于用户距离摄像头远近 不同, 所以需要使用用户人脸作为修正依据对用户手移动的距离与目标移动的距离和速度 等做修正。
精确手不动, 漂移手从握拳状态变为五指伸展状态, 记录此时漂移手位置为 (xhand0, yhand0), 漂移手移动后, 其当前位置为 (xhand1, yhand1), 则其运动向量为 (xhand1-xhand0, yhand1-yhand0), 辅以修正参数和用户设置参数后, 得到目标漂移速度向量为 :
其中, A 为用户自定义的运动速度设置, B 为根据人脸大小 afaceK 修正速度向量的修 正参数。
漂移手握拳不动, 精确手运动, 记录此当前帧精确手位置为 (xhand0, yhand0), 精确手 移动后, 下一帧位置为 (xhand1, yhand1), 则其运动向量为 (xhand1-xhand0, yhand1-yhand0), 辅以修正参 数和用户设置参数后, 得到目标位移向量为 :
其中, C 为用户自定义的运动速度设置, D 为根据人脸大小 afaceK 修正速度向量的修 正参数。以上仅为本发明的具体实施例, 并不以此限定本发明的保护范围 ; 在不违反本发 明构思的基础上所作的任何替换与改进, 均属本发明的保护范围。