专业知识分享其他

论文|通过基于前置摄像头的立体视觉,设计一款智能手机的全手交互

2021-11-1333 MIN READ原载于微信公众号 ↗

橙色泡泡橙色泡泡朝菌学园ZhaoDesign

Nov 13, 2021, 8:06 AM

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

图a 放置在前摄像头上的直角棱镜    图b 触摸屏上方可以覆盖的空间。

我们推出了“HandSee”,这是一种新颖的传感技术,可以捕捉到用户触摸或紧握智能手机时的状态和运动。我们在前摄像头上放置了一个直角棱镜,以实现触摸屏表面上方场景的立体视觉。

我们开发了一个途径从一个单眼RGB图像提取手的深度图像,该单眼RGB图像由三部分组成:一个立体匹配来估计场景的像素深度的算法,一种基于CNN的手部皮肤在线标定算法,和输出手的深度图像的合并算法。在输出的基础上,可以同时识别交互信息中大量有价值的信息,如手指的3D位置、握紧姿势和手指的身份。

由于这种独特的传感能力,HandSee实现了多种新颖的交互技术,并扩展了智能手机上全手交互的设计空间。

CCS的概念以人为中心的计算→智能手机;触摸屏;手势输入

关键词智能手机的交互; 全手感应; 前置摄像头; 立体视觉; 触摸的手; 引人注意的手指

01

介绍如今,智能手机的交互功能很大程度上是通过触摸屏的电容表面实现的。许多作品探索了克服这一局限性的方法,从增强触摸的表现力(如手指识别[19]和姿势[21,55]),到利用握把姿势作为交互上下文(如界面移动[8,33]),以及将输入空间扩展到触摸屏表面之外第1页(例如,在背面[10,54]或侧面[6,8,9]或设备周围[7,22,24])。然而,这些作品大多侧重于交互设计。它们要么使用专用传感系统(如Optitrack),要么为智能手机或用户的手部配备额外的硬件传感器,以提供特定且有限的功能。

在本文中,我们介绍了HandSee,这是一种紧凑的传感技术,可以捕获手和手指与智能手机交互的丰富信息。我们通过在前摄像头上安装斜边涂层的直角棱镜来调整其用途,并引导其沿屏幕表面向下观看。如图1所示,视野(FOV)覆盖夹持手指和整个触摸手。棱镜提供两条光路,通过这两条光路,前摄像头可以向外观看。这将创建两个虚拟摄像机,形成立体视觉系统,如图1.a所示。立体视觉增加了深度信息,可以进一步增强感知能力。

为了获取手部深度图像,我们开发了一系列计算机视觉算法, 该算法由四个部分组成: 在线阈值校准的有效皮肤分割,重建触摸屏上场景深度图像的立体匹配,以及获得手部深度图像的合并算法。在此基础上,可导出一组有价值的交互信息,如手指的三维位置、握持姿势、手指身份等,从而实现智能手机上广泛的手/手指交互技术。

HandSee扩展了智能手机上全手交互的空间,这延续了将用户意图解释为2D电容屏幕信号之外的想法[24]。我们 将交互空间重新划分为三个子空间:仅触摸手、仅握紧手和手对手交互。我们提出了一些新颖的交互技术来填补这个空白,并展示了HandSee的强大功能。我们的用户研究表明,这些技术深受用户欢迎。它们易于学习、使用方便且有趣。

01. 一种新颖的传感方案,可以同时捕捉智能手机上触摸的手和紧握的手指。我们通过在前置摄像头的顶部放置一个棱镜来实现立体视觉。

02. 实时管道验证我们的设置的计算可行性,并计算用户的手的深度图,基于此,我们可以得到有价值的交互信息。

03. 拓展了智能手机全手交互的设计空间,以及一些新颖的交互技术。

在本文的剩余部分,我们首先回顾了手/手指交互和传感方面的文献。然后我们描述了HandSee的硬件设计,然后是我们的算法通道。我们继续概述设计空间,并根据初步用户研究的反馈描述新的交互技术。最后,我们讨论了本研究的实用性、局限性和未来工作的方向。

02

相关工作

在本节中,我们首先回顾关于在智能手机上增强手/手指交互的文献。同时,讨论了这些工作中的传感解决方案。然后,我们简要介绍了一般的手/手指传感技术,重点是基于摄像头的技术。

