为了探索自然的人机交互方式,市面上出现了各种各样无需手柄、键鼠的方案,比如手势、注视点、脑机接口等等。一些AR/VR头显也在探索用眼球输入的方式,其原理是利用眼球控制虚拟光标,来选择屏幕上的字母。不过,眼球追踪对于检测角度、距离的要求比较高,而且光线暗的环境下运行效果不准确。尽管目前这些生物信号输入的效率比不过键盘鼠标,但人们依然希望有朝一日动动脑、眨眨眼就能打字聊天。
近期,一位叫EverythingIsHacked的博主设计了另一种有趣的人机交互方式,该方案名为CheekyKeys,功能是通过做鬼脸来输入文字,甚至可以用来敲代码。与脑机接口方案相比,做鬼脸打字成本更低,只需要利用移动设备的面部识别/追踪功能。而与手势识别方案相比,该方案可以解放双手,允许你一边用脸打字一边操作其他任务。
虽然听起来有点奇葩,但该方案的一些细节足够有创意,也许能为现有的人机接口技术带来启发。
研发背景
据了解,这位开发者实际上也是一名新晋奶爸,他有一天带孩子的时候发现,自己没办法一边哄孩子睡觉一边工作,因为抱孩子要用上双手,这样就没办法在电脑上编程了。作为一名程序员,他决定利用科技的手段解决这一问题。
起初,他尝试语音转文字,这个方法简单直接,但是在孩子睡觉的时候,没办法大声说话。于是,便开始尝试面部追踪的方式,将眨眼动作与字母建立联系,从而实现打字的目的。常规的键盘有很多按键,而眨眼动作却没有足够多的变化,因此他决定用摩斯电码来代表26个字母,如此一来便可以根据眨眼次数和时长来组合字母,实现文字输入。
我们知道,摩斯电码是一种早期的数字化通信形式,其特点是只使用0(点)和1(横)两种状态的二进制代码,通过不同的排列顺序可以组合成不同的英文字母、数字甚至标点符号。摩斯电码比起其他通信方式更加简单、隐秘,因此你们可能会在一些谍战、侦探、解谜影片中,看到有人用声音、光线来编辑摩斯电码。
为了将摩斯电码与字母匹配,EverythingIsHacked开发者为26个字母分别开发了巧妙的助记符,并训练算法学习字母、助记符、摩斯电码之间的关系。
不过他发现,这种方式虽然简单,但长时间眨眼的体验感不好。于是,决定利用嘴唇开合来代替眨眼。并且,还用上全脸动作来触发其他案件,比如通过闭眼来触发Shift或Command键,通过抬眉毛、噘嘴来移动鼠标/光标,用瞪眼、眯眼来控制放大和缩小。
特色与优势
这项设计的初衷是,希望在你不方便说语音或是用手打字时,可以直接做鬼脸来输入文字。这是一个基于摄像头的人机交互界面,它为多任务同时操作带来可能。比如可以一边哄婴儿睡觉,一边用表情在电脑上打字,或是在开车时用表情操控车上的信息娱乐系统。而对于双手能力不便的人来讲,CheekyKeys也是一种有价值的辅助工具。
利用摄像头新来来输入、操控界面的技术已经存在,史蒂芬金就利用眼球追踪技术来输入信息、控制屏幕上的光标。然而,利用眼球追踪来逐字输入非常耗时。开发者发现,如果将计算机视觉识别到的面部表情与摩斯电码结合,打字的速度可能会超过眼球输入。
另外与眼球输入相比,CheekyKeys的效率可以更高、成本更低,不仅支持26个字母输入,也可以通过特定的面部表情来输入Ctrl、Shift、空格等按键。原理是计算面部特定节点之间的相对距离,当距离到达一定阈值,便会触发对应的按键。空格键可以通过快速噘嘴来触发。
细节方面,训练CheekyKeys算法采用了计算机视觉库OpenCV,以及面部追踪工具包Dlib。为了提升面部追踪的准确性,开发者采用了谷歌的开源模型MediaPipe,比Dlib更细节、精准。MediaPipe可识别近500个3D面部节点,可更准确识别眉毛和嘴部的细微动作,触发上下左右功能。
有趣的是,为了验证CheekyKeys的效果,EverythingIsHacked尝试用表情来输入代码,测试自己能否完成求职面试的编程测试。经过二十多分钟挤眉弄眼,他完成了简单的一段代码,尽管面试结果不理想,但经验证他编写的代码可以跑通(笑哭)。
总之,尽管CheekyKeys更像是一个无厘头的小发明,但也许可以为未来的人机交互带来启发,当AR/VR头显开始支持高效的全脸面部识别,AR/VR社交将迎来更丰富的交互方式,比如做表情来打字,或是触发预设的对话文字等等。参考: