基于Leap Motion手势识别的悬浮真3D显示实时交互系统 下载: 624次
1 引言
人类生活在三维(3D)空间中,三维显示相较于目前普及的二维(2D)显示,能够更高效地呈现空间信息,具有更强的真实感和沉浸感。裸眼真3D显示无需佩戴眼镜等辅助设备,无立体观看视疲劳问题,能够提供舒适逼真的3D图像,应用前景十分广阔[1]。悬浮真3D显示结合裸眼真3D显示与悬浮显示两种技术的优势,利用悬浮器件,将3D图像成像在空中,进一步增强了空间真实感。该技术与手势交互等非接触式交互技术结合[2],既能进一步发挥3D显示自然直观的优势,又能使人和空间中的3D图像自由交互,可避免不必要的接触,特别有利于减少疾病传播风险,在2019年至今的新冠肺炎大背景下有多种应用场景。
现有的悬浮真3D显示手势交互主要利用全息、光场和集成成像等裸眼真3D显示技术实现3D图像的再现,配合体感检测器件或图像传感器完成手势交互功能。台湾交通大学提出了一种嵌入式集成成像3D显示手势交互系统[3],利用嵌入在微透镜阵列下的分布式光传感器推算手指位置,实现了手指对3D场景的精确控制。日本东京工业大学实现了一种基于全息3D显示的手势交互系统,采用RGB相机检测手指散射光,对手指位置进行检测,实现了手指与复杂场景的精确配准[4]。浙江大学提出了一种悬浮真3D显示系统力触觉交互技术,通过指套振动实现力触觉交互,提高了交互的真实感[5]。尽管目前国内外进行了一些悬浮真3D显示手势交互技术研究,但多数仅考虑单个3D物体的交互或3D场景的整体交互,未考虑复杂3D场景中多个3D物体的独立交互,不同3D物体独立交互存在的串扰问题亟待解决。
本文提出一种基于Leap Motion的悬浮真3D显示实时手势交互系统,可实现多个悬浮3D物体的独立实时交互,交互帧率为30帧/s。
2 系统结构与工作原理
2.1 系统结构
悬浮真3D显示手势交互系统由集成成像3D显示屏、二面角反射镜阵列、Leap Motion和计算机组成,如
图 1. 悬浮真3D显示手势交互系统结构
Fig. 1. Structure of the floating 3D display gesture interaction system
Leap Motion连接计算机,两者共同组成系统的交互模块。Leap Motion是一款体感控制器,它内置双目相机,基于计算机视觉算法采集手的数量、各个关节节点的空间位置、手指和手掌的朝向等数据,通过应用程序编程接口(API)被计算机读取。为充分利用Leap Motion的探测范围,我们将Leap Motion水平放置在二面角反射镜阵列底边的正前方。悬浮真3D显示手势交互系统的手势交互流程如
在一次交互循环流程中,计算机通过API从Leap Motion读取手势数据,然后利用交互通道机制检查物体是否被占用。若未被占用,将读取到的关节空间坐标映射到开放图形库(OpenGL)世界坐标系下,与预设手势进行比对,确定交互类型。之后计算并更新每个参与交互的物体的空间位置与姿态,并渲染3D片源,刷新显示在LCD屏上,使得悬浮3D图像中的物体发生位移、旋转等变化,实现人机交互。
集成成像3D显示屏的3D片源即图像阵列。为确保实时性和手势交互模块设计的便捷性,采用OpenGL,通过设置多视口模拟相机阵列的拍摄,生成图像阵列。渲染过程应用了双缓冲和顶点缓冲对象(VBO)技术,以保证3D片源的实时生成。
2.2 显示空间与交互空间坐标映射
为精确模拟现实世界的“触碰”等手势交互动作,需要建立显示空间与交互空间的关联。显示空间指悬浮3D图像所处的空间,交互空间指Leap Motion可探测到的手关节所处的空间。然而手关节坐标基于Leap Motion自身的坐标系,无法直接得到该坐标与悬浮3D图像之间的坐标关系。因此需要将Leap Motion坐标映射到显示空间,才能进行触碰与否的判断。根据集成成像原理可知,3D拍摄与显示过程互逆,显示空间坐标系与渲染过程的OpenGL世界坐标系统一,悬浮3D图像坐标与待渲染的3D模型坐标完全一致。因此,只要确定Leap Motion坐标系和OpenGL世界坐标系的映射规则,即可实现显示空间与交互空间的坐标映射。
假设OpenGL世界坐标系O-XYZ的OX、OY、OZ轴在Leap Motion坐标系O'-X'Y'Z'下的单位方向矢量分别为(X'X,Y'X,Z'X,)T,(X'Y,Y'Y,Z'Y,)T,(X'Z,Y'Z,Z'Z,)T,坐标系O-XYZ与O'-X'Y'Z'的标度比为Ks,则可计算出从坐标系O'-X'Y'Z'到O-XYZ的自由向量变换矩阵
在Leap Motion中经过标定得到原点O'的坐标,记作(X'origin,Y'origin,Z'origin)T,则点O'映射到OpenGL世界坐标系的变换矩阵为:
由
2.3 手势交互的实现
本系统预设了3种手势交互方式:抓取平移、划动旋转和按键平移/旋转。3种手势的交互过程均包括3个阶段:选定物体、发生运动、释放物体。以抓取平移动作为例,人在用手移动一个体积较小的物体时,主要是单手的拇指、食指、中指弯曲并发力,夹持物体,移动一定距离后,手指略微伸直而释放。那么手指弯曲到一定程度夹持住物体为选定对象,移动为发生运动,手指松开则为释放对象。
本文以抓取平移为例介绍交互实现过程,其他两种手势原理与此类似,不再赘述。
首先选定对象,采用地球和月球两个球体模型,两个球体球心均位于各自模型局部坐标系的原点处,其在OpenGL世界坐标系的坐标表示为(Xobj,Yobj,Zobj)T。当手的映射坐标处在以(Xobj,Yobj,Zobj)T为中心、半径为df的球域内,并做出抓握动作时,视为选定交互对象。选定交互对象的位置判断条件为:
其中(X'f,Y'f,Z'f)T表示将拇指(X'thumb,Y'thumb,Z'thumb)T、食指(X'index,Y'index,Z'index)T和中指(X'middle,Y'middle,Z'middle)T作为整体考虑的一个加权平均坐标,其表达式为:
其中Athumb+Athumb+Athumb=1。除此之外还要满足3个手部形态判断条件:
当拇指、食指和中指远节的中心点与它们加权平均坐标的距离小于各自的给定阈值dthumb、dindex、dmiddle时,视为抓取到该物体。
在运动发生过程中,3D图像跟随手部动作发生平移运动。两帧之间的手部位移被映射到OpenGL坐标系上,位移值表示为(ΔXf,ΔYf,ΔZf)T,对应模型跟随手部同步运动,位移值同样为(ΔXf,ΔYf,ΔZf)T。
最后阶段为释放对象,只需使选定物体的4个条件不同时满足。需要注意的是,手在“抓取”和“释放”的过程中,拇指与其余4指的运动幅度不同,拇指运动距离明显小于其余4指。因此,在计算平均坐标(X'f,Y'f,Z'f)T时给予权重系数Athumb更大数值。
2.4 多物体独立交互
多物体独立交互指同一时刻3D场景中的每个物体都能独立响应一只手的手势交互,互不干扰。当交互过程中手与手、物体与物体的空间位置非常接近甚至部分重合时,由于 Leap Motion动态的手势数据存在不可避免的漂移和抖动,即使采用物理碰撞检测,也会出现手势选定物体的错乱,无法达到理想的交互效果。本文提出通道模型解决多物体交互串扰问题。如
当一只手进入某一物体的交互范围时,需要遍历所有物体的交互通道,增加额外的判断条件决定物体是否受到该手的控制:(1)物体的交互通道如果被除当前手以外的手的ID占用,物体不会对当前手的手势产生响应;(2)物体的交互通道被当前手的ID占用,物体将保持接受当前手的控制;(3)物体的交互通道没有被任何手的ID占用,则当前手势图与该物体建立新的控制与被控关系,即有可能将当前手的ID放入对应的通道内;(4)当前手的ID未在其他物体的交互通道里,建立一一对应的控制与被控关系;(5)多只手同时进入物体的交互范围,按照ID从小到大分配从高到低的优先级,这是由于先被Leap Motion追踪的手ID更小,后被追踪的更大,满足“先来后到”的规则。
上述一系列判断流程在交互的选定物体阶段完成。只有建立物体与手的交互关系后,才会进入下一阶段,计算物体对交互手势产生的响应。
3 实验结果
实物系统如
表 1. 系统关键参数
Table 1. Parameters of the proposed system
|
多物体独立交互效果如
4 结论
本文提出了一种基于 Leap Motion的悬浮真3D显示实时手势交互系统。该系统能够实现不同手势的实时交互,3D片源分辨率为3 840×2 160时,交互帧率为30帧/s。系统还可满足多手同时对多物体的独立交互,交互动作相互不受干扰,解决了多物体独立交互存在的串扰问题,使得交互更加灵活。所提系统为悬浮3D显示人机交互的应用提供了可能性。
[1] 王琼华.3D显示技术与器件[M].北京: 科学出版社, 2011.10.1002/j.2637-496x.2011.tb00390.x
[2] 薛钊鸿, 孙梓瀚, 成泽锐, 等. 基于人眼检测优化的立体人机交互技术的研究[J]. 液晶与显示, 2018, 33(11): 958-964.
[5] 李炜, 李海峰, 徐良, 等. 基于体感检测器件的悬浮真三维显示力触觉交互[J]. 光学学报, 2020, 40(9): 0915004.
[9] 张汉乐.集成成像3D显示性能提升方法[D].成都: 四川大学, 2020.
ZHANGH L. Methods for improving performance of integral imaging 3D display technology [D]. Chengdu: Sichuan University, 2020. (in Chinese)
林星雨, 邢妍, 张汉乐, 王琼华. 基于Leap Motion手势识别的悬浮真3D显示实时交互系统[J]. 液晶与显示, 2022, 37(5): 654. Xing-yu LIN, Yan XING, Han-le ZHANG, Qiong-hua WANG. Real-time floating 3D display interaction system based on gesture recognition by leap motion[J]. Chinese Journal of Liquid Crystals and Displays, 2022, 37(5): 654.