#加强智能手机上的手/手指交互扩大手指触摸屏幕的表现力。增加触摸表现力的一个简单方法就是利用触摸手指的状态。TapSense[21]通过分析敲击产生的声音来识别人类手指敲击屏幕的不同部分(如指尖、脚垫、指甲和指关节)。Xiao等人[55]描述了一种基于原始电容传感器数据估计手指相对于触摸屏表面的俯仰和偏转的方法。DualKey[19]用运动传感器测量食指。它可以让不同的手指在一个微型模糊软件键盘(如智能手表)上选择字母。

此外,还有一些作品探索了利用上述屏幕空间来改善交互性。Air+Touch[7]描述了交织屏幕触摸和空中手势的概念,以增加触摸的表现力。作者建立了一个带有深度摄像机的原型系统。[22]提出了一个类似的想法,专门针对单手交互的拇指输入。Pre-touch[24]研究了通过增加电容触摸屏的传感范围来利用接近手指的状态的潜力。SegTouch[52]用触摸板测量食指,并允许用户在它上执行拇指滑动,以避免各种触摸目的。超越触屏的交互。研究人员已经探索将智能手机的交互功能扩展到触摸屏之外。其中一些工作可以在设备的侧面或背面进行输入。[35]使用内置的运动传感器检测手指在智能手机侧面的轻拍。BackXPress[10]在设备背面放置压敏层,允许在背面施加压力输入,以增加与前面剩余手指的交互。后视镜利用镜子将背面反射到手机的后置摄像头,并根据背面的视觉模式识别手势。

其他人则围绕这款设备探索3D空间。HoverFlow[28]使用红外接近传感器来跟踪设备的接近程度。它可以感知基于动作的低级手势,也可以感知基于位置的静态手势。SideSight[4]在小设备侧面嵌入红外(IR)接近传感器,支持设备周围空间的单点和多点触摸手势。WatchSense[49]支持在皮肤上和皮肤上的手指输入,在移动中进行交互。作者设想在可穿戴设备中嵌入深度传感器,以扩大输入空间。Song等人的[48]演示了计算机视觉算法如何使面向后的RGB相机识别空中手势,以及一系列示例应用程序。

Surround-See[57]展示了一个与我们的类似的原型。它在前置摄像头上放置了一个全视觉镜头,并为智能手机提供外围视觉。作者演示了基于感知环境和感兴趣的物体的能力的各种应用程序。这包括在空中检测和识别周围的手势。相比之下,我们的工作重点是用户的手握和触摸智能手机。

抓地力感知和抓地力感知交互。用户手持智能手机的握持姿势(即双拇指、单拇指和单食指)会根据设备大小的形状因素和交互情况[12]而变化。与此同时,握持姿势是智能手机上触摸交互的重要背景。它显著影响用户的输入能力,如舒适交互的范围,触摸的准确性等[30]。

为此目的,我们提出了一些方法来感知握持姿势。这些作品要么使用设备内置传感器,如基于触摸的跟踪[34],设备内置运动传感器(41、42)或运动传感器利用手[33]或者两者的结合(15日,18日45),或者通过使用额外的电容式传感器连接的设备(6、8、9)。其基本原理是,不同的握持姿势会导致相应的握持或触摸行为,这些传感器都可以捕捉到。通过利用SVM等分类算法,可以检测到多达5种不同的握拍姿势。在目前的研究中,根据任务的不同,检测精度在85%-99%之间。

研究人员试图将握持姿势作为情境信息,以加强与智能手机的互动。手柄感知应用包括改进软件键盘解码算法[14]、自动界面定位[8]、接口移位[33]、端点预测[41]、自动触发应用[6]、布局切换和连续定位[9]。

#手/手指跟踪的一般用途

准确的手/手指跟踪对人机交互具有重要意义。我们研究了多种跟踪技术,如使用电容 传感器[31]、 红外信号[20]、 超声波[40]、 毫米波雷达(即Soli[32])、 单目RGB相机[38] 或 深度相机[46] 或两者的组合。虽然有些技术只能检测运动(例如Soli和超声波),但其他技术可以同时捕捉运动和静态姿势。

在这些技术中,基于摄像头的技术显示了提供完整场景信息的最大潜力。在文献中,有大量的工作是在设备[7,49]、在人体[5,27,36]和在环境[46]中部署摄像机来跟踪手。在商业上,基于立体摄像头的LeapMotion技术在桌面和VR应用中得到了广泛的关注。然而,还没有人尝试使用智能手机上的摄像头来捕捉用户在与智能手机互动时的手的详细信息。我们认为,由于目前智能手机设计的广泛使用,这将有很大的实际应用潜力。

