虚拟人在虚拟现实中应用的技术思考与研究

内容摘要:虚拟人是虚拟现实中的一个重要部分,很大程度上决定了用户的沉浸感与虚拟世界的代入感。对于虚拟人技术的探索也从未间断过,并且取得了较为不错的发展与成果。在这篇文章中,我将会就我在公司实践中学习到的虚拟人技术和阅读、调研中了解到的虚拟人技术,阐述当前虚拟人技术的大致研究情况与方向和该技术与虚拟现实的融合,并表达我个人对于虚拟人在虚拟现实中应用的分析与理解。

关键字:虚拟现实;虚拟人;交叉学科;技术

一、引言

计算机与虚拟现实技术近年来的快速发展使人类进入了全新的时代,虚拟现实技术如今也开始变得人人皆知。工信部2016发布的《虚拟现实产业白皮书》显示,2015年中国虚拟现实行业市场规模15.4亿元,2016年预计达56.6亿元,2020年预计超过550亿元。由此,2016年被称为“VR元年”。[1]我们据此认为,虚拟现实技术的发展如今已经进入高潮,并且受到了越来越多的人们的关注。虚拟现实也在各种各样的领域开始崭露头角,例如游戏行业、教育行业、工业乃至军事、航空航天等等。虚拟现实在低成本下呈现给使用者的沉浸感与真实感让虚拟现实成了各个行业中的宠儿。而虚拟人是虚拟现实中的重要组成部分,对于增强场景的真实感、沉浸感具有非常重要的作用。

虚拟人是通过虚拟现实技术模拟真实的人体结构而合成的三维人体模型,这种模型不仅具有真实的人体形态结构,而且具备生理机能。[2]虚拟人技术研究早在2001年冬第174次香山科学会议时就已经被提出,[3]而近年来随着计算机技术的不断发展,包括计算机三维建模技术、运动捕获技术、运动模拟技术、动态绑定技术、深度学习等。本人近期曾参加网易公司伏羲实验室的虚拟人研究项目,因此对虚拟现实中的虚拟人技术破有感触,尤其是在游戏领域与教育领域,结合自己近期阅读的参考文献,针对这一题目进行了一系列的思考和研究,将实践所获知识与理论知识进行整合,以达到更加深入理解的目的。

二、虚拟人在虚拟现实中的应用概述

随着虚拟现实技术在各个领域的应用,对虚拟现实技术的要求也愈加提高,而虚拟人则是虚拟现实环境中的重要组成部分,对于增进场景的真实感、沉浸感具有非常重要的作用。[4]一般而言,虚拟人可以视为一个自主的智能个体,它具有自主的感觉、知觉、情绪和行为,因此虚拟人在虚拟现实场景中能够大幅提升用户的真实感和沉浸感,并且大幅改善用户与虚拟世界的交互体验,且对于虚拟世界中的数据可以驱动虚拟人自行进行处理,对于人工生产力能够起到解放的作用。

如今虚拟人技术已经在一定的场合投入到了实际的应用中。例如,在游戏行业内,基于虚拟人的NPC能够打造出自主与玩家进行互动的NPC,该NPC可以根据用户的喜好进行感情的调节,来适应不同用户的游戏模式,保证游戏能够被更多的大众所接受,尤其是在一些MMO类型的游戏或养成类游戏等玩家与NPC进行亲密互动的游戏中体现的较为明显。例如网易的倩女幽魂与逆水寒等游戏项目,就将虚拟人与自然语言处理等技术应用在了游戏中的部分环节中,让游戏中的NPC与玩家通过构建虚拟人的方式进行互动,这也是游戏的一大卖点。

