图像处理设备、图像处理方法、程序以及图像处理系统的制作方法

文档序号:6354673阅读:217来源:国知局
专利名称:图像处理设备、图像处理方法、程序以及图像处理系统的制作方法
技术领域
本发明涉及一种图像处理设备、图像处理方法、程序以及图像处理系统。
背景技术
过去,已开发了称作MR(混合现实)的技术以为用户提供混合真实世界和虚拟世界的环境。AR(增强现实),作为MR的实例,为用户提供通过对真实空间进行成像来获得以及用虚拟对象图像或附加信息来增强的图像。在MR中,常常在真实世界中布置一些接口以允许用户与虚拟世界或虚拟对象交互。例如,日本专利申请公开2002-247602号描述了用于提供这样的桌上冰球游戏的MR系统在该游戏中,多个用户通过操纵控制箱(即,真实世界中的物理对象)互相击打冰球。

发明内容
然而,在如日本专利申请公开2002-M7602号中描述的系统中一样由多个用户共享一个虚拟对象的情形中,会由于例如设备之间的通信延迟或者处理的延迟而在真实世界的状态与虚拟对象的状态之间出现不匹配。例如,在日本专利申请公开2002-247602号中描述的MR系统中,作为主控(master)的MR游戏设备获得由用户的头戴式显示器(HMD)获得的输入图像,对输入图像执行预定处理,并向用户的HMD发布输出图像。在此情形中,花费许多时间来获取输入图像以及发布输出图像。因此,用户手部的状态与HMD上显示的输出图像的状态不匹配,该不匹配很可能使用户感觉不舒服。在用于在由用户佩戴的透视显示器上投射虚拟对象的方法的情形中,问题在于用户看到的真实世界的状态以及在有通信延迟等的情况下投射的虚拟对象会在显示器上彼此移位。
相应地,本发明提供这样的新型和改进的图像处理设备、图像处理方法、程序以及图像处理系统其可以在减少真实世界的状态与虚拟对象的状态之间的不匹配的同时提供混合现实。
根据本发明的实施例,提供了一种图像处理设备,包括输入图像获取单元,用于获得通过拍摄真实空间的图像而生成的输入图像;图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物,其中,操纵物出现在输入图像中; 计算单元,用于根据由图像识别单元提供的操纵物的识别结果计算虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由计算单元计算出的显示装置的屏幕的位置处显示虚拟对象;以及通信单元,用于在检测到第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号。
根据以上结构,当检测到表示操纵开始的第一用户输入时,识别通过拍摄真实空间的图像获得的输入图像中出现的操纵物,作为识别的结果,控制虚拟对象的显示。此外, 从操纵侧图像处理设备向观察侧图像处理设备发送第一通知信号以通知操纵开始。
第一通知信号可以包括用于标识虚拟对象的标识数据或者表示虚拟对象位置的位置数据。
当检测到表示操纵结束的第二用户输入时,通信单元可以向另一设备发送第二通知信号以通知操纵结束。
第二通知信号可以包括表示由计算单元计算的表示虚拟对象位置的位置数据。
图像识别单元还可以在通信单元从另一设备接收到第一通知信号时识别输入图像中出现的操纵物。
在由通信单元接收的第一通知信号与由图像处理设备要显示的虚拟对象无关时, 图像识别单元可以不识别操纵物。
在检测到第一用户输入并且之后作为由图像识别单元提供的操纵物的识别结果确定操纵物与虚拟对象相接触时,通信单元可以向另一设备发送第一通知信号。
通信单元可以向管理显示同样虚拟对象的一组设备的信息处理设备发送第一通知信号。
第一通知信号可以包括用于标识虚拟对象的标识数据或者表示虚拟对象位置的位置数据,可以经由信息处理设备向显示相同虚拟对象的另一设备传送第一通知信号。
图像处理设备可以进一步包括存储单元,存储表示操纵物的操纵物图像,并且图像识别单元可以使用存储单元中存储的操纵物图像来识别输入图像中出现的操纵物。
根据本发明的另一实施例,提供了一种由图像处理设备执行的图像处理方法,包括步骤获得通过拍摄真实空间的图像而生成的输入图像;检测表示操纵开始的第一用户输入;将第一通知信号发送到显示与要由图像处理设备操纵的虚拟对象相同的虚拟对象的另一设备,以通知操纵开始;识别出现在输入图像中的用于虚拟对象的操纵的操纵物;根据操纵物的识别结果计算虚拟对象要显示在显示装置的屏幕上的位置;以及在计算出的显示装置的屏幕的位置处显示虚拟对象。
根据本发明的另一实施例,提供了一种程序,用于使控制图像处理设备的计算机作为输入图像获取单元,用于获得通过拍摄真实空间的图像而生成的输入图像;图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物, 其中,操纵物出现在输入图像中;计算单元,用于根据由图像识别单元提供的操纵物的识别结果计算虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由计算单元计算出的显示装置的屏幕的位置处显示虚拟对象;以及通信单元,用于在检测到第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号。
根据本发明的另一实施例,提供了一种包括两个或更多个图像处理设备的图像处理系统,其中,图像处理设备中的每一个包括输入图像获取单元,用于获得通过拍摄真实空间的图像而生成的输入图像;图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物,其中,操纵物出现在输入图像中;计算单元,用于根据由图像识别单元提供的操纵物的识别结果计算虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由计算单元计算出的显示装置的屏幕的位置处显示虚拟对象; 以及通信单元,用于在检测到第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号,其中,图像识别单元还在通信单元从另一设备接收到第一通知信号时识别输入图像中出现的操纵物。
如上所述,根据本发明的图像处理设备、图像处理方法、程序以及图像处理系统, 可以在减少真实世界的状态与虚拟对象的状态之间的不匹配的同时提供混合现实。