手部跟踪也是计算机视觉研究中的一个重要而热门的课题。研究了基于模型和基于机器学习的方法。基于模型的方法依赖于传统的模型优化和匹配算法,需要融合广泛的领域知识,如 手部运动模型[51,56]、 预测时空特征以跟踪[47]、 手部骨骼匹配[11]。相反,基于机器学习的方法不需要研究人员否认一个模型,但需要数据,他们从这些数据隐式地学习所需的功能。机器学习方法的局限性在于缺乏高质量的标记数据。最近,研究人员试图将这两种方法结合起来。例如,GANeratedhands[37]使用CNN将手从嘈杂的背景中分割出来,然后应用基于模型的优化来估计手的姿态。

与这些试图从任意角度捕捉任意姿势的手的作品相比,我们的问题空间要有限得多,因为我们在与智能手机交互时关注手的姿势。减少的问题空间可以获得更好的结果。我们使用这些以前的研究工作作为一个强有力的平台,作为手部跟踪技术可行性的证明。

03

光学设计

在本节中,我们将介绍HandSee的光学模型,该模型解释了如何通过放置在前摄像头上的直角棱镜来实现触摸屏上方场景的立体视觉。

直角棱镜的斜边上有一层反射膜。它将触摸屏上方的空间镜像到相机中。为确保可以捕捉手,摄像机的视野(FoV)不应太小。例如,我们计算出6英寸智能手机的温度至少为72度(横向)x35度(纵向)。该计算基于以下假设:抓取手通常位于屏幕底部10cm范围内。因此,只要用户以正常方式握持手机,无论握持位置如何,都可以准确检测握持姿势。对于那些没有这么宽的摄像头的人,可能会缺少一些紧握的手指,但通常可以看到触摸的手。

#基于立体视觉的前置摄像机

在一个典型的立体视觉系统中,有两个摄像机注视着同一个场景。HandSee通过两个虚拟摄像头实现了这一点。如图3所示,单个物体有两条进入手机摄像头的光路,这两条光路投射到像面上的不同位置。这相当于创建了两个虚拟摄像机。VirtualCamera 1略高于触摸屏,这是棱镜镜面斜边(绿线)一次反射的结果。Virtual Camera 2是由光线被两次反射(蓝线)产生的,第一次反射发生在触摸屏或水平棱镜腿上。这两个虚拟摄像机平行地沿屏幕表面观看,形成了一个立体视觉系统。

用一台相机提供立体视觉的想法并不新鲜。研究人员利用棱镜或镜子探索了不同的方法[13,16,25,58]。然而,在以前的解决方案中,一个棱镜被等效地用作一个镜子——两个飞进相机的光路分别被两个镜子(或棱镜)反射,或者一个路径直接飞进相机,另一个路径被一个镜子(或棱镜)反射。相比之下,我们的方法使用一个棱镜将两条光路反射到相机中。在水平棱镜腿内侧发生的“全内反射”提供了高质量的图像,这对立体估计具有重要意义。此外,据我们所知,我们是第一个将这种方法应用于智能手机的公司。特别是我们成功地“旋转”了前置摄像头的屏幕平行视图,并同时提供了立体视觉与单一的棱镜镜子。

#两个虚拟摄像机的区别

两个虚拟相机的图像质量不相等。对于进入Virtual Camera 1(绿线)的光线,全反射发生在棱镜的斜边上。结果的图像是高质量的,就像直接捕捉相机。

对于Virtual Camera2,情况更为复杂。第一次反射可以发生在触摸屏的玻璃表面或棱镜腿上。对于前者,棱镜玻璃的折射率高于空气的折射率。这就导致了“完全内部反射”发生在棱镜腿的内侧——光线不能通过而被完全反射。因此,这部分产生与VirtualCamera 1中的图像具有相同亮度和清晰度的高质量图像。

相反,在触摸屏上反射的光由于部分反射而衰减。这导致在捕获的图像中出现一个相对较暗的波段,如图4所示。通过调整棱镜在相机上方的位置,我们可以最小化暗带的高度。在本文的后面,我们将描述如何在进行立体估计之前用亮度补偿函数去除黑暗。

04

Handsee的算法

作为一种传感技术,HandSee有两种输出:手的深度图像和指尖识别结果。在此基础上,可以进一步开发手势分类和全手交互技术等应用。

图5给出了手的深度图像的生成流程。给定一个单目RGB图像,该管道首先将其预处理为两个整流立体图像。然后采用基于颜色的分割方法,得到包含手和手指的皮肤蒙版。同时进行立体估计,计算出图像中每个像素的深度图。

接下来,将肤色蒙版和深度图相结合,生成输入图像中用户手和手指区域的鲁棒分割。需要注意的是,本文提出的管道主要目的是验证采用所提出的传感方案进行在线全手传感的可行性。如果要在智能手机上进行实际应用,这些算法可能需要改进或优化。

#预处理由于手机表面的反射不像镜面表面那样清晰,我们可以看到两种视角的图像在亮度水平上存在显著差异。为了提高立体估计的精度,我们开发了一种简单的图像颜色校正程序。我们假设像素颜色方程可以近似为Output= Input←R + L[2]。这里R是反射系数,只取决于手机表面的物理性质,L是手机表面的发光。由于我们的相机非常接近手机表面,在正常光照条件下,L项接近于零。

使用在白色背景下采集的图像,我们使用最小二乘估计方法来拟合每个像素的参数R。我们用它来删除每一帧的暗区域。图6是去除较暗区域的结果。#场景立体估计我们首先使用棋盘和OpenCV API[3]来估计前摄像头的焦距、光学中心、畸变系数以及双目视觉系统中两个摄像头之间的旋转和平移关系。

我们选择了一种高效的、基于GPU的半全局匹配算法[23]作为我们的立体匹配算法,因为它具有较高的计算速度和令人满意的精度。该算法使用我们的双目视觉系统输出每个像素的估计深度。

对于我们的系统,深度误差的理论估计为D2/800(cm)[50],其中D(cm)是实际深度,这意味着对于5-10cm的深度,误差为0.3-1.25毫米。请注意,假设校准和立体匹配完美完成,此估计仅表示深度误差的下限。#基于在线标定的皮肤检测立体估计并不完美。 例如,背景可能会错误地生成手部内部或附近的3D点。利用肤色对这些噪声进行滤波可以提高结果的稳健性。挑战在于,在限制色相和饱和度范围以尽可能地消除背景区域的同时,要考虑到不同的光照条件。虽然皮肤检测一直得到广泛的研究,但现有的解决方案([43]综述基于颜色的像素分类)不满足我们的要求由于他们关注召回所有可能的人类皮肤颜色比我们需要一次只为一个用户。此外,我们的皮肤检测模块对实时交互要求很高的计算效率。

基于上述考虑,我们设计我们的皮肤检测模块和两个组件 图7所示: 一个简单的上下色相和饱和度阈值应用到图像部分皮肤区域,而另一个动态校准这些上下阈值每隔几帧。特别是我们使用了FSD[43]和HGR[17,26,39]数据集训练卷积神经网络[1]识别皮肤像素作为语义分割任务。

#基于肤色区域和深度估计的手部深度图像提取我们的皮肤分割算法的重点是在分割中达到最大的精度,即最小化背景区域。然后,为了最大限度地提高召回率,我们将肤色蒙版与深度估计图相结合,生成一个强健的手部和手指区域分割蒙版。首先,我们通过去除深度值低于经验获得的阈值T(在我们的实验中设置为22)的区域来对皮肤颜色遮罩进行阈值。这将删除所有与用户皮肤颜色相似的背景区域。

然后我们使用这个结果作为深度估计输出的掩码。剩下的是用户的手和手指的深度值。使用以这些深度值均值为中心的高斯分布,我们丢弃深度值为1(经验获得的)的像素,这些像素离均值的标准差在两边。这为我们的手和手指区域提供了一个基于深度的蒙版,排除了手区域中的一些高频噪声像素。

最终结果是基于深度的掩码和皮肤颜色-最小深度阈值掩码的“按位或”操作。我们可以安全地使用“按位或”,因为我们的结果都使用了严格的边界来排除感兴趣的区域之外的区域。对许多测试案例的定性分析表明,我们的设计为图像的手和手指区域产生了一个近乎完美的遮罩。