虚拟人技术在影视、音乐行业也有着创新性的应用。例如,今年三月份在杭州红星剧院举办的“邓丽君虚拟人演唱会”则将虚拟人与虚拟现实技术近乎完美地结合起来。本人有幸亲临现场感受到了虚拟人演唱会的音乐盛宴,通过使用裸眼的虚拟现实技术,结合运动捕捉技术和音频、语音处理技术,将虚拟人与音乐相结合,让一些已经离开我们的艺术家重返舞台,这也是虚拟人与虚拟现实打造出的一个科学与艺术相结合的奇迹。

虚拟人不仅仅在娱乐行业,同样在医学、军事、航空航天等科研领域也有着广阔的发展空间。利用“虚拟人”数字化数据集进行三维重建是一种“人体数字化解剖学”研究,可以创立虚拟解剖学、横断面解剖学、纵剖面解剖学、斜剖面解剖学以及一系列医学临床、教学和研究的虚拟模拟。[5]这也是虚拟人技术的一个重要技术突破。另外,虚拟人在军事模拟、场景仿真等应用场景下也有着研究前景,通过使用虚拟现实与虚拟人技术,可以有效地减少工作成本,提升工作效率。

三、虚拟人技术综述

刘箴提出将智能虚拟主体划分为五个层次的模型(如图2.3)。认知层包括智能虚拟主体的内部模型,例如,主体的情绪、性格和生理变量等。认知层控制智能虚拟主体的感知、行为和动作。行为层制定运动规划,确定当前的行为。物理层包括感觉和知觉,用来采集环境的信息和进行加工。运动层包括描述智能虚拟主体的运动算法。几何层包括场景和智能虛拟主体的几何数据。随着人类知识的发展,这五个层次内部的模型将不断丰富,但是基本的架构不会有大的变化。[6]因此,我们主要从这几个层面来对虚拟人的技术进行研究。

  1. 几何层技术探究

随着近年来计算机计算能力的不断增强,计算机的三维建模技术也有了突飞猛进的发展。而在虚拟人的几何表达中,必须满足虚拟人外形等方面的逼真性的要求,尤其是在虚拟现实的应用环境下,更是要求虚拟人几何表达的真实性。

虚拟人的几何表达主要分为四个层面,分别为骨骼层,肌肉层,皮肤层和人手模型。[6]骨骼层主要负责控制模型的物理运动,通过使用绑定工具将骨骼层与模型的肌肉、皮肤层进行绑定,再使用数据进行驱动,就可以通过控制模型进行逼真的物理运动;相较骨骼层,肌肉层的模拟是一个较难的问题,因为人体的肌肉形状复杂,而且会在运动的同时发生形变,并且肌肉是人体运动的主要动力来源,所以肌肉的形变不是任意的,必须符合人体力学原理和运动规律,近年来的对于肌肉模拟使用了多种方法,例如有限元生物力学模型、全局变形法、隐式曲面的几何造型技术、基于交叉组合的等值面采样法等等;皮肤层常常和肌肉层作为一个整体,通过曲面集进行表达,以保证人体皮肤的光滑与连续性;人手模型单独作为一个研究方向的原因是,人手皮肤一般区分于人体其他部位的皮肤,具有更多的纹理和褶皱,并且手指关节相较于人体的其他部位非常的灵活,如果使用传统的研究方法难以取得较好的效果,并且人手是人体与外界交互的主要部分,因此人手的研究也是决定了整个虚拟人交互性的关键因素。

虚拟人表面模型的部位随模型的不同而稍有不同,每一对相互连接的部位之间具有小块的公共区域,防止虚拟人在运动的时候出现明显的接缝问题。

  1. 运动层技术探究

