2023-02-05

基于头部“摇头”运动的简单运动方式

原地行走的交互技术被引入,通过在现实世界中的原地行走在三维虚拟世界中进行无限的导航。文章通过我们新颖的 "摇头 "技术,用户有可能坐下来,使用小屏幕和标准的内置设备,如基本的网络摄像头进行跟踪。运动模拟可以计算各种运动,如转弯、跳跃和爬行,使用用户的头部运动作为唯一输入。我们还引入了基于摄像头运动的额外视觉反馈的使用,以增强行走的感觉。 导航是与虚拟环境进行三维交互所需的基本任务之一,这也是我在关于头部运动交互大部分文章所提到的,我们建议在三个主要方面改进WIP技术,与我们论文中所说的三个主要创新相对应。- 新的用户界面能力。我们引入了(1)用户站立或坐着的可能性(使用经典的桌面VR与鼠标的交互模式),以及(2)通过使用头部运动作为WIP控制法的主要输入,使用屏幕(视野有限)和低成本跟踪(网络摄像头)的可能性。- 新颖的运动模拟。我们利用启发式方法和完全基于用户头部运动的控制法则,将WIP可能的运动范围扩大到:行走、转弯、跳跃和爬行。- 新颖的行走视觉反馈。

文章主要通过引入了上述方法与更真实的行走视觉反馈相结合的可能性,即摄像头的运动,这被认为可以改善行走的感觉通过 "摇头 "技术,用户可以站着或坐着(如在传统的视频游戏或桌面VR配置中)。用户通过头部运动与系统进行互动。这些头部运动可以用不同的跟踪界面来捕捉,但我们坚持使用低成本的光学跟踪标准网络摄像机。运动模拟不仅提供了虚拟行走运动的计算,而且还提供了28种不同的运动。

主要实验设计:首先设计转弯、跳跃和爬行的可能动作。用户可以通过在三个运动轴上整合的虚拟摄像机运动来感知虚拟世界中的运动,从而进一步增强行走的感觉,文章创新点有三(1)3D用户界面的输入/输出,(2)为编制虚拟运动而开发的交互技术,以及(3)依靠摄像机运动的视觉反馈:

图一设计流程


基于头部运动的跟踪我们的方法的输入界面只基于头部运动。

首先在我们的实现中,输入界面被简化为一个网络摄像头,允许我们的方法用于桌面配置而不需要任何额外的外围设备。然而,我们的方法也可以用其他经典的VR跟踪系统来实现。使用头部运动。我们的方法的主要概念是利用头部摆动作为自然行走过程中观察到的摆动的换位。在行走过程中,用户的头部沿横向、纵向和前向轴摆动,这些振荡与步态事件和脚步密切,因而我们可以使用一个视频摄像系统来处理用户头部的跟踪问题。因此,我们的交互技术可以大规模地、低成本地用于培训目的或视频游戏等。提取的数据。在我们的方法中,我们建议使用3个自由度(DOF),可以很容易地从网络摄像头提供的图像帧中获取横向位置x(和计算的速度Vx);垂直位置y(和计算的速度Vy;头部在正面的旋转r。方法的实现是基于OpenCV库中的Camshift(连续自适应平均移动)算法的实施。该算法基于颜色跟踪,非常适合于实时跟踪特定颜色的特征,如用户的脸。当用户站在摄像头前时,我们的算法将他识别为一个椭圆体。头部的位置(x,y)可以从椭圆的中心推导出来,头部的方向角r由与椭圆的垂直方向的角度给出。然而,x和y取决于所用网络摄像头的分辨率。因此,我们在上计算出两个轴上的归一化位置(xn, yn)。从头部的归一化位置(xn, yn),我们计算出瞬时速度Vx和Vy,并对所有的值使用卡尔曼过滤器以减少算法产生的误差

图2提取的头部运动:(a)横向运动,(b)垂直运动,(c)滚动运动

输出设备仅需笔记本屏幕或者任意一块普通屏幕即可

 核心算法思想的主要目标是将用户的输入,即头部运动,转换为VE中的虚拟运动。用户在VE中导航时应该能够进行各种运动。我们实现了不同的运动状态:行走、转弯、跳跃和爬行。为了管理这些不同的状态,我们在算法中加入了一个状态自动机(图3)。状态转换由用户的头部运动控制,主要的输入是横向速度Vx和纵向速度Vy。

图三:状态转化机

Vx允许从停止状态过渡到前进运动;Vy允许过渡到跳跃或爬行状态。转弯运动没有被表示出来,因为它可以在任何状态下被激活,这取决于头部的方向。

1.前进状态:VE中的前进运动是由作为主要输入的侧向振荡控制的。文章的技术旨在强调根据用户的头部运动,以变化的前进速度行走的想法。前进速度Va根据头部的侧向运动而有规律地摆动。一个头部振荡周期对应于一个步骤。脚步事件由一个空的前进速度模拟,对应于用户头部横向速度符号的修改。因此,当用户的头部达到振荡的最大振幅时,振荡速度为空,前进速度也为空,模拟一个脚步。为了更真实的运动,我们引入了两个阈值Tmin和Tmax。Tmin允许在头部横向运动过小时停止向前运动。Tmax允许避免不现实的高速行走。为了测试这些阈值,前进速度Va是分两步计算的。

前进速度

 最后,VE内摄像机的前进速度V取决于当前的运动状态,由以下公式给出。V = 8 < : Va 如果状态 = 步行 0.4 ∗ Va 如果状态 = 爬行 Vmax 如果状态 = 跳跃 。文章选择了一个标准化的阈值。Tmin = 0.05和Tmax = 0.5。我们还将Vmax设定为每秒3.5米,对应于可以达到的最大速度。

2.跳跃和爬行状态:跳跃和爬行状态是由用户头部的垂直摆动控制的。如果垂直方向的速度超过了规范的阈值Tjump(向上)和Tcrawl(向下),用户就可以在VE中分别跳跃和爬行。在实践中,这意味着如果用户是坐着的,他需要稍微跳跃或向前弯腰,如果是站着的,则需要跳跃或蹲下。用户必须站起来才能停止爬行。当检测到跳跃时,摄像机的垂直位置被设置为遵循经典的抛物线轨迹,定义为

g是重力加速度,t是时间。跳跃状态在着陆时自动离开,即当摄像机再次达到正常高度H时(被称为算法开始时的参考状态)。具体范围划定可由实验测试得到

3.转弯状态在前进、跳跃和爬行状态的同时,用户可以在VE内转弯,以改变其导航方向。在正常行走的转弯过程中,人体向转弯中心的方向略微倾斜以补偿离心力他们会倾向于向转弯的方向倾斜,即使这对他们在游戏中的轨迹没有任何影响。因此,我们选择利用这一特性在我们的系统中实现转弯,作为基于头部在滚动轴上的方向的控制法。为了在VE中转弯,用户必须将他的头分别向左或向右倾斜,以便在VE中向左或向右转。虚拟摄像机的旋转速度Vr由以下公式给出

 其中rmax是开始旋转的最小头部倾斜角度,Vrmax是旋转的最大角速度

基于摄像机运动的视觉反馈 为了进一步强调在VE中行走的感觉,我们使用由用户头部摆动驱动的摄像机运动对WIP进行了视觉渲染。我们引入了一个适应用户头部运动的摄像机运动的新模型。摄像机沿不同轴线的摆动必须实时跟随用户以保持系统的一致性。因此,我们实现了一种新的视觉反馈,摄像机沿垂直、横向和前进轴运动。

其次为了在VE中移动,用户必须使其头部从左到右摆动。因此,当用户在屏幕前移动时,他对场景的视点会随着头部的摆动而改变。摄像机的横向摆动是作为用户位置的一个函数来计算的。如果d是用户到屏幕的距离,α和β是网络摄像机的开角,那么用户在屏幕前的真实世界的位置取决于归一化的coordi-nates xn和yn。用户头部的真实世界位置由以下坐标给出

真实坐标转化

最后,虚拟摄像机沿横向轴移动的距离xcamera等于:xcamera = Ax ∗ xreal。我们将比例因子Ax=1,以匹配用户的头部位移,从而产生一种错觉,即屏幕是一个窗口,用户可以通过它直接观察VE。

最后是在方法中,我们建议根据虚拟步态周期的当前阶段来产生伪正弦波垂直摄像机振荡。与前进速度控制法类似,摄像机振荡的垂直幅度ycamera由以下公式给出:ycamera = Vn2 ∗ ymax camera 其中ymax camera是大于或等于Tmax阈值的垂直振荡的振幅。对于较小的速度,振荡的振幅与这个最大值成正比,从而增加对前进速度变化的感知。借此可以强制实现同步,从而获得平滑的最终图像渲染。

总而言之,我们的方法包括:(1)基于用户头部运动的输入界面;(2)VE中的运动模拟,包括各种可能性,如跳跃、爬行、转弯;(3)依靠摄像机振荡运动的行走视觉反馈。头部运动沿着三个自由度(DOF)被追踪:横向、纵向和滚动轴这些不同的物理运动在虚拟运动中被转换,这要归功于一个运动自动装置(图3)。然后,我们在视觉反馈中加入了相机的振荡运动(公式2、5和6),以增强行走的感觉,当然这里还缺少一些和后退状态,但参数中可以改变。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Just before life changes you for the better, what usually...
    春生阁阅读 97评论 0 0
  • 【日精进打卡第1786天】 【知~学习】 《六项精进》 《大学》 【读书】 1、《董明珠传》OK 2、《活法》二遍...
    丛培国阅读 72评论 0 0
  • 老师讲解题目的声音漂浮在教室半空,旋转,跳跃,扭来扭去,就像吐出来的一股烟,像一滴灰色在水杯中和白开水晕染开。前桌...
    懒人晴山阅读 103评论 0 0
  • 重新认识马斯洛需求理论-认识人性 需求有层次 =>实质是: 动机有优先级1.1) 主导动机 => 独占支配 人的意...
    平衡WorkLife阅读 179评论 0 0
  • 仔细看了一下,注册简书是2021年,现在已经不记得当初为什么会注册这里了,和很多被遗忘的过去了一样,不仔细想也就消...
    九十二七阅读 95评论 0 2

友情链接更多精彩内容