#指尖识别我们的指尖识别算法受到[7]的指尖检测部分的启发,并通过结合更多的几何特征,如[29]和[44]中描述的形状、凸包、矩和全局极大值特征来改进。相比于直接利用手点与手心的距离来寻找指尖的[7]方法,我们首先求出图像中所有连通区域,然后利用这些额外的特征来寻找候选指尖区域。

具体来说,对于每个候选区域,我们计算区域质心以及与每个轮廓点的区域质心的三维距离。然后,我们将所有距离最大值作为指尖候选点,并利用指尖作为一个部分的轮廓上的角度限制过滤掉假候选点,以得到精确的结果。结合特征匹配可提高检测指尖的召回率,同时空间模式限制和轮廓角度限制可消除误报,提高精确度。简单特征和层次特征匹配的使用也确保了算法在计算结果时的效率。#评估我们将所有不同的管道子部件放在一起,计算我们的算法可以处理的帧每秒(FPS)。该设置是在服务器上测试的,带有1个 GTX1080 Ti NVIDIA GPU和12GB 内存和1个 Intel i7-7700k CPU,不考虑网络延迟。我们管道的所有部分的FPS是30,具体来说,预处理13ms, SGM-GPU 10ms,皮肤检测和手部深度图像4ms,指尖识别0.4ms,其他2.6ms。

为了验证我们的设置的计算可行性,我们的数据收集包括10个用户(5个男性和5个女性)x18。

用10个不同的手指和8个握紧姿势完成任务)x4种不同的照明场景(室外日光、室内自然光线、明亮的聚焦灯光、昏暗的环境灯光)x 2250帧(每个子任务90秒)。我们跟着分析交叉验证的方法来训练和测试分类模型,结果如下:指尖位置的准确性为 98.0%,手指识别的准确性为 98.0% 3类(左/ right-thumbs等),和 89.7% 5类(左/ right-thumbs、左/ rightindex等); 检测抓握手的准确率为 96.7%;桌面上的触摸感应范围在手机底部以下20厘米处。基于输出,可以同时识别大量有价值的交互信息。

05

设计空间&应用案例

HandSee在增加触摸输入时提供了三个独特的好处。 首先,它涵盖了一个重要的交互空间,包括触屏上方的空间。 第二,它可以同时感觉到触摸的手和紧握的手指。 第三,输出手和手指在三维空间中的位置。这些好处拓展了智能手机上新颖交互技术的设计空间。为了更好地理解其潜力,我们将设计空间划分为三个子空间:仅触手、仅握手和手-手交互。其中,手拉手交互子空间是新颖的,而其他应用并不新鲜。我们将讨论每个子空间的特性和好处,并提供示例应用程序。我们在这一节的目的不是列举所有这些,而是说明设计的可能性并探索其潜力。

#只接触手HandSee跟踪触摸手的全面状态,包括操作手指的3D位置、手指身份和手指姿势。交互技术不仅可以利用它们提高输入的表现力,还可以允许应用程序从触摸屏表面注册输入。

手指识别和姿势。之前的工作已经探索了手指佩戴传感器用于手指识别[55]或基于触摸屏[19]的电容信号估计手指姿势。HandSee以一种非侵入性的方式同时支持这两种功能。我们已经设计了一个结合了这两个元素的示例应用程序:一个绘画工具(图8.a)。用户可以用不同的手指选择不同的工具(如钢笔、橡皮擦等),并通过调整手指与触屏的角度来设置画笔的大小。这大大减少了选择工具和参数所需的时间。

扩展触摸到桌面表面和半空中。触摸屏有很多限制,比如尺寸有限,在交互过程中目标遮挡[53],对湿手无反应等等。当手机放在桌上时,HandSee允许用户触摸手机底部的桌面输入(图8.b)。用户可以在这个额外的表面上执行点击、移动和多种手势(例如缩放和旋转)。同样,交互也可以扩展到3D,提供与3D对象更直观的交互。图8.c显示了一个演示应用程序:弹弓游戏。在游戏中,用户拉动弹弓,利用3D空间来调整释放子弹的方向和强度。这创造了一个更舒适、沉浸式和愉快的体验。#只有紧握的手

