CN110310329A - 操作显示设备的方法、信息处理系统及非暂时性存储介质 - Google Patents

操作显示设备的方法、信息处理系统及非暂时性存储介质 Download PDF

Info

Publication number
CN110310329A
CN110310329A CN201910226418.7A CN201910226418A CN110310329A CN 110310329 A CN110310329 A CN 110310329A CN 201910226418 A CN201910226418 A CN 201910226418A CN 110310329 A CN110310329 A CN 110310329A
Authority
CN
China
Prior art keywords
posture
derived
movement
image
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910226418.7A
Other languages
English (en)
Other versions
CN110310329B (zh
Inventor
仇彤
杨杨
司徒晓乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN110310329A publication Critical patent/CN110310329A/zh
Application granted granted Critical
Publication of CN110310329B publication Critical patent/CN110310329B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • G09G3/003Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/012Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels

Abstract

操作显示设备的方法、信息处理系统及非暂时性存储介质。一种方法跟踪摄像头的视野中的对象的姿态;使用传感器数据和图像数据中的至少一方来导出显示设备的移动或视野中的移动;使用处理器确定导出的移动是否超过第一阈值;如果导出的移动超过第一阈值,则继续跟踪对象的姿态;如果移动没有超过第一阈值,则:(1)停止跟踪对象的姿态,以及(2)使用显示器显示基于对象的先前导出的姿态的图像。

Description

操作显示设备的方法、信息处理系统及非暂时性存储介质
技术领域
本发明的实施方式涉及一种信息处理装置的技术,该信息处理装置使用摄像头和运动传感器(例如,惯性传感器)处理关于目标对象的信息。
背景技术
JP-A-2013-50947中公开了估计由摄像头成像的对象的姿态的方法,其公开了一种技术,其中创建包括对象的图像的输入图像的二元掩模,从二元掩模提取作为对象的内轮廓和外轮廓中的点的单体(singlet),并且将单体的集合彼此连接,以形成表示为双矩阵的网格,从而估计对象的姿态。
然而,诸如JP-A-2013-50947的现有技术仅使用摄像头来估计姿态。然而,摄像头具有延迟,该延迟随着用户头部的运动或速度的增加而增加。这些系统还连续进行姿态估计,这会消耗功率。
发明内容
本申请的实施方式公开了具有摄像头的系统,以及具有摄像头和运动传感器的系统。组合的摄像头和运动传感器的实施方式减少了延迟并提高了系统的效率。某些实施方式通过中断对象跟踪来实现功耗的降低,从而减少处理器负荷。这种节能对于可能依赖电池电源的头戴式显示装置尤其有利。
本发明的一些方面的优点是解决上述问题中的至少一部分,并且本发明的方面可以实现为以下方面。
根据本发明的方面,提供了用于操作具有显示器、摄像头和惯性传感器的显示设备的方法、系统和计算机可读介质。所述方法、系统和计算机可读介质被配置用于:(a)跟踪摄像头的视野中的对象的姿态,所述跟踪包括重复地:(1)使用处理器,使用由摄像头获取的图像数据和由惯性传感器获取的传感器数据中的至少一方导出所述对象相对于所述显示设备的姿态,以及(2)使用显示器显示基于对象的导出的姿态的图像;(b)使用处理器,使用传感器数据和图像数据中的至少一方来导出显示设备的移动或视野中的移动;(c)使用处理器确定导出的移动是否超过第一阈值;(d)如果导出的移动超过第一阈值,则继续步骤(a)中的跟踪对象的姿态的处理;以及(e)如果移动未超过第一阈值,则:(1)停止步骤(a)中的跟踪对象的姿态的处理;以及(2)使用显示器显示基于对象的先前导出的姿态的图像。
本发明可以在除了信息处理装置以外的形式方面实现。例如,本发明可以以诸如头戴式显示器、显示装置、用于信息处理装置和显示装置的控制方法、信息处理系统、用于实现信息处理装置的功能的计算机程序、在其上记录计算机程序的记录介质以及包括计算机程序并以载波具体实现的数据信号的形式实现。
附图说明
将参考附图描述本发明的方面,其中,同样的附图标记引用同样的元件。
图1是例示出在本实施方式中作为信息处理装置的个人计算机的功能配置的框图。
图2是例示出由模板创建器执行的模板创建过程的流程图。
图3是用于说明通过使用式(1)计算出的表示用于三维模型的目标对象的二维中的N个点的集合的图。
图4(A)至图4(C)是例示出3D CAD、2D模型和基于2D模型创建的3D模型之间的关系的示意图。
图5是例示出通过使用模板优化成像的目标对象的姿态的头戴式显示器(HMD)的外部配置的图。
图6是功能性地例示出在本实施方式中的HMD的配置的框图。
图7是例示出估计目标对象的姿态的过程的流程图。
图8是例示出单个模型点可以与多个图像点组合的图。
图9是例示出模型点与错误图像点组合的示例的图。
图10是例示出CF相似性的计算的示例的图。
图11是例示出CF相似性的计算的示例的图。
图12是例示出CF相似性的计算的示例的图。
图13是例示出第二实施方式中的CF相似性的计算的示例的图。
图14是例示出第二实施方式中的CF相似性的计算的示例的图。
图15是例示出第二实施方式中的CF相似性的计算的示例的图。
图16A是例示出根据实施方式的AR应用中的姿态与对象之间的高延迟的图。
图16B是例示出根据实施方式的AR应用中的姿态与对象之间的低延迟或没有延迟的图。
图17是例示出根据实施方式的具有惯性传感器和摄像头传感器的HMD的示意性配置的图。
图18是例示出根据实施方式的图17的HMD的功能配置的框图。
图19是示出根据实施方式的用于预测对象位置的融合的传感器数据与图像数据的融合的流程图。
图20是示出根据实施方式的融合的传感器数据与图像数据的融合的流程图。
图21是示出根据实施方式的对象姿态预测的流程图。
图22是示出根据实施方式的初始化传感器融合的流程图。
图23是示出根据实施方式的惯性传感器对象跟踪器的流程图。
图24是示出根据实施方式的重新初始化IMU融合的流程图。
图25是例示出根据实施方式的处理视觉损失的流程图。
图26是例示出根据实施方式的针对生成的姿态的抖动减少的流程图。
图27是例示出根据实施方式的特征匹配的图。
图28是示出根据一个实施方式的节能模块的图。
图29是示出根据一个实施方式的使用传感器数据的运动检测的实施方式的图。
图30是示出根据一个实施方式的节能方法的流程图。
图31是示出根据一个实施方式的使用图像数据的运动检测的实施方式的图。
图32是示出根据一个实施方式的节能方法的流程图。
图33是示出根据一个实施方式的节能方法的流程图。
图34是示出根据一个实施方式的节能方法的流程图。
具体实施方式
在本说明书中,将根据以下项按顺序进行描述。
A.第一实施方式
A-1.信息处理装置的配置
A-2.模板的创建(训练)
A-2-1.2D模型点的选择
A-2-2.3D模型点的确定和模板的创建
A-2-3.用于训练的平面内旋转优化
A-2-4.超级模板
A-3.头戴式显示器(HMD)的配置
A-4.目标对象姿态的估计的执行
A-4-1.边缘检测
A-4-2.模板的选择
A-4-3.2D模型点对应关系
A-4-4.姿态的优化
A-4-5.子像素对应关系
B.第二实施方式
C.第三实施方式
D.修改例
D-1.修改例1
E.利用惯性运动传感器(IMU)和摄像头传感器的融合的3D跟踪对象E-1.介绍
E-2-1.概述
E-2-1-1.系统
E-2-1-2.传感器融合的方法的概述
E-2-2.跟踪器融合IMU
E-2-2-1.将IMU与3D对象跟踪器融合的方法
E-2-2-2.初始化IMU融合
E-2-2-2-1检测静态运动
E-2-2-3.IMU姿态预测
E-2-2-4.IMU发散确定
E-2-2-5.IMU对象跟踪器
E-2-2-5-1.检测静态运动
E-2-2-5-2.使用IMU预测姿态预测特征点位置/使用预测的特征位置预测KLT匹配
E-2-2-5-3.使用KLT匹配结果和IMU预测的姿态的姿态估计
E-2-2-5-4.通过边缘对齐和IMU预测的姿态的姿态细化
E-2-2-5-5.离群点(outlier)去除
E-2-2-6.重新初始化IMU融合
E-2-2-7.融合IMU和视觉
E-2-2-8.处理视觉损失
E-2-3.获得抖动减少的IMU姿态
E-2-3-1.检测静态运动
E-2-3-2.检测运动抖动
E-2-4.节能
E-2-4-1.移动检测
E-2-4-2.节能模式
E-3.实验结果
E-3-1.延迟改善
E-3-2.减少跟踪漂移
E-3-3.容许更快的用户动作
A.第一实施方式
A-1.信息处理装置的配置
图1是例示出在本实施方式中作为信息处理装置的个人计算机PC的功能配置的框图。个人计算机PC包括CPU 1、显示单元2、电源3、操作单元4、存储单元5、ROM和RAM。电源3向个人计算机PC的每个单元供电。作为电源3,例如,可以使用二次电池。操作单元4是用于从用户接收操作的用户接口(UI)。操作单元4由键盘和鼠标构成。
存储单元5存储各种数据项,并且由硬盘驱动器等构成。存储单元5包括3D模型存储部7和模板存储部8。3D模型存储部7存储通过使用计算机辅助设计(CAD)创建的目标对象的三维模型。模板存储部8存储由模板创建器6创建的模板。稍后将描述由模板创建器6创建的模板的细节。
CPU 1从ROM读取各种程序并在RAM中开发程序,以执行各种程序。CPU 1包括模板创建器6,模板创建器6执行用于创建模板的程序。模板被定义为这样的数据:在该数据中,关于存储在3D模型存储部7中的单个三维模型(在本实施方式中为3D CAD),包括在表示通过基于虚拟特定视点(下文中,也简称为“视图”)将3D模型投影到虚拟平面上而获得的2D模型的外部的轮廓线(在下文中,也简称为“轮廓”)中的点(2D模型点)的坐标值、通过基于特定视图将2D模型点转换为对象坐标系中的点而获得的3D模型点和特定视图彼此相关。本实施方式的虚拟视点由用于从对象坐标系变换到虚拟摄像头坐标系并在摄像头坐标系中表示的刚体变换矩阵和用于将三维坐标投影到虚拟平面上的坐标上的透视投影变换矩阵表示。刚体变换矩阵由表示围绕彼此正交的三个轴的旋转的旋转矩阵和表示沿三个轴的平移的平移向量表示。适当地调整透视投影变换矩阵,使得虚拟平面对应于显示装置的显示表面或摄像头的成像表面。CAD模型可以用作稍后描述的3D模型。在下文中,基于视图执行刚体变换和透视投影变换将简称为“投影”。
A-2.模板的创建(训练)
图2是例示出由模板创建器6执行的模板创建过程的流程图。模板创建器6创建T个模板,该T个模板是在从T个视图观看存储在3D模型存储部7中的针对目标对象的三维模型时获得的。在本实施方式中,模板的创建也将被称为“训练”。
在模板创建过程中,首先,模板创建器6准备存储在3D模型存储部7中的三维模型(步骤S11)。接下来,模板创建器6通过对各个不同的t个视图使用所有可能的平面内旋转(1,...,和P)来渲染CAD模型,以获得其各自的2D模型。每个视图是发明内容中的特定视点的示例。模板创建器6对各个2D模型执行边缘检测,以获取边缘特征(步骤S13)。
模板创建器6基于T(P x t)个视图中的每一个的边缘特征计算表示2D模型的轮廓的轮廓特征(CF)(步骤S15)。如果提供了足够密集采样的视图的集合,则可以获得具有与稍后将描述的图像点匹配的轮廓特征的视图。2D模型点是表示虚拟平面上的2D模型的轮廓或轮廓中包括的点的点。模板创建器6关于每个样本视图从2D轮廓中的2D模型点中选择代表性2D模型点,如将在下一部分中描述的,并且计算所选特征的描述符。轮廓特征或边缘特征也可以被称为特征描述符,并且是发明内容中的特征信息的示例。
如果完成了二维中的轮廓特征的计算,则模板创建器6选择2D轮廓特征(步骤S17)。接下来,模板创建器6计算在对应于特征的各个描述符的对象坐标系中的具有3D坐标的3D点(步骤S19)。
A-2-1.2D模型点的选择(步骤S17)
模板创建器6从关于各样本视图设置在轮廓中的点中选择N个点,该N个点位于点在标量场中具有高亮度梯度值(下文也称为“梯度大小”)的位置处并且彼此充分地分开。具体地,模板创建器6从具有足够大的梯度大小的所有点中选择使得由下式(1)表示的得分最大化的多个点。
在式(1)中,Ei表示点i的梯度大小,Dij表示点i和点j之间的距离。在本实施方式中,为了使式(1)中所示的得分最大化,首先,模板创建器6选择具有最大梯度大小的点作为第一点。接下来,模板创建器6选择使E2D21 2最大化的第二点。接下来,模板创建器6选择使下面的式(2)最大化的第三点。然后,模板创建器6选择第四点、第五点、......以及第N点。
图3是例示出通过使用式(1)计算出的N个2D模型点的集合PMn的图。在图3中,2D模型点的集合PMn被显示为与目标对象OBm的拍摄图像重叠。为了将目标对象OBm的所拍摄图像与2D模型集合PMn区分开,目标对象OBm的位置相对于集合PMn偏离。如图3所例示,为通过使用式(1)计算出的点的集合的2D模型点的集合PMn被分布以基本上匹配目标对象OBm的所拍摄图像的轮廓。如果计算出2D模型点的集合PMn,则模板创建器6将2D模型点的位置或方位与该位置处的亮度的梯度(向量)相关联,并将关联结果存储为该位置处的轮廓特征。
A-2-2.3D模型点的确定和模板的创建(步骤S19和S20)
模板创建器6计算对应于所计算出的2D模型点的集合PMn的3D模型点。3D模型点和轮廓特征的组合取决于视图。
如果提供了2D模型点和视图V,则模板创建器6通过以下三个步骤计算3D模型点POBJ
1.在虚拟平面上绘制(渲染)视图V中的3D CAD模型的深度图。
2.如果获得了2D模型点p的深度值,则计算在摄像头坐标系中表示的3D模型坐标PCAM
3.对视图V执行逆3D变换,并且计算出对象坐标系(原点固定到3D模型的坐标系)中的3D模型点的坐标POBJ
作为执行上述三个步骤的结果,模板创建器6将以下内容创建到单个模板中:由以下表达式(3)表示的针对每个视图t的视图矩阵Vt、由以下表达式(4)表示的与各个视图相关联的对象坐标系中的3D模型点以及由以下表达式(5)表示的与对象坐标系中的3D模型点对应并与各个视图相关联的2D特征的描述符(下文中也称为轮廓特征)。
t∈{1,...,T}···(3)
{P1,...,PN}t···(4)
{CF1,...,CFN}t···(5)
图4(A)至图4(C)是例示出3D CAD、通过投影3D CAD获得的2D模型和基于2D模型创建的3D模型之间的关系的示意图。如图4(A)至图4(C)中作为例示出上述模板创建过程的图像图例示出的,模板创建器6基于作为3D模型的3DCAD的视图Vn在虚拟平面上渲染2D模型。模板创建器6检测通过渲染获得的图像的边缘,进一步提取轮廓,并且基于参照式(1)和式(2)描述的方法选择轮廓中包括的多个2D模型点。在下文中,选择的2D模型点的位置和在2D模型点的位置处的梯度(亮度的梯度向量)由轮廓特征CF表示。模板创建器6在二维空间中在由轮廓特征CFi表示的2D模型点pi上执行逆变换,以在对应于轮廓特征CFi的三维空间中获得3D模型点Pi。这里,3D模型点Pi在对象坐标系中表示。视图Vn中的模板包括由以下表达式(6)表示的元素。
(CF1n,CF2n,···,3DP1n,3DP2n,···,Vn)···6)
在表达式(6)中,具有相同下标的轮廓特征和3D模型点(例如,CF1n和3DP1n)彼此相关联。未在视图Vn中检测到的3D模型点可以在与视图Vn不同的视图Vm等中被检测到。
在本实施方式中,如果提供了2D模型点p,则模板创建器6将2D模型点p的坐标视为表示像素的角的整数。因此,2D模型点p的深度值对应于(p+0.5)的坐标。结果,模板创建器6使用(p+0.5)的坐标来反向投影2D点p。当投影恢复的3D模型点时,模板创建器6截断浮点坐标以获得整数坐标。
A-2-3.用于训练的平面内旋转优化
如果提供了单一视图,则可以在视觉上从该单个视图识别基本上相同的特征,因此模板创建器6通过在该单个视图上执行平面内旋转来创建多个模板。通过创建已经经过平面内旋转的模板,模板创建器6可以利用较少的处理创建多个模板。具体地,模板创建器6分别根据基于表达式(4)和(5)的以下表达式(7)和(8)在视图t中定义用于0度的平面内旋转的3D点和CF描述符。
{P1,...,PN}t,0···(7)
{CF1,...,C,FN}t,0···(8)
通过使用表达式(7)和(8),模板创建器6关于处于α度的平面内旋转的模板来计算3D模型点和轮廓特征描述符。可见度不管平面内旋转如何不变化,并且表达式(7)中的3D模型点被表示在对象坐标系中。从这个事实来看,处于α度的平面内旋转的3D模型点是通过仅复制处于0度的平面内旋转的3D模型点的点坐标而获得的,并且因此如在以下式(9)中表示的。
{,P1,...,PN}t,α={P1,...,PN}t,0···(9)
处于α度的平面内旋转的轮廓特征存储在2D坐标系中,并且因此将处于0度的平面内旋转的轮廓特征旋转α度是足够的。此旋转通过对每个向量CFi应用2×2的旋转矩阵来执行,并且如在以下式(10)中表示的。
式(10)中的旋转是顺时针旋转,并且对应于用于训练的当前视图采样方法。视图t对应于发明内容中的特定视点。2D模型点的集合PMn对应于二维中的多个特征点的位置,3D模型点对应于在对象坐标系中表示的三维中的多个特征点的位置。
A-2-4.超级模板
模板创建器6在不同视图t中选择K个(例如,四个)模板,并将所选择的K个模板合并为单个超级模板。模板创建器6选择视图t彼此最接近的模板作为K个模板。因此,存在超级模板可能包括可以在对象上视觉识别的目标对象的所有边缘的高的可能性。因此,在目标对象的检测到的姿态被优化的情况下,存在在准确姿态上收敛的高的可能性。
如上所述,在本实施方式的个人计算机PC中,在从特定视图观看表示目标对象的三维CAD模型的情况下,模板创建器6检测二维中的多个边缘。模板创建器6计算通过变换多个边缘的轮廓特征而获得的3D模型点。模板创建器6创建模板,在该模板中二维中的多个边缘、通过变换获得的3D模型点以及特定视图彼此相关联。因此,在本实施方式中,由于例如由个人计算机PC创建的模板,当目标对象通过摄像头等成像时,以高准确度和/或在短时间周期内估计成像目标对象的姿态,并且选择表示与所拍摄图像中的目标对象的姿态最接近的姿态的模板。
A-3.头戴式显示器(HMD)的配置
图5是例示出头戴式显示器100(HMD 100)的外部配置的图,该头戴式显示器100通过使用模板优化成像目标对象的姿态。如果将在稍后描述的摄像头60拍摄目标对象的图像,则HMD 100优选地通过使用超级模板和目标对象的所拍摄图像来优化和/或估计成像目标对象的位置和姿态。
HMD 100是安装在头部上的显示装置,并且也被称为头戴式显示器(HMD)。本实施方式的HMD 100是光学透射或光学透视型头戴式显示器,其允许用户在视觉上识别虚拟图像并且还直接在视觉上识别外部场景。在本说明书中,为方便起见,HMD 100允许用户在视觉上识别的虚拟图像也被称为“显示图像”。
HMD 100包括:图像显示部20,其使得用户能够在被安装在用户的头部上的状态下在视觉上识别虚拟图像;以及控制部10(控制器10),其控制图像显示部20。
图像显示部20是要安装在用户的头部上的安装体,并且在本实施方式中具有眼镜形状。图像显示部20包括右保持单元21、右显示驱动单元22、左保持单元23、左显示驱动单元24、右光学图像显示单元26、左光学图像显示单元28以及摄像头60。右光学图像显示单元26和左光学图像显示单元28被设置成当用户佩戴图像显示部20时位于用户的右眼和左眼的前方。当用户佩戴图像显示部20时,右光学图像显示单元26的一端和左光学图像显示单元28的一端在对应于用户的眉间的位置处彼此连接。
右保持单元21是这样的构件,其被设置成当用户佩戴图像显示部20时从作为右光学图像显示单元26的另一端的端部ER延伸到与用户的颞部区域对应的位置上方。类似地,左保持单元23是这样的构件,其被设置成当用户佩戴图像显示部20时从作为左光学图像显示单元28的另一端的端部EL延伸到与用户的颞部区域对应的位置上方。右保持单元21和左保持单元23以与眼镜腿相同的方式将图像显示部20保持在用户的头部上。
当用户佩戴图像显示部20时,右显示驱动单元22和左显示驱动单元24设置在与用户的头部相对的一侧。在下文中,右保持单元21和左保持单元23被简单地统称为“保持单元”,右显示驱动单元22和左显示驱动单元24被简单地统称为“显示驱动单元”,右光学图像显示单元26和左光学图像显示单元28被简单地统称为“光学图像显示单元”。
显示驱动单元22和24分别包括液晶显示器241和242(下文中,称为“LCD 241和242”),投影光学系统251和252,等等(参见图6)。稍后将描述显示驱动单元22和24的配置的细节。作为光学构件的光学图像显示单元26和28包括导光板261和262(参见图6)和调光板。导光板261和262由透光树脂材料等制成,并且将显示驱动单元22和24输出的图像光引导到用户的眼睛。调光板是薄板状光学元件,并且被设置成覆盖图像显示部20的表面侧,该侧是与用户眼睛侧的相反(opposite)侧。调光板保护导光板261和262,以防止导光板261和262被损坏、污染等等。另外,调节调光板的透光率以调节进入用户的眼睛的外部光的量,从而控制在视觉上识别虚拟图像的程度。可以省略调光板。
摄像头60对外部场景进行成像。摄像头60设置在右光学图像显示单元26的一端与左光学图像显示单元28的一端彼此连接的位置处。如稍后将详细描述的,通过使用由摄像头60成像的外部场景中包括的目标对象的图像以及优选地存储在存储单元120中的超级模板来估计外部场景中包括的目标对象的姿态。摄像头60对应于发明内容中的成像部。
图像显示部20还包括连接单元40,连接单元40将图像显示部20连接到控制部10。连接单元40包括连接到控制部10的主体线48、右线42、左线44和连接构件46。右线42和左线44是从主体线48分出的两根线。右线42从右保持单元21的延伸方向上的顶点AP插入右保持单元21的壳体中,并且连接到右显示驱动单元22。类似地,左线44从左保持单元23的延伸方向上的顶点AP插入左保持单元23的壳体中,并且连接到左显示驱动单元24。连接构件46设置在主体线48、右线42和左线44的分支点处,并且具有用于连接耳机插头30的插孔。右耳机32和左耳机34从耳机插头30延伸。
图像显示部20和控制部10经由连接单元40传输各种信号。主体线48的与连接构件46相反一侧上的端部和控制部10分别设置有彼此适配的连接器(未例示出)。主体线48的连接器和控制部10的连接器彼此适配或释放,并且因此控制部10与图像显示部20连接或断开。例如,金属线缆或光纤可以用作右线42、左线44和主体线48。
控制部10是用于控制HMD 100的装置。控制部10包括确定键11、发光单元12、显示改变键13、触控板14、亮度改变键15、方向键16、菜单键17和电源开关18。确定键11检测推动操作,以输出用于确定在控制部10中操作的内容的信号。发光单元12通过使用其发光状态指示HMD 100的操作状态。HMD 100的操作状态包括例如电源的接通和断开等等。例如,LED用作发光单元12。显示改变键13检测推动操作,以输出用于在3D与2D之间改变内容移动图像显示模式的信号。触控板14检测用户的手指在触控板14的操作表面上的操作,以基于检测到的内容输出信号。可以采用电容型、压力检测型和光学型的各种触控板作为触控板14。亮度改变键15检测推动操作,以输出用于增大或减小图像显示部20的亮度的信号。方向键16检测对应于垂直和水平方向的按键上的推动操作,以基于检测到的内容输出信号。电源开关18检测开关的滑动操作,以改变HMD 100的电源状态。
图6是例示出了本实施方式的HMD 100的配置的功能框图。如图6所例示,控制部10包括存储单元120、电源130、操作单元135、CPU 140、接口180、发送单元51(Tx 51)和发送单元52(Tx 52)。操作单元135由从用户接收操作的确定键11、显示改变键13、触控板14、亮度改变键15、方向键16和菜单键17以及电源开关18构成。电源130向HMD 100的各个单元供电。例如,二次电池可以用作电源130。
存储单元120包括存储计算机程序的ROM、用于CPU 140执行各种计算机程序的写入和读取的RAM以及模板存储部121。模板存储部121存储由个人计算机PC的模板创建器6创建的超级模板。模板存储部121经由连接到接口180的USB存储器获取超级模板。模板存储部121对应于所附权利要求中的模板获取部。
CPU 140读取存储在存储单元120的ROM中的计算机程序,并且将计算机程序写入存储单元120的RAM以及从存储单元120的RAM读取计算机程序,以用作操作系统150(OS150)、显示控制单元190、声音处理单元170、图像处理单元160、图像设置单元165、位置对应关系确定单元168以及优化单元166。
显示控制单元190产生用于控制右显示驱动单元22和左显示驱动单元24的控制信号。具体地,显示控制单元190通过使用控制信号来单独控制右LCD控制部211打开和关闭右LCD 241的驱动;控制右背光控制部201打开和关闭右背光221的驱动;控制左LCD控制部212打开和关闭左LCD 242的驱动;以及控制左背光控制部202打开和关闭左背光222的驱动。因此,显示控制单元190控制右显示驱动单元22和左显示驱动单元24中的每一个产生和发出图像光。例如,显示控制单元190使右显示驱动单元22和左显示驱动单元24两者都产生图像光、使两个单元中的任一个产生图像光或者使两个单元中的任何一个都不产生图像光。产生图像光也称为“显示图像”。
显示控制单元190经由发送单元51和52向右LCD控制部211和左LCD控制部212发送针对它们的控制信号。显示控制单元190向右背光控制部201和左背光控制部202发送针对它们的控制信号。
图像处理单元160获取内容中包括的图像信号。图像处理单元160从所获取的图像信号中分离诸如垂直同步信号VSync和水平同步信号HSync的同步信号。图像处理单元160基于分离的垂直同步信号VSync或水平同步信号HSync的周期,通过使用锁相环(PLL)电路等(未例示出)来生成时钟信号PCLK。图像处理单元160通过使用A/D转换电路等(未例示出)将分离出同步信号的模拟图像信号转换为数字图像信号。接下来,针对每一帧,图像处理单元160将转换出的数字图像信号存储在存储单元120的DRAM中,作为目标图像的图像数据(RGB数据)。图像处理单元160可以根据需要对图像数据执行包括分辨率转换处理的图像处理、诸如亮度和颜色饱和度的调整的各种色调校正处理、梯形失真校正处理,等等。
图像处理单元160经由发送单元51和52发送生成的时钟信号PCLK、垂直同步信号VSync和水平同步信号HSync以及存储在存储单元120的DRAM中的图像数据中的每一个。这里,经由发送单元51发送的图像数据被称为“右眼图像数据”,经由发送单元52发送的图像数据被称为“左眼图像数据”。发送单元51和52用作用于控制部10与图像显示部20之间的串行传输的收发器。
声音处理单元170获取包括在内容中的音频信号,以放大所获取的音频信号,并将放大的音频信号提供给连接到连接构件46的右耳机32的扬声器(未例示出)以及连接到其的左耳机34的扬声器(未例示出)。此外,例如,在采用杜比(注册商标)系统的情况下,音频信号被处理,并且因此不同的声音(其频率改变)分别从右耳机32和左耳机34输出。
在由摄像头60拍摄包括目标对象的外部场景的图像的情况下,位置对应关系确定单元168检测所拍摄图像中的目标对象的边缘。然后,位置对应关系确定单元168确定目标对象的边缘(边缘特征元素)与存储在模板存储部121中的2D模型的轮廓特征元素之间的对应关系。在本实施方式中,预先创建和存储多个模板,利用特定目标对象(例如,特定部分)作为预设目标对象。因此,如果预设目标对象包括在所拍摄图像中,则位置对应关系确定单元168确定目标对象的边缘的2D位置与包括在模板中的目标对象的2D模型点的2D位置之间的对应关系,该模板是从不同视图中的多个模板中选择的。稍后将描述确定或建立所拍摄图像中的目标对象的边缘特征元素与模板中的2D模型的轮廓特征元素之间的对应关系的特定过程。
优化单元166输出包括相应3D位置的3D模型点,该3D模型点对应于具有与来自目标对象的模板的图像点的对应关系的2D模型点,并且优化单元166基于图像点、3D模型点和由至少一个变换矩阵表示的视图最小化式(14)中的成本函数,以估计由摄像头60成像的外部场景中包括的目标对象的三维中的位置和姿态。稍后将描述成像目标对象的位置和姿态的估计和/或优化。
图像设置单元165对显示在图像显示部20上的图像(显示图像)执行各种设置。例如,图像设置单元165设置显示图像的显示位置、显示图像的大小、显示图像的亮度等,或者设置右眼图像数据和左眼图像数据,使得形成双目视差(下文中,也称为“视差”),为了使用户立体(3D)地在视觉上将显示图像识别为三维图像。图像设置单元165通过对所拍摄图像应用图案匹配等来从所拍摄图像中检测预先设置的确定目标图像。
在位置对应关系确定单元168和优化单元166正在执行各种处理并且已经执行了这些处理的情况下,图像设置单元165在光学图像显示单元26和28上以目标对象的姿态显示(渲染)与目标对象相对应的3D模型,该目标对象的姿态由优化单元166导出和/或优化。操作单元135接收来自用户的操作,并且用户可以确定目标对象的估计姿态是否与通过光学图像显示单元26和28发送的外部场景中包括的目标对象的姿态匹配。
接口180是将控制部10连接到作为内容提供源的各种外部设备OA的接口。作为外部设备OA,例如,可以使用个人计算机(PC)、移动电话终端和游戏终端。作为接口180,例如,可以使用USB接口、微USB接口和存储卡接口。
图像显示部20包括右显示驱动单元22、左显示驱动单元24、作为右光学图像显示单元26的右导光板261、作为左光学图像显示单元28的左导光板262以及摄像头60。
右显示驱动单元22包括接收部53(Rx 53)、用作光源的右背光控制部201(右BL控制部201)和右背光221(右BL 221)、用作显示元件的右LCD控制部211和右LCD 241以及右投影光学系统251。如上所述,右背光控制部201和右背光221用作光源。如上所述,右LCD控制部211和右LCD 241用作显示元件。右背光控制部201、右LCD控制部211、右背光221和右LCD241统称为“图像光产生单元”。
接收部53用作控制部10与图像显示部20之间的串行传输的接收器。右背光控制部201基于输入控制信号驱动右背光221。右背光221是诸如LED或电致发光元件(EL)的发光体。右LCD控制部211基于经由接收部53输入的时钟信号PCLK、垂直同步信号VSync、水平同步信号HSync和右眼图像数据来驱动右LCD 241。右LCD 241是透射型液晶面板,其中多个像素以矩阵设置。
右投影光学系统251由准直透镜构成,该准直透镜将从右LCD 241发出的图像光转换成平行的光通量束。作为右光学图像显示单元26的右导光板261沿着预定光路反射从右投影光学系统251输出的图像光,以将图像光引导到用户的右眼RE。右投影光学系统251和右导光板261统称为“导光部”。
左显示驱动单元24具有与右显示驱动单元22相同的配置。左显示驱动单元24包括接收部54(Rx 54)、用作光源的左背光控制部202(左BL控制部202)和左背光222(左BL222)、用作显示元件的左LCD控制部212和左LCD 242以及左投影光学系统252。如上所述,左背光控制部202和左背光222用作光源。如上所述,左LCD控制部212和左LCD 242用作显示元件。另外,左背光控制部202、左LCD控制部212、左背光222和左LCD 242统称为“图像光产生单元”。左投影光学系统252由准直透镜构成,该准直透镜将从左LCD 242发出的图像光转换成平行的光通量束。作为左光学图像显示单元28的左导光板262沿预定光路反射从左投影光学系统252输出的图像光,以将图像光引导到用户的左眼LE。左投影光学系统252和左导光板262被统称为“导光部”。
A-4.目标对象姿态的估计的执行(运行时间)
图7是例示出了目标对象姿态估计过程的流程图。在姿态估计过程中,首先,位置对应关系确定单元168利用摄像头60对包括目标对象的外部场景进行成像(步骤S21)。位置对应关系确定单元168对目标对象的所拍摄图像执行下面描述的边缘检测(步骤S23)。
A-4-1.边缘检测(步骤S23)
位置对应关系确定单元168检测目标对象的图像的边缘,以将成像目标对象与对应于目标对象的模板相关联。位置对应关系确定单元168基于所拍摄图像的像素计算用作边缘的特征。在本实施方式中,位置对应关系确定单元168计算目标对象的所拍摄图像的像素的亮度梯度,以确定特征。当从所拍摄图像中检测到边缘时,外部场景中除了目标对象之外的对象、外部场景中包括的不同阴影、不同照明和对象的不同材料可能影响检测到的边缘。因此,从所拍摄图像中检测边缘可能比从3D CAD模型中检测边缘相对困难。在本实施方式中,为了更容易地检测边缘,位置对应关系确定单元168仅以与在简单边缘检测方法中执行的过程相同的方式将边缘与阈值进行比较并且抑制非最大值。
A-4-2.模板的选择(步骤S25)
如果从目标对象的图像检测到边缘,则位置对应关系确定单元168从存储在模板存储部121中的模板中选择具有与其所拍摄图像中的目标对象的姿态最接近的视图的模板(步骤S25)。对于该选择,可以单独使用用于估计目标对象的粗略姿态的现有三维姿态估计算法。当高度准确地导出3D姿态时,位置对应关系确定单元168可以找到比所选择的训练视图更接近图像中的目标对象的姿态的新训练视图。在找到新训练视图的情况下,位置对应关系确定单元168高度准确地导出新训练视图中的3D姿态。在本实施方式中,如果视图彼此不同,则作为包括3D模型的2D轮廓的视觉可识别边缘的集合的轮廓特征也彼此不同,并且因此可以找到新的训练视图。位置对应关系确定单元168针对视觉可识别边缘的集合彼此不同的问题使用超级模板,并且因此提取尽可能多的视觉可识别边缘。在另一实施方式中,代替使用预先创建的模板,位置对应关系确定单元168可以对目标对象进行成像,并且可以通过在反映成像环境(诸如飞行中的渲染中的光照)的同时并且按需使用3D CAD数据来创建模板,以尽可能多地提取视觉可识别边缘。
A-4-3.2D点对应关系(步骤S27)
如果步骤S25中的处理完成,则位置对应关系确定单元168将目标对象的图像的边缘与包括在模板中的2D模型点相关联(步骤S27)。
图8是例示出了单个2D模型点与包括在特定边缘中的多个图像点组合的图。图9是例示出2D模型点与错误图像点组合的示例的图。图8和图9例示出了目标对象OBm的所拍摄图像IMG、2D模型点集合PMn的局部放大图以及在与图3所例示的3D模型对应的目标对象OBm由摄像头60进行成像的情况下的多个箭头CS。如图8所例示,从目标对象OBm的图像IMG检测出的边缘的部分包括如箭头CS1至CS5中的多个选项,其中该部分与作为模板中包括的2D模型点之一的2D模型点PM1相关联。图9例示出了包括在模板中并且布置的2D模型点PM1至PM5与从目标对象OBm的图像IMG检测到的边缘(其中包括图像点)错误地组合的示例。在这种情况下,例如,在图9中,尽管2D模型点PM2、PM3、PM1、PM4和PM5从顶部开始排列,但是箭头CS7、CS6、CS8、CS10和CS9按此顺序排列在目标对象OBm的图像IMG的边缘中。因此,箭头CS8和箭头CS6以及箭头CS9和箭头CS10被改变。如上所述,位置对应关系确定单元168需要将包括在模板中的2D模型点与包括在目标对象OBm的图像IMG的边缘中的图像点准确地相关联,以准确地估计或导出成像目标对象OBm的姿态。
在本实施方式中,位置对应关系确定单元168通过使用下式(11)关于包括在每个投影的2D模型点的局部附近的所有图像点计算相似性得分。
表示在式(11)中的相似性得分的测量是基于模板中包括的2D模型点的亮度的梯度向量(下文中,简称为梯度)与图像点的梯度向量之间的匹配,但是作为示例基于式(11)中的两个向量的内积。式(11)中的Ep的向量是2D模型点(边缘点)p的单位长度梯度向量。在获得相似性得分时,位置对应关系确定单元168使用测试图像(输入图像)的梯度以计算图像点p'的特征。通过表达式(11)中的分母中的梯度幅度的局部最大值的归一化确保了优先级被可靠地给予具有局部高强度的边缘。该归一化防止了弱的并因此成为噪声的边缘被整理。当获得相似性得分时,位置对应关系确定单元168提高搜索了对应关系的最近邻域的大小N(p)。例如,在连续迭代计算中减小投影的2D模型点的位置位移的平均值的情况下,可以减小N(p)。在下文中,将描述使用式(11)建立对应关系的特定方法。
图10至图12是例示出相似性得分的计算的示例的图。图10例示出了由摄像头60拍摄的目标对象的图像IMGOB(实线)、基于类似于目标对象的图像IMGOB的模板的2D模型MD(点划线),以及作为2D模型MD中的多个轮廓特征CFm的2D模型点。图10例示出了以格子形式布置的多个像素px以及以每个轮廓特征CFm为中心的3像素×3像素形成的区域(例如,区域SA1)。图10例示出了以轮廓特征CF1为中心的区域SA1(稍后将对其进行描述)、以轮廓特征CF2为中心的区域SA2以及以轮廓特征CF3为中心的区域SA3。轮廓特征CF1和轮廓特征CF2彼此相邻,并且轮廓特征CF1和轮廓特征CF3也彼此相邻。换言之,轮廓特征在图10中以轮廓特征CF2、轮廓特征CF1和轮廓特征CF3的顺序布置。
如图10所例示,由于目标对象的图像IMGOB与2D模型MD不匹配,位置对应关系确定单元168通过使用式(11),分别将包括在目标对象的图像IMGOB的边缘中的图像点与2D模型MD的多个轮廓特征CFm表示的2D模型点相关联。首先,位置对应关系确定单元168选择轮廓特征CF1作为多个轮廓特征CFm中的一个,并提取以包括轮廓特征CF1的像素px为中心的3像素×3像素的区域SA1。接下来,位置对应关系确定单元168分别提取以诸如与轮廓特征CF1相邻的轮廓特征CF2和轮廓特征CF3的两个轮廓特征为中心的3像素×3像素的区域SA2和区域SA3。位置对应关系确定单元168通过针对形成区域SA1、SA2和SA3中的每一个的各个像素px使用式(11)来计算得分。在该阶段,区域SA1、SA2和SA3是具有相同形状和相同尺寸的矩阵。
图11例示出了各个区域SA1、SA2和SA3的放大视图,以及针对形成区域SA1、SA2和SA3的各个像素计算出的相似性得分。位置对应关系确定单元168计算作为轮廓特征的2D模型点与九个图像点之间的相似性得分。例如,在图11的下部所例示的区域SA3中,位置对应关系确定单元168针对像素px33和px36计算出0.8、针对像素px39计算出0.5、针对剩余的六个像素计算出0,作为得分。像素px33和px36的得分0.8与像素px39的得分0.5不同的原因是像素px39中的目标对象的图像IMGOB是弯曲的,因此梯度不同。如上所述,位置对应关系确定单元168以相同的方式计算形成提取区域SA1、SA2和SA3的每个像素(图像点)的相似性得分。
在下文中,将着重于轮廓特征CF1进行描述。位置对应关系确定单元168计算形成区域SA1的每个像素的校正得分。具体地,通过使用位于区域SA2和SA3的与形成区域SA1的各像素相同矩阵位置处的像素,利用加权因子对相似性得分进行平均。位置对应关系确定单元168不仅对轮廓特征CF1而且对其他轮廓特征CF2和CF3执行相似性得分的该校正。以上述方式,可以实现2D模型点与图像点之间的对应关系被平滑的效果。在图11所例示的示例中,位置对应关系确定单元168通过将区域SA1的每个像素px的得分的加权因子设置为0.5、将区域SA2的每个像素px的得分的加权因子设置为0.2并且将区域SA3的每个像素px的得分的加权因子设置为0.3,来计算校正得分。例如,作为图12所例示的像素px19的校正得分的0.55是通过将三个值(例如通过将区域SA1的像素px19的得分0.8乘以加权因子0.5得到的值、通过将区域SA2的像素px29的得分0乘以加权因子0.2得到的值以及通过将区域SA3的像素px39的得分0.5乘以加权因子0.3得到的值)相加得到的值。加权因子与处理目标轮廓特征CF1与其他轮廓特征CF2和CF3之间的距离成反比。位置对应关系确定单元168将形成区域SA1的像素的校正得分中具有最大得分的图像点确定为与轮廓特征CF1相关联的图像点。在图12所例示的示例中,校正得分的最大值是像素px13和px16的0.64。在多个像素具有相同校正得分的情况下,位置对应关系确定单元168选择距轮廓特征CF1的距离最短的像素px16,并且位置对应关系确定单元168将轮廓特征CF1与像素px16的图像点相关联。位置对应关系确定单元168将由摄像头60拍摄的目标对象的多个图像中检测到的边缘与靠近目标对象的图像的视图中的模板中的2D模型点进行比较,以确定对应于2D模型点(轮廓特征CF)的目标对象的图像点。
如果位置对应关系确定单元168完成图7中的步骤S27中的处理,则优化单元166从存储在模板存储部121中的目标对象的模板中获取对应于与图像点相关联的2D模型点的3D模型点以及关于用于创建2D模型点的视图的信息(步骤S29)。优化单元166基于所提取的3D模型点和关于视图的信息以及图像点来导出由摄像头60成像的目标对象的姿态(步骤S33)。推导的细节如下。
A-4-4.姿态的优化(步骤S33)
在本实施方式中,优化单元166通过使用包括在对应于选择的训练视图的模板中的轮廓特征以及对应于包括在轮廓特征中的2D模型点的3D模型点来高准确度地导出或细化目标对象的3D姿态。在推导中,优化单元166通过执行用于最小化式(14)的优化计算来导出目标对象的姿态。
如果位置对应关系确定单元168完成建立2D模型点与预定视图中的图像点之间的对应关系,则位置对应关系确定单元168从对应于视图的模板中读取与2D模型点(或轮廓特征CFi)对应的3D模型点Pi。在本实施方式中,如上所述,将对应于2D模型点的3D模型点Pi存储在模板中。然而,3D模型点Pi不是必须存储在模板中,并且位置对应关系确定单元168可以每次基于视图逆转换与图像点的对应关系已完成的2D模型点,以获得3D模型点Pi
优化单元166基于式(12)将所获得的3D模型点Pi的位置重新投影到2D虚拟平面上。
π(Pi)=(ui,vi)T···(12)
这里,式(12)中的π包括刚体变换矩阵和包含在视图中的透视投影变换矩阵。在本实施方式中,表示围绕在刚体变换矩阵中包括的三个轴线的三个旋转的三个参数和表示沿三个轴的三个平移的三个参数被视为用于使式(14)最小化的变量。旋转可以由四元数表示。对应于3D模型点Pi的图像点Pi在式(13)中表示。
pi=(pix,piy)T···13)
优化单元166通过使用由以下式(14)表示的成本函数来导出3D姿态,以最小化3D模型点Pi与图像点Pi之间的误差。
这里,式(14)中的wi是用于控制每个模型点对成本函数的贡献的加权因子。投影到图像边界外部的点或者具有低对应关系可靠性的点被给予小值的加权因子。在本实施方式中,为了呈现3D姿态的特定调整,如果满足以下三项之一,则优化单元166使用高斯-牛顿(Gauss-Newton)法根据3D姿态参数确定由式(14)表示的成本函数的最小化:
1.初始3D姿态比预设姿态发散得多。在这种情况下,确定成本函数的最小化失败。
2.使用高斯-牛顿法的近似的次数超过预先设定的定义次数。
3.高斯-牛顿法中的相对姿态改变等于或小于预设阈值。在这种情况下,确定成本函数被最小化。
当导出3D姿态时,优化单元166可以衰减目标对象的姿态的细化。处理目标对象的姿态的估计所需的时间直接取决于被执行以实现姿态的高准确度(细化)的迭代计算的数量。从提高系统速度的角度来看,采用不损害姿态准确度的情况下通过尽可能少的迭代计算的数量导出姿态的方法可能是有益的。根据本实施方式,每个迭代计算独立于其先前的迭代计算执行,并且因此不施加约束,约束确保2D模型点的对应关系保持一致,或者相同的2D模型点与两个连续迭代计算之间的相同图像结构或图像点相关联。结果,特别地,在存在由与目标对象不同的其他对象混合在由摄像头60拍摄的图像中的杂乱状态或存在阴影的状态引起的噪声边缘结构的情况下,点的对应关系不稳定。结果,收敛可能需要更多的迭代计算。根据本实施方式的方法,可以通过将(11)式中的相似性得分与下式(15)中示出的衰减加权因子相乘来处理该问题。
式(15)表示高斯函数,σ具有控制衰减的强度(效果)的功能。在σ的值大的情况下,衰减不会显著发生,但在σ的值小的情况下,发生强衰减,因此可以防止点远离当前位置。为了确保不同迭代计算中的点的对应关系的一致性,在本实施方式中,σ是通过最新的几次迭代计算获得的重新投影误差的函数。在(可以由式(14)表示的)重新投影误差相当大的情况下,在本实施方式的方法中,不发生收敛。在根据本实施方式的算法中,σ被设置为很大的值,因此确保了与远点的对应关系,使得几乎不执行衰减或不大幅执行衰减。在重新投影误差很小的情况下,存在使用根据本实施方式的算法的计算状态可以得到准确解决方案的高可能性。因此,优化单元166将σ设置为小的值以增加衰减,从而稳定点的对应关系。
A-4-5.子像素对应关系
本实施方式的点的对应关系仅考虑整数的像素位置处的图像点,因此存在3D姿态的准确度可能劣化的可能性。根据本实施方式的方法包括为了解决该问题的两种技术。第一,找到相似性得分最大的图像点p',然后通过插值增加该位置处的准确度。最终位置由四个连接的相邻图像点p'的加权线性组合表示。这里的权重是相似性得分。第二,根据本实施方式的方法针对重新投影误差使用两个阈值,以使姿态以高准确度收敛。在达到很高的阈值的情况下,姿态以高准确度收敛,因此只需要获得稍微高准确度的解决方案。因此,在达到阈值之后,通过各自的迭代计算将针对点的对应关系的向量长度人为地减少到1/2。在该过程中,迭代地执行随后的若干计算,直到重新投影误差小于较小的第二阈值。
作为以高准确度导出姿态的最后步骤,位置对应关系确定单元168计算用于移除错误结果的匹配得分。这些得分具有与式(14)中的成本函数相同的形式,并且由下式(16)表示。
在式(16)中,SIMi表示轮廓特征i(2D模型点)与最匹配轮廓特征的图像点之间的相似性得分。指数部分是通过使用姿态重新投影的2D模型点和与其对应的图像点之间的范数(在本实施方式中两个点之间的距离的平方),N表示2D模型点和图像点的集合的数量。优化单元166可以在式(16)的值小于阈值的情况下连续地执行优化而不采用姿态,并且在式(16)的值等于或大于阈值的情况下采用姿态。如上所述,如果优化单元166完成图7中的步骤S33中的处理,则位置对应关系确定单元168和优化单元166完成姿态估计过程
如上所述,在本实施方式的HMD 100中,位置对应关系确定单元168从由摄像头60捕获的目标对象的图像检测边缘。位置对应关系确定单元168建立包括在图像中的图像点与包括在模板存储部121中存储的模板中的2D模型点之间的对应关系。优化单元166通过使用2D模型点和通过转换包括在模板中的2D模型点获得的3D点来估计或导出成像目标对象的姿态。具体地,优化单元166通过使用成本函数来优化成像目标对象的姿态。因此,在本实施方式的HMD 100中,如果表示由摄像头60成像的目标对象的轮廓的边缘能够被检测到,则可以高准确度地估计成像目标对象的姿态。由于以高准确度估计目标对象的姿态,因此提高了AR图像在目标对象上的重叠显示的准确度,并且提高了由机器人执行的操作的准确度。
B.第二实施方式
除了在建立由HMD 100的位置对应关系确定单元168执行的2D点的对应关系时的相似性得分的计算方法之外,第二实施方式与第一实施方式相同。因此,在第二实施方式中,将描述与第一实施方式不同的相似性得分的计算,并且将省略其他处理的描述。
图13至图15是例示出第二实施方式中的CF相似性的计算的示例的图。与图10相比,图13进一步例示出了在各个轮廓特征CFm处垂直于2D模型MD的轮廓的垂直线VLm。例如,图13中所例示的垂直线VL1垂直于轮廓特征CF1处的2D模型MD的轮廓。垂直线VL2垂直于轮廓特征CF2处的2D模型MD的轮廓。垂直线VL3垂直于轮廓特征CF3处的2D模型MD的轮廓。
以与第一实施方式中相同的方式,位置对应关系确定单元168选择轮廓特征CF1作为多个轮廓特征CFm中的一个,并提取以包括轮廓特征CF1的像素px为中心的3像素×3像素的区域SA1。接下来,位置对应关系确定单元168分别提取以诸如与轮廓特征CF1相邻的轮廓特征CF2和轮廓特征CF3的两个轮廓特征为中心的3像素×3像素的区域SA2和区域SA3。位置对应关系确定单元168将得分分配给形成区域SA1、SA2和SA3中的每一个的每个像素px。在第二实施方式中,如上所述,位置对应关系确定单元168将得分分配给区域SA1、SA2和SA3的方法与第一实施方式不同。
在下文中,将着重于区域SA1进行描述。位置对应关系确定单元168通过由区域SA中的轮廓特征CF1表示的2D模型点,假设在2D模型点处垂直于模型轮廓的垂直线VL1。位置对应关系确定单元168通过使用多个高斯函数针对轮廓特征CF1设置每个像素px(每个图像点)的得分,每个高斯函数具有在垂直线VL1上的中心并且在垂直于线段VL1的方向(也称为主轴)上分布。像素px的坐标由整数(m,n)表示,但是,在本实施方式中,与垂直线VLm重叠的像素px的中心由(m+0.5,n+0.5)表示,从其中心向垂直线VLm绘制的第二垂直线用作主轴。与垂直线VL1重叠的像素px和与主轴重叠的像素px的相似性得分计算如下。首先,关于垂直线VL1上的像素px,通过乘以与像素px的相似性得分成比例的加权因子而作为结果获得的高斯函数的中心部分的值被用作新的相似性得分。这里,选择高斯函数的方差,以与距轮廓特征CF1的距离成比例。另一方面,关于每个高斯函数的主轴上的像素px,具有将距垂直线VL1与主轴之间的交点(中心)的距离作为变量的每个高斯函数的值被用作新的相似性得分。结果,例如,位置对应关系确定单元168将各个得分0.2、0.7和0.3分配给包括在目标对象的图像IMGOB中的像素px13、px16和像素19,尽管像素具有几乎相同的梯度,如图14所例示。这是因为从垂直线VL1到各个像素px的距离彼此不同。
接下来,位置对应关系确定单元168以与第一实施方式中相同的方式局部地平滑相似性得分。区域SA1、SA2和SA3乘以与第一实施方式中相同的加权因子,因此计算出形成区域SA1的每个像素的校正得分。位置对应关系确定单元168确定作为计算的结果获得的形成区域SA1的像素的校正得分中的最大得分作为表示与轮廓特征CF1的对应关系的得分。在图15所例示的示例中,位置对应关系确定单元168将像素px16的0.56确定为得分。
第三实施方式
在本实施方式中,位置对应关系确定单元168将关于相似性得分的式(11)修改为用于对与垂直于模型轮廓的垂直线分离的图像点施加处罚的式。位置对应关系确定单元168定义模型点p和图像点p'、作为向量Ep的与2D模型的边缘取向(轮廓)垂直的单位长度向量,并定义下式(17)。
如果下式(18)是通过使用由w表示的加权因子定义的,模型点与图像点之间的相似性得分可以被表达为式(19)。
接下来,位置对应关系确定单元168根据与第一实施方式中相同的方法,局部地平滑通过使用式(19)获得的区域SA1、SA2和SA3中的每个像素px的相似性得分,并且然后,在区域SA1、SA2和SA3中的每一个中建立图像点与轮廓特征CF之间的对应关系。
D.修改例
本发明不限于上述实施方式,并且在不脱离本发明的精神的情况下,可以在范围内的各个方面中实现。例如,还可以发生以下修改例。
D-1.修改例1
在上述第一实施方式和第二实施方式中,位置对应关系确定单元168在以轮廓特征CFm为中心的3像素×3像素的区域内计算得分,以与2D点建立对应关系,但是在建立对应关系时在计算得分的方法中可能发生各种修改。例如,位置对应关系确定单元168可以计算4像素×4像素的区域内的得分。位置对应关系确定单元168可以通过使用除了式(11)中的评估函数之外的评估函数建立2D点之间的对应关系。
在上述第一实施方式中,位置对应关系确定单元168和优化单元166通过使用CF方法估计成像目标对象的姿态,但是可以结合CF方法和比较例的MA方法来估计目标对象的姿态。MA方法适用于在目标对象和背景中建立了双色基础的情况。因此,位置对应关系确定单元168和优化单元166可以选择CF方法或MA方法,以根据拍摄的图像估计目标对象的姿态。在这种情况下,例如,位置对应关系确定单元168首先根据MA方法估计目标对象的姿态。在使用MA方法进行的目标对象的姿态的估计不收敛的情况下,位置对应关系确定单元168可以通过使用CF方法的算法基于目标对象的初始姿态再次执行姿态估计。与使用仅MA方法的算法的情况或者使用仅CF方法的算法的情况相比,位置对应关系确定单元168可以通过使用组合了MA方法和CF方法的方法以更高的准确度估计目标对象的姿态。
在上述实施方式中,一个或更多个处理器(例如CPU 140)可以使用基于对应于目标对象的相应的3D模型创建的模板(模板数据)来导出和/或跟踪由摄像头60拍摄的场景的图像帧内的两个或更多个目标对象的相应姿态。根据实施方式,即使当目标对象在场景中相对于彼此移动时,也可以以小于或等于摄像头60的帧速率或右/左光学图像显示单元26/28的显示帧速率导出和/或跟踪这些姿态。
模板可以包括与目标对象相关联的信息,诸如目标对象的名称和/或几何规格,使得一个或更多个处理器在右/左光学显示单元26/28上显示该信息或者通过接口180向外部设备OA呈现,一旦一个或更多个处理器已经导出了目标对象的姿态。
本发明不限于上述实施方式或修改例,并且可以使用范围内的各种配置来实现而不脱离其精神。例如,对应于发明内容中描述的各个方面的技术特征和修改例中的技术特征的实施方式可以适当地交换或组合,以解决上述问题中的一些或者全部,或者为了实现上述效果中的一些或者全部。另外,如果技术特征没有被描述为本说明书中的必要特征,则可以适当地删除该技术特征。
2016年3月29日提交的日本专利申请No.2016-065733的全部公开内容通过引用明确并入本文。
E.利用惯性运动传感器(IMU)和摄像头传感器的融合的3D跟踪对象
本发明不限于上述实施方式,并且在不脱离本发明的精神的情况下,下述实施方式也在范围内。
经由章节标题A-E的上面讨论的实施方式涉及图1至图15,其涉及包括(但不限于)用于估计姿态的摄像头60的HMD 100;下面的实施方式涉及图16至图27,其涉及包括(但不限于)摄像头60和用于以新的和改进的方式估计姿态的惯性传感器71的HMD 100'。以下实施方式通过使用多个传感器并将传感器的数据融合在一起来提高对象跟踪的准确性和速度。下面讨论各种实施方式。
E-1.引言
增强现实(AR)实时地集成了来自实时视频和用户环境的数字信息。AR应用中的三个要求总结如下:
(1)它是实时交互的,
(2)它是三维(“3D”)的,以及
(3)它将真实元素与虚拟元素相结合。
对关于计算机视觉和图像处理的大量的技术进行了研究,以满足这些要求。一些AR应用不需要准确的3D对象姿态,因此在视频叠加模式中呈现增强的信息不会引起任何问题,例如在用于教育应用的书籍上方“悬停”增强的信息。
然而,诸如工业、军事和医疗AR应用的许多AR应用需要低延迟(例如,小于15mm/s)和准确的3D对象姿态。延迟与在对象从初始位置到第二位置的移动发生时姿态从初始位置移动至第二位置的姿态的速度有关。
在下面描述的实施方式中,描述了3D对象跟踪系统,其可以在用于AR应用的头戴式显示器中实现。然而,对于如图16A中所示的一些AR应用,3D对象跟踪的延迟可能太高,这表明当对象302最初相对于用户的视点移动时,姿态300被延迟而无法继续覆盖在对象302上。相反,姿态暂时地不处于适当位置(即,不覆盖在对象302上)。此外,当用户移动得较快或者用户移动到存在较少特征点的对象视图时,3D对象跟踪很容易丢失。高延迟、用户移动速度限制以及丢失跟踪频繁极大地影响了使用头戴式显示器进行光学透视AR应用的用户体验。
图16(b)示出当延迟被减小使得当对象302最初相对于用户的视点移动时,姿态300不被延迟并且因此被用户的视力感知为连续地覆盖对象302。
根据本公开的各个方面,为了避免上述问题并减少延迟,头戴式显示器可以配备有惯性运动单元(“IMU”)传感器,其具有陀螺仪传感器和加速度计。为了减少延迟并因此改善3D对象跟踪性能,IMU传感器和摄像头传感器被“融合”或者IMU传感器和摄像头传感器的数据被组合在一起。可以使用IMU传感器,因为它以比摄像头高得多的频率(例如,125Hz、250Hz、1MHz等)工作,并且人眼的延迟为约15ms。因此,理想地,优选地将系统的延迟减少到小于15ms。
应当理解的是,术语“IMU传感器”和“惯性传感器”贯穿本公开可互换地使用。
在一个实施方式中,头戴式显示器配备有IMU传感器(3轴加速度计和3轴陀螺仪)作为运动传感器,如上及贯穿本申请所讨论的。然而,在另一实施方式中,除了加速度计和陀螺仪之外,头戴式显示器可以配备有3轴磁传感器。在这方面,IMU传感器可以包括加速度计、陀螺仪传感器和/或磁传感器。在一个实施方式中,在算法中仅使用加速度计和陀螺仪传感器。然而,在另一实施方式中,磁传感器可以用于进一步提高融合准确度,因此可以将磁传感器添加(并且算法相应地改变)到加速度计和陀螺仪传感器。
然而,应该理解的是,本发明不应限于使用包括加速度计、陀螺仪和/或磁传感器的IMU传感器来检测运动的上述实施方式,并且可以采用任何其他类型的运动传感器或能够检测沿3轴运动的运动感测系统。
此外,一个或更多个运动传感器或运动传感系统可以用在单个HMD装置中以进一步减少延迟。例如,这些运动传感器或运动感测系统可以交错以在不同时间输出姿态。在这方面,每个传感器/系统在其他传感器未输出姿态时提供姿态,从而减少总体延迟。
根据一个实施方式,本文中的运动传感器或运动感测系统可以在125Hz下操作。然而,在其他实施方式中,运动传感器或运动感测系统可以在高频(例如,250Hz、1MHz)下操作,使得延迟减小到15ms以下。
E-2.IMU和3D对象跟踪融合
在本公开中,可以使用一个或更多个非线性滤波器(诸如扩展卡尔曼滤波器(EKF)、粒子滤波器、无迹卡尔曼滤波器(UKF)、最大似然非线性系统估计等)来在单个HMD系统中融合来自IMU传感器和摄像头传感器的数据。在Gabriele Ligorio和Angelo MariaSabatini的“Extended Kalman Filter-Based Methods for Pose Estimation UsingVisual,Inertial and Magnetic Sensors:Comparative Analysis and PerformanceEvaluation”,Sensor 2013,13,1919-1941中提供了使用EKF进行传感器融合的示例,其整体并入本文。而Ligorio等人讨论了使用EKF进行传感器融合的基本概念,传感器之间的传感器质量不同,因此,利用不同传感器将来自视觉使用的不同类型传感器的数据融合的方法可能不同,并且将不同传感器的数据融合遇到不同的挑战和问题。本文公开了如何使用3D视觉跟踪技术融合IMU传感器和摄像头传感器以改善3D对象跟踪性能和效率。在本公开中,给出了这种融合框架的细节,讨论了问题和解决方案,并且最后示出了性能评估结果。
应注意,当关于导出对象的姿态(无论是运动还是静态)使用时,术语“融合(fuse)”或“融合(fusion)”涉及在导出该姿态时使用来自至少一个传感器和摄像头(或其他成像装置)的数据的过程,例如通过分析和/或组合来自IMU传感器和摄像头的数据来导出姿态涉及IMU传感器和摄像头的融合。
E-2-1.概述
E-2-1-1.系统
图17是例示出根据各种实施方式的HMD 100'的示意性配置的图。注意,图17类似于图5,但是为不同的实施方式,并且尽管图5的许多特征可以是与图17类似或重复的,但下面描述了图17的所有特征。
HMD 100'是根据例示性实施方式的头戴式显示器(但本发明的实施方式不应不应限于头戴式显示器,并且可以在诸如移动电话的其他装置中具体实施)。类似于图5的HMD100,HMD 100'也是光学透射型头戴式显示器,其使用户能够观看虚拟图像并同时直接观看外部场景。HMD 100'包括从外部场景收集图像数据的摄像头60,使得HMD 100'可以显示相关的虚拟图像。
在该实施方式中,HMD 100'包括适配在用户的头部上的适配带90、显示图像的显示部20以及控制显示部20的控制器10。显示部20使用户能够在显示部20被适配在用户的头部上时观看虚拟图像。
适配带90包括在该实施方式中由树脂形成的适配基部91、连接到适配基部91的织物带部92、摄像头60以及惯性传感器(惯性测量单元;IMU)71。适配基部91具有与人的前额相匹配的弯曲形状。带部92是适配在用户头部周围的带子。在其他实施方式中,摄像头60和IMU 71直接与显示部20的框架集成在一起。
虽然图17例示出了适配带90,但是应当理解,本发明并不限于需要适配带90。实际上,在这种实施方式中,适配带90中的元件,包括摄像头60和IMU 71,可以集成在显示部20的框架、显示部20本身和/或HMD 100'的任何其他部分中,或者设置在显示部20的框架、显示部20本身和/或HMD 100'的任何其他部分上。这样,在一些实施方式中,适配带90可以不包括在HMD 100'中,但是为了便于例示和讨论,以下实施方式将适配带90描述为HMD 100'的一部分。
在图17所例示的实施方式中,摄像头60可以对外部场景进行成像并且设置在适配基部91的中间部分中。换句话说,在适配带90适配在用户头部上的状态下,摄像头60设置在与用户的前额的中间相对应的位置处。因此,在用户将适配带90适配在用户的头部上的状态下,摄像头60对作为用户的视线方向上的外部场景的外部场景进行成像,并通过成像获取所拍摄图像。
在该实施方式中,摄像头60包括相对于适配基部91旋转的摄像头基部61以及与摄像头基部61的相对位置固定的透镜部62。当适配带90适配在用户的头部上时,摄像头基部61设置成可沿箭头CS1旋转,箭头CS1是包括在包括用户的中心轴的平面中的轴线的预定范围。因此,作为摄像头60的光轴的透镜部62的光轴方向可以在箭头CS1的范围内改变。透镜部62对通过围绕光轴变焦而改变的范围进行成像。
IMU 71是检测加速度的惯性传感器。在一些实施方式中,除了加速度之外,IMU 71还可以使用陀螺仪传感器和磁传感器来检测角速度和地磁。在该实施方式中,IMU 71包含在适配基部91中,但是,在其他实施方式中,如上所述,IMU 71可以设置在HMD 100'的任何其他部分,例如显示部框架。因此,在IMU 71包含在适配基部91中的实施方式中,IMU 71检测适配带90和摄像头基部61的加速度、角速度和地磁。因此,在IMU 71设置在HMD 100'的显示部框架中的一部分中的实施方式中,IMU 71检测显示部框架和摄像头基部61的加速度、角速度和地磁。在任何一种情况下,IMU 71都检测到用户的头部的加速度、角速度和地磁。
由于IMU 71与适配基部91的相对位置是固定的,因此摄像头60可以相对于IMU 71移动。因此,IMU 71与摄像头60具有可调节的固定的空间关系。在另一实施方式中,IMU 71可以与摄像头60具有固定的空间关系。此外,由于显示部20与适配基部91的相对位置是固定的,因此摄像头60与显示部20的相对位置是可移动的。
在该实施方式中,显示部20连接到适配带90的适配基部91,并且具有眼镜形状。显示部20包括右保持器21、右显示驱动器22、左保持器23、左显示驱动器24、右光学图像显示器26和左光学图像显示器28。当显示部20适配在用户上时,右光学图像显示器26和左光学图像显示器28位于用户的右眼和左眼的前方。当显示部20适配在用户上时,右光学图像显示器26的一端和左光学图像显示器28的一端在对应于用户前额的中间的位置处彼此连接。
右保持器21具有从作为右光学图像显示器26的另一端的端部ER沿大致水平方向延伸的形状,并且从该形状的中间倾斜地向上倾斜,并且将端部ER连接到适配基部91的右连接器93。类似地,左保持器23具有从作为左光学图像显示器28的另一端的端部EL沿大致水平方向延伸的形状,并且从该形状的中间倾斜地向上倾斜,并将端部EL连接到适配基部91的左连接器(未例示出)。右保持器21和左保持器23通过右连接器和左连接器93连接到适配基部91,因此,右光学图像显示器26和左光学图像显示器28位于用户眼睛的前方。连接器93将右保持器21和左保持器23连接成在任何旋转位置处可旋转和可固定。结果,在该实施方式中,显示部20安装成相对于适配基部91可旋转。
右保持器21是安装成当显示部20被适配在用户上时从作为右光学图像显示器26的另一端的端部ER延伸到与用户的颞部区域相对应的位置的构件。类似地,左保持器23是安装成当显示部20被适配在用户上时从作为左光学图像显示器28的另一端的端部EL延伸到与用户的颞部区域相对应的位置的构件。在该实施方式中,右显示驱动器22和左显示驱动器24在显示部20适配在用户上时设置在面向用户的头部的侧面上。
显示驱动器22和24包括下面将参照图18描述的液晶显示器241和242(下文中也称为“LCD 241和242”)以及投影光学系统251和252。下面将描述显示驱动器22和24的配置的细节。
光学图像显示器26和28包括下面将描述的导光板261和262(见图18)以及调光板。导光板261和262由透光树脂材料等形成,并将从显示驱动器22和24输出的图像光引导到用户的眼睛。在一些实施方式中,图像显示器26和28包括除导光板261和262之外或代替导光板261和262的棱镜。调光板是具有薄板形状的光学元件,并且设置成覆盖显示部20的前侧,即与用户的眼睛侧相反的一侧。通过调节调光板的透光率,可以调节进入用户眼睛的外部光的量并调节虚拟图像的观看的容易度。这可以用于针对变化的照明条件(例如室内对室外照明水平)进行调整,同时保持虚拟图像的可见性。
显示部20还包括将显示部20连接到控制器10的连接部40。连接部40包括连接到控制器10的主体线48、右线42、左线44和连接构件46。右线42和左线44是主体线48的两根分支线。显示部20和控制器10经由连接部40传输各种信号。在右线42、左线44和主体线48中,例如,可以使用金属线缆或光纤。
图18是例示出了HMD 100'的功能配置的框图。如图18所例示,控制器10包括ROM121、RAM 122、电源130、操作部135、识别目标存储部139、CPU 140、接口180、发送部51(Tx51)和发送部52(Tx 52)。
电源130向HMD 100'的每个部分供电。ROM 121存储各种程序。CPU 140通过将存储在ROM 121中的各种程序加载到RAM 122上来执行各种程序。
接口180是将作为内容提供源的各种外部装置OA连接到控制器10的输入和输出接口。外部装置OA的示例包括存储AR场景的存储装置、个人计算机(PC)、移动电话终端和游戏终端。接口180的示例包括USB接口、微USB接口、存储卡接口和视频接口(例如显示端口,HDMI等)。
CPU 140将存储在ROM 121中的程序加载到RAM 122上,以用作操作系统150(OS150)、显示控制器190、音频处理器170、图像处理器160、标记标识部165,以及处理器167。
显示控制器190产生控制信号以控制右显示驱动器22和左显示驱动器24。显示控制器190根据右显示驱动器22和左显示驱动器24中的每一个控制图像光的产生和发出。显示控制器190分别经由发送部51和52发送用于右LCD控制器211和左LCD控制器212的控制信号。显示控制器190发送用于右背光控制器201和左背光控制器202的控制信号。
如图18所例示,显示部20包括右显示驱动器22、左显示驱动器24、用作右光学图像显示器26的右导光板261以及用作左光学图像显示器28的左导光板262。
右显示驱动器22包括接收部53(Rx53)、右背光控制器201、右背光221、右LCD控制器211、右LCD 241和右投影光学系统251。右背光控制器201和右背光221用作光源。右LCD控制器211和右LCD 241用作显示元件。在另一实施方式中,代替前述配置,右显示驱动器22可以包括诸如有机EL显示元件的自发发射型显示元件,或者可以包括在视网膜上扫描来自激光二极管的光束的扫描型显示元件。这同样适用于左显示驱动器24。
接收部53用作在控制器10与显示部20之间执行串行传输的接收器。右背光控制器201基于输入控制信号驱动右背光221。右背光221例如是诸如LED或电致发光(EL)的发射器。右LCD控制器211基于从图像处理器160和显示控制器190发送的控制信号来驱动右LCD241。右LCD 241是透射型液晶面板,其中多个像素以矩阵形式排列。
右投影光学系统251被配置为包括准直透镜,该准直透镜形成从右LCD 241发出的图像光作为平行状态的光通量。用作右光学图像显示器26的右导光板261将从右投影光学系统251输出的图像光引导到用户的右眼RE,同时沿预定光路反射图像光。左显示驱动器24具有与右显示驱动器22相同的配置并且对应于用户的左眼LE,因此将省略其描述。
图像处理器160获取内容中包括的图像信号,并且经由发送部51和52将获取的图像信号发送到显示部20的接收部53和54。音频处理器170获取包括在内容中的音频信号,放大所获取的音频信号,并将放大的音频信号提供给连接到连接构件46的右耳机32内的扬声器(未例示出)和左耳机34内的扬声器(未例示出)。
控制器10是控制HMD 100'的装置。在一些实施方式中,控制器10集成到显示部20和/或适配带90中。在其他实施方式中,控制器10在单独的计算机上实现。控制器10包括操作部135,其包括静电触控板或多个可按下的按钮,并且可以用于成像校准。操作部135设置在控制器10的前表面上。在其他实施方式中,操作部135的一部分或其整体设置在显示部20和/或适配带90的框架上。
在执行了IMU 71中包括的每个传感器的校准之后,IMU 71中的传感器的加速度、角速度和地磁的检测值(测得的输出)被融合,因此可以获得高精度的IMU定向。这种融合意味着,来自传感器的测得的移动值与预测值合并,以提供更平滑和更准确的最终传感器输出。
E-2-1-2.传感器融合方法概述
如图19中所示,预测的传感器数据与当前收集的传感器数据融合后,融合的传感器数据还与摄像头跟踪数据融合。根据图19中的实施方式,CPU 140操作两个单独的线程,一个处理来自IMU 71的数据,一个处理来自摄像头60的数据。在两个线程之间交换信息以融合摄像头数据和IMU数据。摄像头数据和IMU数据的融合允许更准确的对象位置跟踪,因为IMU数据可以比图像数据(例如,30fps或30Hz)更快地(例如,以125Hz)被处理。因此,在对象跟踪中将存在更少的时延。
应当理解的是,术语“摄像头数据”可以指由摄像头60拍摄的数据,但不应该限于摄像头,并且可以通过任何其他成像装置拍摄。因此,术语“摄像头数据”不应限于仅由摄像头拍摄的数据。这样,术语“摄像头数据”在本文中可以被称为“图像数据”。
类似地,应当理解,术语“IMU数据”可以指IMU 71取得的数据,但不应限于IMU并且可以由其他运动感测装置获得。因此,术语“IMU数据”不应限于仅由IMU获得的数据。因此,术语“IMU数据”在本文中可以被称为“传感器数据”。
仍然参照图19,融合是通过将时间戳置于传感器数据和图像数据二者上来完成的。这样,传感器数据和图像数据的精确定时是已知的,并且它们可以彼此匹配,从而导致来自同一时间的数据的融合。因此,在步骤S300和S302中,获取具有时间戳的IMU数据和图像数据。随后,在步骤S306中,在视觉线程中融合图像数据和IMU数据。稍后在图20中更详细地讨论步骤S306。
在IMU线程中,S304确认HMD处于透视模式。透视模式是用户同时查看外部环境和虚拟图像数据的模式。在一些实施方式中,HMD 100'能够以非透视模式操作,其中显示区域被虚拟图像覆盖,并且用户旨在仅关注虚拟图像。一旦确认了透视模式,就在S310中将来自S306的融合数据从视觉线程发送到IMU线程。
使用传感器数据跟踪移动(与图像数据相比)的一个缺点是它可能包括抖动。这种抖动可能是由IMU 71的有限精度和测得的移动中正常出现的离群点(outlier)引起的。例如,当用户的头部抽搐时,IMU 71可能巧合地测量在几分之一秒内的加速度。这可以被IMU71记录为突然和极端移动。该问题通过步骤S306、S310和S308解决。通过将传感器数据与图像数据融合并在IMU线程中重新引入融合数据,这些抖动的幅度减小或消除,从而导致更平滑的移动跟踪。利用该平滑后的传感器数据,IMU线程最终在步骤S314中输出IMU姿态或预测的对象位置。换句话说,如果HMD 100’例如用“信息泡”正在跟踪移动的现实世界对象,则信息泡在图像显示器中(并且在用户的视图中)将被移动为跟随移动的真实世界对象基于S314中输出的预测的量。
E-2-2.跟踪器融合IMU
E-2-2-1.将IMU与3D对象跟踪器融合的方法
图20是根据实施方式的例示出图19的步骤S306的IMU传感器和3D对象跟踪器的融合的方法400的流程图。
图20在此用作本文的基本流程图,并且将参考图21至图27中的各图,在图21中分别使用附图中的参考字母A-E(每个被圆圈包围)引用图21至图27中的各图。因此,尽管将贯穿以下点中讨论图20,但是也将贯穿这些部分讨论图22至图27,然后再回到图20的讨论。
将注意,可以使用各种术语来指代诸如“3D对象跟踪器”的摄像头数据。
首先从图20的步骤S402开始,CPU 140确定使用摄像头60的3D对象跟踪器是否已经准确地确定了对象的初始3D姿态,如本文之前所讨论的。如果是,则CPU140可以将“跟踪器状态”的值设置为真,这允许方法400前进到步骤S406。
另一方面,如果在步骤S402中,CPU 140确定3D对象跟踪器未准确地确定对象的初始3D姿态,则在步骤S404中执行对象姿态估计模块,其在图21中示出。在图21中(步骤S502),在开始跟踪之前(即,在步骤S506之前),检测初始对象姿态,并且位置对应关系确定单元168可以通过使用例如在上面的部分A-4中讨论的算法基于目标对象的初始姿态来执行对象姿态估计。如果未检测到初始姿态或者未成功估计对象姿态(步骤S504),则方法500可以进行到步骤S506,其中初始化对象跟踪器以设置所有跟踪参数的初始值。在步骤S508,方法500确定跟踪器是否正确地跟踪对象,如果是,则将状态参数(例如,“trackerInit”)设置为真,并且该方法返回到图20;否则,方法500可以进行到步骤S510,其中状态参数(例如,“trackerInit”)被设置为假,指示不良姿态和/或跟踪器未被初始化。
E-2-2-2.初始化IMU融合
返回图20,方法400确定IMU融合是否被初始化。在这方面,如果跟踪器被初始化(如上面在步骤S506中所讨论的),则下一步是初始化IMU融合模块,其在图22中讨论。方法600中的第一步是在步骤S602中运行3D对象跟踪器,并且如果CPU 140确定3D对象跟踪器正提供准确的输出(S604),则CPU 140执行指令以确定用户是否是静态的(S606),并且当在步骤S608中确定例如用户的头部是静态的时(稍后讨论),然后,CPU 140在步骤S610中获得居中姿态。在这方面,如果跟踪成功,则在步骤S612中执行融合初始化功能,这将在下面进行深入描述。
为了初始化IMU融合,要初始化的主要参数是对象坐标系与全局坐标系之间的变换矩阵TO2G。以下是计算变换矩阵的自动方式。
TO2G=TS2G*TC2S*TO2C
其中,TC2S是从摄像头到IMU的变换矩阵,并且通过校准而预先知道。假设对象是静态的,因此TO2G是固定的并且在系统初始化阶段只需要计算一次。TS2G是全局坐标系中的IMU姿态。TO2C是摄像头坐标系中的对象姿态,并且由对象跟踪器输出。
在初始化阶段,建议用户保持他/她的头部是静态的。当IMU是静态的时,TS2G可以被计算如下(ax、ay、az是加速度计读数),
yaw=0
RS2G=(Rx*Ry*Rz)
因为如果用户不是静态的,TS2G可能不准确,并且这个错误会使融合准确度变得不可靠,所以在初始化IMU融合之前,还有另一个功能来检查用户是否是静态的。只有当用户是静态时,才会调用IMU融合初始化函数。因此,在初始化IMU融合之前,CPU在步骤S606下执行指令以检测用户是静态的,如上所述。
E-2-2-2-1检测静态运动
当用户是静态的时,IMU读数可以被建模为高斯分布,并且每个维度读数的概率密度函数是:
其中,μ表示平均值,σ表示标准偏差。可以从当用户静态时收集的IMU数据估计μ和σ。对于实时IMU读数x,当p(x)>th(其中“th”是实验阈值)时,确定用户是静态的。
如果根据上述模型检测到用户是静态的,则在步骤S612下执行IMU融合初始化。初始化IMU融合后,状态标志被设置为真以表示融合被成功初始化;否则该标志被设置为假。
E-2-2-3.IMU姿态预测
返回图20,在步骤S408中,如果IMU融合被初始化(如上所述),则在跟踪之前预测IMU姿态,然后在跟踪中使用IMU预测的姿态。具体地,CPU 140至少基于从IMU传感器获取的传感器数据序列,通过非线性估计算法依次预测惯性传感器相对于全局坐标系的传感器姿态。这在下面更详细地描述。
根据本公开的一个实施方式,状态向量xk={pk,vk,qk}包括IMU位置pk、IMU速度vk和IMU取向qk,全部在全局坐标系中;控制输入uk包括加速度计输入和陀螺仪输入。状态转换和测量模型是,
xk=f(xk-1,uk-1,wk-1)和zk=h(xk,vk)
其中,wk和vk分别是被假设为具有协方差Qk和Rk的零均值高斯噪声的过程和测量噪声。
预测IMU姿态的式是,
其中F是f相对于x的雅可比矩阵,L是f相对于处理噪声的雅可比矩阵。
(从pk平移和从qk旋转)导出IMU姿态。
E-2-2-4.IMU发散确定
IMU传感器(尤其是加速度计)可以发散,意味着数据对于姿态预测是不准确的。例如,当视觉长时间丢失时。
为了在跟踪中最好地使用IMU,需要确定IMU何时发散。确定IMU发散的标准定义如下。
位置协方差:
速度协方差:
取向协方差:
其中,P是状态协方差矩阵。
以下算式确定加速度计读数是否异常:
|(||Accelerometer||-||calibrated greound truth of Accelerometer||)|>ThAcc
(9)
如果或满足式(9),则IMU发散并且状态标志“PredictPose”被设置为假(步骤S414),否则它被设置为真(步骤S416)。然后,方法400可以进行到下面针对IMU对象跟踪器讨论的步骤S420。
E-2-2-5.IMU对象跟踪器
使用IMU传感器跟踪对象的示例在图23中例示出并在下面讨论。
E-2-2-5-1.检测静态运动(S702)
在步骤S702和S704中,CPU 140执行基于传感器数据序列确定用户的头部并且因此惯性传感器是否保持静态或基本静态的模块,如上面已经讨论的。如果用户或惯性传感器被检测为静态或基本静态,则不执行跟踪。相反,在确定惯性传感器保持静态或基本静态的情况下,先前由非线性估计算法预测的传感器姿态被用作下一个预测的传感器姿态。在这方面,不预测另一个姿态,而是简单地从存储器中检索已存储在存储器中的先前姿态并用于下一帧或当前帧。或者,通过融合摄像头数据和传感器数据预先获得的对象姿态或对象的第二姿态可以用作下一个融合的对象姿态。也就是说,在一些实施方式中,如果用户或惯性传感器被检测为静态或基本静态,则不必在视觉线程中执行视觉跟踪。
因为不需要执行其他计算或步骤来确定当前姿态,所以这减少了系统的计算时间和处理功率。以这种方式,提高了跟踪速度。
然而,如果用户正在移动,则方法700进行到执行步骤S708-S722。
应注意,当使用边缘对齐或其他特征时,或者对于可能不具有许多特征匹配特征(例如,没有许多KLT特征)的低特征对象,步骤S712-S716可以是可选的(因此在这些步骤周围用虚线框示出)。因此,来自S708的一个实施方式是进行到S709或直接进行到S718,而来自S708的另一实施方式进行到S712或S710。
E-2-2-5-2.使用IMU预测姿态预测特征点位置/使用预测的特征位置预测KLT匹配
在步骤S708中,如果IMU预测的姿态状态标志“PredictPose”为真(图20的S414),则方法700将表现得与其原始跟踪器非常不同。IMU预测的姿态具有多种用途以改善跟踪性能。首先,它被转换为摄像头坐标并成为预测的对象姿态。使用预测的对象姿态,将在先前帧中匹配的所有特征点投影到当前帧,因此预测它们在当前帧中的位置(步骤S712),前提是该对象具有用于特征匹配的足够特征(但如果没有,则该方法700可以直接进行到S718)。
然后,在步骤S714至S716中,CPU 140使用预测的特征位置执行特征匹配。根据实施方式,可以使用卡纳德-卢卡斯-托马西(Kanade-Lucas-Tomasi)(KLT)匹配来执行特征匹配(S714),去除任何离群点(例如,相对于匹配具有大于预定阈值的差的点)(S715),然后使用非离群点(inlier)特征匹配结果和IMU预测的姿态来估计姿态(S716)。在KLT匹配中,利用预测的特征位置,匹配变得更准确和更快。原因在图27中例示出,其中图27中的方块指示的点指示前一帧中的特征位置,并且图27中的圆圈指示的点指示那些特征在当前帧中的真实/预测位置。从这些点之间的虚线的长度来看,帧间运动很大,并且如果不使用IMU,则KLT特征匹配可能会失败。利用IMU预测,当前帧中的特征位置被预测为接近其实际位置,因此特征匹配将是成功的并且匹配将是快速且准确的,因为算法知道在哪里找到那些特征。
在这方面,在以下图像数据序列中的连续图像帧之间存在匹配:至少基于预测的传感器姿态的对象的2D特征点、第二空间关系和3D模型上的3D点,由此3D点对应于2D特征点。
返回参考图23的步骤S708,如果IMU预测的姿态状态标志“PredictPose”为假(图20中的S416),则在S710中在不使用IMU数据的情况下执行CPU 140特征匹配(或者方法700可以进行到S709,其中CPU 140确定视觉丢失)。在这方面,例如,可以仅使用KLT匹配,然后输出使用特征匹配结果的姿态估计。在这方面,因为IMU传感器已经发散并且因此这样的数据是无用的,使用步骤S710而不是使用步骤S712至S715允许系统避免来自IMU传感器的数据。
E-2-2-5-3.使用KLT匹配结果和IMU预测的姿态的姿态估计(S716)
如上所述,KLT匹配输出匹配的特征。根据一个实施方式,使用这些特征及其对应的3D坐标,可以使用由高斯-牛顿优化的鲁棒姿态估计器来估计姿态。
使用高斯-牛顿优化的鲁棒姿态估计器需要初始姿态,并且如果初始姿态不足够接近真实姿态,则它可能不收敛,或者它可能收敛到导致估计的姿态可能不准确的错误的本地最小值。在原始跟踪器中,先前帧中的对象姿态是鲁棒姿态估计器的输入。如果帧间运动是明显的,则先前的姿态将不会接近当前帧的真实姿态,因此鲁棒姿态估计器可能非常慢地收敛、收敛到错误的最小值或者可能根本不会收敛。因此,在一个实施方式中,从IMU预测的姿态转换的预测的对象姿态被用作鲁棒估计器的初始姿态。由于作为初始姿态的预测的姿态比先前帧中的对象姿态更准确,因此鲁棒估计器收敛得更快并且收敛的姿态更准确。以这种方式,跟踪器性能得到改善。
因此,至少基于(1)匹配的2D特征点、(2)传感器姿态或依次预测的另一传感器姿态以及(3)第二空间关系(即,在对象或3D模型上定义的对象坐标系与全局坐标系之间的关系,该全局坐标系至少基于(1)第一初始姿态或从第一姿态跟踪的姿态、(2)从惯性传感器获取的传感器数据序列以及(3)惯性传感器与摄像头之间的第一空间关系)导出第二姿态。
在一些实施方式中,CPU 140或计算机处理器使用由此导出的对象的第二姿态、使用显示器显示诸如3D AR模型的渲染图像的图像,从而允许用户视觉上感知AR对象的位置和姿态基本上与通过HMD 100的对象的位置和姿态对齐或锚定。在这种情况下,处理器使用下式导出构成3D AR对象的每个3D点的图像位置xdis_1
xdis_1=PTCαm2DispTObject2CαmX
其中,P是投影矩阵,TCαm2Disp是从摄像头坐标系到HMD 100的显示坐标系的3D变换矩阵。TObject2Cαm指的是在摄像头坐标系中表示的对象姿态,并且在该实施方式中是根据本实施方式导出的对象的第二姿态。X表示在3D模型坐标系中表示的3DAR模型中包括的每个3D点,其存储在HMD 100的存储器中。
E-2-2-5-4.通过边缘对齐和IMU预测的姿态的姿态细化(S718)
根据如步骤S718所示的一些实施方式,边缘对齐方法用于细化从KLT特征计算出的姿态。基于从KLT特征计算出的姿态提取初始边缘点。当对象的视图具有少于5个检测到的KLT特征点时,没有姿态可以从KLT匹配估计,则边缘对齐方法将失败。在这项工作中,当遇到这种情况时,IMU预测的对象姿态将是边缘对齐方法的输入。由于预测的姿态相对准确,因此边缘对齐方法很可能将仍然工作。
因为IMU预测的姿态可以被用作使边缘对齐方法工作的初始姿态,所以KLT匹配可以甚至被消除。因为在低特征对象中可能没有KLT特征,这对于低特征对象最有用。
E-2-2-5-5.离群点去除(S720)
一般而言,KLT特征和边缘特征包含离群点并且执行离群点去除,如步骤S720中所提供的。
为了从KLT特征中去除离群点,将比较KLT匹配结果与IMU预测位置之间的差异。计算差异的直方图,并且将差异大于阈值的特征作为离群点去除。
为了去除离群点边缘特征,除了使用用于KLT特征的直方图方法之外,具有太多可能匹配点的边缘点将作为离群点被去除。
E-2-2-6.重新初始化IMU融合
返回参考图20,在步骤S420,CPU 140执行“重新初始化IMU融合”步骤(或模块)。此模块检查从其上一步骤检测到的姿态是否准确。如果姿态准确并且IMU发散,则IMU融合将重新初始化。如图24所示的IMU重新初始化与在图22中提供并且先前已讨论过的IMU融合初始化模块类似。方法800中的第一步是运行3D对象跟踪器,并且如果CPU 140确定3D对象跟踪器正在提供准确输出(S802),则例如在步骤S804中确定用户的头部已经移动时,CPU 140执行指令以确定IMU是否已经经历了发散状态。如果是,则CPU 140在步骤S806中获得居中的姿态,并且CPU重新初始化IMU融合功能,并且方法800返回到图20。
返回参考图20的步骤S422,如果非离群点(在离群点滤波器之后留下的匹配特征点)的数量大于阈值,则下一步骤将是“融合IMU和视觉”步骤S424。
E-2-2-7.融合IMU和视觉(S424)
在步骤S424中,更新IMU读数,并且来自对象跟踪器的特征的2D和3D信息是可用的。
首先,根据式(3)和(4),使用最新的陀螺仪和加速度计读数来预测新的状态。
其中,H为h相对于x的雅可比矩阵,并且M是相对于v的雅可比矩阵。测量zk包括所有由视觉对象跟踪器匹配的特征点。为了提高融合速度,根据它们的重新投影误差仅选择d个特征。例如,在我们的实现方式之一中d<50。
E-2-2-8.处理视觉损失
图25是根据实施方式的例示出处理视觉损失的流程图。图25的方法900处理由于特定原因(例如,姿态估计未收敛等)未更新视觉姿态,但IMU姿态被正确融合的情况。
例如,如果IMU没有发散(S902),则在步骤S904中计算融合的视觉姿态,然后在步骤S906中将IMU融合的姿态设置为视觉姿态,如下所述。
从xk(从pk平移和从qk旋转)导出IMU姿态TS2G
TO2C=TS2C*inv(TS2G)*TO2G (15)
然后将对象跟踪器中的姿态更新为TO2C。当视觉跟踪器发生故障时,此模块使用IMU姿态减少跟踪损失。
E-2-3.获得抖动减少的IMU姿态
图26是用于获得具有抖动降低的姿态,并且在上面讨论的贯穿IMU方法的所有步骤中运行。
在HMD 100或100'上,对于光学透视应用,输出IMU预测的姿态用于显示。在装置上观察到的一个问题是用户用IMU融合比原始跟踪器感觉抖动更大。因此,介绍了静态抖动检测和运动抖动检测方法以检测抖动,并应用相应的抖动降低方法,以确保用户具有良好的体验。
姿态平滑是减少姿态抖动的传统方式,但其缺点在于,它也增加了延迟,这使得延迟的改善比以前不太明显。因此,我们提出了以下新方法来减少抖动,而不会过多影响延迟改善。此外,任何复杂的计算都会增加延迟,因此我们应用尽可能快速和简单的方法。
E-2-3-1.检测静态运动(S1002)
当用户是静态的时,抖动是最明显的。因此,首先去除静态抖动。
如果用户被检测为静态的(S1002),则复制先前的IMU姿态作为当前IMU姿态(S1006)。然后,使用式(15)将当前IMU姿态转换为对象坐标中的姿态以供显示(S1008)。
使用该功能,完全减少了静态抖动。
除了静态抖动之外,许多人在移动期间观察到抖动,我们称之为运动抖动。接下来的几个模块用于减少运动抖动。
另一方面,如果用户不是静态的,则预测IMU姿态(S1010),然后将IMU姿态转换为对象姿态(S1012),如本文所讨论的。然后,方法1000可以进行到下面讨论的步骤S1014。
E-2-3-2.检测运动抖动(S1014)
在步骤S1014中,在当前IMU姿态与先前IMU姿态之间的姿态差异很小(例如,小于或等于预定义阈值)时,检测运动抖动。
当识别出运动抖动时,以与识别出静态运动时类似的方式对其进行处理,即,将先前姿态复制到当前姿态中(S1006)。如果未检测到静态抖动和运动抖动,则CPU 140可以应用指数平滑(S1018)以减少抖动,并且可以基于姿态差异来设置平滑因子。最简单的指数平滑形式由下式给出,
st=α·xt+(1-α)·st-1 (16)
其中,α是平滑因子,且0<α<1。
然后,在步骤S1020下,复制平滑后的姿态,作为显示姿态。
E-2-4.节能
诸如HMD 100的AR系统通常具有透视显示器并且在用户和摄像头的视野中跟踪现实世界对象。这些被跟踪对象的导出位置用于例如将图像叠加在被跟踪对象的顶部。这些现实世界对象可以是三维的或平面的,并且叠加的图像也可以是三维计算机图形或二维的(例如文本)。AR系统的实施方式包含以下组件:
·摄像头,
·IMU传感器,
·AR算法,
·应用渲染,以及
·显示器。
在AR系统的正常使用中,内部组件以一定的速率运行,例如,如果显示刷新率为60Hz,则应用渲染也发生在60Hz。摄像头将图像提供给AR系统,用于对象检测、跟踪和场景构建,其可以以其自己的帧速率运行。IMU传感器提供可以用于确定移动装置运动的惯性测量数据。即使底层硬件可能有其自己的节能方案,但如果软件可以确定某些组件在某些时刻处于空闲状态并关闭这些组件,则该软件可以帮助降低功耗。
AR系统的实施方式利用装置的运动或来自摄像头的现实世界的图像来渲染一些虚拟内容。由于此操作配置,可以利用以下现象来节省功率:
1.运动确定虚拟内容渲染:
没有运动,不渲染新的虚拟内容。因此,AR系统的实施方式可以通过响应于缺少运动而停止渲染来实现节能,这减少了CPU(中央处理器)和GPU(图形处理器)的使用并因此节省了功率。
2.运动确定AR算法计算:
没有运动,可能没有必要经常运行AR算法来保持跟踪对象或构建3D场景。通常,AR算法运行以基于来自摄像头的图像和IMU数据来确定对象姿态和3D场景。在没有运动的情况下,摄像头图像中的对象保持在相同的位置,并且它们的姿态不会改变。因此,AR系统的实施方式可以通过应用使用先前姿态而无需任何新计算,这也导致降低的CPU和GPU使用以节省功率。
3.运动确定物理显示器属性:
在没有运动的情况下,可以控制物理显示器以在某些条件下降低功耗。在移动装置中,取决于亮度设置和显示刷新率,物理显示器在电池消耗中扮演重要角色。在AR系统中没有运动的情况下,可以改变一些显示属性以节省功率,并且一旦运动重新开始就可以恢复原始设置。
图28示出了根据一个实施方式的节能模块2800。在一些实施方式中,节能模块2800是可被配置用于某些设置的软件模块,并且可以被调度为周期性地运行以确定运动,并将节能指令2830输出到其受控软件和硬件组件(输出2820)。在其他实施方式中,节能模块是被配置为在执行软件指令时执行节能方法的处理器(例如,CPU140)。在其他实施方式中,节能模块2800是电子电路。
节能模块2800可以从标记为输入2810的摄像头、传感器、AR算法和其他硬件组件获取输入。来自摄像头的图像每次提供现实世界的快照,并且连续图像之间的差异描绘了被跟踪的对象的运动。来自不同类型传感器的IMU数据提供了确定移动装置的运动的其他方式。
来自AR算法的输出可以被馈送到节能模块2800,使得节能指令可以基于对象是否实际正在被跟踪而不同。这被示为AR反馈2840,并且允许节能模块根据AR算法的操作状态执行不同的节能方案。
在节能模块2800中计算的几种运动可以用于确定最终输出节能指令,其将被进一步广播到其他软件或硬件组件以改变它们的操作以节省电池电量。
在节能模块2800中计算的运动可以被分类为不同的级别,其可以用于生成节能指令2830。这些事件通常代表不同的节能级别,范围从不节能到更积极的节能。
节能模块2800将根据节能模式将节能指令2830发送到被配置为以各种方式处理节能指令2830的不同的软件和硬件组件2820。
E-2-4-1.移动检测
在一些实施方式中,显示设备(例如,HMD 100)上的传感器(诸如IMU)以比摄像头更高的速率提供数据。与使用图像数据相比,使用传感器数据可以以更少的计算和更低的功耗估计装置运动。由于传感器数据可能包含一些抖动,因此传感器数据缓冲器可以与低通滤波器一起用作滑动窗口,以输出可靠的数据,该可靠的数据将用于估计装置运动。这在图29中示出。然后将计算出的移动值与该装置的预定义的阈值进行比较,以确定是否检测到运动。
在图29所示的运动检测中,具有n个元素的传感器数据缓冲器2900包含实时传感器数据。当调度节能模块2800运行时,缓冲器2900中的数据将首先通过低通滤波器2910以产生相对可靠的数据,其可以用于执行运动计算2920。可以使用简单的加权平均滤波器以利用较少计算来减少CPU负荷。来自该低通滤波器2910的输出被馈送到运动计算块2920以生成估计的运动值。传感器数据向量的范数可以用作运动指示符,并且与预定义的阈值进行比较产生最终运动事件,如块2930、2932和2934所示。
图30示出了使用基于传感器数据的运动检测来节省功率的方法。在该方法中,基于来自诸如IMU 71的运动传感器的数据来计算显示设备的运动。将在显示设备连续跟踪其摄像头的视野中的对象的姿态的同时实施现利要求30的方法。该跟踪包括使用处理器(例如,CPU 140),使用由摄像头获取的图像数据和由传感器获取的传感器数据中的至少一方来重复地导出对象相对于显示设备的姿态,并使用显示器(即,图像显示部20)显示基于对象(即,目标对象)的导出的姿态的图像。例如,图像可以是3D计算机图形模型或2D评论气球。
节能模块2800可以与驱动显示器的图形处理器(GPU)(诸如图像处理器160)或离散GPU一起工作。此GPU渲染正被显示在显示器上的图像(或AR对象)。基于检测到的被跟踪对象的姿态显示该AR对象。例如,从用户的角度来看,它被显示为覆盖(并跟随)被跟踪对象。在另一实施方式中,AR对象偏离被跟踪对象并跟随它。在另一实施方式中,AR对象在显示器上的位置不对应于被跟踪的对象姿态,而是响应于姿态的改变而改变。通过GPU重复渲染图像或AR对象,并且每个新渲染被顺序地显示在显示器上,使得图像可以响应于对象姿态改变而随时间改变。
在图30的步骤S300中,例如从IMU或低通滤波器2910获得传感器数据。传感器数据可以从上面在图17至图18中讨论的IMU 71获得。如上所述,来自IMU 71的传感器数据可以确定用户是否正相对于对象或场景移动他/她的头部。
接下来,在步骤S301中计算传感器运动。在该实施方式中,基于在步骤S300中获得的传感器数据,在S301中导出显示设备的速度和/或运动量。可以通过获取IMU中测得的加速度并在一段时间内对其进行积分来计算该速度和/或运动量。在这方面,基于连续时间确定速度和/或运动量,以确定显示设备(并且因此用户的头部)是否已经移动。
在步骤S302中,将在步骤S301中导出的移动与预定运动阈值进行比较。可以基于多个因素来设置该预定运动阈值,包括优化用于进入节能模式的期望灵敏度的阈值。预定运动阈值可以在(例如,由用户、制造商等)使用HMD之前被预设,并且可以基于优选的灵敏度被设置为任何期望值。
在任何情况下,如果在S301中导出的移动超过预定运动阈值,则退出节能模式并且在S303中重新开始该方法。换句话说,确定存在足够的运动以继续操作,例如对象跟踪,并且因此,将全功率传递到HMD组件以继续用于确定和跟踪姿态的正常操作。如果在S301中导出的移动没有超过阈值,则方法前进到S304并进入两种节能模式中的一种,如下面关于步骤S304至步骤S306所讨论的。
在步骤S304中,该方法确定显示设备当前是否正在跟踪对象(如本文先前所讨论的)。如果显示设备处于跟踪模式并正在跟踪对象,则系统识别出功率正被不必要地消耗,因此,在步骤S305,进入开启跟踪(on-tracking)节能模式。开启跟踪节能模式可以简单地停止姿态跟踪并且替代地使用确定的先前的姿态(即,在姿态跟踪关闭之前确定的姿态)。这可能需要停止跟踪算法。这很有用,因为没有传感器运动,并且因此对象是静止的。在该实施方式中,因为传感器尚未移动,所以用户可以能够使用先前的姿态。
如果显示设备不处于跟踪模式,则在步骤S306,进入关闭跟踪节能,从而可以完全地停止姿态跟踪并且/或者可以关闭显示器。由于没有执行跟踪,因此关闭跟踪节能可以是比开启跟踪节能更积极的节能模式。例如,与开启跟踪节能相比,关闭跟踪节能可以禁用更多装置或软件进程,或者更快地禁用这些组件。
图31示出了节能模块2800如何能够使用显示设备的摄像头图像数据确定已存在运动。节能模块2800比较图像数据的两个帧以确定在摄像头的视野内是否已存在显示设备的运动和/或对象的运动。为此,节能模块2800比较在时间上分离的两个帧(在一些实施方式中,连续帧)的相同像素、区域或像素组。如果所比较的帧的部分的图像数据中存在差异,则测量该差异以确定运动量(例如,运动的速度)。可以通过确定视野中的对象的位置的帧之间的空间差异并且划分捕获两个帧时的时间分离来计算运动的速度。
例如,可以将图像运动描述为两个连续摄像头图像之间的差异的函数。给定两个连续的摄像头图像Fk和Fk-1,运动可以被描述为:
M=f(Fk-Fk-1)
因为计算全尺寸图像上的运动可消耗大量电池电量,CPU计算量很大,所以在这些实施方式中使用基于块的图像运动检测来减少总CPU负荷。根据这样的实施方式,图像被分成非重叠块3120。计算在两个帧上的相同位置处的每对块3120之间的差异。图31示出了两个帧(3100、3110)上的图像块3120和块对3130。为了简化运动计算,如果每个图像上有n个块3120,则可以将运动计算为:
其中函数f()定义为两个块之间的欧几里德距离:
其中表示图像Fk中的块B(k,i)中的像素p的强度。在计算出运动量M之后,将其与预定义的阈值进行比较以供最终输出,如下面关于图32进一步描述的。
图32示出了使用基于图像数据的运动检测来节省功率的方法。在该方法中,基于来自摄像头的图像数据计算出显示设备的移动(或摄像头的视野中的移动)。
在步骤S320中,从摄像头(例如,摄像头60)获得图像数据(例如,帧3100、3110)(如本文先前讨论的)。
接下来,在步骤S321中计算图像移动。在该步骤中,基于在步骤S320中获得的图像数据,在S321中检测出显示设备的速度或移动量(或视野中的对象的速度或移动量)。以上关于图31讨论了图像移动的计算。
接下来,在步骤S322中,将在步骤S321中导出的移动与预定的图像移动阈值进行比较。可以基于多个因素来设置该预定图像移动阈值,包括针对用于进入节能模式的期望灵敏度优化预定图像移动阈值。如果在S321中导出的移动超过了预定图像移动阈值,则方法进行到S303,在S303中退出节能模式,然后该方法可以返回到步骤S320。换句话说,系统确定存在足够的移动以继续操作,例如对象跟踪。如果在S321中导出的移动未超过预定图像移动阈值,则方法前进到S304并进入两种节能模式中的一种,如下面关于步骤S304至步骤S306所讨论的。
在步骤S304中,该方法确定显示设备是否处于跟踪模式(“开启跟踪”)。如果显示设备处于跟踪模式,则在步骤S305进入开启跟踪节能模式。如果显示设备不处于跟踪模式(“关闭跟踪”),则执行步骤S306,并进入关闭跟踪节能。
在一些实施方式中,可以基于被跟踪的对象是否移动来进行开启跟踪或关闭跟踪的确定。例如,如果在步骤S321中导出的移动是被跟踪的对象的移动但是在S322中低于阈值,则该方法进入开启跟踪节能(即,S305)。然而,如果没有检测到被跟踪对象的移动,而在视野中的其他地方导出移动,并且该移动低于阈值,则该方法进入关闭跟踪节能(即,S306)。
在一些实施方式中,传感器数据和图像数据都用于检测运动并确定是否应该进入节能模式。这样的实施方式在图33中示出。在该方法中,来自图30和图32的步骤也作为该方法的一部分执行。首先,执行基于传感器数据的运动计算(S302)。如果传感器数据运动超过阈值,则退出节能模式。
如果传感器数据运动未超过阈值,则在S321中计算图像移动。以这种方式,传感器数据被用作初始测试以确定显示设备是否在移动。如果是,则退出节能(S303)。如果不是,则该方法针对在S321的移动继续分析图像数据。执行该步骤使得显示设备不会由于用户在使用显示设备时静止而进入节能模式,特别是在跟踪视野中的移动对象时。
在S322,在步骤S321中计算出图像移动之后,确定图像移动是否超过图像移动阈值。如果是,则退出节能。如果不是,则在步骤S304中确定显示设备是开启跟踪还是关闭跟踪,以决定进入哪种节能模式(即,“开启跟踪节能模式”或“关闭跟踪节能模式”)。“节能(开启跟踪)”(本文也称为“开启跟踪节能模式”)和“节能(关闭跟踪)”(本文也称为“关闭跟踪节能模式”)将在后面的E-2-4-2部分讨论。
图34示出了节能方法的另一实施方式。在该实施方式中,在步骤S302(确定传感器运动是否超过传感器运动阈值)之前执行步骤S340和步骤S341。在步骤S340中,确定传感器运动是否超过高于先前讨论的第一传感器预定运动阈值的第二预定运动阈值。如果传感器运动超过第二预定运动阈值,则执行S341,从而进入搜索节能模式(稍后在部分E-2-4-2更深入地讨论“搜索节能模式”)。如果传感器运动没有超过第二预定运动阈值,则执行S302和图33的节能方法的剩余部分。
确定传感器运动是否超过第二预定运动阈值的目的是确定显示设备是否已经快速移动,例如通过用户的快速或大量移动。在此情况下,AR算法和跟踪软件不太可能能够保持对被跟踪对象的跟踪。这可能是由于对象离开视野或所拍摄图像的运动模糊。因此,显示设备可以通过在检测到这些大的移动时禁用跟踪来节省功率。此外,显示设备可以进入搜索模式,在该模式下显示设备试图定位先前跟踪的对象,或者定位适合于跟踪的另一对象。
E-2-4-2.节能模式
如上所述,显示设备可以根据本文描述的方法进入不同类型的节能模式。这些模式包括开启跟踪节能模式(S305)、关闭跟踪节能模式(S306)和搜索节能模式(S341)。在每种模式中,可以在不同时间采取不同的动作。
在节能模块2800中生成的节能指令可以被发送到其他软件和硬件组件,然后可以根据这些组件的功能单独地处理该节能指令。显示设备的以下功能可以响应于低或不存在的移动而在操作中被禁用或改变:
·软件渲染
在节能模式下,可以响应于没有传感器运动和/或图像运动而禁用虚拟内容渲染。在这种场景下,可以重新使用存储在例如控制器10中的RAM的帧存储区域中的先前渲染的图形,代替新渲染的图形。
·AR算法
在节能模式中,可以禁用AR算法或AR算法可以报告存储在例如控制器10中的RAM的存储区域中的先前计算的姿态,以减少CPU使用,这降低了功耗。
·显示
在某些节能模式下,显示器可以被调暗以降低亮度,或者甚至被完全关闭,这降低了功耗。
·其他软件组件:
AR系统中的其他软件组件也可以接收节能指令并相应地处理它们以减少CPU使用和功耗。
在一些实施方式中,节能操作是:
1.(1)在利用存储在例如控制器10中的RAM的存储区域中的对象的先前导出的姿态渲染和/或显示AR对象(例如,3D计算机图形模型或2D评论气球)时,或者(2)在使用从先前的渲染获得的存储在例如控制器10中的RAM的帧存储区域中的图像数据显示AR对象时,停止跟踪对象姿态。
2.在使用从先前的渲染获得的存储在例如控制器10中的RAM的帧存储区域中的图像数据显示AR对象时,停止渲染AR对象。
3.停止显示AR对象。
操作1基于先前姿态冻结所显示的AR对象的位置。这允许通过不再主动跟踪被跟踪对象的姿态来节省功率。如果显示设备在设定的时间段没有移动,则用户可能不会注意到跟踪已被禁用,因为所显示的AR对象保持与对象的姿态对齐(或以其他方式准确地表示)。
操作2是禁用AR对象的GPU渲染。这意味着使用先前的渲染,并且不基于对象姿态更新对象外观。与操作1类似,这可能不被用户注意到,并且可以通过禁用GPU的操作来降低功率。
操作3完全停止AR对象的显示。该操作将被用户注意到,因此可以每次在假设显示设备不再在使用中用于跟踪或根本不使用时执行。
取决于节能模式,操作1、2和3可以在不同时间执行或不执行。例如,在开启跟踪节能模式的一个实施方式中(S305):
如果移动(传感器和/或图像)在时间1内低于阈值,则执行操作1;以及
如果移动在时间2(时间2长于时间1)内低于阈值,则执行操作1和2。
在关闭跟踪节能模式的一个实施方式中(S306):
如果移动在时间1内低于阈值,则执行操作1;
如果移动在时间2(时间2长于时间1)内低于阈值,则执行操作1和2;以及
如果移动在时间3(时间3长于时间2)内低于阈值,则执行操作1、2和3。
因此,节能操作的积极性由节能模式确定。在其他实施方式中,在执行操作之前的时间延迟(即,时间1、2和3)可以根据节能模式而改变。此外,可以基于多个因素来设置延迟(时间1、2和3),包括以最大化节能同时最小化对用户体验的影响的方式进入期望节能模式的优化。
在搜索节能模式中,可以执行操作1、2或3,并且另外CPU或节能模块2800可以执行操作以试图找到对象或适合于跟踪的另一对象。
在另一实施方式中,搜索节能模式简单地禁止系统搜索系统期望跟踪的对象。
在进入节能模式和/或执行节能操作1、2或3之后,显示设备可以使用传感器和图像数据继续监视运动。如果确定显示设备(或视野中的对象)的移动超过阈值,则可以重新开始对象姿态跟踪。
E-3.实验结果
上面讨论的所提出的IMU和3D对象跟踪融合方法减少了由用户感知的延迟,允许更快的用户头部运动而不会损害相对于对象的姿态的感知,并处理视觉损失。它提高了整体跟踪性能和用户的体验。一些实验结果显示在下面的章节中。
E-3-1.延迟改善
使用所提出的方法观察到显著的延迟减少,并且延迟测量结果在表1中给出。与不使用IMU的原始跟踪器的延迟(128ms~140ms)相比,使用IMU的延迟约为32ms。
使用具有IMU的HMD明显观察到延迟改善。本发明之前的装置可以得到不低于100ms,但是本公开的实施方式的延迟可以为大约32ms。
E-3-2.减少跟踪漂移
利用IMU融合,实现了无漂移跟踪。这适用于使用IMU跟踪丰富特征对象和低特征对象。对于两种对象,如本文所讨论的,添加IMU改善了跟踪性能。
E-3-3.容许更快的用户运动
如上所述,IMU预测的姿态用于在特征匹配之前预测当前帧中的特征位置,这带来更快和更准确的特征匹配,并且容许大的帧间运动。
此外,如上所述,IMU预测的姿态被用作鲁棒姿态估计器的初始姿态,这带来更快的收敛和更准确的姿态估计。
因此,所提出的方法容许更快的用户动作。
E-3-3总结
以下特征使所提出的方法独特并且比用于可穿戴设备上的AR应用的现有3D对象跟踪技术表现得更好。
用于融合IMU传感器和我们的3D对象跟踪技术的IMU和3D对象跟踪融合框架被设计为最大化3D对象跟踪性能。
在HMD装置上运行IMU线程和视觉线程两个线程,并且以IMU输出频率更新姿态,这减少了光学透视延迟。
IMU预测的姿态被用作鲁棒姿态估计器的初始姿态,这提高了姿态准确度和姿态估计速度。
在来自特征匹配的先前姿态估计失败的情况下,IMU预测的姿态被用作边缘细化模块的输入对象姿态,这提高了姿态准确度、姿态估计速度,并且减少了丰富特征的要求,因此可以跟踪较少的对象/视图的特征。
当跟踪器发生故障且IMU没有发散时,IMU姿态用于更新视觉跟踪器姿态,这减少了跟踪损失。
公开了一种检测静态运动并初始化IMU融合的自动方法。
公开了抖动减少法的两步(静态抖动减少+运动抖动减少),不仅减少了抖动,而且还保持了延迟的改善。
跟踪速度得到改善,因为当用户被检测为静态时,跟踪器仅使用来自最后帧的姿态而不实际跟踪当前帧。
利用IMU预测,在跟踪期间可以使用较少的特征,提高了跟踪速度。
利用IMU预测,可以考虑其他复杂特征,因为特征匹配变得更快且更准确。
这些特征使所提出的技术改善3D对象跟踪速度、准确度和延迟,减少跟踪损失,减少对用户移动速度的限制,并改善用户对可穿戴装置上的AR应用的体验。
E-3-4多个装置中的空间关系
在上述实施方式中,步骤S612(图22)中的IMU融合初始化提供表示对象相对于场景的空间关系的数据。在另一实施方式中,这种空间关系可以被存储并由多个装置使用。根据这样的实施方式,即使对象在摄像头60的视野之外,不同HMD 100'中的CPU 140也可以获得对象相对于同一场景的位置和姿态。然后,如果全局坐标系被设置为对这些HMD 100'是共同的,则CPU 140使用全局坐标系中的不同HMD 100'的位置和姿态向其用户显示关于对象的位置和/或姿态的视觉信息。为此目的,优选地,HMD 100'(例如,第一装置)和不同HMD100'(例如,第二装置)中的每一个包括GPS(全球定位系统)传感器和/或IMU 71,以定义和彼此共享全局坐标系。如果IMU 71除了加速度计和陀螺仪之外还包括磁传感器,则CPU 140还可以定义多个设备共用的这种全局坐标系,而无需例如使用NED(北-东-下(North-East-Down))坐标系的GPS传感器。以这种方式,节省了不同HMD 100'用于获得场景或全局坐标系中的对象姿态的计算功率。
例如,摄像头获取图像数据序列,并且惯性传感器获取传感器数据序列。如上所述,惯性传感器相对于摄像头以第一空间关系固定或可调节地固定。
诸如HMD 100'的第一装置的CPU 140至少基于以下项之一针对每个对象导出第一姿态或视觉对象姿态:图像数据序列中的图像帧以及基于分别对应于对象的3D模型创建的模板数据。第一装置的CPU 140还至少基于第一姿态或从第一姿态跟踪的姿态、传感器数据序列和第一空间关系,导出分别在对象或3D模型上定义的对象坐标系与全局坐标系之间的相应第二空间关系。
第二空间关系存储在存储介质中,使得第二空间关系对访问能够与存储介质通信的计算机的装置(即,第一装置之外的装置,诸如第二装置)是可用的。例如,第二空间关系可以存储在服务器中,该服务器可以由所有装置通过网络访问。在这方面,这些其他装置可以使用姿态和空间关系来确定与其他装置的空间关系。
如本领域技术人员将理解的,本发明的方面可以具体实现为系统、方法或计算机程序产品。因此,本发明的方面可以采用完全硬件的实施方式、完全软件的实施方式(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施方式,这些实施方式在本文中通常可以全部称为“电路”、“模块”或“系统”。此外,本发明的方面可以采取具体实现在一个或更多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有具体实现在其上的计算机可读程序代码。
可以使用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或非暂时性计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或者前述项的任何合适的组合。非暂时性计算机可读存储介质的更具体示例(非详尽列表)将包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置,或者前述项的任何合适的组合。在本文件的上下文中,非暂时性计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序的任何有形介质。
计算机可读信号介质可以包括其中具体实施有计算机可读程序代码的传播的数据信号,例如,在基带中或作为载波的一部分。这种传播的信号可以采用多种形式中的任何一种,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质不是非暂时性计算机可读存储介质,并且可以传送、传播或传输供指令执行系统、装置或设备使用或与其结合使用的程序。
计算机可读介质上具体实施的程序代码可以使用任何适当的介质传输,包括但不限于无线、有线、光纤电缆、RF等,或者前述项的任何合适的组合。用于执行本发明各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,包括诸如Java、Smalltalk、C++等的面向对象的编程语言和诸如“C”编程语言或类似的编程语言的传统的过程编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以(例如,使用因特网服务提供商通过因特网)连接到外部计算机。
以上参考根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图例示和框图描述了本发明的方面。将理解,流程图例示和/或框图的每个框以及流程图例示和/或框图中的框的组合可以由计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现流程图和/或框图的框中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机、其他可编程数据处理装置或其他设备以特定方式起作用,使得存储在计算机可读介质中的指令产生包括实现在流程图和/或框图的框中指定的功能/动作的指令的制品。
还可以将计算机程序指令加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的框中指定的功能/动作的过程。
附图中的流程图和框图例示出了根据本发明的各种实施方式的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示代码的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或更多个可执行指令。还应注意,在一些替代实现方式中,框中注释的功能可以不按图中所注释的顺序发生。例如,取决于所涉及的功能,连续显示的两个框可以实际上基本上同时执行,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图例示的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
本文使用的术语仅用于描述特定实施方式的目的,并不旨在限制本发明的实施方式。如本文所使用的,单数形式的“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“具有(has)”、“具有(have)”、“具有(having)”、“包括(includes)”、“包括(including)”、“包含(comprises)”和/或“包含(comprising)”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除一个或更多个其他特征、整数、步骤、操作、元素、组件和/或其组的存在或添加。
以下权利要求书中的所有装置或步骤加功能元件的相应结构、材料、动作和等同物旨在包括用于与如特别要求保护的其他要求保护的元件组合执行功能的任何结构、材料或动作。已经出于例示和描述的目的给出了对本发明的明确描述,但是并不旨在穷举或者限制以明确公开形式的本发明的实施方式。在不脱离本发明实施方式的范围和精神的情况下,许多修改和变化对于本领域普通技术人员而言是显而易见的。选择和描述实施方式是为了最好地解释本发明的实施方式的原理和实际应用,并且使本领域的其他技术人员能够理解本发明的实施方式,用于具有适合于预期的特定用途的各种修改的各种实施方式。
尽管本文已经例示和描述了特定实施方式,但本领域技术人员了解,被计算为实现同一目的的任意结构可以代替所示的特定实施方式,并且本发明的实施方式在其他环境中具有其他应用。本申请旨在涵盖本发明的任何改编或变化。以下权利要求绝不旨在将本发明的实施方式的范围限制于本文描述的特定实施方式。

Claims (20)

1.一种用于操作具有显示器、摄像头和惯性传感器的显示设备的方法,所述方法包括以下步骤:
(a)跟踪所述摄像头的视野中的对象的姿态,所述跟踪包括重复地:(1)使用处理器或电子电路,使用由所述摄像头获取的图像数据和由所述惯性传感器获取的传感器数据中的至少一方来导出所述对象相对于所述显示设备的姿态,以及(2)使用所述显示器显示基于所述对象的所导出的姿态的图像;
(b)使用所述处理器或所述电子电路,使用所述传感器数据和所述图像数据中的至少一方来导出所述显示设备的移动或所述视野中的所述对象的移动;
(c)使用所述处理器或所述电子电路确定所导出的移动是否超过第一阈值;
(d)如果所导出的移动超过所述第一阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(e)如果所述移动没有超过所述第一阈值,则:(1)停止步骤(a)中的跟踪所述对象的姿态的处理;以及(2)使用所述显示器显示基于所述对象的先前导出的姿态的图像。
2.根据权利要求1所述的方法,其中,如果在已经执行了步骤(e)之后确定所导出的移动超过所述第一阈值,则所述方法还包括重新开始步骤(a)中的跟踪所述对象的姿态的处理。
3.根据权利要求1所述的方法,其中,步骤(b)至步骤(e)包括:
(f)使用所述处理器或所述电子电路,使用所述传感器数据导出所述显示设备的移动;
(g)使用所述处理器或所述电子电路确定在步骤(f)中导出的移动是否超过传感器阈值;
(h)如果在步骤(f)中导出的移动超过所述传感器阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;
(i)如果在步骤(f)中导出的移动没有超过所述传感器阈值,则:
(j)使用所述处理器或所述电子电路,使用所述图像数据导出所述显示设备的移动或所述视野中的所述对象的移动;
(k)使用所述处理器或所述电子电路确定在步骤(j)中导出的移动是否超过图像移动阈值;
(l)如果在步骤(j)中导出的移动超过所述图像移动阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(m)如果在步骤(j)中导出的移动没有超过所述图像移动阈值,则:(1)停止步骤(a)中的跟踪所述对象的姿态的处理;以及(2)使用所述显示器显示基于所述对象的所述先前导出的姿态的图像。
4.根据权利要求1所述的方法,所述方法还包括以下步骤:
(f)使用所述处理器或所述电子电路确定所导出的移动是否超过第二阈值,所述第二阈值高于所述第一阈值;
(g)如果所导出的移动没有超过所述第二阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(h)如果所导出的移动超过所述第二阈值,则停止步骤(a)中的跟踪所述对象的姿态的处理。
5.根据权利要求1所述的方法,其中,在步骤(a)和步骤(e)中显示所述图像的处理包括使用图形处理器重复渲染所述图像,并且步骤(e)包括:
(f)使用所述处理器或所述电子电路测量所导出的移动没有超过所述第一阈值的时间长度;
(g)使用所述处理器或所述电子电路确定所述时间长度是否超过时间阈值;
(h)如果所述时间长度没有超过所述时间阈值,则继续使用所述图形处理器重复渲染所述图像;以及
(i)如果所述时间长度超过所述时间阈值,则停止渲染所述图像并使用所述显示器显示所述图像的先前渲染。
6.根据权利要求1所述的方法,其中,步骤(e)包括:
(g)使用所述处理器或所述电子电路测量所导出的移动没有超过所述第一阈值的时间长度;
(h)使用所述处理器或所述电子电路确定所述时间长度是否超过时间阈值;
(i)如果所述时间长度没有超过所述时间阈值,则使用所述显示器继续显示基于所述对象的所述先前导出的姿态的所述图像;以及
(j)如果所述时间长度超过所述时间阈值,则停止显示所述图像。
7.根据权利要求1所述的方法,其中,所述对象是以下之一:三维对象和平面对象。
8.根据权利要求1所述的方法,其中,步骤(a)中的所述导出是仅使用图像数据来执行的。
9.根据权利要求1所述的方法,其中,步骤(a)中的所述导出是使用图像数据和传感器数据的组合来执行的。
10.一种包含程序指令的非暂时性存储介质,所述程序指令当由处理器或电子电路执行时使所述处理器或所述电子电路执行用于操作具有显示器、摄像头和惯性传感器的显示设备的方法,所述方法包括以下步骤:
(a)跟踪所述摄像头的视野中的对象的姿态,所述跟踪包括重复地:(1)使用由所述摄像头获取的图像数据和由所述惯性传感器获取的传感器数据中的至少一方来导出所述对象相对于所述显示设备的姿态,以及(2)使用所述显示器显示基于所述对象的所导出的姿态的图像;
(b)使用所述传感器数据和所述图像数据中的至少一方来导出所述显示设备的移动或所述视野中的所述对象的移动;
(c)确定所导出的移动是否超过第一阈值;
(d)如果所导出的移动超过所述第一阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(e)如果所导出的移动没有超过所述第一阈值,则:(1)停止步骤(a)中的跟踪所述对象的姿态的处理;以及(2)使用所述显示器显示基于所述对象的先前导出的姿态的图像。
11.根据权利要求10所述的非暂时性存储介质,其中,如果在已经执行了步骤(e)之后确定所导出的移动超过所述第一阈值,则所述方法还包括重新开始步骤(a)中的跟踪所述对象的姿态的处理。
12.根据权利要求10所述的非暂时性存储介质,其中,步骤(b)至步骤(e)包括:
(f)使用所述传感器数据导出所述显示设备的移动;
(g)确定在步骤(f)中导出的移动是否超过传感器阈值;
(h)如果在步骤(f)中导出的移动超过所述传感器阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;
(i)如果在步骤(f)中导出的移动没有超过所述传感器阈值,则:
(j)使用所述图像数据导出所述显示设备的移动或所述视野中的所述对象的移动;
(k)确定在步骤(j)中导出的移动是否超过图像移动阈值;
(l)如果在步骤(j)中导出的移动超过所述图像移动阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(m)如果在步骤(j)中导出的移动没有超过所述图像移动阈值,则:(1)停止步骤(a)中的跟踪所述对象的姿态的处理;以及(2)使用所述显示器显示基于所述对象的所述先前导出的姿态的图像。
13.根据权利要求10所述的非暂时性存储介质,其中,所述方法还包括以下步骤:
(f)确定所导出的移动是否超过第二阈值,所述第二阈值高于所述第一阈值;
(g)如果所导出的移动没有超过所述第二阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(h)如果所导出的移动超过所述第二阈值,则停止步骤(a)中的跟踪所述对象的姿态的处理。
14.根据权利要求10所述的非暂时性存储介质,其中,步骤(e)包括:
(g)测量所导出的移动没有超过所述第一阈值的时间长度;
(h)确定所述时间长度是否超过时间阈值;
(i)如果所述时间长度没有超过所述时间阈值,则使用所述显示器继续显示基于所述对象的所述先前导出的姿态的所述图像;以及
(j)如果所述时间长度超过所述时间阈值,则停止显示所述图像。
15.根据权利要求10所述的非暂时性存储介质,其中,所述对象是以下之一:三维对象和平面对象。
16.根据权利要求10所述的非暂时性存储介质,其中,步骤(a)中的所述导出是仅使用图像数据来执行的。
17.根据权利要求10所述的非暂时性存储介质,其中,步骤(a)中的所述导出是使用图像数据和传感器数据的组合来执行的。
18.一种信息处理系统,所述信息处理系统包括:
头戴式显示装置,所述头戴式显示装置包括:
获取图像数据的摄像头;
获取传感器数据的惯性传感器;
显示器;以及
处理器或电子电路,所述处理器或所述电子电路被配置为:
(a)跟踪所述摄像头的视野中的对象的姿态,所述跟踪包括重复地:(1)使用所述图像数据和所述传感器数据中的至少一方来导出所述对象相对于所述头戴式显示装置的姿态,以及(2)使用所述显示器显示基于所述对象的所导出的姿态的图像;
(b)使用所述传感器数据和所述图像数据中的至少一方来导出所述头戴式显示装置的移动或所述视野中的所述对象的移动;
(c)确定所导出的移动是否超过第一阈值;
(d)如果所导出的移动超过所述第一阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(e)如果所导出的移动没有超过所述第一阈值,则:(1)停止步骤(a)中的跟踪所述对象的姿态的处理;以及(2)使用所述显示器显示基于所述对象的先前导出的姿态的图像。
19.根据权利要求18所述的信息处理系统,所述信息处理系统还包括:
图形处理器,所述图形处理器被配置为在步骤(a)和(e)中重复渲染所述图像,并使用所述显示器显示所述图像,
其中,所述处理器或所述电子电路还被配置为:
(f)测量所导出的移动没有超过所述第一阈值的时间长度;
(g)确定所述时间长度是否超过时间阈值;
(h)如果所述时间长度没有超过所述时间阈值,则指示所述图形处理器继续重复渲染所述图像;以及
(i)如果所述时间长度超过所述时间阈值,则指示所述图形处理器:(1)停止渲染所述图像;以及(2)使用所述显示器显示所述图像的先前渲染。
20.根据权利要求18所述的信息处理系统,其中,步骤(b)至步骤(e)包括:
(f)使用所述传感器数据导出所述头戴式显示装置的移动;
(g)确定在步骤(f)中导出的移动是否超过传感器阈值;
(h)如果在步骤(f)中导出的移动超过所述传感器阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;
(i)如果在步骤(f)中导出的移动没有超过所述传感器阈值,则:
(j)使用所述图像数据导出所述视野中的所述对象的移动或所述头戴式显示装置的移动;
(k)确定在步骤(j)中导出的移动是否超过图像移动阈值;
(l)如果在步骤(j)中导出的移动超过所述图像移动阈值,则继续步骤(a)中的跟踪所述对象的姿态的处理;以及
(m)如果在步骤(j)中导出的移动没有超过所述图像移动阈值,则:(1)停止步骤(a)中的跟踪所述对象的姿态的处理;以及(2)使用所述显示器显示基于所述对象的所述先前导出的姿态的图像。
CN201910226418.7A 2018-03-27 2019-03-25 操作显示设备的方法、信息处理系统及非暂时性存储介质 Active CN110310329B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/937,229 US10311833B1 (en) 2018-03-27 2018-03-27 Head-mounted display device and method of operating a display apparatus tracking an object
US15/937,229 2018-03-27

Publications (2)

Publication Number Publication Date
CN110310329A true CN110310329A (zh) 2019-10-08
CN110310329B CN110310329B (zh) 2023-08-18

Family

ID=66673373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910226418.7A Active CN110310329B (zh) 2018-03-27 2019-03-25 操作显示设备的方法、信息处理系统及非暂时性存储介质

Country Status (2)

Country Link
US (1) US10311833B1 (zh)
CN (1) CN110310329B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113012232A (zh) * 2021-03-01 2021-06-22 重庆工程职业技术学院 一种用于矿井内的定位系统及方法
CN113421287A (zh) * 2021-07-16 2021-09-21 上海微电机研究所(中国电子科技集团公司第二十一研究所) 一种基于视觉主动目标跟踪的机器人及其控制方法、系统
TWI770614B (zh) * 2020-09-22 2022-07-11 南亞科技股份有限公司 機台監控系統與機台監控方法
CN116372954A (zh) * 2023-05-26 2023-07-04 苏州融萃特种机器人有限公司 Ar沉浸式遥操作排爆机器人系统、控制方法和存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6321202B2 (ja) * 2015-07-14 2018-05-09 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd モバイルプラットフォームの運動を決定する方法、装置、及びシステム
KR102638182B1 (ko) * 2018-12-26 2024-02-16 엘지전자 주식회사 영상표시장치
CN112304321B (zh) * 2019-07-26 2023-03-28 北京魔门塔科技有限公司 一种基于视觉和imu的车辆融合定位方法及车载终端
US11382699B2 (en) * 2020-02-10 2022-07-12 Globus Medical Inc. Extended reality visualization of optical tool tracking volume for computer assisted navigation in surgery
CN113920189A (zh) * 2020-07-08 2022-01-11 财团法人工业技术研究院 同时追踪可移动物体与可移动相机的六自由度方位的方法与系统
US11915531B2 (en) 2020-10-29 2024-02-27 General Electric Company Systems and methods of servicing equipment
US11874653B2 (en) 2020-10-29 2024-01-16 Oliver Crispin Robotics Limited Systems and methods of servicing equipment
US11935290B2 (en) * 2020-10-29 2024-03-19 Oliver Crispin Robotics Limited Systems and methods of servicing equipment
US11685051B2 (en) 2020-10-29 2023-06-27 General Electric Company Systems and methods of servicing equipment
US11938907B2 (en) 2020-10-29 2024-03-26 Oliver Crispin Robotics Limited Systems and methods of servicing equipment
JP7300436B2 (ja) 2020-11-17 2023-06-29 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、システム、情報処理方法および情報処理プログラム
US11861315B2 (en) 2021-04-21 2024-01-02 Meta Platforms, Inc. Continuous learning for natural-language understanding models for assistant systems
US11941863B2 (en) * 2021-08-04 2024-03-26 Datalogic Ip Tech S.R.L. Imaging system and method using a multi-layer model approach to provide robust object detection
US20240096031A1 (en) * 2022-09-19 2024-03-21 Snap Inc. Graphical assistance with tasks using an ar wearable device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130100019A1 (en) * 2011-10-25 2013-04-25 Texas Instruments Incorporated Enhanced projected image interface
US20140172432A1 (en) * 2012-12-18 2014-06-19 Seiko Epson Corporation Display device, head-mount type display device, method of controlling display device, and method of controlling head-mount type display device
US20160187970A1 (en) * 2013-06-11 2016-06-30 Sony Computer Entertainment Europe Limited Head-mountable apparatus and system
US20160282619A1 (en) * 2013-11-11 2016-09-29 Sony Interactive Entertainment Inc. Image generation apparatus and image generation method
US20170045736A1 (en) * 2015-08-12 2017-02-16 Seiko Epson Corporation Image display device, computer program, and image display system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4573085B2 (ja) 2001-08-10 2010-11-04 日本電気株式会社 位置姿勢認識装置とその位置姿勢認識方法、及び位置姿勢認識プログラム
DE102006005044B4 (de) 2006-02-03 2011-01-27 Metaio Gmbh Verfahren und System zur Bestimmung eines Datenmodells zur Überlagerung mit einem realen Objekt in einem Verfahren zur Objektverfolgung
JP4260814B2 (ja) * 2006-03-09 2009-04-30 任天堂株式会社 ゲーム装置およびゲームプログラム
US20080310757A1 (en) 2007-06-15 2008-12-18 George Wolberg System and related methods for automatically aligning 2D images of a scene to a 3D model of the scene
EP2048599B1 (en) 2007-10-11 2009-12-16 MVTec Software GmbH System and method for 3D object recognition
JP5290864B2 (ja) 2009-05-18 2013-09-18 キヤノン株式会社 位置姿勢推定装置及び方法
ES2399636T3 (es) 2009-07-29 2013-04-02 Metaio Gmbh Método para determinar la postura de una cámara con respecto a por lo menos un objeto real
JP2011175477A (ja) 2010-02-24 2011-09-08 Canon Inc 3次元計測装置、処理方法及びプログラム
US8467596B2 (en) 2011-08-30 2013-06-18 Seiko Epson Corporation Method and apparatus for object pose estimation
US9013617B2 (en) 2012-10-12 2015-04-21 Qualcomm Incorporated Gyroscope conditioning and gyro-camera alignment
US20150243031A1 (en) 2014-02-21 2015-08-27 Metaio Gmbh Method and device for determining at least one object feature of an object comprised in an image
US9436987B2 (en) 2014-04-30 2016-09-06 Seiko Epson Corporation Geodesic distance based primitive segmentation and fitting for 3D modeling of non-rigid objects from 2D images
JP6736257B2 (ja) 2015-04-02 2020-08-05 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
EP3316080B1 (en) * 2016-10-26 2021-08-25 HTC Corporation Virtual reality interaction method, apparatus and system
US10055028B2 (en) * 2016-12-05 2018-08-21 Google Llc End of session detection in an augmented and/or virtual reality environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130100019A1 (en) * 2011-10-25 2013-04-25 Texas Instruments Incorporated Enhanced projected image interface
US20140172432A1 (en) * 2012-12-18 2014-06-19 Seiko Epson Corporation Display device, head-mount type display device, method of controlling display device, and method of controlling head-mount type display device
US20160187970A1 (en) * 2013-06-11 2016-06-30 Sony Computer Entertainment Europe Limited Head-mountable apparatus and system
US20160282619A1 (en) * 2013-11-11 2016-09-29 Sony Interactive Entertainment Inc. Image generation apparatus and image generation method
US20170045736A1 (en) * 2015-08-12 2017-02-16 Seiko Epson Corporation Image display device, computer program, and image display system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI770614B (zh) * 2020-09-22 2022-07-11 南亞科技股份有限公司 機台監控系統與機台監控方法
CN113012232A (zh) * 2021-03-01 2021-06-22 重庆工程职业技术学院 一种用于矿井内的定位系统及方法
CN113012232B (zh) * 2021-03-01 2023-10-27 重庆工程职业技术学院 一种用于矿井内的定位系统及方法
CN113421287A (zh) * 2021-07-16 2021-09-21 上海微电机研究所(中国电子科技集团公司第二十一研究所) 一种基于视觉主动目标跟踪的机器人及其控制方法、系统
CN116372954A (zh) * 2023-05-26 2023-07-04 苏州融萃特种机器人有限公司 Ar沉浸式遥操作排爆机器人系统、控制方法和存储介质

Also Published As

Publication number Publication date
CN110310329B (zh) 2023-08-18
US10311833B1 (en) 2019-06-04

Similar Documents

Publication Publication Date Title
CN110310329A (zh) 操作显示设备的方法、信息处理系统及非暂时性存储介质
CN110047104B (zh) 对象检测和跟踪方法、头戴式显示装置和存储介质
CN109146965B (zh) 信息处理装置、计算机可读介质和头戴式显示装置
US11546505B2 (en) Touchless photo capture in response to detected hand gestures
US11861070B2 (en) Hand gestures for animating and controlling virtual and graphical elements
US20220206588A1 (en) Micro hand gestures for controlling virtual and graphical elements
US10078377B2 (en) Six DOF mixed reality input by fusing inertial handheld controller with hand tracking
WO2019205865A1 (zh) 相机姿态追踪过程的重定位方法、装置、设备及存储介质
US10521026B2 (en) Passive optical and inertial tracking in slim form-factor
WO2019205842A1 (zh) 相机姿态追踪过程的重定位方法、装置及存储介质
CN105264478B (zh) 全息锚定和动态定位
CN102591449B (zh) 虚拟内容和现实内容的低等待时间的融合
US11520399B2 (en) Interactive augmented reality experiences using positional tracking
CN111738220A (zh) 三维人体姿态估计方法、装置、设备及介质
JP2018511098A (ja) 複合現実システム
US11582409B2 (en) Visual-inertial tracking using rolling shutter cameras
US11915453B2 (en) Collaborative augmented reality eyewear with ego motion alignment
US20220084303A1 (en) Augmented reality eyewear with 3d costumes
TWI779332B (zh) 擴增實境系統與其錨定顯示虛擬物件的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant