基于虚拟现实直播的多人网络教学系统

2022-11-07 10:49王思杰姜忠鼎
计算机应用与软件 2022年10期
关键词:全景视线客户端

王思杰 姜忠鼎

(复旦大学上海市数据科学重点实验室 上海 201203)(复旦大学软件学院 上海 201203)

0 引 言

虚拟现实利用计算机生成三维立体的虚拟场景,通过设备为用户提供视觉等感官模拟,使得用户可以置身于虚拟环境中并与之进行交互,获得强烈的沉浸感。虚拟现实可以分为投影虚拟现实和头戴式显示设备虚拟现实两大类[1]。投影虚拟现实使用多台投影仪或拼接屏,配合多投影显示系统构建大尺寸的屏幕。用户通过置身于显示虚拟场景的环绕式屏幕中,获得沉浸感。虚拟现实头戴式显示设备,也称虚拟现实头盔,通过在用户的双眼前使用两块屏幕显示具有视差的图像以呈现立体效果,并且采集用户头部运动数据,根据头部朝向和位置实时调整画面内容,以产生身临其境的体验。

全景视频是虚拟现实的重要内容。全景视频的优势在于,通过视频拍摄的方式采集全方位的图像信息,无须进行复杂的三维建模也可以构建沉浸式的环境,让用户体验身处视频拍摄地的沉浸感。全景视频与直播结合,更是可以让用户沉浸式地参与世界上另一地点正在发生的事件,目前市面上许多厂商都推出了集成视频拍摄、画面拼接、直播推流于一体的全景视频相机,如Insta360 Pro[2]、Gear 360[3]。这类全景相机的出现使得全景视频直播变得更为便捷。

数字化学习的起源可以追溯到20世纪60年代,由伊利诺伊大学开发的PLATO系统[4],它为当地的大学生提供课程作业。在线学习技术源自于20世纪90年代,学习管理系统的开发[5]。随着互联网技术的发展,在线学习在教育领域得到快速的发展。大型开放式网络课程MOOC是目前热门的网络教学方式。MOOC通常使用视频作为主要的教学材料,结合在线作业和互动式论坛收集学生数据评估教学效果。目前最具影响力的MOOC平台是由哈佛大学和麻省理工学院共同成立的edX和由斯坦福大学教授创立的Coursera。

MOOC的课程模式可以分为两种:xMOOC和cMOOC。cMOOC以自学为主,xMOOC与课堂教学模式相似。目前主流的MOOC平台都是基于xMOOC课程模式。王萍[6]对xMOOC模式进行了总结。xMOOC模式的主要几个模块为:视频、作业、测试、讨论,涵盖了教学过程中知识传授、复习巩固、效果反馈、交流分享的需求。

随着虚拟现实技术的发展,沉浸式学习成为MOOC的一个发展趋势[7],目前国内外很多研究者研究虚拟现实全景视频在教育培训领域的应用,并进行了相关实践。Tawhai[8]利用沉浸式全景视频进行法医教学。Roche等[9]把全景视频应用于体育教师的培训中。Theelen等[10]发现使用全景视频对职前教师进行培训可以提高其人际交流的能力。Gänsluckner等[11]认为在攀岩慕课中加入全视频可以提升教学效果。Argyriou等[12]使用全景视频制作互动程序用于文化遗产教育。McKenzie等[13]录制全景视频教学内容,用以评估全景视频对教学体验的影响。Harrington等[14]使用全景相机拍摄制作全景手术教学视频。哈佛大学在edX平台上对计算机课程进行虚拟现实直播[15]。

目前现有的使用全景视频的教学应用仍存在一些问题,难以满足日常教学的需求。首先使用媒体资源进行辅助教学和随堂练习是日常教学的重要环节,McKenzie等[13]与Harrington等[14]的应用通过视频后期的形式添加媒体内容,并非在直播过程中实时使用。目前现有虚拟现实直播应用对媒体资源的动态加载和交互的支持较差,影响了日常教学过程的完整性。另一方面,教学过程中教师和学生,学生和学生之间的互动十分重要。使用录播视频的虚拟现实教学,无法实现师生互动。目前现有虚拟现实直播课程,如哈佛大学在edX上直播的计算机课[15],并不支持课堂成员之间的实时互动,影响教学效果。并且,课堂教学过程中学生有没有注意听讲、对讲课内容是否感兴趣,是授课教师希望了解的内容。现有虚拟现实网络教学系统并未满足这一需求。

基于上述讨论,本文设计实现一套基于虚拟现实直播的多人网络教学系统,通过对虚拟现实直播在媒体资源以及多人交互方面进行增强,使得系统满足课堂教学的基本需求,并且利用虚拟现实特性打造沉浸式体验。媒体资源方面,本文设计并构建了一套虚拟现实直播媒体资源系统。系统支持图片、视频、网页和三维模型资源,在虚拟现实直播教学过程中动态地加载与交互。提升了教学环节的完备性,同时利用虚拟现实沉浸感提升教学体验;多人交互方面,本文设计一套应用于虚拟现实直播教学的多人互动方法。利用用户头部运动数据和空间声语音,实现了对于全景资源的多人协同浏览方法。通过对学生视线数据的收集和可视化,实现了教学过程中学生视线的实时反馈。

1 系统概述

基于虚拟现实直播的多人网络教学系统,使用全景相机对课堂教学进行虚拟现实直播,学生通过佩戴虚拟现实头盔参加到课堂教学中。系统在虚拟现实直播的基础上,增加了对全景视频、三维模型和网页等媒体资源的动态加载与交互。传统媒体资源在虚拟现实直播中得以延续,全景和立体的媒体资源在虚拟现实中能获得更好地沉浸感。另一方面,系统针对全景媒体内容,设计了一套多人协同观看方法,使得全景内容能够更好地应用到教学过程中。最后,系统收集学生的视线数据在教师端进行实时可视化,帮助教师了解学生的观看区域,得到教学效果的反馈。

基于虚拟现实直播的多人网络教学系统架构如图1所示。系统在教室使用全景相机进行拍摄和推流。客户端分为教师客户端和学生客户端,使用Unity3D引擎开发。教师客户端为桌面平台客户端,教师在进行虚拟现实直播时,通过这一客户端推送并使用媒体资源,与远程学生进行互动以及查看远程学生视线情况。学生通过学生客户端参加虚拟现实直播教学。本系统学生客户端支持使用桌面和移动端的虚拟现实头盔。

本系统使用四类服务器。流媒体服务器使用成熟的商业流媒体服务器Wowza Streaming Server,它能够提供稳定的流媒体服务,适用于本系统的应用情景。语音服务器使用Photon Server,负责网络语音功能。媒体资源服务器,负责本地媒体资源的分发传输。消息转发服务器基于Node.js开发,负责在教师和学生之间进行网络通信,传递控制消息和交互数据。

2 媒体资源使用

虚拟现实直播教学相较于传统网络直播教学的优势之一是沉浸感,用户通过虚拟现实头盔进行观看具有立体效果的全景视频,以达到置身教室中的临场体验。由于虚拟现实头盔的画面是在虚拟场景中进行呈现的,因此虚拟现实直播教学可以引入一系列媒体资源,如虚拟三维模型、全景图片和视频等。利用虚拟现实的沉浸感,提升这些媒体资源相对于传统教学的使用体验,从而提升虚拟现实直播教学的教学效果。常见的媒体资源如表1所示,本文设计了各类媒体资源在虚拟显示直播教学过程中的载入和交互方式。

表1 媒体资源示例

虚拟现实直播中的图片和视频资源主要指的是全景图片和视频。使用VR头盔观看全景媒体内容可以给人带来身临其境的体验。网页是教学过程中的常用资源,网页中包含多种媒体资源,是传统课堂中随堂练习的重要载体。三维模型资源应用于特定教学场景中,在VR头盔中观看三维模型可以观看到立体效果,相较于在屏幕上进行观看更具沉浸感。

媒体资源的使用流程,主要分为媒体资源加载、呈现、交互和释放四个部分。图2以三维模型资源为例呈现了媒体资源的使用流程,其中序号标识了三维模型资源的一次使用实例。