抓握姿势(即哪只手拿着手机)是智能手机上一个重要的互动环境。之前的研究已经研究了各种感知技术来检测它(详见第2节)。相比之下,HandSee不仅可以识别握持姿势,还可以跟踪握持手指在智能手机周围的位置。这种能力进一步支持新的输入技术。作为背景的握紧姿势。现代智能手机的屏幕尺寸通常不适合单手使用。一种解决方案是检测使用哪只手,并调整UI布局,使所需的小部件更容易获得,如图9.c所示。另一个可能是,我们可以避免抓握姿势的捷径。例如,“拍照”时的抓握姿势(图9.c:手机一边的两个拇指,另一边的其他手指)可以自动启动相机。这可以将在智能手机上寻找相机应用程序的繁琐和耗时过程减少到1秒。虽然这两个概念并不新鲜,但我们认为它们具有代表性,很好地反映了HandSee的适用性。

基于抓握手指的手势输入。当用户用一只手握住手机时,她紧握的手指仍然有移动的空间和灵活性,例如,她可以将食指从屏幕边缘移开。这为抓握基于手指的手势创造了可能性,这是一个以前从未被探索过的输入空间。HandSee非常适合这种方法,因为它能够感知抓握手指的运动。为了证明这一优势,我们提出了一种新技术,允许用户通过伸展食指在手指触摸和光标控制之间切换。通过该功能,用户可以容易地切换到光标模式并获取拇指够不到的对象,如图9.a所示。

#手与手的互动

HandSee的一个重要特性是它可以同时跟踪触摸的手和抓握的手指。这为智能手机上的手与手互动提供了机会。例如,一只手可以触摸另一只手来执行输入。除了增加表现力,这种方法还可以通过利用双手之间的本体感觉来减少视觉注意力的参与。因此,输入可以更容易、更快。手指条和手指按钮。与手机互动的典型姿势是一只手拿着手机,另一只手进行触摸。在这种情况下,握紧的手可以作为一个触摸界面。为了说明这个概念,我们提出了两种技术。手指条(图10.b)允许用户在紧握的拇指上滑动手指,为一维滑块提供输入(例如控制音量)。手指按钮允许用户点击紧握的手指作为屏幕上按钮的增强(图10.a)。这两种技术都减少了所需的操作步骤,并扩大了可用输入的范围,从而提高了交互效率。

拇指对拇指姿态。另一种典型的手机交互姿势是双手操作:双手握着手机,进行触摸输入。对于这种情况,我们建议使用拇指对拇指手势,作为一种易于执行和快速的模式切换或触发第二个视图的操作。图10.c展示了一个增强打字体验的示例用法。当在浏览器中填充搜索查询时,用户可能想要参考上一个屏幕以获取电话号码或地址。目前,用户必须切换回以前的应用程序,尝试记住字符串并返回到输入。通过拇指对拇指的手势,一旦检测到两个拇指的接触,系统就可以把前一个屏幕放在浏览器的上方,这样用户就可以方便地查看内容。然后,他/她可以释放两个拇指输入文本。这为在智能手机上切换模式提供了一种非常快捷和轻量级的方式。

06

Handsee 的原型&应用实例

我们将HandSee的原型安装在 LG V20智能手机上(CPU:四核2.2 GHz,RAM:4GB),运行Android操作系统。手机的左上角有一个前置摄像头,视场为100 x 80度。我们使用的棱镜尺寸为12mm x 10mm x 10mm。我们3D打印了一个外壳在智能手机上的棱镜。外壳和棱柱的总重量是15克。图1(a)显示了我们的原型的俯视图,图1 (c)显示了用户与我们的原型交互时拍摄的图像。

目前,我们在运行 Linux操作系统的PC服务器(1gtx 1080 TiNVIDIA GPU, 11GB内存) 上实现HandSee的算法。在智能手机上,我们开发了一个Android程序作为后台服务运行。它从前置摄像头收集视频,并通过WiFi实时发送到服务器。服务器处理图像并将识别结果发送回来,我们的定制应用程序将进一步使用这些结果来演示我们的交互技术。为了保证实时性能,我们将图像缩小到640x480。我们测试从手机上发送图像到接收结果的往返延迟为80毫秒(包括网络的50毫秒延迟)。

我们根据手和指尖的三维位置的深度图像,制作了第6节中描述的九种交互技术的原型。目的是演示每种技术的用户体验。我们首先训练了一个CNN模型来 识别8种姿势:左手/右手抓握、一只手抓握和另一只手触摸(2)、双手抓握、拇指对拇指触摸、单手抓握(例如拿起电话)和相机抓握姿势。我们测量的识别准确率为96.7%。基于姿态结果,我们为每个应用独立开发了特定的识别/跟踪算法。对于自动UI、相机和拇指对拇指,我们直接使用姿势结果。对于绘画工具,识别手指使用(食指与中指)的准确率超过98%。对于桌面触摸和弹弓游戏,我们直接读取指尖的3D位置。对于手指按钮和手指条,我们使用手指定位并检测触摸手指和夹持手指的接触。对于光标模式,我们分析了食指(离相机最近的食指)的运动。