虚拟人的运动层具体表现为虚拟人的人体运动控制。主要技术有运动学控制方法,动力学控制方法,运动捕获方法等。运动学方法分为正向运动学方法与逆向运动学方法,正向运动学通过给定参数向量来确定各关节位置以及末端的效应器方位,每一帧数据指定虚拟人每一个关节的关节角数值,通过使用四元数或欧拉角控制人体关节的旋转角,并使用线性插值或球面线性插值的方法来获得中间数值;逆向运动学与正向运动学相反,通过给定末端效应器的方位X,然后逆向求解中间位置关节的位置与方向;动力学方法较为直观地控制虚拟人的运动,但是缺乏完整性,因为只有使用力和力矩控制的运动才能真实地表现出人体运动的特点,直接指定位置或旋转角的运动仅仅能达到运动的目的,真实性上却稍逊一筹,牛顿-欧拉公式是使用的较为广泛的动力学方程,Armstrong等提出了一种基于牛顿-欧拉公式的递归算法,该方法的复杂度与自由度的个数呈线性关系,速度块并且稳定,但是这种方法仅仅适用于球关节;[7]除此之外,近年来运动捕获技术得到了迅猛的发展,在游戏、动画和影视行业都有着广泛的且出色的应用,运动捕获技术指的是通过传感设备记录人体在三维空间中的运动轨迹,并将其转化为抽象的运动数据,然后根据这些数据驱动虚拟人运动的方法。[8]运动捕获是一种可以快速获得高质量运动数据的方法,现在的虚拟人运动的基础数据几乎都是通过这种方法获得的。除此之外,我们可以利用这些数据,为这些数据添加一些与模型运动相关的标签,并通过卷积神经网络自行根据自己的需求生成需要的数据,使用这些数据驱动模型的运动。

  1. 物理层技术探究

物理层包括感觉和知觉,用来采集环境的信息和进行加工,简单的来说指的就是通过一定的交互方式,使虚拟人获得用户的输入,并通过一定的方式对用户的输入进行适当的处理,以达到鉴别信息内容,筛选有用信息,并向下一层传输的目的。

当前的虚拟现实应用场景中,用户的主要交互方式为手柄的输入与语音的输入。手柄输入为较为传统的输入方式,例如在FPS游戏场景中,通过手柄的输入获取到用户的射击目标;再比如在教学场景中,通过手柄输入获取到用户输入的选项反馈等。这种输入较为传统,与传统的电脑键鼠输入几乎没有区别。而虚拟人在虚拟现实中的输入更多的倾向于使用语音输入,进而达到一个真实的人与虚拟的人正常交流的效果,在应用过程中更加具有代入感,也有更加深刻的沉浸感。

在当前虚拟人项目的应用中,物理层的其中一个重要模块即为语音识别模块。这一部分的程序很难在客户端完成,因此一般使用http请求将用户的语音输入封装为数据包,并发送给服务端,服务端调用编写的程序或API来进行处理,并将结果返还回客户端,但在客户端仍然需要进行一定的抗噪声处理等预处理操作,将确定没有必要进行识别的内容进行剔除,保证发送给服务端的数据的质量,一方面可以减少网络所占用的带宽,另一方面可以保证识别的准确性。目前市面上百度的语音识别服务可以提供免费的使用。如果选择在服务端自行编写语音识别模块,则大多使用python完成,利用卷积神经网络和深度学习,最终取得较高准确率的识别结果。

  1. 行为层技术探究

行为层制定运动规划,确定当前的行为,简而言之就是通过获取到的用户输入的处理结果,来控制虚拟人给予用户的反馈。在行为层中,要决定的内容一般为虚拟人对于用户输入的反馈,与虚拟人当前的行为,例如虚拟人的动作决策,通过这一层的决策,将内容输入到下一层,以控制运动层等内容输出。

传统的处理方式一般为有限状态机或者行为树,通过判断用户的输入来选择虚拟人未来的输出内容。而强化学习为一种近年来较新的处理方式,通过为虚拟人的行为添加reward的方式,来训练更加“聪明”的虚拟人模型,甚至可以根据用户的个人性格和在虚拟世界的行为方式来为用户量身打造属于他的虚拟人,进一步反映出虚拟现实中虚拟人的智能性。

  1. 认知层技术探究