资源加载的关键点在于状态同步与容错。媒体资源的状态分为使用状态和交互状态。其中使用状态包括加载、呈现和释放,交互状态包括交互指令和交互数据。媒体资源的状态由教师客户端控制,在消息转发服务器中缓存。学生客户端通过从消息转发服务器获取资源状态,与教师客户端的媒体资源状态进行同步。容错方面,学生客户端在加载媒体资源时会进行错误检测,并处理能够自动处理的错误,重新加载资源。结合状态同步,错误排除后学生客户端能够恢复至教师客户端的媒体资源状态。图2中序号5至29描述了学生客户端检测媒体资源不存在后,从媒体资源服务器下载资源,最后通过状态同步还原媒体资源状态的流程。教师客户端的资源加载与学生客户端类似,增加了多个学生客户端加载协调者的功能,使得每个客户端媒体资源呈现的时间较为一致。图2中序号5′至7′描述了教师客户端等待所有学生客户端加载完成后,同步呈现媒体资源的流程。运用超时机制,使得个别学生客户端出错不影响整体客户端运行。

媒体资源交互分为独立交互和同步交互两类。独立交互是每个客户端单独对媒体资源进行交互。同步交互是学生客户端同步教师客户端的交互过程。同步交互包括离散型交互和连续型交互两类。离散型交互通过交互指令一次性地改变媒体资源状态,如调整视频的播放进度。连续型交互持续地改变媒体资源的状态,如旋转三维模型。对于连续型交互,教师端以固定时间间隔发送媒体资源交互数据。学生端缓存交互数据,对交互数据进行插值后使用,以得到平滑连续交互过程,如图2中序号32至36所示。记当前收到的交互数据为D1,时间为T1,缓存的上一次交互数据为D0,时间为T0。在后续的每一帧内,根据时间把在D0和D1中进行差值得到Dlerp。假设当前帧为收到D1后T时间,Dlerp可以根据式(1)计算。

(1)

媒体资源的释放由教师端进行控制,通过向学生端发送释放媒体资源的消息,释放客户端中已完成使用的媒体资源,如图2中序号10″至14″所示。

3 多人交互方法

本文设计一套应用于虚拟现实直播教学的多人互动方法。主要包含两个方法:(1) 利用用户头部、手部运动数据和语音,实现了对于全景资源的多人协同浏览方法,以满足教学过程中互动讨论的需求;(2) 收集学生视线数据并实现了一套视线可视化方法,以满足教学过程中学生视线实时反馈的需求。

3.1 基于运动数据的全景内容多人协同观看

在日常教学过程中,多人对同一教学内容进行交流讨论是常见的教学环节。在虚拟现实直播教学中,针对全景媒体资源,同样存在协同观看讨论、讲解的需求。多人协同观看需要解决两个问题:用户如何进行交流;如何帮助用户快速确定其他用户的观看区域。

对于用户交流问题,本系统使用网络语音作为多人协同过程中的交流方式。语音是较为高效便捷的交流方式。系统使用Photon Server语音服务器及插件Photon Voice实现客户端的语音采集和传输功能。插件支持空间声语音,语音可以从场景中的指定位置发出,用户可以根据空间声判断音源的大致方位。

接下来介绍如何帮助用户快速确定其他用户的观看区域。全景内容包括全景图片和全景视频,虚拟现实中全景内容是全方位显示的,协同观看的前提是关注区域能够在其他观众间传达分享。即用户需要可以方便地向其他用户指出观看区域的方法。由于佩戴虚拟现实头盔后缺乏统一的方位,不易找到参照物,仅通过语言描述位置较为烦琐。本文提出两种方法以提高协同观看交流的效率:基于用户虚拟化身、空间声和视口可视化的观看区域指引方法以及基于用户头部运动的引导式观看方法。