07

非正式学习

这项研究的目的是获得用户对HandSee实现的交互技术的主观感受。我们从当地校园招募了12名参与者(5名女性),年龄在20-28岁之间。所有参与者每天都使用一部触摸屏智能手机,并且已经拥有一部手机超过4年。

我们测试了九种示例交互技术。在实验之前,我们介绍了HandSee的工作原理。然后我们逐一测试了这些技术。对于每种技术,我们首先演示了我们的交互技术。之后,一名参与者被允许自由使用我们的技术。我们最终在每种技巧之后采访了他/她,征求他们的意见。

此外,参与者被要求使用7分利克特量表对四种说法表示同意。它们是:**#1 输入方便****#2 这种互动很容易学习****#3 这项技术使用起来很有趣****#4 我想把它挂在手机上**

#结果

图11示出了用户关于这四个语句的主观反馈。 结果表明,所有九种技术都受到了参与者的欢迎。 它们使用方便(分数=6.0),易学(分数=6.3),使用有趣(分数=6.2),并且是用户想要的(分数=6.0)。这些结果也表明了现代智能手机的交互改进空间。用户的评论也验证了我们的交互技术的设计,并指出其他应用程序和场景可以从HandSee受益。我们有选择地报道其中一些。

触摸交互。用户喜欢用不同的手指选择不同的工具,因为这样可以避免重复的选择操作。一位用户建议使用乐器应用程序(比如吉他):他可以用不同的手指弹奏不同的和弦。此外,有人建议桌面可以用来玩双人游戏或在虚拟键盘上打字。用户喜欢在半空中操纵游戏物体,就像一名用户评论的那样,“这感觉真的很自然,弹弓游戏就应该是这样玩的。”一些用户希望用空中手势来玩增强现实游戏,并认为这会比以前更具有沉浸感。!Image图11:用户的主观反馈  1=强烈反对,7=强烈同意

握持的手的交互。切换握持手后,UI布局会自动调整,普通按钮出现在伸手可及的位置,让用户感觉非常方便。用户认为“它让我摸到一个舒服的位置,帮助我更稳定地拿着手机。”他们也很欣赏“这并不需要我的主动干预,他们是有预测性的!”此外,用户觉得移动握手机的手指很舒服,并表示“握手机时手指仍然是灵活的”。用户还表示,他们愿意将其他功能与握紧的手指联系起来,比如常用应用程序的快捷键。用户们特别喜欢用抓握的姿势打开相机的想法,认为它可以“帮助他们永远不会错过拍照时刻”,在许多场景中都非常有用,比如拍摄活泼的小动物,以及即将更换的PowerPoint。

白刃战的交互。用户觉得用握着的手触摸智能手机进行交互是非常新颖和合理的。他们评论说:“用另一只手触摸拇指的任何位置都很容易。”他们还报告说,“手指滑动有触觉反馈,这比半空中的手势更舒适。”与此同时,一些用户认为触摸手指按钮“就像画画时拿着画笔画画一样自然”。用户一直喜欢用拇指对拇指的手势来唤起前一个应用程序的缩略图视图。用户认为这个功能非常实用,拇指对拇指的手势非常容易学习,而且不会打断正在进行的交互。

07

讨论

在本节中,我们将讨论 在实践中部署和采用HandSee的相关问题。#形成的因素总的来说,我们目前的HandSee的实现是紧凑的。只需要在屏幕表面增加一个高于前置摄像头10mm高度的直角棱镜镜即可。根据我们的研究,该棱镜不干扰触摸屏主要区域的触摸输入,并被所有参与者接受。

另一方面,可以进一步降低棱镜的高度。例如,如果只有触碰手的尖是感兴趣的,那么垂直方向的FoV可以更小。此外,凸面镜也可以减小棱镜的尺寸,但会使棱镜变形,需要更专门的校准。最后,最好能重新设计一个包含光学结构的智能手机,例如,一个基于电机的机械结构,在需要交互时弹出棱镜(例如vivoNEX S)。#智能手机硬件支持