图1是示出根据实施例的图像处理系统的概况的示意图; 图2是示出根据与本发明有关的技术的图像处理的说明图; 图3A是示出真实世界的状态与虚拟对象的状态之间的不匹配的第一-说明图; 图3B是示出真实世界的状态与虚拟对象的状态之间的不匹配的第二说明图; 图4是示出根据实施例的图像处理设备的结构实例的框图; 图5A是示出根据实施例的操纵物的实例的示意图; 图5B是示出根据实施例的操纵物的另一实例的示意图; 图6是示出对象数据的实例的说明图; 图7是示出根据实施例的虚拟对象的显示位置计算处理的流程实例的流程图 图8A是示出根据实施例的操纵开始信号的说明图; 图8B是示出根据实施例的操纵结束信号的说明图; 图8C是示出根据实施例的自身位置通知信号的说明图; 图9是示出根据实施例的操纵侧图像处理的流程实例的流程图; 图10是示出根据实施例的观察侧图像处理的流程实例的流程图; 图11是示出根据实施例的管理服务器的结构实例的框图; 图12是示出根据实施例的信号传送处理的流程实例的流程图;以及 图13是示出根据修改的图像处理系统的示意图。
具体实施例方式在下文中,将参照附图详细描述本发明的优选实施例。注意,在本说明书和附图中,用相同的附图标记表示功能和结构基本上相同的结构元件,略去了这些结构元件的重复说明。
另外,按如下顺序描述实施例的详细描述。
1.系统的概况 1-1.整个系统的概况 1-2.与相关领域相关联的问题 2.关于图像处理设备的说明 2-1.设备的示例性结构 2-2.处理的流程 3.关于管理服务器的说明 3-1.设备的示例性结构 3-2.处理的流程 4.变型 5.结论 <1.系统的概况〉 [1-1.整个系统的概况] 图1是示出根据本发明实施例的图像处理系统的概况的示意图。图1示出包括图像处理设备IOOa和IOOb以及管理服务器200的图像处理系统。图像处理设备IOOa是由用户版使用的设备。图像处理设备IOOa可以经由有线通信连接或无线通信连接与管理服务器200通信。图像处理设备IOOb是由用户Wd使用的设备。图像处理设备IOOb也可以经由有线通信连接或无线通信连接与管理服务器200通信。
图像处理设备IOOa被连接到例如用户Ua在头上佩戴的HMD 104a和摄像装置 102a。摄像装置10 跟随用户fe的注视方向并在注视方向上拍摄真实世界Rl的图像。然后,摄像装置10 将一系列输入图像输出到图像处理设备100a。HMD 10 向用户fe显示由图像处理设备IOOa提供的图像。例如,由HMD 10 显示的图像是包括用户fe视野中虚拟对象Vl的图像。
同样地,图像处理设备IOOb被连接到例如用户Ub在头上佩戴的HMD 104b和摄像装置102b。摄像装置102b跟随用户Ub的注视方向并在注视方向上拍摄真实世界Rl的图像。然后,摄像装置102b将一系列输入图像输出到图像处理设备100b。HMD 104b向用户证显示由图像处理设备IOOb提供的图像。在本实施例中,图像处理设备IOOa和IOOb共享虚拟对象VI。S卩,由HMD 104b显示的图像也可以包括用户Ub视野中的虚拟对象VI。
在本说明书中,当没有必要相互区分图像处理设备IOOa和IOOb时,可以略去以后缀的形式附加到附图标记的字母。在这种情形中,将图像处理设备IOOa和IOOb统称为图像处理设备100。也可以按类似方式统称摄像装置10 和102b (摄像装置10 ,HMD 104a 和104b(HMD 104)以及其它组件。根据本实施例的图像处理系统中的图像处理设备100的数量不限于图1中示出的实例,而可以是三个或更多个。例如,图像处理系统还可以包括由第三个用户使用的第三图像处理设备100。
管理服务器200是用于在系统中管理关于图像处理设备100的信息的信息处理设备。例如,管理服务器200以规则间隔(或者每次出现改变时)从每个图像处理设备100 接收摄像装置102的姿势和位置,并将接收的数据存储到数据库。然后,当管理服务器200 从图像处理设备100中的一个接收到表示虚拟对象Vl的操纵的信号时,管理服务器200向共享虚拟对象Vl的另一图像处理设备100传送该信号。
[1-2.与相关领域相关联的问题] 随后,将参照图2、图3A和图;3B说明如图1所示的图像处理系统中与本发明相关的技术相关联的问题。图2是示出根据相关领域的典型图像处理的说明图。图3A和图;3B 是各自示出可能在参照图2说明的图像处理中出现的、真实世界的状态与虚拟对象的状态之间的不匹配的说明图。
在图2中,以用数字表明的框示出了根据相关领域的图像处理的典型流程。框中表明的数字表示处理的次序。即,在相关领域中,按如下顺序执行图像处理。
(1)识别操纵物 (2)确定对象位置 (3)报告对象ID和位置 (4)发布对象ID和位置 (5)移动虚拟对象 (1)识别操纵物 首先,图像处理设备100中的一个图像处理设备(在图2的实例中,图像处理设备
7100a)识别输入图像中出现的操纵物。操纵物是用于操纵虚拟对象的真实世界中的物理对象。操纵物可以是诸如用户手部的人体的一部分,或者可以是除了人体之外的预定物理对象。
(2)确定对象位置 随后,基于操纵物的位置(或移动)与虚拟对象的位置之间的关系确定虚拟对象的新位置。例如,在操纵物与虚拟对象相接触的同时进行移动的情形中,可以根据操纵物的移动更新虚拟对象的位置。
(3)报告对象ID和位置 随后,向管理服务器200报告虚拟对象的新位置以及对象ID(标识符)。
(4)发布对象ID和位置 随后,管理服务器200将虚拟对象的新位置以及对象ID发布给共享相同虚拟对象的另一图像处理设备100 (在图2的实例中,图像处理设备100b)。
(5)移动虚拟对象 随后,在共享相同虚拟对象的另一图像处理设备100中,HMD 104的屏幕上的虚拟对象移动。
在图2的实例中,图像处理设备IOOa执行处理⑴和⑵。可选择地,代替图像处理设备100a,管理服务器200可以在从图像处理设备IOOa接收到输入图像时执行处理(1) 和O)。又可选择地,可以不布置管理服务器200。在此情形中,从图像处理设备IOOa向图像处理设备IOOb直接发送虚拟对象的新位置以及对象ID。
在如以上说明的图像处理中,在图像处理设备IOOb完成虚拟对象的移动时已经过去了这样的时间该时间包括时差和由设备之间的通信引起的处理延迟。于是,例如,当在由摄像装置102b拍摄的图像内覆盖虚拟对象Vl时,HMD 104b上显示的图像在操纵物的状态与虚拟对象Vl的状态之间具有不匹配。
图3A和图;3B以更具体的方式示出以上问题。图3A示出包括由时间间隔T隔开的两帧图像的实例。HMD 104a向用户Ua (即,操纵虚拟对象Vl的人)显示该两帧。另一方面,图3B示出包括由时间间隔T隔开的两帧图像的实例。HMD 104b向用户证(S卩,观察虚拟对象Vl的人)显示该两帧。在此实例中,操纵物是用户的手部。
如图3A中所示,操纵物Hl在时间t = 0与虚拟对象Vla相接触。此后,在时间t =T,虚拟对象Vla随着操纵物Hl移动向左移动。即使在时间t = T,操纵物Hl也与虚拟对象Vla相接触。
图;3B与图3A的相同之处在于在时间t = 0操纵物Hl与虚拟对象Vlb相接触。虚拟对象Vla和虚拟对象Vlb是具有相同对象ID的相同对象。然而,因为在不同HMD上显示对象,所以为方便起见用不同附图标记表示对象。此后,在时间t = T,虚拟对象Vlb随着操纵物Hl移动向左移动。在时间t = T,由于时差和由设备之间的通信引起的处理延迟, 图像处理设备IOOb接收到在当前帧之前数帧的帧中虚拟对象的位置。因此,在时间t = T 在HMD 104b上显示的虚拟对象Vlb的位置从在时间t = T在HMD 104a上显示的虚拟对象 Vla的位置移位位移d。然而,在真实世界中,由摄像装置102b拍摄的操纵物Hl的位置与由摄像装置10 拍摄的操纵物Hl的位置相同。于是,操纵物Hl的位置在HMD 104b上显示的图像中与虚拟对象Vlb不匹配。在图:3B的实例中,操纵物Hl不是与虚拟对象Vlb相接触而是插入到虚拟对象Vlb中。
在每个HMD 104是只把虚拟对象的图像投射到每个HMD 104的屏幕上的透视显示器时,这种不匹配以同样的方式或者更显著地出现。
可以通过尽可能地减少时差和由设备之间的通信引起的处理延迟的影响来抑制真实世界的状态与虚拟对象的状态之间的不匹配。在随后章节,将说明根据本实施例的图像处理设备100和管理服务器200的具体结构。在提供混合现实时,图像处理设备100和管理服务器200减少时差和由设备之间的通信引起的处理延迟的影响。
<2.关于图像处理设备的说明> [2-1.设备的示例性结构] 图4是示出根据本实施例的图像处理设备100的结构实例的框图。如图4中所示, 图像处理设备100包括输入图像获取单元110、自身位置检测单元120、存储单元130、图像识别单元140、计算单元150、显示控制单元160以及通信单元170。
(输入图像获取单元) 摄像装置102拍摄真实空间的图像以生成输入图像,且输入图像获取单元110获得这样生成的输入图像。然后,输入图像获取单元110将获得的输入图像输出到自身位置检测单元120、图像识别单元140以及显示控制单元160。
(自身位置检测单元) 自身位置检测单元120检测真实世界中摄像装置102的姿势和位置。例如, 通过真实世界中绝对坐标系中的三维位置来表示摄像装置102的位置。例如,通过与旋转矩阵相对应的欧拉角或四元数表示摄像装置102的姿势。例如,根据Andrew J. Davison 的"Real-Time SimultaneousLocalization and Mapping with a Single Camera,,(Proceedings of the 9thIEEE International Conference on Computer Vision Volume 2,2003,第1403-1410页)中描述的SLAM技术的原理,自身位置检测单元120可以通过使用由输入图像获取单元110提供的输入图像来检测摄像装置102的姿势和位置。可选择地,在摄像装置102具有位置传感器(例如,光学位置传感器)和姿势传感器(例如, 陀螺仪传感器)的情形中,自身位置检测单元120可以获得由摄像装置102的传感器检测的位置和姿势。例如,自身位置检测单元120将通过以上方法中的任一方法检测的摄像装置102的姿势和位置输出到图像识别单元140和通信单元170。
(存储单元) 存储单元130使用诸如硬盘或半导体存储器的记录介质预先存储操纵物图像和对象数据。操纵物图像是表示用于操纵显示在输出图像上的虚拟对象的操纵物的图像。另一方面,对象数据是与混合现实中由HMD 104显示的虚拟对象有关的数据。
图5A和图5B是各自示出根据本实施例的操纵物的实例的示意图。在图5A的实例中,操纵物Mla是用户的手部。在此情形中,存储单元130预先存储通过拍摄用户手部的图像获得的图像作为操纵物图像。例如,存储单元130可以存储通过从各种不同方向拍摄用户手部的图像获得的一组图像作为操纵物图像。
在图5B的实例中,操纵物Mlb是用户在手指上佩戴的立方体标志。标志的每个表面的中心部分形成有用户可插入手指以移动标志的孔。在此情形中,存储单元130预先存储示出标志的图像作为操纵物图像。可选择地,例如,可以共同地不仅采用标志而且采用插入到标志中的手指作为操纵物,并可以存储示出包括标志和手指的操纵物的图像作为操纵物图像。
应当注意,操纵物不限于图5A和5B中示出的实例。例如,操纵物可以是活体的任何部分或者真实世界中存在的任何物理对象,诸如用户的脚以及用户持有的棍状物理对象。响应于由图像识别单元140给出的请求,存储单元130将操纵图像输出到图像识别单元 140。
图6是示出存储在存储单元130中的对象数据的实例的说明图。如图6中所示, 对象数据包括三个数据项,即,对象ID、形状以及位置。“对象ID”是用于唯一地标识虚拟对象的标识符。图6的实例包括对象ID为Vl和V2的两个虚拟对象的对象数据。“形状”是表示虚拟对象形状的数据。例如,可以将虚拟对象的形状表示成多边形。“位置”是表示虚拟对象最新位置的三维坐标数据。随着用户对操纵物进行操纵更新虚拟对象的位置。响应于由计算单元150给出的请求,存储单元130向计算单元150输出对象数据。
(图像识别单元) 在检测到表示操纵开始的第一用户输入的情形中,图像识别单元140识别用于虚拟对象的操纵以及出现在输入图像获取单元110给出的输入图像中的操纵物。例如,图像识别单元140可以通过使用存储在存储单元130中的操纵物图像识别出现在输入图像中的操纵物。更具体地,例如,图像识别单元140通过使用已知模式匹配方法将输入图像的部分图像与操纵物图像相比较。进一步地,图像识别单元140基于在输入图像中检测到操纵物图像的位置以及基于检测的操纵物图像尺寸识别真实世界中操纵物的三维位置。此处识别的操纵物的三维位置是相对于摄像装置102此时的姿势和位置的相对位置。进一步地,图像识别单元140使用由自身位置检测单元120提供的摄像装置102的姿势和位置,将操纵物的相对三维位置转换成真实世界中绝对坐标系中的三维位置。然后,图像识别单元140 将转换后的操纵物位置输出到计算单元150。在检测到表示操纵开始的第一用户输入之后, 图像识别单元140对一系列输入图像的每个帧重复图像识别处理,直到检测到表示操纵结束的第二用户输入为止。然后,当检测到表示操纵结束的第二用户输入时,图像识别单元 140终止图像识别处理。可选择地,例如,图像识别单元140可以通过使用表示操纵物形状的形状数据而非操纵物图像识别出现在输入图像中的操纵物。
表示操纵开始的第一用户输入以及表示操纵结束的第二用户输入可以是例如图像处理设备100上布置的预定按钮的按压、在输入图像中由用户执行的预定姿势或者由用户输入的语音。
当由通信单元170接收到后面说明的操纵开始信号时,图像识别单元140也执行如上说明的图像识别处理。在此情形中,对一系列输入图像的每个帧重复图像识别处理,直到通信单元170接收到后面说明的操纵结束信号为止。在本说明书中,将从第一用户输入的检测至第二用户输入的检测的处理称为操纵侧处理。将从第一用户输入的接收至第二用户输入的接收的处理称为观察侧处理。
(计算单元) 当检测到表示操纵开始的第一用户输入时,计算单元150根据由图像识别单元 140提供的操纵物的识别结果、计算HMD 104在屏幕上显示虚拟对象的位置。然后,计算单元150不仅将计算的虚拟对象显示位置输出到显示控制单元160,而且更新由存储单元130存储的虚拟对象的位置数据。在检测到表示操纵开始的第一用户输入之后,计算单元150 按照操纵物的识别结果,对一系列输入图像的每帧重复虚拟对象的显示位置计算处理,直到检测到表示操纵结束的第二用户输入为止。
图7是示出由计算单元150执行的根据本实施例的虚拟对象的显示位置计算处理的具体流程实例的流程图。如图7中所示,首先,计算单元150从存储单元130获得每个虚拟对象的对象数据(步骤S102)。此处获得的对象数据包括每个虚拟对象的形状和最新位置。随后,计算单元150获得由图像识别单元140识别的操纵物的位置(步骤S104)。随后,计算单元150基于每个虚拟对象的形状和最新位置并且基于操纵物的位置,确定操纵物是否与虚拟对象相接触(步骤S106)。这里,当操纵物未与虚拟对象相接触时,跳过剩余处理。随后,当操纵物与虚拟对象相接触时,计算单元150基于操纵物的位置计算虚拟对象的新位置(步骤S108)。例如,当操纵物在与虚拟对象相接触的同时在X方向上移动距离D 时,虚拟对象的位置根据操纵物的移动在X方向上移动距离D。随后,计算单元150基于由自身位置检测单元120检测的摄像装置102的姿势和位置,将来自真实世界中三维位置的虚拟对象的新位置转换成HMD 104的屏幕上的二维位置(步骤S110)。例如,可以使用基于针孔模型的如下公式将来自三维位置的坐标转换成屏幕上的二维位置。
[公式1] λ p' =AR(p-x) 在公式(1)中,ρ表示虚拟对象的三维位置向量,χ表示摄像装置102的三维位置向量,R表示与摄像装置102的姿势相对应的旋转矩阵,A表示摄像装置内部参数,λ表示归一化的参数。另一方面,P'表示虚拟对象在屏幕上的二维位置。这里,预先按照摄像装置102的特性通过如下公式给出摄像装置内部参数Α。
[公式2] 这里,f表示焦距,θ表示图像轴的正交性(理想值是90度),<表示焦平面的竖直轴的比例(scale)(从真实世界中的绝对坐标系至焦平面的坐标系的比例改变率),<表示焦平面的水平轴的比例,(11。,V。)表示焦平面的中心位置。
当用多边形表示虚拟对象时,计算单元150基于摄像装置102的姿势和位置计算多边形各顶点在HMD 104的屏幕上的二维位置。
此外,作为观察侧处理,计算单元150还在通信单元170接收到后面说明的操纵开始信号时,执行如以上说明的虚拟对象的显示位置计算处理。当通信单元170接收到后面说明的操纵结束信号时,对一系列输入图像的每个帧重复此情形的显示位置计算处理。此外,当通信单元170接收到操纵结束信号时,计算单元150使用包括在操纵结束信号中的虚拟对象的位置数据来校正由显示控制单元160显示的(并且存储在存储单元130中的)虚拟对象的位置。这是用于解决在并行地对操纵者和观察者执行虚拟对象的显示位置计算处理的情形中仍剩余的、虚拟对象位置的小位移的处理。
即使当未操纵虚拟对象时,计算单元150也基于存储单元130中存储的虚拟对象
— f.K
f-K-COtG
f-K A= 0 0
sin^ 0
11的位置数据并基于由自身位置检测单元120检测的摄像装置102的姿势和位置,计算虚拟对象在屏幕上的显示位置。然后,计算单元150将计算出的虚拟对象的显示位置输出到显示控制单元160。
(显示控制单元) 显示控制单元160在由计算单元150计算出的HMD 104的屏幕上的显示位置处显示虚拟对象。例如,显示控制单元160可以通过在由输入图像获取单元110提供的输入图像上覆盖表示虚拟对象的多边形来生成输出图像,并且可以将输出图像输出到HMD 104。 更具体地,例如,显示控制单元160可以基于由计算单元150计算出的虚拟对象的多边形顶点坐标在输出图像中绘制多边形。于是,在由HMD 104向用户显示的输出图像中,虚拟对象随着操纵物移动而移动,从而向用户提供增强现实。例如,在HMD 104是透视显示器的情形中,显示控制单元160可以基于由计算单元150计算的虚拟对象的多边形顶点坐标,将多边形投射到HMD 104的屏幕上。
(通信单元) 当检测到表示操纵开始的第一用户输入时,通信单元170将第一通知信号发送到显示相同虚拟对象的另一图像处理设备100,以通知操纵开始。在本说明书中,将第一通知信号称为操纵开始信号。当检测到表示操纵结束的第二用户输入时,通信单元170将第二通知信号发送到显示相同虚拟对象的另一图像处理设备100,以通知操纵结束。在本说明书中,将第二通知信号称为操纵结束信号。在本实施例中,经由管理服务器200将操纵开始信号和操纵结束信号发送到另一图像处理设备100。
图8A是示出根据本实施例的操纵开始信号的说明图。如图8A中所示,操纵开始信号Sl包括4个字段即,信号类型、源、对象ID以及对象位置。“信号类型”是表明有关信号是操纵开始信号的字段。“源”是用于标识发送有关信号的图像处理设备100的字段。 “对象ID”是用于标识将要操纵哪个虚拟对象的字段。“对象ID”可以列举多个虚拟对象的对象ID。“对象位置”是必要时设置的字段,包括表示在操纵开始时虚拟对象的位置的三维坐标数据。可以使用“对象ID”或“对象位置”确定管理服务器200向其传送操纵开始信号的图像处理设备100。
图8B是示出根据本实施例的操纵结束信号的说明图。如图8B中所示,操纵结束信号S2包括4个字段即,信号类型、源、对象ID以及对象位置。“信号类型”是表明有关信号是操纵结束信号的字段。“源”是用于标识发送有关信号的图像处理设备100的字段。 “对象ID”是用于标识将要完成哪个虚拟对象的操纵的字段。“对象ID”可以列举多个虚拟对象的对象ID。“对象位置”包括表示在操纵结束时虚拟对象的位置的三维坐标数据。可以使用“对象ID”或“对象位置”确定管理服务器200向其传送操纵结束信号的图像处理设备100。此外,已接收到操纵结束信号的图像处理设备100可以使用操纵结束信号S2的 “对象位置”来校正在操纵结束时虚拟对象的位置。
另外,通信单元170以规则间隔(或者每次出现改变时)向管理服务器200发送第三通知信号,以通知由自身位置检测单元120检测的摄像装置102的姿势和位置。在本说明书中,将第三通知信号称为自身位置通知信号。
图8C是示出根据本实施例的自身位置通知信号的说明图。如图8C中所示,自身位置通知信号S3包括三个字段,即,信号类型、源以及位置/姿势。“信号类型”是表明有关信号是自身位置通知信号的字段。“源”是用于标识发送有关信号的图像处理设备100的字段。例如,“位置/姿势”包括绝对坐标系中摄像装置102的旋转矩阵和对应于三维位置的四元数。后面说明的管理服务器200可以基于以规则间隔从每个图像处理设备100发送的自身位置通知信号S3,识别每个图像处理设备100的视野。
[2-2.处理的流程] (操纵侧的处理) 图9是示出根据本实施例的由图像处理设备执行的操纵侧图像处理的流程实例的流程图。
如图9中所示,图像识别单元140和计算单元150监视是否检测到第一用户输入 (步骤S122)。当检测到第一用户输入时,开始步骤SlM中的操纵侧图像处理以及后续步骤。在操纵侧图像处理中,首先,通信单元170向管理服务器200发送操纵开始信号Sl (步骤S124)。随后,图像识别单元140使用存储在存储单元130中的操纵物图像来识别输入图像中的操纵物,并且向计算单元150输出操纵物的位置(步骤SU6)。随后,计算单元150 执行如参照图7说明的虚拟对象的显示位置计算处理(步骤S128)。然后,显示控制单元 160根据操纵物的位置移动HMD 104的屏幕上显示的虚拟对象(步骤S130)。随后,图像识别单元140和计算单元150确定是否检测到第二用户输入(步骤S13》。当此处未检测到第二用户输入时,随后执行步骤S126,并且针对输入图像的后续帧重复步骤S126至S130。 另一方面,当检测到第二用户输入时,通信单元170向管理服务器200发送操纵结束信号 S2(步骤S134)。然后,终止操纵侧图像处理。
在检测到第一用户输入之后,通信单元170可以进行等待,直到作为由图像识别单元140提供的操纵物的识别结果确定为操纵物与虚拟对象相接触为止(换言之,在图7 中步骤S106的确定结果变成是之后),并可以此后向管理服务器200发送操纵开始信号。 在此情形中,流程与图9的流程不同。在观察侧图像处理中,用操纵物对虚拟对象的实际操纵未开始。因此,存在会延迟屏幕上虚拟对象移动开始的可能性,但是这减少了从第一用户输入至虚拟对象实际操纵开始的观察侧处理的花费。
(观察侧的处理) 图10是示出根据本实施例的图像处理设备100执行的观察侧图像处理的流程实例的流程图。
如图10中所示,首先,通信单元170监视是否接收到操纵开始信号(步骤S152)。 当接收到操纵开始信号时,开始步骤SlM的观察侧图像处理以及后续步骤。在观察侧图像处理中,首先,图像识别单元140使用存储单元130中存储的操纵物图像识别输入图像中的操纵物,并向计算单元150输出操纵物的位置(步骤SK4)。随后,计算单元150执行如参照图7说明的虚拟对象的显示位置计算处理(步骤S156)。然后,显示控制单元160根据操纵物的位置移动HMD 104的显示屏幕上显示的虚拟对象(步骤S158)。随后,通信单元170 确定是否接收到操纵结束信号(步骤S160)。当此处未接收到操纵结束信号时,随后再次执行步骤S1M,并且针对输入图像的后续帧重复步骤SlM至S158。另一方面,当接收到操纵结束信号时,计算单元150校正虚拟对象的位置(步骤S16》。然后,终止观察侧图像处理。
<3.关于管理服务器的说明>
13 [3-1.设备的示例性结构] 图11是示出根据本实施例的管理服务器200的结构实例的框图。如图12中所示, 管理服务器200包括通信单元210、存储单元220以及用户管理单元230。
(通信单元) 通信单元210经由有线通信连接或无线通信连接向/从每个图像处理设备100的通信单元170发送和接收信号。在管理服务器200的通信单元210与每个图像处理设备 100的通信单元170之间发送和接收的信号包括操纵开始信号、操纵结束信号以及自身位置通知信号。
(存储单元) 存储单元220使用诸如硬盘或半导体存储器的存储介质来存储用于管理显示相同虚拟对象的一组图像处理设备100的数据库。例如,存储单元220中存储的数据库包括关于使用自身位置通知信号以规则间隔收集的每个图像处理设备100的摄像装置102的姿势和位置的数据。另外,例如,存储单元220中存储的数据库可以包括可以由每个图像处理设备100显示的虚拟对象的对象ID。
(用户管理单元) 当通信单元210接收到自身位置通知信号时,用户管理单元230更新存储单元220 中存储的、关于发送有关的自身位置通知信号的图像处理设备100的姿势和位置的数据。 当通信单元210接收到操纵开始信号或操纵结束信号时,用户管理单元230向作为有关信号源的显示相同虚拟对象的另一图像处理设备100传送操纵开始信号或操纵结束信号。例如,用户管理单元230可以采用与存储单元220的数据库中操纵开始信号或操纵结束信号中包括的对象ID相关联的图像处理设备100作为每个信号所传送到的设备。可选择地,例如,用户管理单元230可以采用其摄像装置102的视野包括由操纵开始信号或操纵结束信号所表明的虚拟对象位置的图像处理设备100作为每个信号所传送到的设备。
[3-2.处理的流程] 图12是示出根据本实施例的由管理服务器200执行的信号传送处理的流程实例的流程图。
如图12中所示,首先,通信单元210监视是否接收到操纵开始信号或操纵结束信号(步骤S202)。当接收到操纵开始信号或操纵结束信号时,随后执行步骤S204。随后,用户管理单元230从存储单元220获得每个图像处理设备100的状态(步骤S204)。这里获得的每个图像处理设备100的状态可以包括由每个图像处理设备100显示的虚拟对象的对象ID或者每个图像处理设备100的摄像装置102的姿势和位置。随后,用户管理单元230 确定是否存在共享虚拟对象的另一图像处理设备100(除了操纵开始信号或操纵结束信号的源之外的设备)(步骤S206)。当不存在共享虚拟对象的其它图像处理设备100时,跳过步骤S208。另一方面,当存在共享虚拟对象的另一图像处理设备100时,通信单元210向另一图像处理设备100传送操纵开始信号或操纵结束信号(步骤S208)。然后,终止管理服务器200执行的信号传送处理。
<4.变型〉 图13是示出根据本实施例变型的图像处理系统的示意图。图13示出包括图像处理设备300a、300b和300c的图像处理系统。由用户Ua、Ub和Uc分别使用图像处理设备300a、300b和300c。这些设备可以经由有线通信连接或无线通信连接彼此通信。
通常,图像处理设备300a、300b和300c具有与如参照图4说明的图像处理设备 100等同的结构。然而,在不依赖于管理服务器200的情况下,图像处理设备300a、300b和 300c的通信单元170直接发送和接收操纵开始信号和操纵结束信号。例如,当通信单元170 接收到操纵开始信号时,图像处理设备300a、300b和300c执行如下只有在图像处理设备 300a、300b和300c作为有关信号的源显示同样虚拟对象的情形中,图像识别单元140才识别操纵物。在此情形中,例如,基于操纵开始信号中包括的虚拟对象的位置数据或对象ID 确定是否有必要识别操纵物。
例如,在图13的实例中,图像处理设备300a、300b共享虚拟对象VI。换言之,图像处理设备300a的HMD 10 和图像处理设备300b的HMD 104b均可以显示虚拟对象Vl。另一方面,图像处理设备300c不共享虚拟对象Vl。代替共享虚拟对象Vl,图像处理设备300c 的HMD l(Mc可以显示不同的虚拟对象V2。在这种实例中,将假定如下情形用户fe是操纵虚拟对象Vl的人,用户fe通过按压图像处理设备300a的按钮106a开始虚拟对象Vl的操纵。在这种情形中,图像处理设备300a检测第一用户输入,并且向图像处理设备300b和图像处理设备300c发送操纵开始信号Si。例如,操纵开始信号Sl包括虚拟对象Vl的位置数据或对象ID。当图像处理设备300b接收到操纵开始信号Sl时,图像处理设备300b基于有关信号中包括的位置数据或对象ID确定将由图像处理设备300b显示的虚拟对象Vl的操纵的开始。于是,图像处理设备300b通过图像识别开始操纵物(诸如用户Ua的手或者标志)的跟踪。另一方面,图像处理设备300c基于操纵开始信号Sl中包括的位置数据或对象ID确定有关信号与将由图像处理设备300c显示的虚拟对象无关。于是,图像处理设备300c忽略从图像处理设备300a接收的操纵开始信号Si。
<5.总结〉 已参照图1至图13在上文中说明了本发明的实施例和变型。根据本实施例,当检测到表示操纵开始的第一用户输入时,操纵侧图像处理设备识别通过拍摄真实空间的图像获得的输入图像中出现的操纵物,作为识别的结果,操纵侧图像处理设备控制虚拟对象的显示。此外,从操纵侧图像处理设备向观察侧图像处理设备发送操纵开始信号。相应地,观察侧图像处理设备也识别通过拍摄真实空间的图像获得的输入图像中出现的操纵物,作为识别的结果,观察侧图像处理设备控制虚拟对象的显示。由此,由于操纵侧设备以及观察侧设备通过图像识别跟踪操纵物,所以不出现由于跟踪结果的传送引起的延迟。此外,操纵开始信号包括用于识别虚拟对象的对象ID或者虚拟对象的位置数据。因此,不共享虚拟对象的图像处理设备无需执行不必要的图像识别处理。在检测到表示操纵结束的第二用户输入的情形中,从操纵侧图像处理设备向观察侧图像处理设备发送操纵结束信号。相应地,在不操纵虚拟对象时,图像处理设备中所有图像处理设备无需执行图像识别处理。如上所述,根据本实施例,操纵侧设备以及观察侧设备通过图像识别跟踪操纵物,另外,根据基于设备之间交换的信号的定时启动图像识别处理。因此,可以在有效地减少处理负荷并减少真实世界的状态与虚拟对象的状态之间的不匹配的同时提供混合现实。
根据本实施例,从操纵侧图像处理设备向观察侧图像处理设备发送的操纵结束信号包括表示在操纵结束时虚拟对象的位置的位置数据。由此,即使当在由操纵侧图像处理设备生成的操纵物的跟踪结果与由观察侧图像处理设备生成的操纵物的跟踪结果之间存在暂时误差时,观察侧图像处理设备也可以校正虚拟对象的位置。
可选择地,在检测到第一用户输入之后,操纵侧图像处理设备可以进行等待,直到确定操纵物与虚拟对象相接触为止,并且可以此后发送操纵开始信号。在此情形中,可以进一步减少观察侧图像识别处理的负荷。
可以通过管理图像处理设备组的管理服务器在图像处理设备之间发送和接收操纵开始信号和操纵结束信号。在此情形中,当管理服务器只向显示相同虚拟对象的图像处理设备传送信号时,可以进一步减少观察侧图像识别处理的负荷并且可以消除不必要的传
%!里。
通常用软件实现如在本说明书中说明的由图像处理设备100和300以及管理服务器200执行的一系列处理。例如,在每个设备中或者每个设备外部布置的存储介质中预先存储构建用于实现一系列处理的软件的程序。例如,每个程序在执行期间被加载到RAM(随机存取存储器),并且由诸如CPU(中央处理单元)的处理器执行。
本领域技术人员应当理解依据设计需要和其它因素,可以做出各种变形、组合、 子组合和修改,只要它们在所附权利要求或其等同物的范围内。
本申请包含与2010年2月M日提交日本专利局的日本优先权专利申请JP 2010-038777中公开的主题相关的主题,其全部内容经引用包含于此。
1权利要求
1.一种图像处理设备,包括输入图像获取单元,用于获得通过拍摄真实空间的图像而生成的输入图像;图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物,其中,所述操纵物出现在所述输入图像中;计算单元,用于根据由所述图像识别单元提供的操纵物的识别结果计算所述虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由所述计算单元计算出的所述显示装置的屏幕的所述位置处显示所述虚拟对象;以及通信单元,用于在检测到所述第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号。
2.如权利要求1所述的图像处理设备,其中,所述第一通知信号包括用于标识所述虚拟对象的标识数据或者表示所述虚拟对象位置的位置数据。
3.如权利要求1所述的图像处理设备,其中,当检测到表示操纵结束的第二用户输入时,所述通信单元向所述另一设备发送第二通知信号以通知操纵结束。
4.如权利要求3所述的图像处理设备,其中,所述第二通知信号包括表示由所述计算单元计算出的表示所述虚拟对象位置的位置数据。
5.如权利要求1所述的图像处理设备,其中,所述图像识别单元还在所述通信单元从另一设备接收到所述第一通知信号时识别出现在所述输入图像中的所述操纵物。
6.如权利要求5所述的图像处理设备,其中,所述图像识别单元在由所述通信单元接收到的所述第一通知信号与要由所述图像处理设备显示的虚拟对象无关时不识别所述操纵物。
7.如权利要求1所述的图像处理设备,其中,在检测到所述第一用户输入并且在之后作为由所述图像识别单元提供的所述操纵物的识别结果确定所述操纵物与所述虚拟对象相接触时,所述通信单元向所述另一设备发送所述第一通知信号。
8.如权利要求1所述的图像处理设备,其中,所述通信单元向管理显示同样虚拟对象的一组设备的信息处理设备发送所述第一通知信号。
9.如权利要求8所述的图像处理设备,其中,所述第一通知信号包括用于标识所述虚拟对象的标识数据或者表示所述虚拟对象位置的位置数据,且所述第一通知信号被经由所述信息处理设备传送到显示相同虚拟对象的另一设备。
10.如权利要求1所述的图像处理设备,还包括存储单元,存储表示所述操纵物的操纵物图像,其中,所述图像识别单元使用所述存储单元中存储的所述操纵物图像识别出现在所述输入图像中的所述操纵物。
11.一种由图像处理设备执行的图像处理方法,包括步骤 获得通过拍摄真实空间的图像而生成的输入图像; 检测表示操纵开始的第一用户输入;将第一通知信号发送到显示与要由所述图像处理设备操纵的虚拟对象相同的虚拟对象的另一设备,以通知操纵开始;识别出现在所述输入图像中的用于所述虚拟对象的操纵的操纵物;根据操纵物的识别结果计算所述虚拟对象要显示在显示装置的屏幕上的位置;以及在计算出的所述显示装置的屏幕的位置处显示所述虚拟对象。
12.—种程序,用于使控制图像处理设备的计算机作为输入图像获取单元,用于获得通过拍摄真实空间的图像而生成的输入图像; 图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物,其中,所述操纵物出现在所述输入图像中;计算单元,用于根据由所述图像识别单元提供的操纵物的识别结果计算所述虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由所述计算单元计算出的所述显示装置的屏幕的所述位置处显示所述虚拟对象;以及通信单元,用于在检测到所述第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号。
13.—种包括两个或更多个图像处理设备的图像处理系统,其中,所述图像处理设备中的每一个包括输入图像获取单元,用于获得通过拍摄真实空间的图像而生成的输入图像; 图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物,其中,所述操纵物出现在所述输入图像中;计算单元,用于根据由所述图像识别单元提供的操纵物的识别结果计算所述虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由所述计算单元计算出的所述显示装置的屏幕的所述位置处显示所述虚拟对象;以及通信单元,用于在检测到所述第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号,其中,所述图像识别单元还在所述通信单元从另一设备接收到所述第一通知信号时识别所述输入图像中出现的所述操纵物。
全文摘要
提供了一种图像处理设备,包括输入图像获取单元,用于获得通过拍摄真实空间的图像生成的输入图像;图像识别单元,用于在检测到表示操纵开始的第一用户输入时识别用于操纵虚拟对象的操纵物,其中,操纵物出现在输入图像中;计算单元,用于根据由图像识别单元提供的操纵物的识别结果计算虚拟对象要显示在显示装置的屏幕上的位置;显示控制单元,用于在由计算单元计算出的显示装置的屏幕的位置处显示虚拟对象;以及通信单元,用于在检测到第一用户输入时向显示相同虚拟对象的另一设备发送用于通知操纵开始的第一通知信号。
文档编号G06F3/01GK102193625SQ20111004127
公开日2011年9月21日 申请日期2011年2月17日 优先权日2010年2月24日
发明者松田晃一 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1