共享的和私有的全息物体的制作方法_5

文档序号:9635092阅读:来源:国知局
此,在一些实施 例中,成像相机中的每一个的位置和时间捕捉需要被校准到该场景、彼此校准、以及校准到 中枢12。现在参考附图15的流程图描述步骤608的进一步细节。
[0109] 步骤608的一个操作包括在步骤670确定系统10中的各种成像设备的时钟偏移。 具体而言,为了协调来自该系统中的相机中的每一个相机的图像数据,可确认被协调的图 像数据来自同一时间。关于确定时钟偏移以及同步图像数据的细节在以下文献中被揭示: 于2010年5月 3 日提交的题为"HeterogeneousImageSensorSynchronization"!^异类图 像传感器同步)的美国专利申请号12/772, 802 ;于2010年6月3日提交的题为"Synthesis OfInformationFromMultipleAudiovisualSources"(来自多个视听源的信息的合成) 的美国专利申请号12/792, 961。一般而言,来自捕捉设备20的图像数据和从一个或多个处 理单元4传入的图像数据用中枢12中的单个主时钟打上时间戳。对于一给定帧的所有此 类数据使用时间戳,以及使用相机中的每一个相机的已知分辨率,中枢12确定该系统中的 成像相机中的每一个成像相机的时间偏移。据此,中枢12可确定从每个相机接收到的图像 之间的差异以及对这些图像的调整。
[0110] 中枢12可从相机之一接收到的帧中选择一基准时间戳。然后,中枢12可向从所有 其他相机接收到的图像数据加上时间或从该图像数据减去时间以与基准时间戳同步。理解 至IJ,针对校准过程,可以使用各种其他操作来确定时间偏移和/或将不同相机同步在一起。 时间偏移的确定可以在初始接收到来自所有相机的图像数据之际被执行一次。替代地,它 可被周期性地执行,诸如举例来说每一帧或某一数量的帧。
[0111] 步骤608进一步包括在场景的x、y、z笛卡尔空间中校准所有相机相对于彼此的位 置的操作。一旦知晓此信息,中枢12和/或一个或多个处理单元4就能够形成场景图或模 型,标识该场景的几何形状和该场景内的物体(包括用户)的几何形状和位置。在将所有相 机的图像数据彼此校准时,可使用深度和/或RGB数据。例如在2007年5月17日公开的 题为"NavigatingImagesUsingImageBasedGeometricAlignmentandObjectBased Controls"(使用基于图像的几何对齐和基于对象的控制来导航图像)的美国专利公开号 2007/0110338中描述了用于单独使用RGB信息来校准相机视图的技术。
[0112] 系统10中的成像相机可各自具有一些透镜失真,透镜失真需要被校正以便校准 来自不同相机的图像。一旦来自该系统中的各相机的所有图像数据在步骤604和630中 被接收,则在步骤674中可调整该图像数据以计及各相机的透镜失真。给定相机(深度或 RGB)的失真可以是由相机制造商提供的已知属性。如果不是,则已知有用于计算相机的失 真的算法,包括例如在相机的F0V内的不同位置对诸如棋盘图案之类的已知尺寸的物体进 行成像。该图像中的各点的相机视图坐标中的偏差将是相机透镜失真的结果。一旦得知透 镜失真的程度,就可以通过已知的逆矩阵变换来校正失真,逆矩阵变换产生给定相机的点 云中的点的均勾相机视图映射。
[0113] 接着,中枢12可在步骤678将由每个相机捕捉的经失真校正的图像数据点从相机 视图转换成正交3D世界视图。此正交3D世界视图是由捕捉设备20和头戴式显示设备相机 所捕捉的所有图像数据在正交X,y,z笛卡尔坐标系中的点云图。用于将相机视图转换成正 交3D世界视图的矩阵变换公式是已知的。例如参见DavidH.Eberly的"3dGameEngine Design:APracticalApproachToReal-TimeComputerGraphics"(3D游戏引擎设计:实 时计算机图形的实用方法),MorganKaufman(摩根考夫曼)出版社(2000)。还参见上文 提及的美国专利申请号12/792,961。
[0114] 系统10中的每个相机都可以在步骤678中构造正交3D世界视图。在步骤678完 成时,来自一给定相机的数据点的X,y,z世界坐标仍旧是来自该相机的视角的,而尚未与 来自系统10中的其他相机的数据点的X,y,z世界坐标相关。下一步骤是将不同相机的各 个正交3D世界视图转换成系统10中所有相机共享的单个总体3D世界视图。
[0115] 为实现这一点,中枢12的一些实施例可以接着在步骤682中在相应相机的世界视 图的点云中寻找关键点不连续性或线索,并且然后在步骤684标识出在不同相机的不同点 云中相同的线索。一旦中枢12能够确定两个不同相机的两个世界视图包括相同的线索,则 在步骤688中中枢12就能够确定这两个相机相对于彼此以及所述线索的位置、定向和焦 距。在一些实施例中,并非系统10中的所有相机将共享相同的公共线索。然而,只要第一 和第二相机具有共享的线索,并且这些相机中的至少一个与第三相机具有共享的视图,则 中枢12就能够确定第一、第二和第三相机相对于彼此的位置、定向和焦距,以及单个总体 3D世界视图。对于该系统中的附加相机而言也是如此。
[0116] 存在用于从图像点云中标识出线索的各种已知算法。这样的算法在例如: Mikolajczyk,K.和Schmid,C的"APerformanceEvaluationofLocalDescriptors',(局 部描述符的性能评估),IEEE模式分析和机器智能学报,27,10,1615-1630 (2005)中得到阐 述。利用图像数据检测线索的另一方法是比例不变特征变换(SIFT)算法。SIFT算法在例如 2004年3月 23 日公布的题为"MethodandApparatusforIdentifyingScaleInvariant FeaturesinanImageandUseofSameforLocatinganObjectinanImage"(用于 在图像中标识出比例不变特征和将其用于对图像中的对象进行定位的方法和装置)的美 国专利号6, 711,293中被描述。另一线索检测器方法是最大稳定极值区域(MSER)算法。 MSER算法在例如J.Matas、0·Chum、M.Urba和T.Pajdla的论文"RobustWideBaseline StereoFromMaximallyStableExtremalRegions"(来自最大稳定极值区域的鲁棒宽基 线立体),英国机器视觉会议学报,第384-396页(2002)中被描述。
[0117] 在步骤684,标识出在来自两个或更多相机的点云之间共享的线索。在概念上, 当在第一相机的笛卡尔坐标系中在第一相机与一组线索之间存在第一组向量,并且在第二 相机的笛卡尔坐标系中在第二相机与同一组线索之间存在第二组矢量时,两个系统可以相 对于彼此被解析成包括这两个相机的单个笛卡尔坐标系。存在用于寻找来自两个或更多 相机的点云之间的共享线索的多种已知技术。这样的技术在例如Arya,S.、Mount,D.M.、 Netanyahu,N.S.、Silverman,R.和Wu,A.Y.的"AnOptimalAlgorithmForApproximate NearestNeighborSearchingFixedDimensions"(用于近似最近邻居搜索固定维度的最 优算法),ACM期刊45, 6, 891-923 (1998)中被示出。作为上文提及的Arya等人的近似最近 邻居解决方案的替代或补充,可使用其他技术,包括但不限于散列或上下文敏感的散列。
[0118] 当来自两个不同相机的点云共享足够大数量的匹配的线索时,可以例如通过随机 采样一致性(RANSAC)或各种各样的其他估计技术来估计将两个点云相关在一起的矩阵。 作为被还原的基础矩阵的离群值的那些匹配可随后被移除。在找到点云对之间的一组假定 的、几何上一致的匹配之后,这些匹配可被组织成针对各个点云的轨迹的集合,其中轨迹是 点云之间相互匹配的线索的集合。该集合中的第一轨迹可包含每个公共线索在第一点云中 的投影。该集合中的第二轨迹可包含每个公共线索在第二点云中的投影。来自不同相机的 点云随后可被解析成单个正交3D现实世界视图中的单个点云。
[0119] 所有相机的位置和定向相对于该单个点云和单个正交3D现实世界视图被校准。 为了一起解析各个点云,针对两个点云的轨迹的集合中的线索的投影被分析。根据这些投 影,中枢12可确定第一相机相对于所述线索的视角,并且还可确定第二相机相对于所述线 索的视角。借此,中枢12可以将这些点云解析成对单个点云和包含所述线索以及来自两个 点云的其他数据点的单个正交3D现实世界视图的估计。
[0120] 对任何其他相机重复该过程,直到该单个正交3D现实世界视图包括了所有相机。 一旦完成这一步,中枢12可确定各相机相对于该单个正交3D现实世界视图以及相对于彼 此的相对位置和定向。中枢12可进一步确定每个相机相对于该单个正交3D现实世界视图 的焦距。
[0121] 一旦在步骤608校准了该系统,则可以在步骤610发展场景图,该场景图标识出该 场景的几何形状以及该场景内的物体的几何形状和位置。在一些实施例中,在给定帧中生 成的场景图可包括该场景中所有用户、现实世界物体和虚拟物体的X、y和z位置。该信息 可在图像数据收集步骤604、630和656期间获得,并且在步骤608中被一起校准。
[0122] 至少捕捉设备20包括用于确定场景的深度(直到可能以墙壁等等为界限的程度) 以及场景内的物体的深度位置的深度相机。如下文所阐述的,场景图被用来将虚拟物体定 位在场景内,以及显示带有正确遮挡的虚拟三维物体(虚拟三维物体可被现实世界物体或 另一虚拟三维物体遮挡,或虚拟三维物体可遮挡现实世界物体或另一虚拟三维物体)。
[0123]系统10可包括多个深度图像相机以获得来自场景的所有深度图像,或包括单个 深度图像相机,诸如举例来说捕捉设备20的深度图像相机426可能足以捕捉来自场景的 所有深度图像。一种用于确定未知环境内的场景图的类似方法被称为同时定位和映射 (SLAM)。SLAM的一个不例在 2010 年 8 月 10 日公布的题为"SystemsandMethodsfor LandmarkGenerationforVisualSimultaneousLocalizationandMapping',(用于可 视同时定位和映射的地标生成的系统和方法)的美国专利号7, 774, 158中被揭示。
[0124] 在步骤612,该系统可检测和跟踪诸如在房间中移动的人之类的移动物体,并且基 于移动物体的位置来更新场景图。这包括使用场景内的用户的骨架模型,如上所述。
[0125] 在步骤614,中枢确定各用户18的头戴式显示设备2的X、y和z位置、定向以及 F0V。现在参考附图16的流程图描述步骤614的进一步细节。下文参考单个用户描述图16 的步骤。然而,图16的步骤可针对场景内的每一用户来执行。
[0126] 在步骤700,在中枢处分析场景的经校准的图像数据以确定用户头部位置、以及从 用户的面部向外直视的面部单位向量二者。头部位置在骨架模型中被标识。可通过根据骨 架模型定义用户的面部的平面并取垂直于该平面的向量来确定面部单位向量。这一平面可 通过确定用户的眼睛、鼻子、嘴、耳朵、或其他面部特征的位置来被标识。面部单位向量可被 用来定义用户的头部定向,且在一些示例中可被认为是用户的F0V的中心。也可或替代地 根据从头戴式显示设备2上的相机112返回的相机图像数据来标识面部单位向量。具体而 言,基于头戴式显示设备2上的相机112所看到的,相关联的处理单元4和/或中枢12能 够确定表示用户的头部定向的面部单位向量。
[0127] 在步骤704,用户的头部的位置和定向还可或替代地通过如下方式来被确定:分 析来自较早时间(要么在帧中较早,要么来自前一帧)的用户的头部的位置和定向,以及然 后使用来自頂U132的惯性信息来更新用户的头部的位置和定向。来自頂U132的信息可 以提供用户的头部的精确运动学数据,但是IMU典型地不提供关于用户的头部的绝对位置 信息。也被称为"地面真值"的该绝对位置信息可以从获得自捕捉设备20、主体用户的头戴 式显示设备2上的相机和/或其他用户的(一个或多个)头戴式显示设备2的图像数据来 提供。
[0128] 在一些实施例中,用户的头部的位置和定向可以通过联合作用的步骤700和704 来确定。在又一些实施例中,步骤700和704中的一者或另一者可被用来确定用户的头部 的头部位置和定向。
[0129] 可能发生的是,用户未向前看。因此,除了标识出用户头部位置和定向以外,中枢 可进一步考虑用户的眼睛在其头部中的位置。该信息可由上述眼睛跟踪组件134提供。眼 睛跟踪组件能够标识出用户的眼睛的位置,该位置可以被表示成眼睛单位向量,该眼睛单 位向量示出了与用户的眼睛聚焦所在且向前看的位置的向左、向右、向上和/或向下的偏 离(即面部单位向量)。面部单位向量可以被调整为定义用户正在看向何处的眼睛单位向 量。
[0130] 在步骤710,接着可以确定用户的F0V。头戴式显示设备2的用户的视图范围可以 基
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1