APP下载

移动增强现实下十字提线木偶交互系统设计与实现

2021-07-08程明智

北京印刷学院学报 2021年6期
关键词:提线木偶卡尔曼滤波木偶

李 豪,程明智,刘 龙

(北京印刷学院新媒体学院,北京 102600)

中国木偶戏源远流长,提线木偶是中国木偶戏四大种类之一,是通过与木偶相连的提线来控制木偶身体局部,全国多个地方的提线木偶戏都被列入国家非物质文化遗产保护目录[1]。但提线木偶的操作复杂,传承人培养周期长,而且随着新媒体的发展,观众们也更青睐于影视、游戏等视觉听觉冲击力更强的娱乐活动,这些原因都导致提线木偶面临失传的危险[2]。要想使更多人关注提线木偶,就需要使用更加现代化的展示和交互手段来吸引人们的关注。

移动增强现实技术,是移动智能设备和增强现实技术融合发展的新产物,它结合了增强现实的3I特性(沉浸性、想象性、交互性)、多技术融合特性和移动智能设备的便携性、多感知性[3]。它通过将虚拟物体实时叠加生成在真实物体上,并且对于用户的输入可以做出实时的反馈,极大地提高了用户的沉浸感和交互性。使用移动增强现实技术的应用给人带来全新的体验,如2016年大火的移动增强现实游戏Pokemon Go[4],让人们走出家门,上街去捕捉虚拟精灵。而对于通过移动增强现实技术来进行虚拟角色控制的研究也越来越多,如,Anderegg R等人使用智能手机控制角色,就像使用一根杆一头连着角色,一头连着手机,来控制角色[5]。该系统只实现了对角色的整体控制,并没有实现对角色身体局部的控制。因此,本文在此基础上设计了一款移动增强现实下的十字提线木偶交互系统,来实现对虚拟角色身体局部精确的控制。

1 系统设计

十字提线木偶是对提线木偶的简化,将表演时使用的提线木偶的提线由16—30根,简化为4根提线,作为一种儿童玩具在民间更为普及。可以极大地提高普通大众可体验性的提线木偶操控,对提线木偶的传承具有重要意义。

根据对十字提线木偶交互进行分析后,将该系统分为人机交互、惯性传感器数据管理、模型动画生成三个模块进行设计。人机交互模块,使得系统理解用户意图做出合适的响应;惯性传感器数据管理模块,对传感器数据进行获取和进一步优化处理;模型动画生成模块,利用反向动力学动画原理,使用智能手机姿态角作为控制木偶模型身体局部关节点动作,来生成模型局部动画。系统总体架构,如图1所示。

(一)人机交互模块

为充分利用移动增强现实的交互特性,突破传统的UI、按键、摇杆等交互方式,实现更自然、更人性化的人机交互方式。本文以用户与手机姿势的交互作为人机交互方式,并与显示界面相结合对用户输入进行读取和引导,人机交互模块结构图,如图2所示。用户通过在横向纵向两个方向翻动手机,翻转时手机中内置的陀螺仪、加速度传感器将产生手机姿态变化数据,再利用相关SDK API接口获取手机姿态变化数据,将数据处理后,在显示界面进行数据的显示和用户翻转角度的引导。

图1 系统总体架构

图2 人机交互模块结构

(二)惯性传感器数据管理模块

在此模块中主要对获取到的手机内置惯性传感器数据进行降低误差以及增强数据健壮性处理。由于陀螺仪和加速度传感器本身存在测量的误差,因此需要对得到的数据进行处理,减少由于传感器本身造成的误差,以及对系统造成的影响[6]。采用数据融合领域最为常用的互补滤波和卡尔曼滤波器结合来将陀螺仪和加速度数据融合[7],提高手机姿态测量的精度。如图3所示。

图3 互补滤波和卡尔曼滤波相结合原理图

(三)模型动画生成模块

此模块是将惯性传感器数据通过互补滤波与卡尔曼滤波联合优化,来得到一个精度较高的姿态角数据,并以姿态角数据此作为虚拟木偶身体局部运动的判断条件,来决定模型身体如何运动。以正向和逆向旋转分别控制虚拟木偶的单手或单脚,与现实中十字提线木偶控制方法类似,这样使用户交互时,能够实现实时的交互响应,使系统更具沉浸感。

2 系统实现

2.1 人机交互模块

首先需要为项目搭建AR环境,整个开发过程需要在AR环境中不断进行调试和改进。将HUAWEIAR SDK插件导入Unity项目中构建AR环境。如图4所示。

图4 构建AR环境

在Unity内搭建人机交互界面,如图5所示,左上角的横滚角和俯仰角用来显示当前手机姿态角状态。右边的ψ-1、ψ-2、ψ-3三个选项,表示使用不同算法得到的手机姿态角。其中ψ-1表示将得到的惯性传感器数据直接进行解算得到手机姿态角;ψ-2表示将加速度计数据直接作为观测量,将陀螺仪数据作为状态量,通过卡尔曼滤波得到手机姿态角;ψ-3表示先使用互补滤波对加速度计数据和陀螺仪数据进行处理得到经校正的陀螺仪数据,将其当作状态量,将加速度数据作为观测量,再经卡尔曼滤波得到的姿态角。Set Start Status按钮表示用户选定手机的初始姿态角度。

2.2 惯性传感器数据管理模块

在惯性传感器数据管理模块,使用加速度计测量的姿态角作为观测值,使用经互补滤波处理后的姿态角作为状态值,则其卡尔曼滤波流程,如图6所示。

图5 人机交互界面

图6 卡尔曼滤波迭代计算流程

卡尔曼滤波更新过程中,相关变量预设参数分别为:

2.3 模型动画生成模块

在模型动画生成模块,将木偶模型导入Unity中,并导入Final IK 1.7插件,以此实现对木偶模型骨骼关节的反向控制,如图7所示,运行后可以通过控制木偶模型的身体局部来使木偶模型全身做出相应的动画效果。

图7 使用Final IK实现反向动画控制

3 实验结果及分析

系统运行的硬件配置:一台Android版本为10的安卓手机,并且该手机具备:TOF立体深感镜头、陀螺仪、重力传感器等硬件。

移动增强现实下十字提线木偶交互系统的实现结果如下:规定智能手机的屏幕面对用户,手机扬声器在下,为相应方向的正方向。用户自定义设置初始角度,缓慢转动手机。以手机为轴,前后转动,可以通过手机屏幕观察到提线木偶模型单脚随着手机的转动,依次运动,并且身体其他部位做出与之相适应的动作。以手机为轴,左右转动,可以观察到提线木偶模型单手随着手机的转动,依次运动,并且身体其他部位做出与之相适应的动作。如图8所示。

图8 转动横滚角控制木偶脚部和手部运动

实验结果表明,当用户自定义设定初始角度之后,横向或纵向缓慢旋转手机,虚拟角色身体局部会实时响应,做出相应的动作。并且虚拟角色对于用户交互的响应精度和准确度,随所选算法递增(ψ-1<ψ-2<ψ-3)。该应用达到系统设计的预期效果。

4 总结

本文设计并实现了一个移动增强现实下十字提线木偶交互系统。该系统使用手机姿态角中的横滚角和俯仰角来模拟现实中十字提线木偶的十字架控制器,并通过反向动力学动画控制来模拟提线对虚拟木偶身体局部的控制。本文采用互补滤波和卡尔曼滤波结合的方式对传感器原始数据进行处理,得到一个精度较高的手机姿态角,从而准确地响应用户交互,最终达到了类似于现实中控制十字提线木偶的效果。该交互系统,目前只实现了对虚拟角色肢体的简单的控制,并不能控制虚拟角色做出更加复杂的动作,未来需要引入更加精确的控制器和更强大数据融合算法,该交互方式也可以从类人形角色扩展到其他更多种类的四足角色上。

猜你喜欢

提线木偶卡尔曼滤波木偶
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
脉冲星方位误差估计的两步卡尔曼滤波算法
数不清丝线的提线木偶
陕西合阳提线木偶戏发展思考
精彩的泉州提线木偶戏
一天早晨
卡尔曼滤波在雷达目标跟踪中的应用
卡尔曼滤波在雷达目标跟踪中的应用
小木偶找智慧
木偶的眼泪(一)