观看区域指引方法流程如图3所示。在场景中为参与多人协同观看的用户建立虚拟化身,虚拟化身面向对应用户的观看区域,并在球面网格上可视化该用户的观看区域。用户在进行多人协同观看时,首先根据三维空间声语音,定位说话对象虚拟化身的位置,然后根据虚拟化身的朝向找到该用户的观看区域。这一方法符合日常生活中的人与人自然交流的方式,听到声音后找到说话的人,根据说话人的指示找到对方关注的区域。虚拟化身的朝向以及视口可视化的位置,通过采集和应用用户的头部旋转数据实现。

Nguyen等[16]提出的利用空间声语音和视口可视化的引导方法,具有准确性较低和交互不自然的问题。Nguyen等[16]的方法中视口可视化的范围是相机渲染的范围,经过头盔的透镜后,用户实际可见区域小于相机渲染的范围。本文通过测量头盔实际可见区域的方式,优化了视口可视化的范围,使得可见区域更为准确。另一方面,Nguyen等[16]的方法中空间声语音从视口区域发出,本文引入了用户的虚拟化身,空间声语音从虚拟化身上发出,相较于从视口区域发出更为自然,有助于增强用户的沉浸感。

基于用户头部运动的引导式观看方法流程如下:参加多人协同观看的用户分为两种角色,其中一人作为引导者,其他用户作为观察者。引导者分享自己所看到的画面,并进行介绍讲解。参观者在画面中央以屏幕的形式,显示引导者观看的画面内容,如图4所示。屏幕中的内容随着引导者观看区域而变化,不受参观者头部运动的影响。屏幕与视野边缘之间有留空,留空区域叠加半透明黑色,使中央的观察屏幕相对凸显。留空区域的画面内容会随着用户的头部运动而改变,使得用户头部运动可以获得响应的视觉反馈,从而降低用户的眩晕感。这一模式下,参观者可以直接看到引导者的观看区域,省去了通过交流找到同一区域的过程。引导者可以绘画标记线,更精确地指出关注区域。适合授课教师进行带领讲解,或是请某一同学进行分享介绍的场景。引导式观看通过采集用户头部旋转数据配合观察相机渲染RenderTexture实现。标记线绘画通过采集用户手部运动数据结合Unity3D中拖尾渲染组件实现。

Nguyen等[16]提出了类似的引导式观看方法,但忽略了用户佩戴头盔时头部倾斜对引导式观看的影响,实际可用性较低。在引导式观看模式下,用户的头部旋转数据被用于还原用户对于全景内容的观看过程。用户佩戴虚拟现实头盔观看全景视频画面时,头部可能会发生倾斜,即绕视线方向所在的轴发生旋转。这样的旋转会导致被引导用户观看的画面内容产生倾斜,增加用户的眩晕感。本文对这一问题进行了优化,对于用户头部旋转采用数据,去除其欧拉角的z轴旋转,以消除绕视线方向的旋转抖动。使得被引导用户观看的画面内容更为稳定。增强了这一交互方式的可用性,提升用户体验。

3.2 基于眼球追踪的学生视线可视化

课堂教学过程中学生有没有注意听讲、对讲课内容是否感兴趣,是授课教师希望了解的内容。传统课堂教学过程中老师可以通过直接观察学生的眼神等情况,判断学生的兴趣程度,从而调整教学内容。远程直播教学过程中,直接观察每个同学的情况较为困难,但是这一需求仍然存在。本系统使用基于眼球追踪的视线可视化方法,帮助授课教师把握课堂中学生的实时观看区域。

视线可视化的流程如图5所示。首先在学生端通过眼球追踪硬件配套的开发工具包获取用户的三维视线数据。然后对视线数据进行预处理,计算可视化所需的数据。接下来通过消息转发服务器把视线相关数据发送到教师客户端,教师客户端收集每个学生的视线数据通过可视化的方式进行呈现。

本系统的视线可视化方法包括整体视线可视化和个人视线可视化两部分。整体视线可视化帮助授课教师了解学生视点在虚拟现实视频画面中的分布情况。个人视线可视化让教师可以详细查看某一学生的视线信息。这为教师分析教学效果提供了更多的维度。

