图像处理装置、图像处理方法和程序的制作方法

文档序号:6498110阅读:237来源:国知局
图像处理装置、图像处理方法和程序的制作方法
【专利摘要】提供一种图像处理装置包括:识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵;计算单元,被配置为计算环境识别矩阵的逆矩阵;以及操纵控制单元,被配置为按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
【专利说明】图像处理装置、图像处理方法和程序

【技术领域】
[0001]本公开涉及图像处理装置、图像处理方法和程序。

【背景技术】
[0002]近年来,称为增强现实(AR)的技术一直引人关注,在该技术中,向用户呈现其上重叠有附加信息的真实世界。在AR技术中向用户呈现的信息也被称为注释,并且可以使用诸如文本、图标或动画的各种形式的虚拟对象被可视化和获得。
[0003]下面的非专利文献I示出了一种用于在布置虚拟对象之前的阶段对真实空间进行建模的技术的示例。下面的非专利文献2示出了一种以计算用于在拍摄的图像上重叠虚拟对象所需的成像装置的位置和姿势为目的的使用自然标记的技术的示例。
[0004]AR技术也可以被用于包括与用户的交互的应用中。例如,下述的专利文献I公开了一种用于显示可由用户操纵的图标作为虚拟对象的技术。
[0005]引用列表
[0006]非专利文献
[0007]非专利文献1:A.van den HengeI, R.Hill, B.Ward and A.Dick, “In SituImage-based Modeling,,(In Proc.8th IEEE International Symposium on Mixed andAugmented Reality, 2009)
[0008]非专利文献2:W.Daniel, G.Reitmayr, A.Mulloni, T.Drummond, andD.Schmalstieg, “Pose Tracking from Natural Features on Mobile Phones” (InProc.7th IEEE International Symposium on Mixed and Augmented Reality, 2008)
[0009]专利文献
[0010]专利文献1:JP 2010-238098A


【发明内容】

[0011]技术问题
[0012]但是,在上述的专利文献I中公开的技术中,虚拟对象只根据用户在二维屏幕上的操纵而移动。由于这个原因,难以说充分地实现了作为AR技术的一个优点的现实感。为了在与用户的交互中获得现实感,希望提供一种能够在三维空间中自由地操纵虚拟对象的机制。
[0013]解决问题的方案
[0014]根据本公开,提供一种图像处理装置,包括:识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、图像中出现的环境的位置和姿势的环境识别矩阵;计算单元,被配置为计算环境识别矩阵的逆矩阵;以及操纵控制单元,被配置为按照与基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
[0015]根据本公开,提供一种图像处理方法,包括:识别表示以拍摄了图像的终端的位置和姿势为基准的、图像中出现的环境的位置和姿势的环境识别矩阵;计算环境识别矩阵的逆矩阵;以及按照与基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
[0016]根据本公开,提供一种程序,该程序使计算机充当:识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、图像中出现的环境的位置和姿势的环境识别矩阵;计算单元,被配置为计算环境识别矩阵的逆矩阵;以及操纵控制单元,被配置为按照与基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势与基和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
[0017]本发明的有益效果
[0018]在根据本公开的技术中,提供了一种能够在三维空间中自由地操纵虚拟对象的机制。

【专利附图】

【附图说明】
[0019][图1]图1是示出可以应用根据本公开的技术的环境的示例的说明图。
[0020][图2]图2是用于描述根据本公开的技术的基本原理的第一说明图。
[0021][图3]图3是用于描述根据本公开的技术的基本原理的第二说明图。
[0022][图4]图4是用于描述根据本公开的技术的基本原理的第三说明图。
[0023][图5]图5是用于描述根据本公开的技术的基本原理的第四说明图。
[0024][图6]图6是用于描述基于根据本公开的技术决定的三维操纵量的第一示例的说明图。
[0025][图7]图7是用于描述基于根据本公开的技术决定的三维操纵量的第二示例的说明图。
[0026][图8]图8是用于描述基于根据本公开的技术执行的虚拟对象的操纵的示例的说明图。
[0027][图9]图9是示出根据实施例的图像处理装置的硬件配置的示例的框图。
[0028][图10]图10是示出根据实施例的图像处理装置的逻辑功能的配置的示例的框图。
[0029][图11]图11是示出根据第一操纵情形操纵虚拟对象的状态的说明图。
[0030][图12]图12是示出根据第二操纵情形操纵虚拟对象的状态的说明图。
[0031][图13]图13是示出根据实施例的图像处理的流程的示例的流程图。
[0032][图14]图14是示出在图13中例举的操纵配置计算处理的详细流程的示例的流程图。
[0033][图15]图15是用于描述对虚拟对象的基准面的确定的说明图。
[0034][图16]图16是用于描述根据距离显示虚拟对象的说明图。
[0035][图17]图17是用于描述虚拟对象的对齐显示的说明图。
[0036][图18]图18是用于描述虚拟对象的共享的第一说明图。
[0037][图19A]图19A是用于描述虚拟对象的共享的第二说明图。
[0038][图19B]图19B是用于描述虚拟对象的共享的第三说明图。