HandSee对智能手机的传感和计算提出了额外的要求。但我们认为这与技术的发展是一致的:1.传感硬件。 现在出现了一种趋势,即在普通智能手机上安装额外的摄像头,以提供更好的用户体验(如iphoneex);2.计算软件。 最先进的计算机视觉算法已经证明了他们在解决相关问题的能力(例如,通过单目RGB相机[37]手部跟踪)。相比之下,我们的问题局限于手机触屏上方的空间,解决起来可能不那么复杂。3.计算硬件。 现代智能手机正在整合对计算机视觉和机器学习算法的硬件支持,以实现实时性能。

#电力消耗

在移动设备上运行计算机视觉算法总是会引起对功耗的关注。虽然在十年前这可能会引起更多争议,但最近,越来越多的CV应用被部署到移动设备上,如人脸识别、AR/VR等。HandSee,优化功耗可以通过1)使用低功率的相机(如那些低分辨率)和计算机芯片(如硬件加速),和2)打开HandSee需要时,例如,在特定的应用程序或只有在电容式触摸屏的触摸事件报道。这将把连续视频处理的计算负载减少到每个触摸事件的单个帧。#RGB摄像机与红外照明和传感现在,我们使用手机的前置摄像头来实现HandSee。其 优点是RGB图像提供了丰富的颜色信息,这对于我们的手部皮肤检测算法非常重要。然而, 缺点是算法严重依赖于光照条件。 即使相机屏幕可以提供照明,环境中的低照明仍然会影响深度估计的质量。

另一种解决方案 是采用红外照明和传感,这在实践中得到了广泛应用(如LeapMotion、Kinect和iPhoneX)。红外照明可以 保证照明的稳定性,并有助于滤除背景(通过调节照明功率,在近距离内照亮手和手指,使背景保持黑暗)。这将 降低识别算法的复杂性。然而, 缺点是我们丢失了丰富的RGB信息。#隐私问题

摄像头的使用是智能手机隐私问题的主要来源。HandSee也不例外。在这里,我们分析风险。HandSee沿屏幕表面从上往下看。在正常使用中,它会以用户的胸部为背景。因此,与摄像头在开阔空间拍摄的情况相比,隐私风险可能相对较低。为了进一步降低风险,可能首选上述红外解决方案,因为照明距离可以控制。最后,我们仍然认为保护隐私的最佳方式是保证计算在智能手机上本地完成。

09

限制和未来

目前的研究证明了HandSee的可行性和潜力,但在以下方面仍有局限性,这也为未来的工作指明了可能的途径。

首先, 我们目前的HandSee算法是在PC上实现的,将识别结果发送回智能手机。为了实际应用,我们需要研究并在智能手机上部署算法,特别关注效率和功耗。

其次, 我们需要进一步测试和提高HandSee算法的性能,考虑各种光照条件和肤色。此外,红外照明和传感解决方案值得探索。

第三,全手互动空间的拓展需要进一步探索。未来的作品可以在空间中使用更多的交互技术,并进行正式的用户研究,以评估这些技术的可用性。

09

总结

我们介绍了HandSee,这是一种在智能手机上感知和实现全手交互的新技术。HandSee将前置摄像头用于提供立体视觉,重点关注与智能手机交互的手和手指。HandSee与智能手机的最新硬件发展相一致,如摄像头数量的增加,以及设备上的GPU/NPU加速。我们还提供了HandSee管道的参考实现。该管道具有在线手部皮肤检测和立体匹配功能,共同提供强大的感知能力。当前在PC上的实现可以每秒处理30帧,为交互设计提供实时性能。未来需要在商品智能手机设备上部署算法。由于增强的感知能力,HandSee扩展了全手交互的设计空间。我们展示了一组被用户高度接受的新应用程序。我们相信HandSee将打开新的大门,在智能手机上实现更方便、更富有表现力的交互。


参考文章: HandSee: Enabling Full Hand Interaction on Smartphones with Front Camera-based Stereo Vision作者: Chun Yu, Xiaoying Wei, Shubh Vachher1,Yue Qin, Chen Liang, Yueting Weng, Yizheng Gu, Yuanchun Shi译者: 橙色泡泡

为尊重版权和译者转载请联系我们

ABOUT

本文原载于微信公众号,正文与配图已转存至本站以便长期访问。 查看原文 ↗

有想具体聊聊的问题?把你的情况说一说。

联系咨询