整体视线可视化,主要包含三个视图、一个整体视图和两个关键区域视图。整体视图在全景视频展开画面上,以红色半透明圆点的形式呈现每个学生的视点位置。整体视图帮助教师以全局视角了解学生的关注区域。关键区域视图呈现全景画面中教师关心的某一区域内的视线分布情况,一般为教室内的黑板区域和课件区域,具体位置可以配置。关键区域视线可视化使用球面网格作为屏幕呈现全景视频画面,使用位于球内的观察相机渲染关键区域画面。在关键区域画面上使用半透明红色圆点表示学生的视点。在关键区的两侧,以进度条和分数的形式,可视化关注点在该区域内的学生占全体学生数量的比例。以帮助授课教师快速掌握全体学生的视线集中程度。

教师可以点击整体视线可视化界面上的视点,调出该视点对应学生的个人视线信息可视化界面。选中的视点被放大,颜色改变为黄色作为高亮显示并添加描边效果。个人视线信息可视化内容包括:学生姓名、观看时间统计和视线分布饼状图。观看时间统计显示该名学生视线在两个关键区域内的停留时间。视线分布图以饼状图的形式,呈现学生视线落在不同区域的占比,帮助教师快速了解某一学生的观看区域分布。

4 实 验

4.1 实验环境

本文在实验室模拟,使用本系统对课堂教学进行虚拟现实直播,实验场景如图6所示。运行环境由一名教师和30名学生参与,其中教师和2名学生是真实用户,其余28名学生为模拟节点。教师使用桌面平台的客户端。一名学生佩戴桌面端虚拟现实头盔HTC Vive Pro Eye。另一名学生使用移动端VR一体设备HTC Vive Focus Plus,外接7invensen眼球追踪设备。另外使用6台计算机设备作为模拟节点,运行28个未连接VR头盔的桌面学生客户端,模拟多用户时使用情况。系统使用Insta360 Pro负责全景视频直播推流。系统共需要三类服务器,使用一台服务器节点安装运行。表2列出了实验使用的计算机节点硬件配置以及模拟节点运行的客户端数量。计算机节点之间通过千兆有线局域网连接,移动端头盔通过百兆无线网接入局域网内。全景相机以3 840×3 840分辨率、24帧/s的帧率、15 Mbit/s码率进行直播推流。因此每个客户端的网络带宽需求不超过20 Mbit/s,30名学生使用总带宽不超过600 Mbit/s,千兆网络可以满足带宽需求。

表2 实验计算机硬件配置表

4.2 实验结果

我们首先测试媒体内容的使用。授课教师使用教师客户端对学生推送媒体资源,教师端资源控制界面如图7(a)所示,教师可以通过这界面推送预先配置的媒体资源。实验主要对三维模型和网页资源的使用进行了测试。

对于三维模型资源,教师为学生推送了狮身人面像的模型,并且在教师客户端对三维模型进行旋转操作,如图7(b)所示。学生端相应的三维模型呈现如图7(c)所示,学生端的三维模型与教室端进行了一致的旋转,用以增强操作隐喻提升沉浸感的虚拟手也在模型右下角正确显示。

对于网页资源,教师为学生推送了网页形式的课练习,学生客户端的呈现效果如图7(d)所示。网页资源可以正确显示,学生可以通过手柄射线点击网页中的选项进行作答。

实验结果表明,本系统支持由教师端推送三维模型和网页资源。教师端可以对三维模型进行旋转操作,并在学生端同步三维模型的旋转,方便教师进行讲解。网页资源能够在学生端正确显示,学生可以通过手柄进行交互。

接下来我们测试多人协同观看效果。实验由2名学生共同完成,情景为教师端推送全景视频资源后,2名学生佩戴虚拟现实头盔,对全景媒体资源进行协同观看。分别测试3.1节中提出的基于用户虚拟化身、空间声和视口可视化的观看区域指引方法和基于用户头部运动的引导式观看方法。

首先测试基于用户虚拟化身、空间声和视口可视化的观看区域指引方法,学生A注意到了全景视频画面中的某一区域如图8(a)所示,他使用语音呼叫学生B一同观看。学生B听到学生A的语音后,通过空间声定位到了学生A虚拟化身所在的位置,如图8(b)所示。接下来学生B根据学生A的虚拟化身的朝向,找到了学生A的观看区域,如图8(c)所示,学生A的观看区域使用白色边框标记出来。学生A通过这一方法自然地找到了学生B的观看区域。

