专利名称:基于真实球拍的协同式增强现实乒乓球系统构建方法
技术领域:
本发明涉及虚拟现实、增强现实和计算机图形学领域,具体地说是一种基于真实 球拍的协同式增强现实乒乓球系统构建方法。
背景技术:
增强现实(Augmented Reality,简称AR)是虚拟现实的进一步拓展,它借助必 要的设备使计算机生成的虚拟对象(Virtual Object,简称V0)与客观存在的真实环境 (RealEnvironment,简称RE)共存于同一个增强现实系统中,从感官和体验效果上给用户 呈现出虚拟对象与真实环境融为一体的增强现实环境,增强现实具有虚实结合、实时交互、 三维注册的基本特点。协同式增强现实(Collaborative Augmented Reality,简称CAR)技术是增强现实 技术和网络技术的结合,是增强现实技术的重要组成部分,它可以使多个用户同时感受到 虚拟对象与真实环境融为一体的增强现实场景,并能够在网络通信平台上进行各种交互操 作和协同工作,共同完成预定任务。随着增强现实技术和网络技术的不断发展,构建协同式 增强现实应用系统成为可能,为产品设计与制造、医疗模拟与分析、军事训练与演习、异地 协同教育和体育比赛等领域提供了新思路,在工业、医疗、教育、军事、体育和娱乐等领域具 有广泛的应用前景。所以,目前有很多基于增强现实技术和网络技术的应用,构建该类应用 不仅要解决标志物检测、一致三维注册等问题,还要解决数据传输和状态转换等问题,保证 协同工作的多用户具有一致的感官体验并能够协同完成预定任务。目前,有一些增强现实应用是需要多用户在同一真实环境进行交互并完成预 定任务的。2005年,韩国GIST U-VR实验室的研究者设计了一个协同式增强现实台球 (Collaborative biIliARds)应用系统,两个用户使用头盔显示器,围绕真实球桌使用真实 球杆击打虚拟台球,并可以自行设置虚拟障碍物体,实现了虚拟球同真实球杆、真实球桌和 虚拟物体的多次碰撞,并采用了力反馈装置使得交互更加真实。2007年,瑞士ETH大学计算 机视觉实验室设计并实现了一个具有触觉反馈的增强现实乒乓球系统,该系统利用在真实 乒乓球桌贴的标志物用于跟踪注册,并利用跟踪装置定位真实球拍和真实球桌的相对位置 和方向,在该系统中,球拍和球都是计算机绘制的虚拟物体,球桌是真实的,双方用户站在 球桌对面协同打球。2007年,哥伦比亚大学的Ohan Oda等人设计了一个增强现实赛车游戏 系统,该系统利用XNA游戏开发平台对现有的赛车游戏系统进行修改,通过跟踪球桌上的 标志物注册虚拟物体,使得用户能够控制虚拟物体进行赛车。但是,一方面这些应用需要比 较复杂的跟踪装置和力反馈装置,不便于系统的搭建和推广,另一方面,这些应用系统都将 双方用户限制在同一个真实环境中,限制了系统的使用范围。因此,随着网络技术的不断发展,出现了一些基于网络的协同式增强现实应 用。2004年,芬兰VTT技术研究中心研究者利用协同式增强现实技术模拟了乒乓球运 动,该系统能够使得使用真实乒乓球拍的用户面对摄像头同通过网络连接的异地用户协 同打球,但是,该系统仍然需要在乒乓球拍上贴上人工标志物。2007年,日本筑波大学的ShinyaMinatani等人构建了一个远程面对面的桌面混合现实系统。该系统通过在一个可变 形三角网格平面上贴纹理来实时绘制对手的上半身和手臂,其中每一帧人的纹理和棋子位 置通过背景相减的方法获得。该系统实现了基于网络的混合现实黑白棋游戏,通过用户数 据报协议传输纹理数据以及其它数据,通过传输控制协议传输同步信号,用于帧同步和处 理数据传输延时。但是,这些系统都需要在真实环境中放置人工标志物以进行注册和定位, 破坏了场景的真实性和用户的体验感。另外,2007年澳大利亚墨尔本大学的Floyd等人搭建了一个基于网络的三方交互 式乒乓球游戏系统。在该系统中,每个用户需要半个乒乓球桌,利用真实的乒乓球拍击打真 实的乒乓球,乒乓球同对面的大屏幕进行碰撞,而大屏幕上显示的是其他两个用户的画面, 通过蓝牙耳机设备捕获乒乓球的撞击位置并进行计分,最先将对方击垮的用户将获得胜 利。在该系统中并没有虚拟物体,不需要跟踪注册乒乓球拍,但是该系统并没有真正达到多 用户交互打球的功能,用户只是自己在跟屏幕打球,而不是多个用户协同控制同一个乒乓 球,这样降低了游戏性和体验感。2008年中国深圳泰山在线科技有限公司发布了旋风乒乓 球系统,该系统利用三维动作识别器识别人体各种运动信息,将人体的动作特征反映在虚 拟场景中;利用该系统,用户可以通过互联网平台与远方亲朋好友进行联机对战,也可选择 各种不同等级的智能电脑进行人机对抗。但是该系统中显示给用户的是一个完全虚拟的运 动环境,用户看不到远方亲朋好友的影像,体验不到同真实好友打球的感觉;该乒乓球系统 跟踪的主要目标为运动帽和手柄,并没有跟踪真实的乒乓球拍。
发明内容
根据上述实际需求和关键问题,本发明的目的在于提出一种网络环境下基于真 实球拍的协同式增强现实乒乓球系统构建方法,该方法不需要采用特殊的跟踪装置跟踪真 实的乒乓球球拍,也不需要在乒乓球拍上贴人工标志物,而是利用颜色特征进行真实乒乓 球球拍的检测和跟踪,设计实现虚拟场景与真实场景的虚实三维注册,将虚拟场景映射到 真实球拍、参与用户、真实环境的视频图像空间坐标系,根据真实球拍的运动信息,设计实 现虚拟乒乓球与真实球拍、虚拟球桌、虚拟球网等对象之间的碰撞检测,并确定和表现虚拟 乒乓球碰撞后的运动轨迹,然后给出有限状态机和消息处理机制,控制乒乓球系统运行过 程的各种状态转换,确保多个用户具有相同的乒乓球运动体验,最后将合成后的增强现实 视频展现给用户,用户不仅能看到对方好友的真实影像,同时可以看到虚拟物体,并利用球 拍同虚拟物体进行交互,实现了两个用户在网络平台上使用真实球拍协同击打虚拟乒乓球 的任务。为完成发明目的,本发明采用的技术方案是构建一个基于真实球拍的协同式增 强现实乒乓球系统所需要的方法,主要包括视频捕获,捕获本地的视频数据,用于真实乒乓 球拍的跟踪注册和发送给对方用户显示;乒乓球拍跟踪注册,乒乓球拍注册的主要目的是 将真实的乒乓球拍和虚拟的乒乓球桌及虚拟乒乓球同处于同一坐标系下,在以虚拟乒乓球 桌中心为世界坐标系原点的坐标系下检测虚拟乒乓球和真实乒乓球拍的交互;检测虚拟乒 乓球和真实乒乓球拍、虚拟乒乓球桌、虚拟球网以及虚拟墙的碰撞,计算每一帧虚拟球的位 置和运动参数;状态控制机制,控制双方用户打球过程,对双方用户当前所处状态进行抽象 和处理,保证双方打球过程合理和一致;发送消息,需要发送的消息有连接建立消息,视频
5数据消息,球拍位置消息,球的位置消息,球出界或触网消息,发送这些消息用来完成双方 通信并改变双方所处状态;接收消息,该模块负责将接收到消息放到消息堆栈中,待消息处 理模块读取和处理;消息处理,主要功能为设置本地虚拟乒乓球的位置,将接收到的视频数 据传给绘制模块,并改变当前状态;虚拟物体绘制,根据真实乒乓球桌和乒乓球的大小和颜 色绘制虚拟物体,用户打球的位置离摄像头的距离正好为球桌的长度,使得用户对着大屏 幕感觉同对面真实的朋友打球一样;网络传输,通过网络连接多个用户,并在该网络平台下 收发消息,保证用户之间的通信正常;显示增强现实视频,将对方传输过来的压缩视频数据 进行解压,将己方的球拍用虚拟球拍的方式显示在视频中,同绘制的虚拟物体一起显示。捕获的视频数据的作用主要有两方面,一方面是为了跟踪真实的乒乓球拍,另一 方面是为了通过网络传输平台给对方用户并同虚拟物体进行混合显示。由于直接捕获的视 频数据较大,因此在数据传输时要首先压缩视频数据,对方收到视频数据后再进行解压。但 跟踪真实的乒乓球拍时采用的是原始的视频数据。在进行视频数据压缩时需要考虑网络状 态,根据不同的网络状态设置不同的压缩比率,使得双方用户能够通过网络平台流畅的收 发视频数据并能够显示较好的视频效果。通过颜色特征检测每一帧视频图像中的真实乒乓球拍,并利用位置信息跟踪真实 的乒乓球拍;利用的主要特征为颜色信息和位置信息,颜色信息是指乒乓球拍的一个表面 颜色是红色,位置信息是指在用户打球时离摄像头的位置是基本固定的,因此球拍在视频 图像中出现的位置则是在某个较小区域内;设置颜色阈值提取出真实乒乓球拍的红色区 域,利用位置信息在上一帧乒乓球拍出现的周围搜索红色区域,大大加快了搜索速度,减小 计算开销。检测到乒乓球拍的红色区域后,计算该区域的质心,利用质心和红色球拍的面积 近似计算出乒乓球拍的正方形包围盒;利用该正方形包围盒计算摄像机外参数,根据外参 数和摄像机内参数计算出投影矩阵,根据投影矩阵和球拍在图像中的坐标可以计算出球拍 在世界坐标系下的坐标。将真实的乒乓球拍和虚拟的乒乓球桌及虚拟乒乓球同处于同一坐 标系下,在以虚拟乒乓球桌中心为世界坐标系原点的坐标系下检测虚拟乒乓球和真实乒乓 球拍的交互。绘制的虚拟物体有5个己方虚拟乒乓球拍,虚拟乒乓球桌,虚拟乒乓球网,虚拟 乒乓球和虚拟墙壁,所有虚拟物体都按照真实的物体大小进行绘制。虚拟乒乓球桌的长 2. 74米,宽1. 525米,离地面高0. 76米,台面与水平面平行;虚拟乒乓球桌贴着真实乒乓球 桌的纹理。虚拟球网宽1.83米,网高0.1525米,绘制采用网格状绘制。虚拟乒乓球直径为 40毫米,颜色为橘黄色;绘制虚拟球的同时需要绘制虚拟球在桌面上的投影,使用户对深 度的感知更加准确。虚拟墙壁的作用是在人机对打时回击虚拟球的,宽度同虚拟乒乓球桌 的宽度,高度1米;绘制虚拟墙壁时设置其为透明。检测虚拟乒乓球和真实乒乓球拍、虚拟乒乓球桌、虚拟球网以及虚拟墙的碰撞,当 该帧中虚拟球的位置在平面区域上方,而下一帧中虚拟球的位置在平面区域下方,说明在 该帧到下一帧的过程中发生碰撞;碰撞后的运动轨迹计算利用镜面反射原理并考虑重力加 速度的影响;虚拟乒乓球如果同虚拟球网碰撞,虚拟乒乓球直接落网;虚拟乒乓球如果出 界则重新发球。状态控制机制是控制乒乓球系统运行过程的各种状态转换;乒乓球系统运行过程 为打球双方系统建立连接,甲方系统发送发球消息,乙方系统接收到甲方发球消息并设置虚拟球的位置信息,甲方系统计算虚拟乒乓球是否同虚拟球桌、虚拟球网发生碰撞,并计算 每一帧虚拟球的位置和运动参数,当虚拟乒乓球出界,则重新发球;系统中涉及的状态包括 初始状态(即建立连接状态),等待状态,发球状态,循环状态,设置状态;每个状态的转换 根据本方状态变换和对方发送的消息进行改变;若本方状态为初始状态则发送初始化消 息,若收到回复消息则本方状态转换为等待状态;若本方状态为等待状态,在本方用户发出 发球动作后转换状态为发球状态,若接收到对方发出的发球动作消息则转换状态为设置状 态;若本方状态为发球状态,发送发球消息给对方,己方状态转换为循环状态;若本方状态 为设置状态,设置球的位置和运动信息,转换状态为循环状态。采用多线程进行数据收发;创建两个线程,一个线程发送消息,一个接收消息;每 接收到发送消息命令即发送消息;每接收到对方发送过来的消息即将消息放在消息堆栈 中,等待消息处理模块处理消息。接收和发送采用单播模式,由于打球双方是对等的,因此 采用服务器_服务器模式进行连接。本发明与现有的技术相比,其有益的效果是1、本发明根据网络通信平台和增强 现实的特点,给出了协同式增强现实乒乓球应用构建的基本步骤和基本框架,利用该步骤 和框架可以将协同式增强现实乒乓球应用的各个部分模块化,方便开发同类型的应用系 统,简化了应用系统的开发过程,使得程序可重用性更高。2、本发明可跟踪和注册真实的乒 乓球拍,设置颜色阈值在每帧视频图像中搜索红色乒乓球区域,利用乒乓球拍在图像中可 能出现的区域位置信息缩小了初始乒乓球拍搜索区域,并利用上一帧乒乓球拍预测下一帧 乒乓球拍可能出现的区域,进一步缩小了搜索区域,进而使得计算开销减小,节约了大量的 系统资源。3、本发明利用有限状态自动机控制乒乓球系统运行过程的各种状态转换,将系 统运行过程进一步形式化,简化了系统运行过程的管理,在保证系统运行合理的同时,方便 系统进一步的优化,同时方便了系统的进一步扩展,并提高了程序的可读性和重用性。4、本 发明给出的真实物体和虚拟物体的混合方式每个用户可以看到对方的真实场景及虚拟场 景,另外,将自己的球拍绘制在虚拟场景中,用户以第一人称视角打球,模拟用户在真实世 界中打球的视角,使得用户具有较好的沉浸感和体验感。5、本发明的消息接收、发送和处 理,采用多线程的方式接收和发送消息,将消息放在堆栈中等待处理,分离了接收和处理过 程,提高了系统的运行效率,使得系统运行更加流畅。
图1是本发明系统总体架构图;图2是本发明的系统示意图;图3是本发明的主流程图;图4是本发明球拍搜索窗口示意图;图5是本发明图像坐标系、摄像机坐标系与世界坐标系关系图;图6是本发明判断碰撞点是否在边界内示意图;图7是本发明有限状态机状态图。
具体实施例方式下面结合附图对本发明作详细说明。
参阅图1本发明的系统总体架构图,本发明的总体架构主要包括9个部分(1)视 频捕获,捕获本地的视频数据,用于真实乒乓球拍的跟踪注册和发送给对方用户显示;(2) 球拍跟踪注册,球拍是该系统人机交互的唯一工具,因此球拍的跟踪注册精确性很重要。球 拍注册的主要目的是将真实的球拍和虚拟的球桌及虚拟球同处于同一坐标系下,在以虚拟 球桌中心为世界坐标系原点的坐标系下检测虚拟球和球拍交互;(3)虚拟乒乓球碰撞检测 和轨迹计算,检测虚拟乒乓球和真实乒乓球拍、虚拟乒乓球桌、虚拟球网以及虚拟墙的碰 撞,计算每一帧虚拟球的位置和运动参数;(4)状态控制器,控制双方用户打球过程,对双 方用户当前所处状态进行抽象和处理,保证双方打球过程合理和一致;(5)发送消息,需要 发送的消息有连接建立消息,视频数据消息,球拍位置消息,球的位置消息,球出界或触网 消息,发送这些消息用来完成双方通信并改变双方所处状态;(6)接收消息,该模块负责将 接收到消息放到消息堆栈中,待消息处理模块读取和处理;(7)消息处理模块,主要功能为 设置本地虚拟乒乓球的位置,将接收到的视频数据传给绘制模块,并改变当前状态;(8)虚 拟物体绘制,根据真实乒乓球桌和乒乓球的大小和颜色绘制虚拟物体,用户打球的位置离 摄像头的距离正好为球桌的长度,对着大屏幕感觉同对面真实的朋友打球一样;(9)显示 增强现实视频,将对方传输过来的压缩视频数据进行解压,将己方的球拍用虚拟球拍的方 式显示在视频中,同绘制的虚拟物体一起显示。参阅图2本发明的系统示意图,本发明的硬件配置包括每个用户需要一台连接 计算机的摄像机、一个显示器、一台连接网络平台的计算机和一个真实的乒乓球拍。其中一 台摄像机用来捕获用户视频图像以传输给对方显示和捕获乒乓球拍的运动;一个较大的显 示器用来显示合成后的增强现实视频;一台连接网络平台的计算机提供计算资源和网络通 信平台,连接打球双方用户;一个真实的乒乓球拍提供人机交互的工具,由于球拍的跟踪和 显示是利用红色颜色特征进行检测的,用户需要将红色拍面对着摄像机;虚拟物体包括经 过注册后的球拍、虚拟乒乓球、虚拟乒乓球桌、虚拟球网。参阅图3本发明的主流程图,本发明基于真实球拍的协同式增强现实乒乓球系统 首先利用摄像机捕获视频数据,然后跟踪注册真实的乒乓球拍,利用状态控制器控制乒乓 球系统运行过程的各种状态转换,在状态转换的过程中要利用到消息发送、接收和处理模 块,同时要处理虚拟乒乓球和球拍、球桌、球网等平面之间的碰撞,计算虚拟乒乓球的运动 轨迹,然后根据以上得到的对方视频数据、球拍位置、虚拟乒乓球位置等信息绘制增强现实 视频,这样用户就看到了经过增强的乒乓球系统,双方用户协同完成击打乒乓球任务。首先利用一种基于颜色的无标志物跟踪注册方法跟踪和注册真实的乒乓球拍。在 该基于真实球拍的协同式增强现实乒乓球系统中,乒乓球、球桌和球网都是虚拟的,人机交 互的工具就是真实的乒乓球拍,为了实现人和乒乓球的交互,就需要跟踪和注册真实的乒 乓球拍,将虚拟物体和乒乓球拍映射到同一坐标系下。跟踪乒乓球拍利用乒乓球拍的红色 颜色特征和乒乓球拍在视频图像中出现的位置信息。参阅图4本发明球拍搜索窗口示意 图,首先定义初始搜索窗口,如图4左图中虚线框包围区域,在该区域中搜索红色区域,采 用的方法为检测每个像素点的RGB值,如果红色通道的值R在三通道(R:红色通道,G 绿色 通道,B:蓝色通道)中所占比值大于阈值λ则该像素为红色,S卩如果R/R + G + B > λ
则标记该像素点为红色区域;然后对红色检测后的图像进行区域内的中值滤波 (中值滤波是将每一象素点的灰度值设置为该点邻域窗口内的所有象素点灰度值的中值, 用以消除孤立的噪声点。),去掉一些不连续的红色像素点,剩下部分为红色球拍区域;然后 统计红色区域的像素点个数作为真实乒乓球拍的面积,计算乒乓球拍的质心,质心计算方 法为 质心的纵坐标为 其中Sx为所有红色像素点的横坐标的和,Sy为所有红色像素点的纵坐标的和,IP 为所有红色像素点的个数。根据质心和红色区域的面积,将跟踪到的红色区域近似为-
正方形,可以得到正方形的边长
,根据质心和边长就可以计算正方形的各个顶点。这
样就得到了初始视频图像中用于注册的正方形。然后在计算后续视频图像中真实乒乓球拍的正方形包围盒的时候,利用上一帧得 到的乒乓球拍的正方形包围盒的位置,根据球拍连续运动的原则,在上一帧得到的乒乓球 拍的正方形包围盒周围进行红色区域的搜索,如图4右图中虚线框包围区域所示,该区域 为根据上一帧得到的乒乓球拍的正方形包围盒生成的搜索区域;不断执行该方法即可得到 每一帧视频图像中用于注册的真实乒乓球拍的正方形包围盒区域。参阅图5本发明图像坐标系、摄像机坐标系与世界坐标系关系图,利用乒乓球拍 进行注册也就是从图像坐标系到世界坐标系的转换过程,由图5及透视原理可知图像坐标 系和世界坐标系的关系可用以下公式表示,首先是从图像坐标系到摄像机坐标系的转换公 式, 其中,xc, y。为图像坐标系下的坐标,h为图像坐标系数,根据图像大小由用户指
定,Xc, Yc, Zc为摄像机坐标系下的坐标,=Lay=与,f为摄像机焦距,
为摄像机
图像平面中心位置坐标讽完全由ax,ay,U(1,V(1决定,由于ax,a y,uQ,Vtl只与摄像机内部 结构有关,因此M1被称为摄像机内部参数,简称内参数。其次是从摄像机坐标系到世界坐 标系的转换公式 其中,Xc, Yc, Ζ。为摄像机坐标系下的坐标,Xff, Yff, Zw为世界坐标系下的坐标, , ζ, G为旋转向量R,表示由摄像机坐标系到世界坐标系需要如何旋转,/为平移向量,表示由摄像机坐标系到世界坐标系需要如何平移,由于M2完全由摄像机相对于世界坐标系 的方位决定,称为摄像机的外部参数,简称外参数;通过跟踪到的球拍正方形包围盒计算出 外参数即可将虚拟物体注册到乒乓球拍所在的世界坐标系下。获得了真实乒乓球拍的正方形包围盒之后,可以找到正方形的两对平行边,在摄
a,x + b,y + c·, =0
像机坐标系下可以表示这两条边
然后利用摄像机标定获得的内参数M1,
将边的表示公式代入到上述从图像坐标系到摄像机坐标系的转换公式,可以得到两个平面 公式 这两个平面的两个方向向量 和G应该是垂直的,但是由于通过图像得到的真实 乒乓球拍包围盒可能不是正方形,因此需要对这两个方向向量进行补偿,补偿方法就是分 别在 和G的两侧分别扩展一定的角度生成垂直的两个向量^和€,然后给出一个向量G垂
直于g和ζ生成的平面,这样就获得了外参数矩阵中的旋转矩阵[ ,ζ]。在给定旋转矩阵
之后,将正方形的四个顶点在摄像机坐标系下的坐标和在世界坐标系下的坐标,代入到上 述从摄像机坐标系到世界坐标系的转换公式中去,求解方程就可以获得平移矩阵/,这样外 参数矩阵礼就得到了 ;通过内参数矩阵和外参数矩阵就将虚拟物体和真实世界的物体统一 到同一个坐标系下。在完成上述真实乒乓球拍的注册之后,真实乒乓球拍、虚拟球桌和虚拟乒乓球都 处于同一坐标系下,由于在该系统中唯一不动的物体为虚拟球桌,因此我们选取虚拟球桌 中心为世界坐标系原点。在该坐标系下,系统捕获球拍的运动,检测虚拟球和真实球拍、虚 拟球桌、虚拟球网的碰撞。在碰撞过程中需要考虑的问题主要有(1)虚拟球是否和各平面 发生碰撞;(2)发生碰撞点是否在平面边界内;(3)根据是否碰撞完成打球过程的计分。首先通过计算虚拟球和各平面的相对位置关系完成碰撞检测,如果当前帧虚拟球 位置在平面上方,而下一帧虚拟球位置在平面下方,则在该帧内发生碰撞;然后根据碰撞原 理计算球的运行轨迹,球的运行轨迹计算借鉴镜面反射的原理,同时加入了重力加速度的 影响,如公式所示 给出了球在碰撞前后的运动变化,其中,g为重力加速度,Vplam为平面速度,当碰撞 平面为虚拟球桌时,该值为0。如公式所示 给出了球在非碰撞时的运动变化。另外虚拟球如果和虚拟球网碰撞则直接掉在网 下,重新开球。除了需要检测虚拟球是否和平面发生碰撞,还需要检测发生碰撞的点是否在平面 边界内;判断方法为将矩形平面分解为两个三角形,判断碰撞点位置是否在三角形区域内。 如图6本发明判断碰撞点是否在三角形区域内示意图和如下公式所示
/碰撞点在三角形内 cosαλ + cosa2 + coscz3 > -1 《碰撞点在三角形夕卜为了使得交互过程更加真实,本发明加入了计分系统,通过判断球的触网情况和 出界情况自动对打球过程进行计分。然后设计了合理的状态控制机制控制乒乓球系统运行过程的各种状态转换,实现 打球的整个过程,并且保证双方具有一致的打球体验。为了准确清晰地描述状态转换过程, 利用有限状态机进行描述乒乓球系统运行过程的各种状态转换;在状态转换过程中,程序 首先对事件进行响应,本系统中的事件有接收消息、发球、球出界等;程序在事件间的状 态有初始状态、等待状态、发球状态、循环状态、设置状态等;然后在事件和状态间进行转 移;并在转移过程中采取动作;参阅图7本发明有限状态机状态图,本发明的状态转换在5 个状态之间转换,其转换过程和动作描述如下1)初始状态,在程序刚开始运行时,使双发建立连接。在此状态发送初始化消息, 等待对方回复,若收到回复消息,则连接建立并转移到等待状态,否则继续等待回复消息;2)等待状态,该状态不处理事件,等待己方用户发球或对方用户发球,若己方用户 发球则转移到发球状态,若接收到对方发球消息,则转移到设置状态;3)发球状态,此状态根据捕获的球拍运动信息使得球拍同虚拟球发生碰撞,设置 球的运动状态,并发送发球消息给对方,己方状态转变为循环状态;4)循环状态,该状态在每一帧判断球和其他平面是否碰撞,发送球的位置和速度 信息给对方,己方状态转为等待状态;5)设置状态,该状态是在收到球的位置和速度信息时设置球的位置及其速度,设 置完成后,己方状态转变为循环状态;本发明采用多线程进行数据收发;创建两个线程,一个线程发送消息,一个接收消 息;每接收到发送消息命令即发送消息;每接收到对方发送过来的消息即将消息放在消息 堆栈中,等待消息处理模块处理消息。接收和发送采用单播模式,利用套接字进行连接,由 于打球双方是对等的,因此采用服务器_服务器模式进行连接。视频数据在传输之前需要 进行压缩,采用H. 264视频压缩协议进行压缩;压缩率可以根据网络情况由用户自行调节。 为了使得双方用户通讯正常,本发明定义了消息的格式;消息的头部共有24个字节,分别 包括以下几个部分DmsgId,整型,4字节,表示消息的类型。2)SourCeIP,双字节类型,4字节,表示发送消息的地址IP地址。3) desIP,双字节类型,4字节,表示接收消息的地址IP地址。4) size,无符号整型,4字节,若一个消息数据被分为多个包,表示多个包的数据总 的大小,即消息数据的大小;若只有一个包,表示该消息数据的大小,也是该包的数据大小。5) length,无符号整型,4字节,若一小消息数据被分为多个包,表示分成的那个包 的大小;若只有一个包,则表示该包的数据的大小。6) number,整型,4字节,若某个消息被分为多个包,number表示第几个包。7)data,字节指针,指向消息中的数据部分,大小为length大小。下表给出每种类型的消息的描述和收到该类型消息时执行的动作 然后绘制虚拟物体,绘制的虚拟物体有5个己方虚拟乒乓球拍,虚拟乒乓球桌, 虚拟乒乓球网,虚拟乒乓球和虚拟墙壁,所有虚拟物体都按照真实的物体大小进行绘制。根 据跟踪注册的己方真实球拍在世界坐标系下的位置和方向,设置己方虚拟球拍在视频中的 位置和方向,并根据真实球拍的大小和颜色绘制;虚拟乒乓球桌的长2. 74米,宽1.525米, 离地面高0. 76米,台面与水平面平行,绘制虚拟球桌主要考虑纹理信息,绘制的过程为首 先创建纹理并进行纹理绑定,然后进行纹理过滤,将图像从纹理图像空间映射到帧缓冲图 像空间,在绘制时设置光照模型中的环境光和漫射光,打开纹理效果;虚拟乒乓球桌贴着真 实乒乓球桌的纹理。虚拟球网宽1.83米,网高0.1525米,绘制采用网格状绘制。虚拟乒乓 球直径为40毫米,颜色为橘黄色,绘制虚拟球的同时需要绘制虚拟球在桌面上的投影,使 用户对深度的感知更加准确。虚拟墙壁的作用是在人机对打时回击虚拟球的,宽度同虚拟 乒乓球桌的宽度,高度1米;绘制虚拟墙壁时设置其为透明。最后进行场景的布置,并进行打球,每个用户需要在显示器上部架设一台摄像机, 用户拿着真实的球拍面对显示器,距离显示器的距离为乒乓球桌的长度,在虚拟球桌边缘 设置一条标志线用来提示用户虚拟球桌的位置和高度。本发明具有人机对打功能,该功能设计目的是在两个用户连接成功后,如果对方 用户还未准备好打球或者己方用户练习打球时可采用这种方式。用户拿着真实的乒乓球拍 面对显示器和摄像机,同视频中虚拟墙打球。利用该功能,用户可以适应和熟悉该系统,为 双人协同打球做准备。本发明具有双人联网对打功能,该功能中双方用户通过网络连接,共享同一个增 强现实场景,在该场景中双方用户协同击打乒乓球。通过该系统的乒乓球拍跟踪和注册方 法,能够较精确的跟踪每一帧乒乓球拍的运动,支持用户较快速的挥拍;在绘制虚拟物体时 加上阴影效果,使得用户对深度的感知更加真实和准确;在球和平面碰撞时添加了声音效 果,增强了用户体验感;利用H. 263视频压缩协议进行视频数据的压缩和解压,并利用多线 程收发消息,使得系统运行流畅,显示清晰,帧率达到每秒30帧,分辨率达到600*800。
权利要求
基于真实球拍的协同式增强现实乒乓球系统构建方法,其特征在于包含以下步骤1)捕获本地的视频数据,用于真实乒乓球拍的跟踪注册和发送给对方用户显示;2)利用颜色特征检测和跟踪真实乒乓球球拍,进行虚拟场景与真实场景的虚实三维注册,将虚拟场景映射到真实球拍、参与用户、真实环境的视频图像空间坐标系;3)根据真实球拍的运动信息,进行虚拟乒乓球与真实球拍、虚拟球桌、虚拟球网各对象之间的碰撞检测,并确定和表现虚拟乒乓球碰撞后的运动轨迹;4)给出有限状态机,控制乒乓球系统运行过程的各种状态转换,确保双方用户具有相同的乒乓球运动体验;5)本地发送消息给对方,以完成双方通信并改变双方所处状态,发送的消息包括连接建立消息、视频数据消息、球拍位置消息、球的位置消息、球出界或触网消息;6)本地接收对方发送的消息,并将接收到的消息放到消息堆栈中,待消息处理模块读取和处理;7)消息处理模块根据收到的消息设置本地虚拟乒乓球的位置,将接收到的视频数据消息传给绘制模块,并改变当前乒乓球系统运行过程的状态;8)虚拟物体绘制,根据真实乒乓球桌和乒乓球的大小和颜色绘制虚拟物体,用户打球的位置离摄像头的距离为球桌的长度;通过网络连接双方用户,并在该网络平台下收发消息,保证双方用户之间的通信正常;9)显示增强现实视频,将对方传输过来的压缩视频数据进行解压,将本地的球拍用虚拟球拍的方式显示在视频中,同绘制的虚拟物体一起显示。
2.根据权利要求1所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于步骤2)中的检测和跟踪的乒乓球拍均为真实乒乓球拍。
3.根据权利要求1所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于步骤2)中的乒乓球拍跟踪注册进一步包含以下步骤2. 1)根据乒乓球拍在视频图像中出现的位置区域定义初始球拍搜索窗口 ;2. 2)设置颜色阈值提取初始搜索窗口中红色像素点,并进行中值滤波去除噪声点;2. 3)统计红色区域的像素点个数作为真实乒乓球拍的面积,计算乒乓球拍的质心,得 到初始视频图像中用于注册的正方形包围盒;2. 4)根据上一帧视频图像得到的正方形包围盒位置生成下一帧视频图像中真实乒乓 球拍的搜索窗口,并利用第2. 3步得到下一帧视频图像中用于注册的正方形包围盒;2.5)利用正方形包围盒计算外参数,进行乒乓球拍的注册。
4.根据权利要求1所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于,步骤3)中的虚拟乒乓球碰撞检测和轨迹计算采用以下方法3.1)如果当前帧虚拟球位置在平面上方,而下一帧虚拟球位置在平面下方,则在该帧 内发生碰撞;3. 2)利用碰撞点与三角形顶点三条连线的夹角判断碰撞点是否在边界内;3. 3)借鉴镜面反射的原理,同时加入重力加速度的影响,计算虚拟乒乓球的运行轨迹;3. 4)通过判断球的触网情况和出界情况自动对打球过程进行计分。
5.根据权利要求1所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特征在于,步骤4)中的状态控制机制采用以下方法将该乒乓球系统运行过程抽象为5个状态,利用有限状态机控制状态之间的转换;所 述5个状态分别为初始状态、等待状态、发球状态、循环状态、设置状态。
6.根据权利要求5所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于所述乒乓球系统定义的有限状态机转换关系为初始状态收到回复消息转换为等 待状态;等待状态若捕获到发球命令转换到等待状态,若捕获到对方发球消息转换到设置 状态;发球状态中设置虚拟乒乓球速度和位置信息之后转移到循环状态;循环状态中检测 碰撞并计算虚拟乒乓球运行轨迹,若球出界则转换到等待状态;设置状态在设置完乒乓球 速度和位置信息之后转换到循环状态。
7.根据权利要求1所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于步骤5)和6)所述的消息接收和发送采用多线程进行数据的收发,每接收到发送消 息命令即发送消息。
8.根据权利要求7所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于根据双方通信需要定义多种不同的消息类型,所有消息类型具有相同的结构,方便 消息处理。
9.根据权利要求1所述的基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于每接收到对方发送过来的消息即将消息放在消息堆栈中,等待消息处理模块处理 消息。
10.根据权利要求1所述基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于步骤9)所显示的增强现实视频图像中包含对方视频图像、虚拟球台、虚拟球网、虚 拟乒乓球、己方虚拟球拍。
11.根据权利要求10所述基于真实球拍的协同式增强现实乒乓球系统构建方法,其特 征在于步骤9)所显示的增强现实视频的视角是用户第一人称视角,用户可以看到对方拿 着真实的乒乓球拍击打虚拟乒乓球,用户自己挥动球拍过程由绘制的己方虚拟球拍体现。
全文摘要
本发明涉及基于真实球拍的协同式增强现实乒乓球系统构建方法,包括根据系统获取的视频图像,利用颜色特征进行真实乒乓球球拍的检测和跟踪;设计实现虚拟场景与真实场景的虚实三维注册,将虚拟场景映射到真实球拍、参与用户、真实环境的视频图像空间坐标系;根据真实球拍的运动信息设计实现虚拟乒乓球与真实球拍、虚拟球桌、虚拟球网等对象之间的碰撞检测,确定和表现虚拟乒乓球碰撞后的运动轨迹;给出有限状态机和消息处理机制,控制乒乓球系统运行过程的各种状态转换,确保多个用户具有相同的乒乓球运动体验。本发明可广泛应用推广到交互式数字娱乐、体育研究与训练模拟、远程教育与培训等领域。
文档编号G06F19/00GK101893935SQ20101023135
公开日2010年11月24日 申请日期2010年7月14日 优先权日2010年7月14日
发明者李鑫, 赵沁平, 陈小武, 颜勇 申请人:北京航空航天大学