认知层反映了虚拟人在虚拟世界的情绪、性格等信息,这些信息的直接表示主要通过虚拟人的表情、语言、语气等内容进行反映。认知层是虚拟人模拟的重要环接,在现在的游戏中,尤其是养成类游戏或MMO游戏中的部分养成环接中,虚拟人的性格和情感状态直接地影响了用户的游戏体验。

虚拟人的表情获取与控制在近年来也取得了突破性的进展,例如基于虚幻4制作的虚拟人Siren,其表情的真实性可以与真实的人的表情相媲美,在实际应用中,表情数据的获取主要也是通过动作捕捉的方法,获取到原生数据后,在模型的面部设置blendshape,使用数据驱动脸部的blendshape(一般为51维),即可以达到控制模型表情的目的。更加深入的讲,我们可以通过深度学习,使用各种表情的标签训练出可以根据虚拟人的表情需要自动输出表情数据的网络模型,以达到进一步的虚拟人应用效果。

四、虚拟人在虚拟现实中应用的重要意义

虚拟人的研究是一项系统工程,涉及的领域很多,因而其在现实中起到的作用也是巨大的。在教育领域,虚拟交互环境可以展现那些在传统教学模式中无法实现的教学效果,在虚拟现实的环境中模拟出各种各样的虚拟环境,而虚拟人教育则可以在虚拟世界中承担起教师的责任,让用户在虚拟现实教育中受到与真实世界中同样专业的指导,并且获取到实时的、真实的、有效的反馈,这种反馈让虚拟现实教育更加成熟,更加专业化。在数字娱乐领域,虚拟人的应用在影视、音乐、游戏等多种行业都有着无可比拟的优势。例如在影视行业,我们的虚拟人技术可以在虚拟现实的场景中“复活”已经死去的演员(如速度与激情的拍摄),而在游戏领域的应用则更加广泛,不仅仅是现在已经投入使用的养成游戏,在未来的游戏领域中,甚至所有的游戏NPC都可以将虚拟人模型应用其中,让虚拟现实中的游戏人物变得有血有肉,让玩家感受到游戏更深层的魅力,让游戏世界更加与真实世界相类似。

五、结束语

虚拟人是虚拟现实的重要组成部分,如今的发展也已经起步,并且取得了较为不错的效果,但是距离理想的虚拟人效果仍然具有一定的差距,尤其是在虚拟现实与真实世界的交互部分,虚拟人仍然难以脱离传统交互方式的束缚,无法真正实现智能化,这也是未来科学需要进一步研究的方向。总之,虚拟人技术在虚拟现实中的应用是一门充满挑战的多学科交叉的前沿领域,是一个将虚拟与现实,科学与艺术相结合的技术。我们相信在各个学科的共同发展、共同进步的大潮流下,虚拟人技术必将会步步完善,并且取得最终的研究成果。