接下来测试引导式观看方法,学生A引导学生B观看全景视频。图9(a)为学生A观看的画面,学生A使用标记线的功能圈画出了金字塔顶,且学生A在观看时头部发生了倾斜导致画面随之倾斜。图9(b)为学生B画面中显示的学生A的观看内容,可以看到经过学生A观看画面和标记线正确地呈现在了学生B画面中。经过画面防抖处理,学生A倾斜的画面得到了修正,提升了学生B的观看体验。

实验结果表明,本系统提供的全景视频多人协同观看方法,能够帮助实验者快速分享或找到其他参与者的观看区域。协同效果符合预期。

最后测试视线可视化效果。实验由2位佩戴VR头盔的学生参加,并添加28个未连接VR头盔的桌面客户端节点,共计30个学生客户端节点,以测试系统的多用户支持能力。实验结果如图10所示,图10(a)为可视化界面,左上方两个视图为关键区域视图,分别为课件和白板区域。30名学生的视点以红色半透明圆点的形在可视化界面中进行显示。其中高亮并描边的顶点为教师选中的观察顶点,其个人视线信息显示在右侧的界面中。图10(b)为教师选中顶点在学生端的截图,其中圆点为当前学生的视点,可以看到该视点位置与教师端可视化显示的位置一致。

在系统实时性方面,本文统计了实验过程中视线数据从学生端发送到教师端接收的耗时。实验中教师端收到视线数据后,向学生端发送相同的回执消息。学生端计算从发送视线数据到收到回执消息的时间间隔,取其一半作为传输耗时的参考值。学生端每0.1 s向教师端发送一次视线数据,实验截取了连续5 min内共3 000个视线数据的传输延迟进行分析。图11列出了桌面平台学生客户端视线数据延迟,延迟最大值为28 ms,平均延迟为9.4 ms。图12列出了移动平台学生客户端视线数据延迟,延迟最大值为73 ms,平均延迟为24.3 ms。从实验结果可以看出,移动端客户端由于使用无线网络与系统连接,延迟高于使用有线网络的桌面端客户端。总体上看,系统网络传输最大延迟低于100 ms,平均延迟低于30 ms。这一延迟用户在实际使用过程中不易察觉,对系统的实时性影响较小。

实验结果表明,本系统的学生视线可视化功能,能够正确地反映学生的观看区域,支持多用户的可视化。视线数据传输的延迟可以满足系统实时性的需求。

5 结 语

本文设计实现一套基于虚拟现实直播的多人网络教学系统,通过对虚拟现实直播在媒体资源以及多人交互方面进行增强,使得系统满足课堂教学的基本需求,并且利用虚拟现实特性打造沉浸式体验。媒体资源方面,本文设计并构建一套虚拟现实直播媒体资源系统。系统支持图片、视频、网页和三维模型资源,在虚拟现实直播教学过程中动态地加载与交互,提升了教学环节的完备性,同时利用虚拟现实沉浸感提升教学体验。多人交互方面,本文设计一套应用于虚拟现实直播教学的多人互动方法,利用用户头部、手部运动数据和空间声语音,实现了对于全景资源的多人协同浏览方法。通过对学生视线数据的收集和可视化,实现了教学过程中学生视线的实时反馈。实验结果表明,系统具有良好的可用性,能够较好地实现直播教学过程中媒体资源使用、多人协同观看和学生视线反馈。未来我们将把教师客户端发布到增强现实头盔中,使用裸手进行交互,使得教师在进行真实世界的授课的同时,可以沉浸式地参与虚拟环境的交互。

猜你喜欢
全景视线客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
要去就去视线尽头的山
定制化全景声耳机系统 JVC EXOFIELD XP-EXT1正在热销中
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
那座山
全景敞视主义与侦探小说中的“看”
全景搜索
媒体客户端的发展策略与推广模式
当代视线