【具体实施方式】
[0039]在下文中,将参照附图详细地描述本发明的优选实施例。请注意,在本说明书和附图中,具有基本相同的功能和结构的要素用相同的附图标记表示,并且省略重复说明。
[0040]另外,将按照以下顺序提供说明。
[0041]1.基本原理
[0042]1-1.概要
[0043]1-2.基本参数
[0044]1-3.三维操纵量的示例
[0045]2.图像处理装置的配置例
[0046]2-1.硬件配置
[0047]2-2.功能配置
[0048]2-3.操纵情形
[0049]2-4.处理流程
[0050]2-5.显示的变型
[0051]2-6.虚拟对象的共享
[0052]3.总结
[0053]〈1.基本原理〉
[0054]首先,将使用图1至8描述根据本公开的技术的基本原理。
[0055][1-1.概要]
[0056]图1是示出可以应用根据本公开的技术的环境的示例的说明图。参照图1,示出了环境I和拍摄环境I的图像的图像处理装置100。在图1的示例中,在环境I中存在真实对象11。图像处理装置100通常包括成像单元(未示出)和显示单元110。图像处理装置100的成像单元拍摄构成反映环境I的视频的一系列图像。图像处理装置100然后使用拍摄的图像作为输入图像来执行图像处理,并且在三维空间中布置虚拟对象。如稍后将描述的,用户通过操作图像处理装置100来操纵虚拟对象。图像处理装置100的显示单元110显示其上重叠有虚拟对象的输出图像。
[0057]图像处理装置100在给定的基准环境中布置虚拟对象。也就是说,在与基准环境相关联的坐标系(在下文中被称为基准坐标系)中定义虚拟对象的位置和姿势。在下面的描述中,包括真实对象11的环境I被假设为基准环境。现实中,基准环境可以是任意的环境,无论是室内还是室外。作为另一个实施例,具有真实对象特有的坐标系的单个真实对象可以被视为基准环境。在这种情况下,真实对象特有的坐标系是基准坐标系。
[0058]图1示出作为图像处理装置100的示例的平板PC。但是,图像处理装置100不限于此。例如,图像处理装置100可以是笔记本型PC、口袋型PC、智能电话、游戏终端、PND (便携式导航装置)、内容播放器或数字家用电器。
[0059][1-2.基本参数]
[0060]在根据本公开的技术中,使用几个参数通过计算确定在基准环境中布置的虚拟对象的位置和姿势。最基本的参数是环境识别矩阵。
[0061](I)环境识别矩阵
[0062]环境识别矩阵是表示以在基准环境中拍摄了输入图像的终端的位置和姿势为基准的、基准环境的位置和姿势的矩阵。环境识别矩阵通常可以是表示在三维空间中的平行移动、旋转和缩放(放大/缩小)的坐标变换矩阵(例如,4X4齐次变换矩阵)。
[0063]参照图2,示出了与基准环境I相关联的基准坐标系CS1和图像处理装置100的装置特有坐标系CStlt5装置特有坐标系CStl可以由例如显示单元110的屏幕的二维坐标轴和深度轴构成。可以通过利用已知的图像识别技术使用输入图像来识别相对于图像处理装置100的装置特有坐标系CStl的基准坐标系CS1的相对位置和姿势。这里利用的图像识别技术可以是例如SfM (Structure from Mot1n,从运动恢复结构)方法、SLAM (SimultaneousLocalizat1n And Mapping,同时定位与地图构建)方法或者在上述的非专利文献I或2中描述的方法。可替换地,也可以利用使用红外传感器的简单的环境识别技术。
[0064]这里,假设图像处理装置100的装置特有坐标系CS。的位置和姿势由单位矩阵M0表示。然后,可以从矩阵Mtl识别作为坐标变换(平行移动、旋转和缩放)的基准环境I中的给定的位置和姿势。因此,一组位置和姿势可以由单个坐标变换矩阵表示。前述的环境识别矩阵是这种坐标变换矩阵中的一个。环境识别矩阵Mmms表示相对于图像处理装置100的位置和姿势(例如,单位矩阵Mtl)的基准坐标系CS1的位置和姿势。
[0065](2)操纵配置矩阵
[0066]在前述的前提下,环境识别矩阵M^g的逆矩阵是表示相对于基准坐标系CS1的位置和姿势的图像处理装置100的位置和姿势的矩阵。图3在概念上示出了由环境识别矩阵的逆矩阵Mmc^1表示的坐标变换。
[0067]操纵配置矩阵Mnwbile是表示用户为了操纵虚拟对象而移动的图像处理装置100的位置和姿势的矩阵。请注意,除非在本说明书中特别地指定为“平行”移动以外,术语“移动”被假设包括平行移动和旋转二者。如下式,操纵配置矩阵Mnwbile可以例如等于环境识别矩阵的逆矩阵Μ_。,。
[0068]Mfflobile = Mreco;1 (I)
[0069]图4在概念上示出了在利用式(I)时由操纵配置矩阵Mnwbile表示的坐标变换。但是,为了方便调整操纵位置,可以使用接下来将描述的偏移矩阵。
[0070](3)偏移矩阵
[0071]图5在概念上示出了通过包括偏移矩阵Tt_h而决定的操纵配置矩阵Mnrobil-偏移矩阵Ttoueh是根据图像处理装置100的屏幕上的用户输入位置决定的坐标变换矩阵,表示沿屏幕的方向的平行移动。在偏移矩阵Tfh被包括时,操纵配置矩阵Mnrob&可以如下式被计算:
[0072]Mfflobile = Mreco;1.Ttouch(2)
[0073]在如上所述包括偏移矩阵Tt_h时,用户容易通过在屏幕上的期望的位置执行操纵(例如,触摸、点击等)而不是移动图像处理装置100来细调操纵位置。
[0074][1-3.三维操纵量的示例]
[0075]这里,假设用户从时刻tl到时刻t2移动图像处理装置100。在这种情况下,可以根据上述原理计算在时刻tl的操纵配置矩阵Mnrobile(U)和在时刻t2的操纵配置矩阵Mnrobile (t2)。由操纵配置矩阵Mnrobile(U)表示的位置和由操纵配置矩阵Mnwbile (t2)表示的位置的差指示与图像处理装置100从时刻tl到时刻t2的平行移动相对应的平行移动量(以及在屏幕上的用户输入位置的变化)。由操纵配置矩阵Itjbile(tl)表示的姿势和由操纵配置矩阵Mnwbile (t2)表示的姿势的差指示与图像处理装置100从时刻tl到时刻t2的旋转相对应的旋转量。在根据本公开的技术中,根据平行移动量和旋转量来三维地操纵在基准环境中布置的虚拟对象。
[0076]在图6的示例中,首先,在时刻tl决定操纵配置矩阵MnrobilJtl)。另外,在随后的时刻t2决定操纵配置矩阵Mnwbile (t2)。基于这些操纵配置矩阵,如下式计算平行移动操纵里.Dmov。
[0077]Dfflov = Vfflobile (t2) -Vfflobile (tl) (3)
[0078]在式(3)中,假设Vnwbile (t)表示操纵配置矩阵Ut)的平行移动分量。在图7的示例中,如下式基于两个操纵配置矩阵Mnwbile (tl)和Mnwbile (t2)来计算旋转操纵量Drot。
[0079]Drot = Rfflobile (t2) -Rfflobile (tl) (4)
[0080]在式(4)中,假设Rnrobile (t)表示操纵配置矩阵Mnwbile (t)的旋转分量。请注意,式
(3)和式(4)仅仅是示例。例如,式(3)或式(4)的右侧可以乘以一个系数,以便增加或减少操纵量。
[0081]图8是用于描述基于根据本公开的技术执行的虚拟对象的操纵的示例的说明图。这里,能够根据真实对象11绘出虚拟对象的AR应用被假设是一个示例。图8中示出的操纵前矩阵Mpm相当于表示由图像处理装置100识别的真实对象11的位置和姿势的矩阵。虚拟对象21是与真实对象11相关联的虚拟对象。假设例如在图像处理装置100识别出真实对象11的位置和姿势之后,用户从时刻tl到时刻t2如图中所示的那样移动图像处理装置100。然后,图像处理装置100根据操纵配置矩阵Mnwbile(tl)和操纵配置矩阵Mnwbile (t2)之间的差来决定三维操纵量。在图8的示例中,决定了平行移动操纵量D_。另外,图像处理装置100使虚拟对象21根据平行移动操纵量D_移动。在充当操纵起点的位置和姿势如图8的示例中所示由操纵前矩阵Mpm表示时,表示操纵后的虚拟对象21的位置和姿势的操纵后矩阵Mptjst如下被计算。
[0082]Mpost = Mpre.Dmov (5)
[0083]请注意,在执行旋转而不是平行移动时,操纵后矩阵Mpost如式(6)被计算。在执行平行移动和旋转二者时,操纵后矩阵Mptjst如式(7)被计算。
[0084]Mpost = Mpre.Drot (6)
[0085]Mpost = Mpre.Dmov.Drot (7)
[0086]在图8的示例中,在时刻t2从图像处理装置100观看虚拟对象21的方式可以被表达为与操纵后矩阵Mptjst和时刻t2的环境识别矩阵M^g(t2)之积相对应的下述坐标变换。
[0087]Mrecog (t2) -Mpost (8)
[0088]根据本节中描述的原理,用户可以通过在移动诸如图像处理装置100的终端的同时操纵该终端来自由地指定三维操纵量。在下文中,将详细地描述基于上述原理的图像处理装置100的配置的示例。
[0089]<2.图像处理装置的配置例>
[0090][2-1.硬件配置]
[0091]图9是示出根据实施例的图像处理装置100的硬件配置的示例的框图。参照图9,图像处理装置100包括成像单元102、传感器单元104、输入单元106、存储单元108、显示单元110、通信单元112、总线116和控制单元118。
[0092](I)成像单元
[0093]成像单元102是拍摄图像的照相机模块。成像单元102使用诸如CXD (电荷耦合器件)或CMOS(互补金属氧化物半导体)的图像传感器来拍摄真实空间的图像,以产生拍摄图像。由成像单元102产生的一系列拍摄图像构成视频。请注意,成像单元102可以不是图像处理装置100的一部分。例如,通过有线或无线与图像处理装置100连接的成像装置可以被视为成像单元102。另外,成像单元102可以包括针对每一个像素测量成像单元102与被摄体之间的距离的深度传感器。从深度传感器输出的深度数据可以被用来识别环境。
[0094](2)传感器单元
[0095]传感器单元104可以包括各种传感器,例如定位传感器、加速度传感器和陀螺仪传感器。由传感器单元104获得的测量结果可以被用于各种应用,例如帮助识别环境,获取关于地理位置的数据,或者检测用户输入。请注意,可以从图像处理装置100的配置中省略传感器单元104。
[0096](3)输入单元
[0097]输入单元106是用户用来操作图像处理装置100或者输入信息给图像处理装置100的输入装置。输入单元106可以包括例如检测用户在显示单元110的屏幕上的触摸的触摸传感器。可替换地(或者附加地),输入单元106可以包括定点装置,例如鼠标或触摸板。此外,输入单元106可以包括其它类型的输入装置,例如键盘、键区、按钮或开关。
[0098](4)存储单元
[0099]存储单元108包括诸如半导体存储器或硬盘的存储介质,并且可以存储用于由图像处理装置100执行的处理的程序和数据。在存储单元108中存储的数据可以包括例如关于拍摄图像的数据、传感器数据和下面将描述的数据库(DB)中的数据。请注意,在本说明书中描述的程序和数据的一部分也可以从外部数据源(例如,数据服务器、网络存储器或外部存储器)获取,而不是被存储在存储单元108中。
[0100](5)显示单元
[0101]显示单元110是包括诸如IXD (液晶显示器),OLED (有机发光二极管)或CRT (阴极射线管)的显示器的显示模块。显示单元110被用来显示由例如图像处理装置100产生的输出图像。请注意,显示单元110也可以不是图像处理装置100的一部分。例如,通过有线或无线与图像处理装置100连接的显示装置可以被视为显示单元110。
[0102](6)通信单元
[0103]通信单元12是作为图像处理装置100与另一个装置的通信的中介的通信接口。通信单元112支持给定的无线通信协议或有线通信协议,并且建立与另一装置的通信连接。
[0104](7)总线
[0105]总线116将成像单元102、传感器单元104、输入单元106、存储单元108、显示单元110、通信单元112和控制单元118相互连接。
[0106](8)控制单元
[0107]控制单元118与诸如CPU (中央处理单元)或DSP (数字信号处理器)的处理器相对应。控制单元118使得通过执行在存储单元108或另一个存储介质中存储的程序来操作下述的图像处理装置100的各种功能。
[0108][2-2.功能配置]
[0109]图10是示出由图9中示出的图像处理装置100的存储单元108和控制单元118实现的逻辑功能的配置的示例的框图。参照图10,图像处理装置100包括图像获取单元120、识别单元130、计算单元140、真实对象DB 150、内容DB 160、操纵控制单元170和显示控制单元180。
[0110](I)图像获取单元
[0111]图像获取单元120获取由成像单元102产生的拍摄图像作为输入图像。由图像获取单元120获取的输入图像可以是构成真实空间的视频的各个帧。图像获取单元120将获取的输入图像输出到识别单元130和显示控制单元180。
[0112](2)识别单元
[0113]识别单元130使用从图像获取单元120获取的输入图像来识别表示基准环境的位置和姿势的前述环境识别矩阵。识别单元130可以利用诸如SfM方法或SLAM方法的已知图像识别技术来识别环境识别矩阵。可替换地或者附加地,识别单元130可以基于来自在成像单元102中设置的深度传感器的深度数据来识别环境识别矩阵。另外,识别单元130可以基于来自诸如红外距离测量系统或运动拍摄系统的环境识别系统的输出数据来识别环境识别矩阵。
[0114]例如,在利用SLAM方法时,识别单元130基于扩展的卡尔曼滤波的原理针对每一帧更新终端的位置、姿势、速度和角速度以及包括输入图像中的一个或多个特征点的位置的状态变量。因此,可以使用来自单眼照相机的输入图像来识别以终端的位置和姿势为基准的基准环境的位置和姿势。识别单元130使用与从终端的位置和姿势的坐标变换相对应的环境识别矩阵M^g来表示基准环境的识别出的位置和姿势。请注意,在“Real-Time Simultaneous Localizat1n and Mapping with a Single Camera” (AndrewJ.Davison,Proceedings of the 9th IEEE Internat1nal Conference on ComputerVis1n Volume 2,2003,pp.1403-1410)中描述了 SLAM 方法的细节。
[0115]识别单元130将如上所识别的环境识别矩阵输出到计算单元140和操纵控制单元170。
[0116]另外,在如图8的示例中所示虚拟对象的位置和姿势与基准环境中的真实对象的位置和姿势相关联时,识别单元130还识别输入图像中的真实对象的位置和姿势。例如,真实对象DB 150预先存储一个或多个真实对象的每个已知的特征量数据和真实对象的标识符。另外,识别单元130可以通过将从输入图像提取的特征量数据与在真实对象DB 150中存储的特征量数据进行比较来识别输入图像中的真实对象。识别单元130识别出表示如上所识别出的真实对象在基准坐标系中的位置和姿势的坐标变换矩阵与环境识别矩阵M^g相同。
[0117](3)计算单元
[0118]计算单元140计算从识别单元130输入的环境识别矩阵的逆矩阵Μ_。,。例如,环境识别矩阵M_g是4X4齐次变换矩阵。因此,环境识别矩阵的逆矩阵也是4X4齐次变换矩阵,并且满足Mratjg -Mreco;1 = M0 (单位矩阵)。环境识别矩阵的逆矩阵表示从基准坐标系的位置和姿势到终端的位置和姿势的坐标变换。计算单元140将计算出的环境识别矩阵的逆矩阵M^g-1输出到操纵控制单元170。
[0119]⑷真实对象DB
[0120]如上所述,真实对象DB 150预先存储根据AR应用的目的要识别的真实对象的已知特征量数据和标识符。
[0121](5)内容 DB
[0122]内容DB 160预先存储可以由用户操纵的虚拟对象的标识符和属性数据以及相关的真实对象的标识符。虚拟对象的属性数据可以包括虚拟对象的显示属性(例如,位置和姿势的初始值、形状、颜色等)和虚拟对象的操纵属性(例如,是否可以进行平行移动和旋转)。
[0123](6)操纵控制单元170
[0124]操纵控制单元170使用上述的各种参数控制在输入图像的环境中布置的虚拟对象的操纵。
[0125]例如,操纵控制单元170基于在与操纵的开始相对应的第一时间点的环境识别矩阵的逆矩阵M^g-1,来决定表示三维基准环境中的操纵的位置和姿势的操纵配置矩阵Mnrobil-操纵控制单元170可以根据例如上述的式(I)来决定等于环境识别矩阵的逆矩阵Mreco;1的操纵配置矩阵1_16。另外,操纵控制单元170可以根据上述的式(2)通过包括根据在终端的屏幕上的用户输入位置的偏移矩阵来决定操纵配置矩阵Mnrobil-
[0126]另外,操纵控制单元170指定要操纵的虚拟对象。要操纵的这种虚拟对象可以是与基于某一标准从输入图像中的真实对象中选择的真实对象相关联的对象。另外,要操纵的这种虚拟对象可以是由用户在屏幕上(例如,通过触摸、点击等)指定的对象。
[0127]此外,操纵控制单元170基于在与操纵的结束(或者,可以在操纵的中间)相对应的第二时间点的环境识别矩阵的逆矩阵M^g-1,根据上述的式⑴或式⑵再次决定表示三维基准环境中的操纵的位置和姿势的操纵配置矩阵Mnrobil-
[0128]另外,操纵控制单元170根据在操纵的开始时和操纵的结束时的两个操纵配置矩阵的差来决定虚拟对象的操纵量。由内容DB 160存储的数据被假设为指示例如要操纵的虚拟对象可以进行平行移动。然后,操纵控制单元170根据两个操纵配置矩阵Mnrobile的平行移动分量之间的差来计算平行移动操纵量D_。另外,由内容DB 160存储的数据被假设为指示要操纵的虚拟对象可以被旋转。然后,操纵控制单元170根据两个操纵配置矩阵Mnwb&的旋转分量之间的差来计算旋转操纵量DMt。
[0129]在计算出了操纵量时,操纵控制单元170根据计算出的操纵量改变要操纵的虚拟对象的布置。操纵前后的虚拟对象的布置之间的关系可以是上述的式(6)至式(8)中的任何一个。
[0130]操纵控制单元170将表示如上所述根据用户的操纵更新的虚拟对象的布置的坐标变换矩阵(操纵后矩阵Mptjst)输出到显示控制单元180。
[0131]与操纵的开始相对应的上述的第一时间点可以是在终端中检测到第一用户输入的时间点,并且与操纵的结束相对应的上述的第二时间点可以是在终端中检测到第二用户输入的时间点。通过向用户清楚地通知如上所述的操纵的定时,操纵控制单元170可以将虚拟对象的操纵与意图的用户操作及其他操作区分开。这样的第一和第二用户输入可以被定义为对应于一系列操纵的开始和结束。一系列操纵可以相当于例如触摸或拖动。通常,触摸或拖动的开始被检测为按压(Press)的事件,并且触摸或拖动的结束被检测为释放(Release)的事件。根据这种用户界面,通过在触摸(或拖动)屏幕的同时移动终端的简单操纵,用户可以使虚拟对象按意图进行三维平行移动和旋转。
[0132]另外,可以基于与操纵的开始相对应的上述的第一用户输入来指定要操纵的虚拟对象。在基于在操纵开始时在屏幕上的按压点来指定要操纵的虚拟对象时,例如,实现了提供在三维空间中拖动和移动虚拟对象的直接感觉的用户界面。
[0133]请注意,用户输入的类型不限于上述的示例。例如,对预定的键或按钮的按压、对触摸手势的识别、对面部表情的识别、对语音命令的识别或者对头戴式显示器中的视线的识别可以被定义为用户输入。
[0134](7)显示控制单元
[0135]显示控制单元180通过根据操纵控制单元170的布置在输入图像上重叠虚拟对象来产生输出图像。然后,显示控制单元180在显示单元110的屏幕上显示产生的输出图像。显示虚拟对象的触发可以是例如对任何用户输入的检测、从另一个装置接收到虚拟对象数据、对输入图像中的某一模式的识别等。
[0136][2-3.操纵情形]
[0137]接下来,将参照图11和12描述与虚拟对象的操纵有关的两个操纵情形。在第一操纵情形中,虚拟对象被新布置为就好像它正从在图像中识别的真实对象拉出。在第二操纵情形中,通过用户的操纵移动布置的虚拟对象。
[0138](I)第一操纵情形
[0139]图11示出根据第一操纵情形的在基准环境中布置新的虚拟对象的状态。
[0140]在图11的示例中,基准环境I中的真实对象11是数字电视装置。在数字电视装置11的屏幕上,狮子12的内容图像正被显示。真实对象DB 150预先存储狮子12的特征量数据。
[0141]在时刻tl,当用户保持图像处理装置100使之在数字电视装置11之上时,狮子12出现在输入图像中。识别单元130使用在真实对象DB 150中存储的特征量数据来识别在输入图像中出现的狮子12。然后,操纵控制单元170指定内容DB 160中的与狮子12相关联的虚拟对象22作为要操纵的虚拟对象。虚拟对象22被假设为例如可平行移动。
[0142]然后,从时刻tl到时刻t2,用户在触摸图像处理装置100的屏幕的同时移动图像处理装置100。然后,操纵控制单元170计算作为移动之前和之后的两个操纵配置矩阵Mfflobile(tl)和Mnwbile(t2)的平行移动分量之间的差的平行移动操纵量0_。此外,操纵控制单元170从狮子12的位置和姿势以及平行移动操纵量D_来计算表示操纵后的虚拟对象22的位置和姿势的操纵后矩阵Mp()St。显示控制单元180将具有由操纵后矩阵Mptjst表示的三维位置和姿势的虚拟对象22投影到二维屏幕,从而导致显示重叠有虚拟对象22的输出图像。
[0143](2)第二操纵情形
[0144]图12示出根据第二操纵情形的由用户操纵布置的虚拟对象的状态。
[0145]在图12的示例中,基准环境I中的真实对象11是数字电视装置。真实对象DB 150预先存储数字电视装置11的特征量数据。另外,内容DB 160预先存储与数字电视装置11相关联的虚拟对象23的数据。例如,虚拟对象23是在数字电视装置11上显示信息的虚拟面板。
[0146]在时刻t3,虚拟对象23按照操纵前矩阵Mpre表示的位置和姿势被布置在AR空间中。当用户拿着图像处理装置100遮住数字电视装置11时,在输入的图像中投影虚拟对象23。然后,当用户触摸屏幕上的虚拟对象23时,操纵控制单元170指定虚拟对象23作为要操纵的虚拟对象。虚拟对象23被假设为例如可旋转。
[0147]此后,从时刻t3到时刻t4,用户旋转图像处理装置100。然后,操纵控制单元170计算作为移动之前和之后的两个操纵配置矩阵Mnwbile(t3)和Mm()bile(t4)的旋转分量之间的差的旋转操纵量DMt。然后,操纵控制单元170对虚拟对象23进行重新布置,从而使虚拟对象23具有由从操纵前矩阵Mpm和旋转操纵量Drot计算出的操纵后矩阵Mpost表示的位置和姿势。
[0148][2-4.处理流程]
[0149]图13是示出由图像处理装置100执行的图像处理的流程的示例的流程图。
[0150]参照图13,首先,图像获取单元120获取由成像单元102产生的拍摄图像作为输入图像(步骤S110)。然后,图像获取单元120将获取的输入图像输出到识别单元130和显示控制单元180。
[0151]接下来,识别单元130使用从图像获取单元120输入的输入图像来识别表示基准环境的位置和姿势的环境识别矩阵M^g(步骤S115)。然后,识别单元130将识别出的环境识别矩阵M^g输出到计算单元140、操纵控制单元170和显示控制单元180。
[0152]接下来,图13的图像处理根据操纵状态分支。首先,在检测到用户开始了预定的操纵时,处理前进到步骤S130 (步骤S120)。另外,在检测到由用户开始的操纵结束时,处理前进到步骤S160(步骤S125)。否则,处理前进到步骤S190。
[0153]在步骤S130中,操纵控制单元170指定要操纵的虚拟对象(步骤S130)。这里要指定的虚拟对象的数量可以是一个或多个。接下来,执行将使用图14描述的操纵配置计算处理来计算第一操纵配置矩阵(步骤S140)。然后,存储计算出的第一操纵配置矩阵(步骤S150)。
[0154]在步骤S160中,执行将使用图14描述的操纵配置计算处理来计算第二操纵配置矩阵(步骤S160)。接下来,操纵控制单元170使用第一和第二操纵配置矩阵来决定要操纵的虚拟对象的操纵量(步骤S170)。然后,操纵控制单元170根据决定的操纵量对要操纵的虚拟对象进行重新布置(步骤S180)。
[0155]然后,显示控制单元180产生在其上重叠了要操纵的虚拟对象和要显示的另一个虚拟对象的输出图像,然后使得在显示单元110的屏幕上显示产生的输出图像(步骤S190)。
[0156]图14是示出与图13的步骤S140和S160相对应的操纵配置计算处理的详细流程的示例的流程图。
[0157]参照图14,首先,计算单元140计算从识别单元130输入的环境识别矩阵的逆矩阵M^g-1 (步骤S142)。另外,操纵控制单元170根据在终端的屏幕上的用户输入位置来决定偏移矩阵Tt_h(步骤S145)。请注意,在不使用偏移矩阵时,可以跳过步骤S144的处理。另外,操纵控制单元170基于环境识别矩阵的逆矩阵M^g-1和偏移矩阵Tt_h来决定操纵配置矩阵Mnwbile (步骤S146)。
[0158][2-5.显示的变型]
[0159]在根据本公开的技术中,可以以各种形式来显示虚拟对象。在本节中,将描述虚拟对象的各种显示变型。
[0160]例如,虚拟对象可以具有预先定义的基准平面。如果虚拟对象具有卡状的平面形状,则虚拟对象的一个表面可以被定义为基准平面,并且其另一个表面可以被定义为非基准平面。如果虚拟对象具有立体形状,则虚拟对象的基准平面可以由从基准平面向外延伸的法线向量识别。如上所述,如果虚拟对象具有基准平面,则显示控制单元180可以根据虚拟对象的基准平面是否出现在图像处理装置100的屏幕上来改变虚拟对象的显示。
[0161]例如,参照图15的示例,两个虚拟对象31和32出现在图像处理装置100的屏幕上显示的输出图像Iml中。在输出图像Iml中出现的虚拟对象31的平面是非基准平面。在输出图像Iml中出现的虚拟对象32的平面是基准平面。因此,例如,显示控制单元180可以将例如虚拟对象32的形状、比例、透明度、颜色、分辨率和边缘厚度的显示属性设定为与虚拟对象31的值不同的值。另外,显示控制单元180可以根据是否出现了基准平面来改变由虚拟对象31和32指示的信息的内容。
[0162]通过上述的显示控制,用户可以容易地确定显示的虚拟对象面向哪个方向。在这种情况下,假设用户希望观看在虚拟对象31的基准平面上显示的信息的内容。没有根据本公开的技术,用户将不得不绕到看见虚拟对象31的基准平面的位置并针对他或她的视野来保持终端。但是,在根据本公开的技术中,用户通过仅仅选择屏幕上的虚拟对象31并将终端旋转到其位置来三维地旋转虚拟对象31的姿势,因此可以容易地观看在虚拟对象31的基准平面上显示的信息的内容。
[0163]另外,显示控制单元180可以根据图像处理装置100和虚拟对象之间的距离来改变虚拟对象的显示。
[0164]例如,参照图16的示例,三个虚拟对象41、42和43出现在图像处理装置100的屏幕上显示的输出图像Im2中。在它们当中,虚拟对象43比虚拟对象41和42离图像处理装置100更远。在这种情况下,显示控制单元180可以强调虚拟对象41和42的显示属性,从而例如使虚拟对象41和42可以被用户更加清楚地识别。另外,显示控制单元180可以在虚拟对象41和42上更加详细地显示信息的内容。
[0165]通过前述的显示控制,在屏幕上显示多个虚拟对象的条件下,可以提高用户更加关注的(即,终端更靠近的)虚拟对象(或者其显示的内容)的可视性。在这种情况下,假设用户希望观看由虚拟对象43显示的信息的详细内容。没有根据本公开的技术,用户将不得不在使终端更靠近虚拟对象43的同时针对他或她的视野保持终端。但是,在根据本公开的技术中,用户仅仅通过选择屏幕上的虚拟对象43并作出拉近终端的运动来使虚拟对象43的位置移动靠近,由此可以观看由虚拟对象43显示的信息的更详细的内容。
[0166]在满足预定的条件时,显示控制单元180可以对要显示的多个虚拟对象进行重新布置,使得这多个虚拟对象以其间具有预定的间隔的方式被对齐。
[0167]例如,参照图17的示例,六个虚拟对象51至56出现在图像处理装置100的屏幕上。但是,在这些虚拟对象根据其布置被显示时,虚拟对象将拥挤在屏幕内,并且虚拟对象的可视性将降低。因此,例如,显示控制单元180在检测到预定的用户输入时对齐虚拟对象。在图17的示例中,更靠近图像处理装置100的四个虚拟对象51、52、53和54被重新布置,从而使它们以其间具有预定的间隔的方式对齐。例如,用于对虚拟对象进行重新布置的预定条件可以是,代替用户的输入,在屏幕内的虚拟对象的数目应该大于预定的阈值。
[0168]通过前述的显示控制,在屏幕上显示多个虚拟对象的情形下可以提高由每个虚拟对象指示的信息的内容的可视性。操纵控制单元170可以根据上述机制控制如上所对齐的虚拟对象的操纵。
[0169][2-6.虚拟对象的共享]
[0170]在至此所提供的描述中,在虚拟对象的操纵和要操纵的虚拟对象的显示中使用同一终端。但是,根据本公开的技术并不限于此示例。例如,使用某一终端操纵的虚拟对象可以被显示在另一个终端的屏幕上。在本节中,将描述虚拟对象的这种共享。
[0171]参照图18,示出包括用于在用户之间共享虚拟对象的图像处理装置IOOa和图像处理装置IOOb的图像处理系统。
[0172]例如,图像处理装置IOOa基于上述的机制响应于用户的操纵来决定具有基准坐标系CS2的基准环境2中的虚拟对象的布置。在图18的示例中,像汽车的虚拟对象61被布置在作为真实对象的桌子62上。例如,虚拟对象61可以按照由图像处理装置IOOa决定的操纵量(例如,平行移动操纵量DnJ来移动。图像处理装置IOOa将表示虚拟对象61的布置的数据(例如,上述的操纵后矩阵Mptjst)发送到图像处理装置100b。图像处理装置IOOb识别表示在输入图像中出现的基准环境2的位置和姿势的环境识别矩阵,然后使用从图像处理装置IOOa接收到的操纵后矩阵Mptjst和识别出的环境识别矩阵在输入图像上重叠虚拟对象61。
[0173]在图18的示例中,与包括桌子62的单个空间相对应的环境2被示出为基准环境。但是,应用根据本公开的技术的基准环境并不限于此。例如,即使当图像处理装置IOOa所存在的空间不同于图像处理装置IOOb所存在的空间,如果存在在两个空间中共享的特征点组或对象,或者如果存在可以被视为相同的校准的坐标系,则也可以将对应于这些空间的多个环境作为单个共同基准环境处理。可替换地,在单个空间中在不同的时间识别的环境可以作为单个共同基准环境处理。
[0174]例如,参照图19A,在环境3a中存在图像处理装置IOOa和书63a。参照图19B,在环境3b中存在图像处理装置IOOb和书63b。书63a和书63b具有共同的特征点组。因此,图像处理装置IOOa和IOOb使用该特征点组来识别一个共同基准坐标系CS3,并且可以共享与基准坐标系CS3相关联的虚拟对象。在图19A的示例中,像大象的虚拟对象73被布置在书63a的附近。例如,虚拟对象73可以按照由图像处理装置IOOa决定的操纵量(例如,旋转操纵量Drot)来旋转。图像处理装置IOOb将表示虚拟对象73的布置的数据(例如,上述的操纵后矩阵Mptjst)发送到图像处理装置100b。图像处理装置IOOb识别表示在输入图像中出现的基准环境3b的位置和姿势的环境识别矩阵,然后使用从图像处理装置IOOa接收到的操纵后矩阵Mptjst和识别出的环境识别矩阵显示其上重叠了虚拟对象73的输出图像。
[0175]<3.总结〉
[0176]参照图1至19B详细地描述了根据本公开的技术的实施例。根据上述的实施例,以基准环境中的终端的位置和姿势为基准来识别表示环境的位置和姿势的环境识别矩阵,并且基于识别出的环境识别矩阵的逆矩阵来表示终端的位置和姿势。然后,按照基于在两个时间点的终端的位置和姿势中的一个或两个的差的三维操纵量来操纵在基准环境中布置的虚拟对象。因此,用户可以通过在三维空间中移动终端以三维的方式在AR空间中自由地操纵虚拟对象。在使用移动终端时,例如,用户通过保持和移动移动终端可以三维地移动虚拟对象并且可以三维地旋转虚拟对象。
[0177]另外,根据上述的实施例,基于在一系列操纵的开始时的屏幕上的用户输入位置,指定要操纵的虚拟对象。由此,可以实现提供在三维空间中拖动和移动虚拟对象的直接感觉的用户界面。
[0178]请注意,由本说明书中描述的每个装置执行的一系列控制处理可以使用软件、硬件或软件和硬件的组合中的任何一个来实现。构成软件的程序被预先存储在存储介质中,该存储介质被设置在每个装置的内部或外部。然后,例如,在执行时将每个程序读入到RAM(随机存取存储器)中并由比如CPU的处理器来执行。
[0179]另外,代替在装置上被实现,每个装置的一些逻辑功能可以在存在于云计算环境中的装置上被实现。在这种情况下,可以通过图9中示例性地示出的通信单元112在装置之间发送或接收逻辑功能之间交换的信息。
[0180]虽然参照上文中的附图详细地描述了本公开的优选实施例,但是本公开的技术范围并不限于此。显而易见的是,具有本公开的【技术领域】的一般知识的技术人员可以设想到各种修改或改变,只要它们在所附的权利要求的技术主旨内即可,并且这种修改或改变当然落入本公开的技术范围。
[0181]另外,本技术还可以被配置为如下。
[0182](I)
[0183]一种图像处理装置,包括:
[0184]识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵;
[0185]计算单元,被配置为计算环境识别矩阵的逆矩阵;以及
[0186]操纵控制单元,被配置为按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
[0187](2)
[0188]根据(I)的图像处理装置,其中,操纵量是根据第一位置和第二位置之间的差的平行移动量。
[0189](3)
[0190]根据(I)的图像处理装置,其中,操纵量是根据第一姿势和第二姿势之间的差的旋转量。
[0191](4)
[0192]根据⑴至(3)中的任何一项的图像处理装置,
[0193]其中,第一时间点是在终端中检测到第一用户输入的时间点,并且
[0194]第二时间点是在终端中检测到第二用户输入的时间点。
[0195](5)
[0196]根据(4)的图像处理装置,其中,第一用户输入和第二用户输入分别对应于一系列操纵的开始和结束。
[0197](6)
[0198]根据(4)或(5)的图像处理装置,其中,第一位置或第二位置是与所述终端的屏幕上的用户输入位置相对应的该屏幕上的方向上偏移的位置。
[0199](7)
[0200]根据(4)至(6)中的任何一项的图像处理装置,其中,操纵控制单元基于第一用户输入指定要操纵的虚拟对象。
[0201](8)
[0202]根据(J)的图像处理装置,其中,操纵控制单元指定与通过第一用户输入指定的环境中的真实对象相关联的虚拟对象作为要操纵的虚拟对象。
[0203](9)
[0204]根据(I)至(8)中的任何一项的图像处理装置,其中,识别单元、计算单元和操纵控制单元中的至少一个由在云计算环境中存在的装置而不是该图像处理装置实现。
[0205](10)
[0206]一种图像处理方法,包括:
[0207]识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵;
[0208]计算环境识别矩阵的逆矩阵;以及
[0209]按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
[0210](11)
[0211]一种程序,使计算机充当:
[0212]识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵;
[0213]计算单元,被配置为计算环境识别矩阵的逆矩阵;以及
[0214]操纵控制单元,被配置为按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
[0215]附图标记列表
[0216]100图像处理装置(终端)
[0217]120图像获取单元
[0218]130识别单元
[0219]140计算单元
[0220]170操纵控制单元
[0221]180显示控制单元
【权利要求】
1.一种图像处理装置,包括: 识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵; 计算单元,被配置为计算环境识别矩阵的逆矩阵;以及 操纵控制单元,被配置为按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
2.根据权利要求1所述的图像处理装置,其中,所述操纵量是根据第一位置和第二位置之间的差的平行移动量。
3.根据权利要求1所述的图像处理装置,其中,所述操纵量是根据第一姿势和第二姿势之间的差的旋转量。
4.根据权利要求1所述的图像处理装置, 其中,第一时间点是在终端中检测到第一用户输入的时间点,并且 第二时间点是在终端中检测到第二用户输入的时间点。
5.根据权利要求4所述的图像处理装置,其中,第一用户输入和第二用户输入分别对应于一系列操纵的开始和结束。
6.根据权利要求4所述的图像处理装置,其中,第一位置或第二位置是与所述终端的屏幕上的用户输入位置相对应的沿着该屏幕上的方向上偏移的位置。
7.根据权利要求4所述的图像处理装置,其中,操纵控制单元基于第一用户输入指定要操纵的虚拟对象。
8.根据权利要求7所述的图像处理装置,其中,操纵控制单元指定与通过第一用户输入指定的环境中的真实对象相关联的虚拟对象作为要操纵的虚拟对象。
9.根据权利要求1所述的图像处理装置,其中,识别单元、计算单元和操纵控制单元中的至少一个由在云计算环境中存在的装置而不是所述图像处理装置实现。
10.一种图像处理方法,包括: 识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵; 计算环境识别矩阵的逆矩阵;以及 按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
11.一种程序,使计算机充当: 识别单元,被配置为识别表示以拍摄了图像的终端的位置和姿势为基准的、该图像中出现的环境的位置和姿势的环境识别矩阵; 计算单元,被配置为计算环境识别矩阵的逆矩阵;以及 操纵控制单元,被配置为按照基于在第一时间点识别的环境识别矩阵的逆矩阵的第一位置或第一姿势和基于在随后的第二时间点识别的环境识别矩阵的逆矩阵的第二位置或第二姿势之间的差所对应的三维操纵量,控制在所述环境中布置的虚拟对象的操纵。
【文档编号】G06F3/01GK104081307SQ201280068780
【公开日】2014年10月1日 申请日期:2012年11月29日 优先权日:2012年2月10日
【发明者】笠原俊一 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1