虚拟人在虚拟现实中应用的技术思考与研究相关推荐

  1. 【20220605】文献翻译——虚拟现实中的可视化:一个系统的回顾

    Visualization in virtual reality: a systematic review 摘要 1 简介 4 结果和分析 4.1 工具.工具包和框架 4.2 数据可视化 4.3 信息 ...

  2. 虚拟现实中漫游方式的分类

    虚拟现实中漫游方式的分类 1 完全动作线索:一比一的物理运动 2 部分动作线索:原地运动 3 无动作线索:虚拟运动(virtual travel),用户不是真的在进行相应的运动,只是进行操作 4 总结 ...

  3. 航飞原始影像外方位元素_【技术】无人机倾斜摄影建模技术在虚拟现实中的应用...

    (如有侵权,请联系删除) 摘 要 针对于虚拟现实平台中构建三维场景的费时费力问题,基于无人机倾斜摄影建模技术构建三维模型,利用 3DS Max 建模软件进行模型优化,并结合 Unity 3D 引擎构建 ...

  4. 全景浏览技术在虚拟现实中的应用

    随着虚拟现实技术的发展,全景浏览技术越来越受到人们的关注.全景浏览技术是一种可以将场景全方位呈现给用户的虚拟现实技术,可以为用户带来身临其境的视觉和听觉体验.本文将介绍全景浏览技术在虚拟现实中的应用以 ...

  5. 京东网络开放之路——数据中心光互联技术的思考与实践

    "数据中心是云计算的核心支持平台,云计算的发展对数据中心网络架构提出了严峻的挑战,传统电互连网络架构难以在带宽.设备开销.能耗.管理复杂度等方面同时满足云应用的要求,因此以低能耗.低开销.高 ...

  6. 人会成为虚拟现实中的“机器人代码”吗?

    前几天,Facebook的首席执行官马克·扎克伯格再次重申了自己对Oculus Rift的信心,扎克伯格说,"对于Oculus,我们在做一个长期性的投资,我们在赌计算领域的未来.每隔10到1 ...

  7. 关于在呼叫中心业务中应用语音识别技术的探讨

    关于在呼叫中心业务中应用语音识别技术的探讨 摘要:本文首先给出了语音技术的应用现状,接着对语音识别技术在呼叫中心中可应用可尝试的业务进行探讨,最后提出呼叫中心业务中应用语音识别技术的虚拟CSR概念. ...

  8. Java开发与技术挑战——关于技术的技术思考

     Java开发与技术挑战--关于技术的技术思考 width="22" height="16" src="http://hits.sinajs.cn ...

  9. 下一代对话系统中的关键技术(下篇)

    上期,我们从理解力.拟人化.以及与人互动这三个聊天机器人在对话中的主要技术,说明了当前对话系统面临的主要挑战,本期我们将从满足信息需求和社交需求的角度,简述下一代谈话系统应具备的基本能力,并从技术和伦 ...

最新文章

  1. 哈夫曼树的生成及哈夫曼编码
  2. 旷视推出鼻纹识别,用AI寻找丢失宠物
  3. 【LeetCode | 二叉树前、中、后序遍历{迭代法}实现】
  4. Spark创建RDD的四种方式(一):从集合(内存)中创建 RDD代码示例
  5. 【Tools】Navicat Premium12安装教程
  6. 干掉项目中杂乱的 if-else,试试状态模式,这才是优雅的实现方式!
  7. Ceylon 1.0.0
  8. 安装nvidia-docker
  9. Java基础编程题:倒序输出九九乘法表
  10. 天堂2单机版如何架设mysql_[JAVA版本]新人入门级单机游戏架设教程
  11. IP冲突,中国移动光猫路由-中兴F673A之修改IP篇
  12. QQ、淘宝、阿里旺旺在线网页链接代码及详解 很实用
  13. getPrepayId php,php微信支付接口开发程序
  14. 工业革命4.0是光和算的革命,时代呼唤硬科技!
  15. 安卓手机玩游戏卡顿怎么解决_安卓手机卡顿如何解决?教你四招,流畅度立刻飙升!...
  16. JS基础第四课、JQ基础第一课(BOM、JQuery框架)
  17. 如何打造一份简历,让所有的hr看了都会眼前一亮
  18. LBS-----基站轨迹定位算法
  19. odoo14 文本字段动态设置字体样式颜色 decoration
  20. 读书笔记 | 《走出思维的误区》

热门文章

  1. CUDA--延迟隐藏
  2. PLC滑动平均值滤波(SMART 200梯形图篇)
  3. Kolmogorov-Smirnov检验
  4. S7-200SMART案例分析——运动控制编程
  5. python 数组写入文件 并 读取
  6. java正则表达式练习
  7. 什么是地狱回调?解决回调地狱的两种方法
  8. NNI 2 用于实例
  9. pulsesensor传感器以及STM32相关学习笔记
  10. Centos7新开一个终端并在新终端中执行命令