谷歌Project Soli深入解析
让我们来扒一扒Google Project Soli的真面目吧
知乎专栏:https://zhuanlan.zhihu.com/p/21384539
去年的Google I/O上,谷歌神秘的ATAP部门((Advanced Technologies and Projects)曾经展示过非常酷炫的Project Soli。因为当时技术还在早期阶段,只是小范围里给60位开发者发放了开发套件,用于内部测试。在今年的I/O 2016里,谷歌除了带来Daydream, Android N等重磅更新,ATAP也低调的展示了Project Soli的最新进展。我们今天就来扒一扒Project Soli的来龙去脉,让我们深入了解这项技术的原理和应用。
Soli是什么
Soli是一项运用微型雷达监测空中手势动作的新型传感技术。这种特殊设计的雷达传感器可以追踪亚毫米精准度的高速运动,然后将雷达信号进行各种处理之后,识别成一系列通用的交互手势,方便控制各种可穿戴和微型设备。
目前谷歌设计的这些通用交互手势,是基于人们平时所熟悉的一些物理工具和动作,比如按钮,转盘和滑杆:
虽然这些动作都是虚拟,但是因为是多个手指之间的相互动作,它可以给用户很好的触觉感应和物理反馈。也因为人类有精准的小肌肉运动技能(fine motor skills),它可以让这些虚拟工具通过我们手势运动实现很高的流畅性和精准度。
谷歌相信这些有物理反馈与触感的交互方式是比平面的触摸屏或者语音识别技术更自然的控制方式,为人机界面引入了新的思维与机会。
Soli与其他手势追踪技术的区别
目前关于手掌与手指运动识别与追踪的技术,市面上已经有好种不同的解决方案:
- 微软Kinect为代表的深度感应技术(结构光和飞行时间两种)
- LeapMotion为代表的红外线投影与成像
- uSense为代表的光学立体成像技术
相比这几种常见的解决方案,采用毫米波雷达的Soli技术有以下几种优点:
- 依赖红外线的深度感应和投影技术在室外红外线干扰多的环境可靠性很差,毫米波雷达则无这方面问题。
- 基于光学立体成像的技术需要相当的计算量获取深度数据,高的分辨率较难实现,功耗不低。同时由于依赖可见光,在低光亮环境无法使用,毫米雷达波也无这方面问题。
- 同时因为毫米波雷达的频率远低于红外线和可见光,相比基于红外线的时间飞行技术,毫米波雷达可以计算相移(Phase shift)和多普勒效应(Doppler Effect),从而以很低的计算量获取物体的运动与方向。
- 毫米波雷达对于一些材料还有很好的穿透性,不受光路遮挡的影响。
因为天线技术近年来有不小提高,不到一平方厘米的面积谷歌就可以把传感器和天线阵集成到一起,这方便了该技术应用到可穿戴设备和手机上,而其他的解决方案目前还不能如此小巧:
这次I/O 2016大会上,谷歌就带来了跟LG合作的智能手表,在表带处继承了Soli技术,用于捕捉用户指尖的微小动作。这样的体积与功耗,传统手势感应技术是无法想象。
在这个demo里,展示着用手指的按键与滑动两种动作可以发送不同的指令:
在Soli项目的视频介绍里,也出现了跟智能手表相关的设计概念:
是不是很酷炫?智能手表受限于屏幕大小,如果触控操作直接在屏幕上进行的话,手指就会遮挡屏幕;如果设计物理按键或者拨盘也很难操作。而这种空中手势有望解决上面这些问题。
Soli的原理与实现
目前Soli项目公开的技术细节非常少,目前我们知道的是它可能采取了单发射,多接收的天线设计。在天线前面的障碍物会反射电波回到雷达天线,而反射信号的能量,延时以及多普勒效应则对应了物体的各项特征,包括物体的大小,形状,材料,距离以及速度。
谷歌在介绍Soli的时候专门强调Soli不像传统的雷达传感器,并没有需要很大的带宽和空间解析度。事实上Soli的解析度比手指可以实现的精细动作更低,所以对手指运动的捕捉需要分析反射信号在时间上的动态变化,这也对手势识别的算法提了更高要求。
从原始的雷达信号到最终的手势控制需要经历下面几步:
- 捕捉原始反射信号
- 将接收的时序信号处理和转换到Range Doppler Map
- 特征提取,识别,定位与追踪
- 从提取的特征实现手势识别
Soli SDK为第三方开发者提供了上面每一步的程序接口,同时兼容不同类型的雷达,支持从每秒100到10000的采样帧数。
Soli的雷达采用了调频连续波Frequency Modulated Continuous Wave (FMCW)的调制格式。这项技术目前已经用在汽车自动巡航等应用,可以同时实现对物体距离和速度的感应。下面我们结合NVDIA最近发表的一篇论文Short-range FMCW monopulse radar for hand-gesture sensing 来解释下这项技术的原理:
FMCW这种格式是由周期性锯齿波函数调制。雷达发射的信号从物体反射回后产生了时间与频率上差异。其中时间的延时τ是电波往返的时间,频率上的变化fd则是物体运动导致的多普勒效应。
我们把接收到的信号跟原信号相乘,然后在模拟信号领域进行低通过滤,这样就可以产生明显的beat信号。然后把二维的时序信号各自做FFT转换,减去静止不变的背景环境,就可以获得所需的Range Doppler Map (RDM):
RDM的每一格都对应着目标的目前的距离和运动速度。因为不同的物体可以在不同距离或者在相似的距离但是各自有不同的速度,RDM便实现了同时追踪多个物体的效果。比如下图是一个正在移动的手掌,每一个绿框可以是被识别出来的手指。
如果我们有多个接收天线,通过比较每个天线之间RDM的相位差,我们可以计算出每个物体的到达角度(Angle of Arrival),配合上之前算出的距离,这样就实现了对物体的空间定位。如果跟传统的深度感应器进行校准之后,则可以获得三维深度图。
我们可以把四维的矢量信号(三维空间位置加上径向速度)映射到一个手掌模型上,导入后端的手势学习模型中进行识别。
这是五个不同用户进行四种手势产生的RDM,可以明显看出手势之间的差异是明显的,而不同用户在进行同一手势时是有很多相似点的。
所以FMCW这种格式相比其他雷达有以下这些优点:
- 同时计算速度与距离,距离信息准确度高
- Beat频率不高,对应采样率也低,降低了模拟电路与数字信号处理的难度,整个算法可以嵌入在低功耗芯片上实现
- 最短测量距离跟信号波长相关,所以物体可以离天线非常近,甚至可以贴到天线上
由此可见,Soli采用的这种FMCW技术是它实现微型化雷达和极低功耗的基础。谷歌网站上展示的2014年的早期产品原型还是一个巨大的机盒,然后仅仅一年多之后就把系统缩小到了不到一平方厘米的面积,其中包含了多种天线和感应器。
谷歌对Soli的目标是制造出成本低廉,可以大规模量产并且功耗极低的微信雷达芯片,期望可以集成到最小的移动设备里面。通过这两年的发展可以说谷歌离这个目标已经非常近了。
Soli的应用
下面整理了一些过去一年早期开发者在使用dev kit进行的各种有趣的应用:
因为毫米波雷达对部分材质有一定的穿透作用,反射信号也有一些差别,有开发者据此设计出材质探测器,不仅可以塑料和多种金属,还能识别水跟牛奶。
车内手势是一项有意思的应用,相比可见光和红外光的技术,Soli可以完美解决不同光照环境下传统技术不稳定的问题,而且雷达对捕捉细微运动有很强的优势。
在Soli的帮助下我们对手机触屏的交互又多了新的一个维度,Hover在屏幕上的手指现在也可以精确的捕捉和预测了。
既然Soli可以扫描和计算出深度图,为何不拿来做成3D扫描与成像的应用?
这个应用很酷炫,手指空中划出3D密码,抽屉自动开启!
利用Soli对手势的捕捉设计出一套乐器如何?
一个类似的项目号称用Soli设计了全世界最小的小提琴! 精确捕捉手指的每一点动作然后映射到音符上。
总结
从2014年项目开始,到去年I/O上发布的初期原型到今年I/O带来的各种创意应用,这两年Soli进展很快。谷歌宣称相比去年的版本,目前芯片面积缩小了70%,功耗下降了22倍,从本来就不高的1.2瓦进一步下降到了0.054瓦,算法也得到了256倍的效率提升。
据媒体报道,谷歌年底或者明年会有全新的dev kit提供给更多开发者,相信在不远的未来我们将会看到采用Soli技术的智能手表,VR/AR设备以及智能家电出现在市场中。另外一个巨大的市场就是可穿戴设备,事实上ATAP的另外一个神奇项目Project Jacquard正在跟Levi牛仔合作一种可触摸布料,用于制造智能外套。Soli采用的雷达技术正好可以穿透许多传统的纺织材料,很可能成为来为智能服装标配的交互途径。Soli这种新颖的雷达技术以后也可以跟其他射频与传感技术进行融合,或许可以创造出更多意想不到的应用。
关于作者
陈哲,现谷歌眼镜部门高级软件工程师,关注智能传感,VR/AR,可穿戴设备等领域。曾任加拿大黑莓软件工程师,从事无线通信和传感器软件方面的设计与开发。加拿大McGill大学电子工程专业荣誉学士,滑铁卢大学电子工程硕士。