CN110047104B - 对象检测和跟踪方法、头戴式显示装置和存储介质 - Google Patents
对象检测和跟踪方法、头戴式显示装置和存储介质 Download PDFInfo
- Publication number
- CN110047104B CN110047104B CN201811579353.6A CN201811579353A CN110047104B CN 110047104 B CN110047104 B CN 110047104B CN 201811579353 A CN201811579353 A CN 201811579353A CN 110047104 B CN110047104 B CN 110047104B
- Authority
- CN
- China
- Prior art keywords
- pose
- sensor
- image
- view
- template
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 132
- 238000001514 detection method Methods 0.000 title claims abstract description 28
- 238000003860 storage Methods 0.000 title abstract description 39
- 238000012549 training Methods 0.000 claims abstract description 71
- 230000015654 memory Effects 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000009877 rendering Methods 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 description 65
- 230000033001 locomotion Effects 0.000 description 51
- 230000004927 fusion Effects 0.000 description 49
- 230000006870 function Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 46
- 230000000875 corresponding effect Effects 0.000 description 36
- 238000012545 processing Methods 0.000 description 36
- 238000004364 calculation method Methods 0.000 description 24
- 230000036544 posture Effects 0.000 description 24
- 239000011159 matrix material Substances 0.000 description 23
- 238000005457 optimization Methods 0.000 description 23
- 210000003128 head Anatomy 0.000 description 22
- 238000011960 computer-aided design Methods 0.000 description 16
- 230000009466 transformation Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 14
- 239000013598 vector Substances 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 12
- 238000012937 correction Methods 0.000 description 11
- 230000014509 gene expression Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000000116 mitigating effect Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 239000013618 particulate matter Substances 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 238000003384 imaging method Methods 0.000 description 7
- 230000010365 information processing Effects 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 230000004393 visual impairment Effects 0.000 description 7
- 238000009499 grossing Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 238000003708 edge detection Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000014616 translation Effects 0.000 description 5
- 201000004569 Blindness Diseases 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004907 flux Effects 0.000 description 3
- 210000001061 forehead Anatomy 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000011347 resin Substances 0.000 description 3
- 229920005989 resin Polymers 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 239000000178 monomer Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000001444 catalytic combustion detection Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/653—Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/12—Acquisition of 3D measurements of objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Optics & Photonics (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
- Architecture (AREA)
Abstract
对象检测和跟踪方法、头戴式显示装置和存储介质。一种方法可以包括以下步骤:从摄像头获取图像帧;从惯性传感器获取传感器数据序列;至少基于该图像帧跟踪真实场景中的对象的第一姿态;基于该传感器数据序列得到惯性传感器的传感器姿态;确定是否丢失了第一姿态;从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失第一姿态时或之后获得的传感器姿态的视图对应的训练模板;以及使用该训练模板得到对象的第二姿态。
Description
技术领域
本发明的实施方式涉及信息处理装置的技术,该信息处理装置使用摄像头和运动传感器(例如,惯性传感器)处理与目标对象的三维模型有关的信息。
背景技术
JP-A-2013-50947中公开了一种估计由摄像头成像的对象的姿态的方法,它公开了一种技术,在该技术中,创建包括对象的图像的输入图像的二元掩模,从二元掩模提取作为对象的内轮廓和外轮廓中的点的单体,并且将单体的集合连接到彼此,以形成被表示为双矩阵的网格,使得估计对象的姿态。
然而,诸如JP-A-2013-50947的现有技术仅使用摄像头来估计姿态。然而,摄像头具有时延,该时延随着用户头部的运动或速度增大而增大。
而且,准确且快速的对象检测在诸如计算机视觉、人工智能以及生物统计学的各种工程与科学学科中是有用的。例如,今天在许多工业场所,使用了机器人来进行零件组装和制造。这些机器人装配有赋予它们视觉的一个或更多个摄像头,例如,CCD或CMOS。通常,对象(即,零件)被包含在箱子中。机器人必须识别箱子中的对象/零件,从而可以拾取对象/零件来组装产品。
发明内容
一旦检测到对象,则可以跟踪它,并且对象可以处于任意数量的姿态(位置、方位、旋转)。有时,在跟踪不同姿态和视图的对象时,对象对摄像头来说可能变得丢失,由此,系统然后将需要重新初始化对象检测,使得对象的跟踪可以继续。然而,当前系统初始化/重新初始化对象检测可能花费相当多的处理时间,特别是当在其他视图中跟踪变得丢失的时候,因为系统需要从训练数据的所有视图中搜索最近的有限视图。这对用户来说不方便,并且它劣化了用户体验。
本申请的实施方式公开了具有摄像头的系统。为了改善用户体验,本公开的实施方式致力于由惯性传感器(IMU)以及对象检测和姿态估计(ODPE)视觉模块的组合在跟踪失败时在任意视图中重新初始化对象。
本发明的一些方面的优点是解决上述问题的至少一部分,并且本发明的方面可以实施为以下方面。
(1)根据本发明的方面,提供了一种非暂时计算机可读介质,该非暂时计算机可读介质包含使得一个或更多个处理器执行方法的指令。该方法可以包括以下步骤:从摄像头获取图像帧;从惯性传感器获取传感器数据序列;至少基于图像帧跟踪真实场景中的对象的第一姿态;基于传感器数据序列得到惯性传感器的传感器姿态;确定是否丢失第一姿态;从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失第一姿态时或之后获得的传感器姿态的视图对应的训练模板;以及使用训练模板得到对象的第二姿态。
(2)根据本发明的另一个方面,方法可以包括以下步骤:从摄像头获取图像帧;从惯性传感器获取传感器数据序列;至少基于图像帧跟踪真实场景中的对象的第一姿态;基于传感器数据序列得到惯性传感器的传感器姿态;确定是否丢失第一姿态;从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失第一姿态时或之后获得的传感器姿态的视图对应的训练模板;以及使用训练模板得到对象的第二姿态。
(3)根据本发明的另一个方面,一种头戴式显示装置可以包括:摄像头(该摄像头可以包括深度传感器);惯性传感器,该惯性传感器以空间关系相对于摄像头固定或可调节地固定;以及处理器。处理器可以被配置为:从摄像头获取图像帧;从惯性传感器获取传感器数据序列;至少基于图像帧跟踪真实场景中的对象的第一姿态;基于传感器数据序列得到惯性传感器的传感器姿态;确定是否丢失第一姿态;从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失第一姿态时或之后获得的传感器姿态的视图对应的训练模板;以及使用训练模板得到对象的第二姿态。
本发明可以以除了方法、头戴式显示器以及非暂时计算机可读介质之外的方式/系统来实施。例如,本发明可以以诸如信息处理装置、显示装置、信息处理系统、用于实现头戴式显示器的功能的计算机程序、以及包括计算机程序并且在载波中具体实施的数据信号的形式来实施。
附图说明
将参照附图描述本发明的方面,附图中,同样的附图标记引用同样的元件。
图1是例示了在本实施方式中作为信息处理装置的个人计算机的功能配置的框图。
图2是例示了根据实施方式的由模板创建器执行的模板创建处理的流程图。
图3是用于说明根据实施方式的通过使用等式(1)计算的、表示用于三维模型的目标对象的二维的N个点的集合的图。
图4A至图4C是例示了根据实施方式的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是例示了根据实施方式的特征匹配的图。
图28A是例示了根据实施方式的用户以360度观看对象的图。
图28B是例示了根据实施方式的用户在用户丢失姿态的视图时在特定视图处观看对象的图(相对于用户开始观看对象的地点)。
图29是例示了根据实施方式的在丢失视图之后估计目标对象的姿态的处理的流程图。
图30是例示了根据实施方式的为了在丢失视图时允许继续观看对象而示出对象的不同视图位置的系统的示意配置的图。
图31A至图31D是例示了根据实施方式的检测来自模拟训练图像的关键点(或边缘模板)的序列的图。
图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.外点去除
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-3.实验结果
E-3-1.时延改善
E-3-2.减少跟踪漂移
E-3-3.容许更快的用户运动
F.IMU引导的360度对象检测和姿态估计
F-1-1.简要概述
F-1-2.引言/背景
F-1-3.方法的概述
F-2.离线训练
F-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)或借助其他3D模型重构技术创建的、目标对象的三维模型。模板存储部8存储由模板创建器6创建的模板。稍后将描述由模板创建器6创建的模板的细节。
CPU 1从ROM读取各种程序,并且在RAM中展开程序,以执行各种程序。CPU1包括执行用于创建模板的程序的模板创建器6。模板被定义为数据,在该数据中,关于在3D模型存储部7中存储的单个三维模型(在本实施方式中为3D CAD),在表示通过基于虚拟特定视点(下文中,还被简称为“视图”)将3D模型投影到虚拟平面上获得的2D模型的外部的轮廓线(下文中,还被简称为“轮廓”)中包括的点(2D模型点)的坐标值、通过将2D模型点基于特定视图转换成对象坐标系中的点获得的3D模型点、以及特定视图彼此相关。本实施方式的虚拟视点由刚体变换矩阵和透视投影变换矩阵来表示,该刚体变换矩阵用于从对象坐标系到虚拟摄像头坐标系的变换并且在摄像头坐标系中表示,透视投影变换矩阵用于将三维坐标投影到虚拟平面上的坐标上。刚体变换矩阵由表示围绕彼此正交的三个轴线的旋转的旋转矩阵和表示沿着三个轴线的平移的平移向量来表达。透视投影变换矩阵被适当调节为使得虚拟平面与显示装置的显示面或摄像头的成像面对应。CAD模型可以用作如稍后描述的3D模型。下文中,基于视图执行刚体变换和透视投影变换将被简称为“投影”。
A-2.模板的创建(训练)
图2是例示了由模板创建器6执行的模板创建处理的流程图。模板创建器6创建在从T个视图观看在3D模型存储部7中存储的目标对象的三维模型时获得的T个模板。在本实施方式中,模板的创建还将被称为“训练”。
在模板创建处理中,首先,模板创建器6准备在3D模型存储部7中存储的三维模型(步骤S11)。接着,模板创建器6通过使用针对所有可能的平面内旋转(1,...,和P)的各个不同t个视图来获得其相应2D模型来渲染CAD模型。各个视图是发明内容中的特定视点的示例。模板创建器6对各2D模型执行边缘检测,以获取边缘特征(步骤S13)。
模板创建器6基于T(P×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,相对于集合PMn得到目标对象OBm的位置。如图3例示,是通过使用等式(1)计算的点的集合的2D模型点的集合PMn被分布为大致匹配目标对象OBm的所拍摄图像的轮廓。如果计算2D模型点的集合PMn,则模板创建器6使2D模型点的位置与该位置处的亮度的梯度(向量)相关,并且存储相关结果,作为该位置处的轮廓特征。
A-2-2.3D模型点的确定和模板的创建(步骤S19)
模板创建器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}ε...4)
{CF1,…,CFN}ε...(5)
图4A至图4C是例示了3D CAD、通过投影3D CAD获得的2D模型以及基于2D模型创建的3D模型之间的关系的示意图。如作为例示了上述模板创建处理的图像图的图4A至图4C例示,模板创建器6基于3D CAD的视图Vn在虚拟平面上渲染2D模型,作为3D模型。模板创建器6检测借助渲染获得的图像的边缘,进一步提取轮廓,并且基于参照等式(1)和(2)描述的方法选择在轮廓中包括的多个2D模型点。下文中,由轮廓特征CF表示所选2D模型点的位置和2D模型点的该位置处的梯度(亮度的梯度向量)。模板创建器6对由二维空间中的轮廓特征CFi表示的2D模型点Pi执行逆变换,以获得与轮廓特征CFi对应的三维空间中的3D模型点Pi。在这里,3D模型点Pi在对象坐标系中表示。视图Vn中的模板包括由以下表达式(6)表达的元素。
(CF1n,CF2n,...,3SP1n,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,...,CFN}t,0...(8)
模板创建器6通过使用表达式(7)和(8)计算关于处于α度的平面内旋转的模板的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中,模板创建器6在从特定视图观看表示目标对象的三维CAD模型的情况下检测二维的多个边缘。模板创建器6计算通过变换多个边缘的轮廓特征获得的3D模型点。模板创建器6创建模板,在该模板中,二维的多个边缘、借助变换获得的3D模型点以及特定视图彼此相关。由此,在本实施方式中,由于例如由个人计算机PC创建的模板,在由摄像头等对目标对象成像并且选择表示最靠近被拍摄图像中的目标对象的姿态的姿态的模板时,以高准确性和/或在短时间段内估计被成像目标对象的姿态。
A-3.头戴式显示器(HMD)的配置
图5是例示了通过使用模板优化被成像目标对象的姿态的头戴式显示器100(HMD100)的外部配置的图。如果稍后将描述的摄像头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时位于用户的右眼和左眼的前面。右光学图像显示单元26的一端和左光学图像显示单元28的一端在当用户穿戴图像显示部20时与用户印堂对应的位置处连接到彼此。
右保持单元21是以下构件:其被设置为在用户穿戴图像显示部20时从端部ER在与用户的颞区对应的位置上方延伸,该端部是右光学图像显示单元26的另一端。类似地,左保持单元23是以下构件:其被设置为在用户穿戴图像显示部20时从端部EL在与用户的颞区对应的位置上方延伸,该端部是左光学图像显示单元28的另一端。右保持单元21和左保持单元23以与眼镜的边撑类似的方式将图像显示部20保持在用户的头部上。
右显示驱动单元22和左显示驱动单元24在用户穿戴图像显示部20时设置在与用户头部相对的侧上。下文中,右保持单元21和左保持单元23被简单地总称为“保持单元”,右显示驱动单元22和左显示驱动单元24被简单地总称为“显示驱动单元”,并且右光学图像显示单元26和左光学图像显示单元28被简单地总称为“光学图像显示单元”。
显示驱动单元22和24分别包括液晶显示器241和242(下文中,被称为“LCD241和242”)、投影光学系统251和252、等(参见图6)。稍后将描述显示驱动单元22和24的配置的细节。作为光学构件的光学图像显示单元26和28包括导光板261和262(参见图6)和调光板。导光板261和262由透光树脂材料等制成,并且将从显示驱动单元22和24输出的图像光引导到用户的眼睛。调光板是薄板状光学元件,并且被设置为覆盖是用户眼睛侧的相对侧的、图像显示部20的表面侧。调光板保护导光板261和262,以防止导光板261和262被损坏、污染等。另外,调光板的透光被调节为调节进入用户眼睛的外部光的量,从而控制视觉识别虚拟图像的程度。可以省略调光板。
摄像头60对外部场景成像。摄像头60设置在右光学图像显示单元26的一端和左光学图像显示单元28的一端连接到彼此的位置处。如稍后将详细描述的,在外部场景中包括的目标对象的姿态通过使用在由摄像头60成像的外部场景中包括的目标对象的图像来估计,并且优选地通过使用在存储单元120中存储的超级模板来估计。摄像头60与发明内容中的成像部对应。
图像显示部20还包括连接单元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写读计算机程序,以起操作系统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对于作为目标图像的图像数据(RGB数据)的各帧将所转换的数字图像信号存储在存储单元120的DRAM中。图像处理单元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模型点对应,并且优化单元基于图像点、3D图像点以及由至少一个变换矩阵表示的视图使等式(14)中的成本函数最小化,以估计在由摄像头60成像的外部场景中包括的目标对象的三维的位置和姿态。稍后将描述被成像目标对象的位置和姿态的估计和/或优化。
图像设置单元165对在图像显示部20上显示的图像(显示图像)执行各种设置。例如,图像设置单元165设置显示图像的显示位置、显示图像的尺寸、显示图像的亮度等,或者设置右眼图像数据和左眼图像数据,使得为了使用户将显示图像立体地(3D)视觉识别为三维图像而形成双眼视差(下文中,还被称为“视差”)。图像设置单元165通过向所拍摄图像应用模式匹配等来检测从所拍摄图像预先设置的确定目标图像。
图像设置单元165在位置对应性确定单元168和优化单元166执行各种处理并且已经执行处理的情况下以由优化单元166得到和/或优化的目标对象的姿态在光学图像显示单元26和28上显示(渲染)与目标对象对应的3D模型。操作单元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和右LCD241、以及右投影光学系统251。如以上所提及的,右背光源控制部201和右背光源221起光源的作用。如以上所提及的,右LCD控制部211和右LCD 241起显示元件的作用。右背光源控制部201、右LCD控制部211、右背光源221以及右LCD 241总称为“图像光生成单元”。
接收部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控制部201)和左背光源222(左BL 222)、起显示元件作用的左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)。对于该选择,可以单独使用用于估计目标对象的粗略姿态的现有三维姿态估计算法。位置对应性确定单元168在高度准确地得到3D姿态时可以找到比所选训练视图更靠近图像中的目标对象的姿态的新训练视图。在找到新训练视图的情况下,位置对应性确定单元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例示,从与是在模板中包括的2D模型点中的一个的2D模型点PM1相关的目标对象OBm的图像IMG检测的边缘的一部分包括如在箭头CS1至CS5中的多个选项。图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关于在各所投影2D模型点的当地附近包括的所有图像点通过使用以下等式(11)计算相似性得分。
在等式(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通过将等式(11)用于形成区域SA1、SA2以及SA3各自的各像素px来计算得分。在该阶段,区域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的各像素的校正得分。具体地,相似性得分通过使用位于与形成区域SA1的各像素相同的、区域SA2和SA3的矩阵位置处的像素凭借加权因子来平均。位置对应性确定单元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获得的值)加在一起获得的值。加权因子与处理目标轮廓特征F1与其他轮廓特征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)对应的2D模型点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模型点Pi与图像点pi之间的误差最小化的3D姿态。
这里,等式(14)中的wi是用于控制各模型点对成本函数的贡献的加权因子。被投影到图像边界外部上的点或具有低可靠性的对应性的点被给予小值的加权因子。在本实施方式中,为了提出3D姿态的具体调节,优化单元166在达到以下三个条款中的一个时使用高斯-牛顿法根据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模型点与对应于该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相似性的计算的示例的图。图13与图10相比还例示了与各轮廓特征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与主轴之间的交叉点(中心)的距离作为变量的各高斯函数的值用作新相似性得分。因此,例如,如图14例示,位置对应性确定单元168将0.2、0.7以及0.3的各得分分配给在目标对象的图像IMGOB中包括的像素px13、px16以及px19,但像素具有几乎相同的梯度。这是因为从垂直线VL1到各像素px的距离彼此不同。
接着,位置对应性确定单元168以与第一实施方式中相同的方式使相似性得分局部平滑。区域SA1、SA2以及SA3乘以与第一实施方式中相同的加权因子,由此计算形成区域SA1的各像素的校正得分。位置对应性确定单元168确定作为计算的结果获得的、形成区域SA1的像素的校正得分中的最大得分,作为指示与轮廓特征CF1的对应性的得分。在图15所例示的示例中,位置对应性确定单元168将像素px16的0.56确定为得分。
C.第三实施方式
在本实施方式中,位置对应性确定单元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方法的算法基于目标对象的初始姿态再次执行姿态估计。位置对应性确定单元168通过使用组合MA方法和CF方法的方法可以比在以下情况下更高准确性地估计目标对象的姿态:仅使用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有关,图1至图15与包括(但不限于)用于估计姿态的摄像头60的HMD 100有关,并且以下实施方式与图16A至图28B有关,图16A至图28B与包括(但不限于)用于以新且改进的方式估计姿态的摄像头60和惯性传感器71的HMD 100’有关。以下实施方式通过使用多个传感器并且将传感器的数据融合在一起来提高对象跟踪的准确性和速度。以下讨论各种实施方式。
E-1.引言
增强现实(AR)实时集成来自视频直播和用户环境的数字信息。AR应用中的三个要求已经总结如下:
(1)它是实时交互的,
(2)它是三维(“3D”)的,并且
(3)它组合真实元件与虚拟元件。
为了满足这些要求,已经研究关于计算机视觉和图像处理的大量技术。一些AR应用不需要准确的3D对象姿态,因此在视频叠加模式下渲染增强信息不引起任何问题,诸如使增强信息“悬停”在用于教育应用的书籍上方。
然而,许多AR应用需要低时延(例如,小于15mm/s)和准确的3D对象姿态,诸如工业、军事以及医疗AR应用。时延与在对象从初始位置到第二位置的移动发生时姿态从初始位置移动至第二位置的姿态的速度有关。
在以下描述的实施方式中,描述了可以在用于AR应用的头戴式显示器中实施的3D对象跟踪系统。然而,3D对象跟踪的时延对于如图16A所示的一些AR应用可能太高,该图16A示出了在对象302相对于用户的角度已经初始移动时,将姿态300延迟继续叠加在对象302上。相反,姿态暂时地不处于适当的位置(即,不叠加在对象302上方)。另外,在用户更快移动时或在用户移动至更少特征点存在的对象视图时,3D对象跟踪容易丢失。高时延、用户移动速度限制以及丢失跟踪频繁大幅影响将头戴式显示器用于光学透视AR应用的用户体验。
图16B示出了在时延被降低为使得对象302相对于用户的角度已经初始移动时,姿态300不被延迟,由此被用户的视力感知为持续叠加对象302。
根据本公开的各种方面,为了避免上述问题并且降低时延,头戴式显示器可以装配有具有陀螺仪传感器和加速计的惯性运动单元(“IMU”)传感器。为了降低时延并因此提高3D对象跟踪性能,“融合”了IMU传感器和摄像头传感器,或者将IMU传感器和摄像头传感器的数据组合在一起。因为IMU传感器以比摄像头远远更高的频率(例如,125Hz、250Hz、1MHz等)来操作,所以可以使用IMU传感器,并且人眼的时延为大约15ms。由此,理想地,优选的是将系统的时延降低至小于15ms。
应理解,“IMU传感器”、“陀螺仪传感器”和/或“加速计”的各术语贯穿本公开与“惯性传感器”对应。
在一个实施方式中,头戴式显示器装配有如以上并且贯穿该申请讨论的IMU传感器(3轴加速计和3轴陀螺仪),作为运动传感器。然而,在另一实施方式中,除了加速计和陀螺仪之外,头戴式显示器还可以装配有3轴磁传感器。在这一点上,IMU传感器可以包括加速计、陀螺仪传感器和/或磁传感器。在一个实施方式中,仅加速计和陀螺仪传感器用于算法中。然而,在另一实施方式中,磁传感器可以用于进一步提高融合准确性,因此,可以向加速计和陀螺仪传感器添加磁传感器(并且算法相应地变化)。
然而,应理解,本发明不应限于将包括加速计、陀螺仪和/或磁传感器的IMU传感器用于检测运动的上述实施方式,并且可以采用能够沿着3个轴线检测运动的任意其他类型的运动传感器或运动感测系统。
而且,单个HMD装置中可以使用运动传感器或运动感测系统中的一个或更多个,以进一步降低时延。例如,可以堆叠这些运动传感器或运动感测系统,以在不同时间输出姿态。在这一点上,各传感器/系统在其他传感器不输出姿态时提供姿态,从而降低了总时延。
运动传感器或运动感测系统在此处根据一个实施方式可以以125Hz操作。然而,在其他实施方式中,运动传感器或运动感测系统可以以低于或高于125Hz的频率操作。
E-2.IMU和3D对象跟踪融合
在本公开中,可以使用诸如扩展卡尔曼滤波器(EKF)、离子滤波器、无迹卡尔曼滤波器(UKF)、最大似然非线性系统估计等的一个或更多个非线性滤波器来将来自IMU传感器和摄像头传感器的数据融合在单个HMD系统中。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等人讨论了将EFK用于传感器融合的基本概念,传感器质量在传感器之间变化,由此,用于融合来自由具有不同传感器的视觉使用的不同类型的传感器的数据的方法可以不同,并且融合不同传感器的数据遭遇不同挑战和问题。此处公开了如何融合使用3D视觉跟踪技术的IMU传感器和摄像头传感器来提高3D对象跟踪性能和效率。在本公开中,提出了这种融合框架的细节,讨论了问题和解决方案,并且最后示出了性能评价结果。
注意,术语“融合”在关于得到对象的姿态(不管是运动还是静止的)使用时与使用来自至少一个传感器和摄像头(或其他成像装置)的数据以得到姿态的处理有关,诸如由来自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和IMU71与显示部20的框架直接集成。
虽然图17例示了嵌合带90,但应理解,本发明不限于需要嵌合带90。实际上,在这种实施方式中,嵌合带90中的元件(包括摄像头60和IMU 71)可以集成在显示部20的框架、显示部20本身和/或HMD 100’的任意其他部分中或设置到其上。由此,在一些实施方式中,嵌合带90可以不包括在HMD 100’中,但为了便于例示和讨论,以下实施方式将嵌合带90描述为HMD 100’的一部分。
摄像头60可以对外部场景成像,并且在图17的所例示实施方式中设置在嵌合基部91的中间部分中。换言之,摄像头60在嵌合带90嵌合在用户头部上的状态下设置在与用户前额的中间对应的位置处。因此,在用户将嵌合带90嵌合在用户头部的状态下,摄像头60对是沿用户的视线方向的外部场景的外部场景成像,并且由成像获取所拍摄图像。
在该实施方式中,摄像头60包括:摄像头基部61,该摄像头基部相对于嵌合基部91旋转;和镜头部62,该镜头部与摄像头基部61的相对位置固定。在嵌合带90嵌合在用户头部上时,摄像头基部61被设置为沿着箭头CS1可旋转,该箭头是在包括用户的中心轴的平面中包括的轴线的预定范围。因此,是摄像头60的光轴的、镜头部62的光轴的方向可以在箭头CS1的范围内改变。镜头部62对由围绕光轴变焦改变的范围成像。
IMU 71是检测加速度的惯性传感器。在一些实施方式中,IMU 71除了可以检测加速度之外,还可以使用陀螺仪传感器和磁传感器检测角速度和地磁学。在该实施方式中,IMU 71被包含在嵌合基部91中,但在其他实施方式中,如以上所讨论的,IMU71可以设置在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具有可调节固定空间关系。在另一实施方式中,IMU71可以与摄像头60具有固定空间关系。进一步地,因为显示部20与嵌合基部91的相对位置固定,所以摄像头60与显示部20的相对位置可移动。
显示部20连接到嵌合带90的嵌合基部91,并且在该实施方式中具有眼镜形状。显示部20包括右保持件21、右显示驱动器22、左保持件23、左显示驱动器24、右光学图像显示器26以及左光学图像显示器28。右光学图像显示器26和左光学图像显示器28在显示部20嵌合在用户上时位于用户的右眼和左眼的前面。右光学图像显示器26的一端和左光学图像显示器28的一端在显示部20嵌合在用户上时与用户前额的中间对应的位置处连接到彼此。
右保持件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包括液晶显示器241和242(下文中,还被称为“LCD 241和242”)以及以下要参照图18描述的投影光学系统251和252。以下将描述显示驱动器22和24的配置的细节。
光学图像显示器26和28包括以下要描述的导光板261和262(参见图18)以及光调节板。导光板261和262由透光树脂材料等形成,并且将从显示驱动器22和24输出的图像光引导到用户的眼睛。在一些实施方式中,图像显示器26和28包括除导光板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通过将在ROM121中存储的各种程序加载在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(Rx 53)、右背光源控制器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发送的控制信号驱动右LCD 241。右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中的实施方式,CPU 140运行两个单独的线程,一个处理来自IMU 71的数据,一个处理来自摄像头60的数据。信息在两个线程之间交换,以融合摄像头数据和IMU数据。因为IMU数据(例如,125Hz)可以比图像数据(例如,30fps或30Hz)更快速地处理,所以摄像头数据和IMU数据的融合允许更准确的对象位置跟踪。由此,在对象跟踪中将存在更少的时延。
应理解,术语“摄像头数据”可以指由摄像头60取得的数据,但不应限于摄像头,并且可以由任意其他成像装置来取得。由此,术语“摄像头数据”不应限于仅由摄像头取得的数据。由此,术语“摄像头数据”此处可以被称为“图像数据”。
类似地,应理解,术语“IMU数据”可以指由IMU 71取得的数据,但不应限于IMU,并且可以由任意其他运动感测装置来获得。由此,术语“IMU数据”不应限于仅由IMU获得的数据。因此,术语“IMU数据”此处可以被称为“传感器数据”。
仍然参照图19,融合通过将时间戳放置在传感器数据和图像数据这两者上来完成。这样,知道传感器数据和图像数据这两者的精确定时,并且它们可以彼此匹配,这从同时引起数据的融合。由此,在步骤S300和S302中,连同时间戳获取IMU数据和图像数据。随后,在步骤S306中在视觉线程中融合图像数据和IMU数据。稍后在图20中更详细地讨论步骤S306。
在IMU线程中,S304确认HMD处于透视模式。透视模式是用户同时观看外部环境和虚拟图像数据的模式。在一些实施方式中,HMD 100’能够在非透视模式下操作,在该模式下,显示区域被虚拟图像覆盖,并且用户被预期为仅集中于虚拟图像上。一旦确认透视模式,则在S310中从视觉线程向IMU线程发送来自S306的融合数据。
使用传感器数据来跟踪移动的一个缺点(与图像数据相比)是其可能包括抖动。该抖动可能由于所测量移动中的IMU 71的有限精度和通常出现的外点引起。例如,IMU 71在用户头部抽搐的零点几秒期间可以一致地测量加速度。这可以由IMU 71记录为突然和极限移动。该问题由步骤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在此处用作功能流程图,并且将分别参照图22至图28B,图20中使用附图中的附图标记A-E(各被圆圈环绕)来引用图22至图28B。因此,虽然将贯穿以下点讨论图20,但也将贯穿这些部分讨论图22至图28B,然后图22至图28将恢复到图20的讨论。
将注意,各种数据可以用于指摄像头数据,诸如“3D对象跟踪器”。
首先从图20的步骤S402开始,如此处之前讨论的,CPU 140确定使用摄像头60的3D对象跟踪器是否已经准确确定对象的初始3D姿态。如果是,则CPU 140可以将“跟踪器状态”的值设置为真,这允许方法400进行到步骤S406。
另一方面,如果在步骤S402中,CPU 140确定3D对象跟踪器尚未准确确定对象的初始3D姿态,则对象姿态估计模块执行图21所示的步骤S404。在图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 (1)
其中,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,ηk)。
其中,wk和ηk是分别是被假定为具有协方差Qk和Rk的零均值高斯噪声的处理和测量噪声。
预测IMU姿态的等式为:
其中,F为f相对于x的雅可比(Jacobian)矩阵,并且L是f相对于处理噪声的雅可比矩阵。
IMU姿态从得到(从pk平移和从qk旋转).
E-2-2-4.IMU发散确定
IMU传感器特别是加速计可以发散是指数据对于姿态预测不准确。例如,在视觉丢失达长时间段的时候。
为了将IMU最佳地用于跟踪中,需要确定IMU何时发散。确定IMU发散的准则如下定义。
位置协方差:
速度协方差:
方位协方差:
其中,P为状态协方差矩阵。
以下算式确定加速计读数是否异常:
|(||Accelerometer||-||calibratedgreound truth of Accelerometer||)|>ThAcc (9)
如果或或或满足等式(9),则IMU发散,并且将状态标志“PredictPose”设置为假(步骤S414),否则将其设置为真(步骤S416)。方法400然后可以进行到以下对于IMU对象跟踪器讨论的步骤S420。
E-2-2-5.IMU对象跟踪器
图23中例示并且以下讨论了使用IMU传感器跟踪对象的示例。
E-2-2-5-1.检测静止运动(S702)
在步骤S702和S704中,如以上已经讨论的,CPU 140基于传感器数据序列执行确定用户的头部并且由此惯性传感器是否保持静止或大致静止的模块。如果用户或惯性传感器被检测为静止或大致静止,则可以不执行跟踪。相反,之前由非线性估计算法预测的传感器姿态在惯性传感器被确定为保持静止或大致静止的情况下用作下一预测的传感器姿态。在这一点上,不预测另一个姿态,而是从存储器简单地取得已经存储在存储器中的之前姿态并且将其用于下一或当前帧。另选地,之前通过融合摄像头数据和传感器数据获得的对象姿态或对象的第二姿态可以用作下一融合的对象姿态。即,在一些实施方式中,如果用户或惯性传感器被检测为静止或大致静止,则不是必须在视觉线程中执行视觉跟踪。
这减少了系统的计算时间和处理能力,因为不需要执行其他计算或步骤来确定当前姿态。这样,提高跟踪速度。
然而,如果用户移动,则方法700进行到执行步骤S708至S722。
注意,步骤S712至S716在使用边缘对齐或其他特征时或对于可能不具有许多特征匹配特征(例如,没有许多KLT特征)的低特征对象可以是可选的(由此用这些步骤周围的虚线框来示出)。因此,来自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中的圆圈指示的点指示这些特征在当前帧中的真实/预测位置。从这些点之间的虚线的长度,帧间运动大,并且KLT特征匹配在不使用IMU时可能失败。凭借IMU预测,当前帧中的特征位置被预测为靠近它们的真正位置,因此特征匹配将成功并且匹配将快速并且准确,因为算法知道哪里找到这些特征。
在这一点上,在以下图像数据序列中的连续图像帧之间存在匹配:至少基于所预测传感器姿态的对象的2D特征点、第二空间关系以及3D模型上的3D点,借此,3D点与2D特征点对应。
返回参照图23的步骤S708,如果IMU预测姿态状态标志“PredictPose”为假(来自图20的S416),则CPU 140在S710中在不使用IMU数据的情况下执行特征匹配(或者方法700可以进行到CPU 140确定视觉丢失的S709)。在这一点上,例如仅可以使用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模型的渲染图像的图像,使得允许用户借助HMD 100视觉地感知AR对象的位置和姿态与对象的位置和姿态大致对齐或锚固到它们。在这种情况下,处理器使用以下等式得到在3D AR对象中包括的各3D点的图像位置xdis_1。
xdis_1=PTCαm2DispTObject2CαmX
其中,P是投影矩阵,并且TCαm2Disp是从摄像头坐标系到HMD 100的显示坐标系的3D变换矩阵。TObject2Cαm根据本实施方式指都在摄像头坐标系中表示的对象姿态或第二姿态。X表示在3D模型坐标系中表达的3D AR模型中包括的各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),则CPU 140在用户的头部在步骤S804中例如被确定为已经移动时执行确定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是相对于n的雅可比矩阵。测量zk包括由视觉对象跟踪器匹配的所有特征点。为了提高融合速度,在外点去除之后仅选择d个特征点。例如,在我们实施方案中的一个中,d<50。IMU姿态TS2G从xk得到(从pk平移和从qk旋转).
E-2-2-8.处理视觉丢失
图25是例示了根据实施方式的处理视觉丢失的流程图。图25的方法900处理视觉姿态由于特定原因(例如,姿态估计不收敛等)而未被更新但IMU姿态正确融合时的情况。
例如,如果IMU不发散(S902),则如以下讨论的,在步骤S904中计算融合的视觉姿态,然后在步骤S906中将IMU融合的姿态设置为视觉姿态。
IMU姿态TS2G根据等式(15)转换成对象坐标中的姿态TO2C。
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-3.实验结果
以上所讨论的所提出IMU和3D对象跟踪融合方法降低用户所感知的时延,在不危害姿态相对于对象的感知的情况下允许更快的用户头部运动,并且处理视觉丢失。它改善整体跟踪性能和用户体验。以下章节中示出了一些实验结果。
E-3-1:时延改善
使用所提出的方法观察到显著的时延降低,并且表1中给出了时延测量结果。时延凭借IMU与凭借不使用IMU的原始跟踪器的时延(128ms~140ms)相比为大约32ms。
表1-具有/没有IMU的3D对象跟踪的时延
凭借具有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对象跟踪性能最大化。
两个线程(IMU线程和视觉线程)在HMD装置上运行,并且姿态以IMU输出频率更新,这降低光学透视时延。
IMU预测姿态用作用于鲁棒姿态估计器的初始姿态,这提高姿态准确性和姿态估计速度。
IMU预测姿态在来自特征匹配的之前姿态估计失败的情况下用作用于边缘细化模块的输入对象姿态,这提高姿态准确性、姿态估计速度,并且降低丰富特征要求,因此可以跟踪对象/视图的更少特征。
使用了IMU姿态来在跟踪器失败并且IMU不发散时更新视觉跟踪器,这减少了跟踪丢失。
公开了一种检测静止运动并且初始化IMU融合的自动方法。
公开了抖动减轻方法的两个步骤(静止抖动减轻+运动抖动减轻),以不仅减轻抖动,还维持时延改善。
因为在用户被检测为静止时,跟踪器仅使用来自最近帧的姿态,不实际跟踪当前帧,所以提高了跟踪速度。
凭借IMU预测,在跟踪期间可以使用更少特征,提高了跟踪速度。
凭借IMU预测,因为特征匹配变得更快且更准确,所以可以考虑其他复杂特征。
这些特征使得所提出的技术提高3D对象跟踪速度、准确性以及时延,减轻跟踪丢失,减少对用户移动速度的限制,并且改善可穿戴装置上的AR应用的用户体验。
E-3-3.多个装置中的空间关系
在上述实施方式中,步骤S612(图22)中的IMU融合初始化提供表示对象相对于场景的空间关系的数据。在另一实施方式中,这种空间关系可以由多个装置来存储并使用。根据这种实施方式,不同HMD 100’中的CPU 140可以获得对象相对于同一场景的位置和姿态,即使对象在摄像头60的视场外部。然后,CPU 140使用全局坐标系中的不同HMD 100’的位置和姿态向其用户显示与对象的位置和/或姿态有关的信息,假定全局坐标系被设置为为这些HMD 100’共用。为此,优选的是各个HMD 100’(例如,第一装置)和不同HMD 100’(例如,第二装置)包括定义并且与彼此共享全局坐标系的GPS(全球定位系统)传感器和/或IMU 71。如果IMU 71除了包括加速计和陀螺仪之外还包括磁传感器,则CPU 140还可以例如使用NED(北-东-下)坐标系来定义为没有GPS传感器的多个装置共用的这种全局坐标系。这样,节省了不同HMD 100’获得场景或全局坐标系中的对象姿态的计算能力。
例如,摄像头获取图像数据序列,并且惯性传感器获取传感器数据序列。如以上所讨论的,惯性传感器相对于摄像头以第一空间关系固定或可调节地固定。
诸如HMD 100’的第一装置的CPU 140至少基于以下各项中的一个对于各个对象得到第一姿态或视觉对象姿态:图像数据序列中的图像帧和基于分别与对象对应的3D模型创建的模板数据。第一装置的CPU 140还得到对象坐标系与全局坐标系之间的各第二空间关系,这些对象坐标系分别在对象或3D模型上定义,全局坐标系至少基于第一姿态或从第一姿态跟踪的姿态、传感器数据序列和第一空间关系。
第二空间关系存储在存储介质中,使得第二空间关系可用于访问能够与存储介质通信的计算机的装置(即,除了第一装置之外的装置,诸如第二装置)。例如,第二空间关系可以存储在可由所有装置通过网络访问的服务器中。在这一点上,姿态和空间关系可以由这些其他装置用于确定与其他装置的空间关系。
F.IMU引导的360度对象检测和姿态估计
F-1-1.简要概述
如以上所讨论的,IMU融合用于辅助ODPE和跟踪这两者。在IMU的帮助下,360度重新初始化由于IMU预测姿态可以用于确定视图范围而在目标跟踪器变得“丢失”时是可行的。这对于可穿戴HMD装置上的增强现实应用(和其他应用)大幅提高用户体验。另外,360度训练数据可以从模拟图像自动离线(例如,在丢失姿态之前)进行。这也提高了用户体验。如果有360度训练图像,则基于多个视图的特征选择是可以的,使得在训练阶段将对于各训练图像创建区分特征,这将提高在线ODPE性能。这样,将增强总体增强现实3D对象跟踪性能和用户体验。以下是一些实施方式的更详细说明。
应注意,图28至图34与IMU引导的360度对象检测和姿态估计有关。而且,用于IMU引导的360度对象检测和姿态估计的系统使用与图17所示的相同系统。由此,此处将不进一步描述系统,并且以下章节中提及的任意元件返回参照图17。
F-1-2.引言/背景
如以上所提及的,有时,在跟踪处于不同姿态和视图的对象时,对象对摄像头来说可能变得“丢失”。图28A和图28B中示出了这一点,其中,对象404的跟踪发生在对象周围的所有视图402中,但在特定视图406中丢失,各视图是对象404的二维视图。
跟踪可以基于成本(或误差)函数f大于预定阈值T(f>T(或f<T))来被确定为“丢失”,其中,f依赖于跟踪算法。284例如,f可以为作为所有特征对应性的鲁棒重新投影误差的和的其中,Pose是第一姿态,Pi和pi分别是在当前帧与之前帧之间匹配的特征的3D和2D坐标。
换言之,在跟踪误差被确定为大于预定阈值时跟踪可以被确定为“丢失”。跟踪误差可以为f的上述等式,或者可以为在对象的跟踪期间确定所预测特征与实际特征之间的差的任意误差。
在用户观看对象周围(从检测到对象的初始视图)并且视图变得丢失(无论出于何种原因,例如,用户转移目光)的该情形下,系统然后将需要重新初始化对象检测,使得对象的跟踪可以继续。然而,当前系统初始化/重新初始化对象检测可能花费相当多的处理时间,特别是当在其他视图中跟踪变得丢失的时候,因为系统需要从训练数据的所有视图中搜索最近的有限视图408。这对用户来说是不便的,并且它劣化了用户体验。
由此,本申请的实施方式公开了由惯性传感器(IMU)以及对象检测和姿态估计(ODPE)视觉模块的组合在跟踪失败时在任意视图中重新初始化对象。
F-1-3.方法的概述
其总体上在图29的方法1100处示出。首先,在步骤S1102中,由IMU预测用户的视图的当前帧的姿态(或视图)。这在跟踪相对于用户的初始姿态/视图变得丢失的情况下例如使用加速计和陀螺仪来确定视图的位置来进行。在这一点上,IMU(不是摄像头)在跟踪丢失时用于确定用户的视图。
接着,在步骤S1104中,系统基于IMU预测姿态选择ODPE视图,并且在步骤S1106中,然后根据由IMU预测姿态来预测当前帧中的特征位置。
在步骤S1108处,系统在包括或靠近ODPE视图的有限视图范围(例如,用户丢失跟踪的视图)处估计对象姿态。即,有限视图范围基于ODPE视图或IMU预测姿态来确定。用于表示IMU预测姿态的坐标系可以根据表达式(15)变换成摄像头坐标系。有限视图范围内的视图仅是部分视图,而不是全360度视图。通过仅具有有限视图范围,相对于用于对象的整个360度视图的处理大幅提高系统处理速度。
在有限视图范围内估计对象姿态之后,跟踪然后可以继续,并且用户感知不到由于丢失的视图而引起的性能的显著滞后或下降。
由此,图29例示了一旦跟踪变得丢失,则将使用IMU预测姿态确定用于OPDE的视图。然后可以使用IMU预测姿态估计当前帧上的特征,以提高特征匹配性能。
以下关于图30至图34更详细地讨论图29的方法1100。
图30例示了根据实施方式的系统500的示意配置,该系统随着摄像头506围绕对象502旋转而示出了对象502的视图的不同位置,以在对象的特定视图(来自图28B的视图406,例如)丢失时允许对象502的连续观看。
如图30例示,对象502是可以围绕对象502 360度观看的3D对象,但处于对象502的各特定视图的摄像头506拍摄对象502的2D图像。由此,对于对象502的各视图,可以存在系统的实时(或在线)训练或离线训练。换言之,离线或在线生成训练数据,并且基于在线或离线生成的训练数据创建一个或更多个训练模板。稍后关于图32和图33讨论对象的姿态的离线训练数据的生成。
返回参照图30,使用所示的系统,如美国专利申请公报No.2014/0079314A1(此处以引证的方式将该申请并入)所公开的,使用样本模拟器来生成模拟训练图像。然后如以下对于图31A至图31D讨论的,使用所模拟的训练图像来生成训练模板。
F-1-4.根据模拟图像生成模板
图31A至图31D例示了根据实施方式的生成训练模板的序列和使用模拟训练图像进行的特征生成。首先,在图31A中,如美国专利申请公报No.2014/0079314A1所公开的获得模拟训练图像600。
图31B通过使用已知对象姿态、摄像头特性参数以及对象的CAD模型示出了对象的掩模602。摄像头特性与特定于各摄像头的内部参数(例如,焦距、图像传感器格式、主点等)有关。
一旦确定模拟训练图像600和掩模602,则如图31C所示的使用模拟图像600在对象上检测关键点604(例如,ORB关键点)(此处在上面讨论了该处理)。
然后基于对象的所选视图(例如,在特定视图中的对象的姿态丢失时或之后的、对象的视图)基于所确定的关键点或特征604生成对象的训练模板606(或边缘模板)。该训练模板连同所确定的关键点或特征604然后可以在特定视图中的对象的姿态丢失之后一起用于对象检测和特征跟踪的重新初始化。该模板还可以存储在存储器中,以供将来使用。以下关于图32至图34更多地讨论该处理。
F-2.离线训练
图32至图33示出了用于生成可以用于图34中的训练的离线图像的处理。而且,图34是为图25的方法900的另选实施方式的流程图。换言之,步骤S1202(代替步骤S902)可以从图20的步骤S426流动(并且参考圆圈“E”),以处理视觉丢失。
首先参照图32和图33,这些图示出了例示了根据实施方式的基于特征的离线训练数据生成的处理1200的流程图。首先,在步骤S1202和S1204中,样本模拟器使用摄像头特性参数1203、对象1201的CAD模型以及惯性参数1205(包括方位角、仰角、平面内旋转以及其他参数)的配置来生成模拟训练图像1207。如以上所提及的,模拟图像的生成使用在专利申请公报No.2014/0079314A1中提供的样本模拟器来执行。
在步骤S1206处,渲染并且存储模拟图像的图像掩模1209。上面关于图31B讨论了模拟图像的掩模的渲染。在步骤S1206和S1208处,渲染并且存储模拟图像的图像掩模1209,然后在1300处训练描述符或特征关键点(如图33所讨论的)。
图33是训练描述符并且生成模板(例如,离线训练数据)的、图32的1300的描述。在一个实施方式中,上面在图2和章节A-2、A-2-1、A-2-2、A-2-3以及A-2-4中描述了该处理。然而,以下是图33的步骤的小结。在步骤S1302中,如以上所讨论的,特征检测器使用所模拟掩模的模拟图像1207和图像掩模1209来输出特征1301(或特征关键点)。
在步骤S1304处,特征描述符提取器使用由特征检测器生成的模拟图像1207和特征1301来输出描述符1303(与特征点的轮廓特征或边缘特征有关的描述符)。
注意,1301处的特征以多个尺度(例如,以离对象的多个距离)检测,并且1301处的描述符以多个尺度提取。这样,存在相对于对象确定特征和描述符的变化位置。
在步骤S1306和S1308处,渲染器使用从CAD模型(或其他技术)获得的深度数据来计算各所提取2D关键点的3D点(即,2D到3D),并且选择特征并将所选特征及其对应的3D点存储在存储器中。然后,在步骤S1310处,将所选特征、它们的对应描述符以及3D点的全部存储到存储器中的模板中,作为离线训练数据1307。例如,在一些实施方式中,各模板包括2D特征点(包括2D特征点的点本身[U,V]和方位(由描述符来编码))、3D点以及模板关联的特定视图。如以上所提及的,此处在上面描述了步骤S1302至S1310的详细说明,该章节中不进一步讨论。
尽管如此,通常,图32至图33例示了离线生成模板,这意味着在用户在跟踪期间丢失姿态之前,诸如在任意对象检测/跟踪的开始之前。在这第一点上,在用户丢失姿态时,用于用户丢失姿态的特定视图的离线模板可以用于该特定视图处的对象检测的重新初始化,从而允许在丢失姿态的情况下继续对象跟踪(而不是必须返回到用户开始对象跟踪的原始开始视图)。因为存在在用户丢失姿态之前和/或在对象跟踪之前已经训练的模板,所以这可以进行。由此,系统可以使用离线训练在用户丢失姿态时重新开始对象跟踪(如此处所讨论的)。
F-3.对象检测和姿态估计
图34例示了一个实施方式中的基于特征的对象检测和姿态估计方法1400。作为第一步骤,从摄像头60接收实时摄像头图像1401。在步骤S1402中,检测关键点,并且从实时摄像头图像1401提取描述符并将其存储在存储器中(在1403处)。
步骤S1404和S1406是上面在图20至图23中讨论的步骤。例如,在步骤S1404处,使用图20的步骤S408预测IMU姿态,并且系统基于IMU预测姿态选择有限视图的训练数据。然后,步骤S1406,如以上关于图23描述的,预测当前图像上的特征位置,并且使用关键点和特征描述符1403匹配描述符,以取得2D到3D点对应性1405。如图7所讨论的,姿态估计方法然后使用2D到3D点对应性在S1408处确定3D对象姿态1407。可以使用姿态估计的任意方法,诸如透视n点(PnP)方法。
在确定3D对象姿态(“第二姿态”)之后,执行特定视图(用户丢失视图的“第一姿态”)处的对象检测的重新初始化,跟踪然后在跟踪丢失的同一点继续。因为跟踪可以在用户不必必须返回到跟踪开始的初始点的情况下继续,所以这提供无缝用户体验。
如本领域技术人员将理解的,本发明的方面可以被具体实施为系统、方法或计算机程序产品。因此,本发明的方面可以采取完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或组合此处全部通常可以被称为“电路”、“模块”或“系统”的软件和硬件方面的实施方式的形式。此外,本发明的方面可以采取计算机程序产品的形式,该计算机程序产品具体实施在上面具体实施有计算机可读程序代码的一个或更多个计算机可读介质中。
可以使用一个或更多个计算机可读介质的任意组合。计算机可读介质可以为计算机可读信号介质或非暂时计算机可读存储介质。计算机可读存储介质例如可以为但不限于电子、磁、光、电磁、红外或半导体系统、设备或装置,或前述内容的任意合适组合。非暂时计算机可读存储介质的更具体示例(非穷尽列表)将包括以下示例:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述内容的任意合适组合。在本文献的语境中,非暂时计算机可读存储介质可以为可以包含或存储用于由指令执行系统、设备或装置使用或关于该系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括内部具体实施有计算机可读程序代码的传播数据信号(例如,在基带中或作为载波的一部分)。这种传播信号可以采取各种形式(包括但不限于电磁、光或其任意合适组合)的任意一个。计算机可读信号介质可以为不是非暂时计算机可读存储介质且可以传达、传播或输送用于由指令执行系统、设备或装置或关于该系统、设备或装置使用的程序的任意计算机可读介质。
在计算机可读介质上具体实施的程序代码可以使用任意适当介质(包括但不限于无线、有线、光纤电缆、RF等或前述内容的任意合适组合)来发送。用于进行本发明方面的操作的计算机程序代码可以以一个或更多个编程语言的任意组合来书写,包括面向对象的编程语言(诸如Java、Smalltalk、C++等)和常规程化编程语言(诸如“C”编程语言或类似编程语言)。程序代码可以全部在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机且部分在远程计算机上、或全部在远程计算机或服务器上执行。在后者的场景中,远程计算机可以借助任意类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者连接可以进行到外部计算机(例如,使用因特网服务供应商借助因特网)。
上面参照根据本发明的实施方式的方法、设备(系统)以及计算机程序产品的流程图和框图描述了本发明的方面。将理解,流程图和/或框图中的各块和/或流程图和/或框图中的块的组合可以由计算机程序指令来实施。为了产生机器,这些计算机程序指令可以提供给通用计算机、专用计算机和/或其他可编程数据处理设备的处理器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于实施在流程图和/或框图块中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,可以引导计算机、其他可编程数据处理设备或其他装置以特定方式起作用,使得在计算机可读介质中存储的指令产生包括指令的制品,这些指令实施在流程图和/或框图块中指定的功能/动作。
计算机程序指令还可以加载到计算机、其他可编程数据处理设备或其他装置中,以使得一系列操作步骤在计算机、其他可编程设备或其他装置上执行,以产生计算机实施的处理,使得在计算机和/或其他可编程设备上执行的指令提供用于实施在流程图和/或框图块中指定的功能/动作的处理。
附图中的流程图和框图例示根据本发明的各种实施方式的系统、方法以及计算机程序产品的可能实施方案的架构、功能以及操作。在这一点上,流程图或框图中的各块可以表示包括用于实施指定逻辑功能的一个或更多个可执行指令的模块、片段或代码的一部分。还应注意,在一些另选实施方案中,块中注释的功能可以在附图中注释的顺序之外发生。例如,连续示出的两个块实际上可以大致同时执行,或者块有时可以以相反的顺序来执行,这依赖于所涉及的功能。还将注意,框图和/或流程图的各块以及框图和/或流程图中的块的组合可以由基于专用硬件的系统来实施,这些系统执行专用硬件和计算机指令的指定功能或动作或组合。
此处所用的术语仅是为了描述特定实施方式的目的且不旨在限制本发明的实施方式。如此处所用的,单数形式“一”和“一个”旨在也包括复数形式,除非上下文另外清楚指示。还将理解,术语“具有”、“包括”在用于本说明书中时指定所叙述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多个其他特征、整数、步骤、操作、元件、部件和/或其组的存在或添加。
以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作以及等同物旨在包括用于结合如特别要求保护的其他要求保护的元件来执行功能的任意结构、材料或动作。对本发明的明确描述是为了例示和描述的目的而提出的,但并非旨在穷尽,或者限于所明确公开形式的本发明的实施方式。许多修改例和变型例将在不偏离本发明的实施方式的范围和精神的情况下对于本领域普通技术人员将明显。选择并描述实施方式以最好地说明本发明的实施方式的原理和实际应用,并且使本领域其他普通技术人员能够理解本发明的实施方式,以及适合于所设想的具体用途的各种修改。
虽然此处已经例示并且描述了具体实施方式,但本领域普通技术人员理解,被计算为实现同一目的的任意结构可以代替所示的具体实施方式,并且本发明的实施方式具有其他环境中的其他应用。本申请旨在覆盖本发明的任意改编和变更。以下权利要求并不旨在将本发明的实施方式的范围限于此处所描述的具体实施方式。
Claims (20)
1.一种非暂时计算机可读介质,该非暂时计算机可读介质包含使得一个或更多个处理器执行方法的指令,该方法包括以下步骤:
(A)从摄像头获取图像帧;
(B)从惯性传感器获取传感器数据序列;
(C)基于所述图像帧跟踪真实场景中的对象的第一姿态;
(D)基于所述传感器数据序列,使用所述惯性传感器,得到所述对象的传感器姿态,所述传感器姿态是独立于所述第一姿态的姿态;
(E)确定是否丢失所述第一姿态;
(F)从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失所述第一姿态时或之后获得的所述传感器姿态的视图对应的训练模板;以及
(G)使用该训练模板得到所述对象的第二姿态。
2.根据权利要求1所述的非暂时计算机可读介质,
其中,(D)步骤包括:
使用非线性滤波算法基于所述传感器数据序列来预测所述惯性传感器的所述传感器姿态。
3.根据权利要求2所述的非暂时计算机可读介质,
其中,所述方法还包括以下步骤:
获得所述图像帧的所述对象的特征位置,
其中,(F)步骤包括:
从一个或更多个存储器取得所述训练模板,所述训练模板包含以下各项的信息:(i)视图;(ii)模板特征,该模板特征从根据该视图来渲染3D模型得到的图像和/或根据该视图拍摄到的基准对象的图像获得;以及(iii)与所述模板特征对应的3D点,其中,所述3D模型和所述基准对象与所述对象对应,并且所述视图基于在丢失所述第一姿态时或之后获得的所述传感器姿态,并且
其中,(G)步骤包括:
使用所述特征位置和所述训练模板得到所述对象的所述第二姿态。
4.根据权利要求3所述的非暂时计算机可读介质,
其中,获得所述图像帧中的所述3D点的步骤包括基于所述传感器姿态获得所述对象的所述特征位置。
5.根据权利要求3所述的非暂时计算机可读介质,
其中,所述方法还包括以下步骤:
从一个或更多个存储器取得所述摄像头与所述惯性传感器之间的空间关系;并且
其中,所述视图基于在丢失所述第一姿态时或之后获得的所述传感器姿态和所述空间关系。
6. 根据权利要求1所述的非暂时计算机可读介质,其中,
在所述一个或更多个存储器中存储有一个或更多个训练模板;并且
所述一个或更多个训练模板分别包括在用户丢失所述第一姿态之前训练的特征关键点。
7.根据权利要求1所述的非暂时计算机可读介质,其中,
在用户丢失所述第一姿态之后用特征关键点实时训练由所述3D模型生成的模板。
8.根据权利要求1所述的非暂时计算机可读介质,所述方法还包括以下步骤:
在丢失所述第一姿态之后基于所述第二姿态来跟踪所述对象。
9.根据权利要求1所述的非暂时计算机可读介质,其中,
基于误差函数f大于第一预定阈值T来确定跟踪丢失。
10.根据权利要求1所述的非暂时计算机可读介质,其中,
基于在丢失所述第一姿态时或之后获得的所述传感器姿态的所述视图是第一视图;
第二视图是位于与所述第一视图不同的位置处的、开始所述对象的跟踪处的视图;并且
所述对象的所述第二姿态处于所述第二视图处。
11.一种对象检测和跟踪方法,该方法包括以下步骤:
(A)从摄像头获取图像帧;
(B)从惯性传感器获取传感器数据序列;
(C)基于所述图像帧跟踪真实场景中的对象的第一姿态;
(D)基于所述传感器数据序列,使用所述惯性传感器,得到所述对象的传感器姿态,所述传感器姿态是独立于所述第一姿态的姿态;
(E)确定是否丢失所述第一姿态;
(F)从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失所述第一姿态时或之后获得的所述传感器姿态的视图对应的训练模板;以及
(G)使用该训练模板得到所述对象的第二姿态。
12.根据权利要求11所述的方法,
其中,(D)步骤包括:
使用非线性滤波算法基于所述传感器数据序列来预测所述惯性传感器的所述传感器姿态。
13.根据权利要求12所述的方法,
其中,所述方法还包括以下步骤:
获得所述图像帧的所述对象的特征位置,
其中,(F)步骤包括:
从一个或更多个存储器取得所述训练模板,所述训练模板包含以下各项的信息:(i)视图;(ii)模板特征,该模板特征从根据该视图来渲染3D模型得到的图像和/或根据该视图拍摄到的基准对象的图像获得;以及(iii)与所述模板特征对应的3D点,其中,所述3D模型和所述基准对象与所述对象对应,并且所述视图基于在丢失所述第一姿态时或之后获得的所述传感器姿态,并且
其中,(G)步骤包括:
使用所述特征位置和所述训练模板得到所述对象的所述第二姿态。
14.根据权利要求13所述的方法,
其中,获得所述图像帧中的所述3D点的步骤包括基于所述传感器姿态获得所述对象的所述特征位置。
15. 根据权利要求13所述的方法,其中,所述方法还包括以下步骤:
从一个或更多个存储器取得所述摄像头与所述惯性传感器之间的空间关系;并且
其中,所述视图基于在丢失所述第一姿态时或之后获得的所述传感器姿态和所述空间关系。
16.一种头戴式显示装置,该头戴式显示装置包括:
摄像头;
惯性传感器,该惯性传感器以空间关系相对于所述摄像头固定或能够调节地固定;以及
处理器,该处理器被配置为:
(A)从所述摄像头获取图像帧;
(B)从所述惯性传感器获取传感器数据序列;
(C)基于所述图像帧跟踪真实场景中的对象的第一姿态;
(D)基于所述传感器数据序列,使用所述惯性传感器,得到所述对象的传感器姿态,所述传感器姿态是独立于所述第一姿态的姿态;
(E)确定是否丢失所述第一姿态;
(F)从一个或更多个存储器取得或根据在一个或更多个存储器中存储的3D模型生成与基于在丢失所述第一姿态时或之后获得的所述传感器姿态的视图对应的训练模板;以及
(G)使用所述训练模板得到所述对象的第二姿态。
17.根据权利要求16所述的头戴式显示装置,
其中,(D)包括:
使用非线性滤波算法基于所述传感器数据序列来预测所述惯性传感器的所述传感器姿态。
18.根据权利要求17所述的头戴式显示装置,
其中,该处理器还被配置为:
获得所述图像帧的所述对象的特征位置,
其中,(F)包括:
从一个或更多个存储器取得所述训练模板,所述训练模板包含以下各项的信息:(i)视图;(ii)模板特征,该模板特征从根据该视图来渲染3D模型得到的图像和/或根据该视图拍摄到的基准对象的图像获得;以及(iii)与所述模板特征对应的3D点,其中,所述3D模型和所述基准对象与所述对象对应,并且所述视图基于在丢失所述第一姿态时或之后获得的所述传感器姿态,并且
其中,(G)包括:
使用所述特征位置和所述训练模板得到所述对象的所述第二姿态。
19.根据权利要求18所述的头戴式显示装置,
其中,获得所述图像帧中的所述3D点的处理包括基于所述传感器姿态获得所述对象的所述特征位置。
20.根据权利要求18所述的头戴式显示装置,
其中,该处理器还被配置为:
从一个或更多个存储器取得所述摄像头与所述惯性传感器之间的空间关系;并且
其中,所述视图基于在丢失所述第一姿态时或之后获得的所述传感器姿态和所述空间关系。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/854,277 US10970425B2 (en) | 2017-12-26 | 2017-12-26 | Object detection and tracking |
US15/854,277 | 2017-12-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110047104A CN110047104A (zh) | 2019-07-23 |
CN110047104B true CN110047104B (zh) | 2023-12-08 |
Family
ID=66949606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811579353.6A Active CN110047104B (zh) | 2017-12-26 | 2018-12-24 | 对象检测和跟踪方法、头戴式显示装置和存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10970425B2 (zh) |
CN (1) | CN110047104B (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9868212B1 (en) * | 2016-02-18 | 2018-01-16 | X Development Llc | Methods and apparatus for determining the pose of an object based on point cloud data |
JP7352556B2 (ja) * | 2018-02-06 | 2023-09-28 | マティサ マテリエル アンデュストリエル ソシエテ アノニム | 鉄道介入車両に取り付けられた1つまたは複数の介入ツールのセットに命令するための方法 |
CN109191512B (zh) * | 2018-07-27 | 2020-10-30 | 深圳市商汤科技有限公司 | 双目图像的深度估计方法及装置、设备、程序及介质 |
US10706274B1 (en) * | 2018-11-02 | 2020-07-07 | Glo Big Boss Limited | Systems and methods for smooth remote pose recovery under noisy network conditions |
JP2022516074A (ja) | 2018-12-27 | 2022-02-24 | マジック リープ, インコーポレイテッド | 仮想および拡張現実のためのシステムおよび方法 |
US10887582B2 (en) | 2019-01-22 | 2021-01-05 | Fyusion, Inc. | Object damage aggregation |
US11783443B2 (en) | 2019-01-22 | 2023-10-10 | Fyusion, Inc. | Extraction of standardized images from a single view or multi-view capture |
US11176704B2 (en) | 2019-01-22 | 2021-11-16 | Fyusion, Inc. | Object pose estimation in visual data |
CN113647097B (zh) * | 2019-03-01 | 2024-08-06 | 株式会社日立制作所 | 遗留物检测装置及遗留物检测方法 |
WO2020186509A1 (en) * | 2019-03-21 | 2020-09-24 | Hangzhou Fabu Technology Co. Ltd | A scalable data fusion architecture and related products |
CN112233647A (zh) * | 2019-06-26 | 2021-01-15 | 索尼公司 | 信息处理设备和方法以及计算机可读存储介质 |
US11500104B2 (en) * | 2019-08-16 | 2022-11-15 | Ford Global Technologies, Llc | Localizing a moving object |
CN110443228B (zh) * | 2019-08-20 | 2022-03-04 | 图谱未来(南京)人工智能研究院有限公司 | 一种行人匹配方法、装置、电子设备及存储介质 |
CN110796017A (zh) * | 2019-09-30 | 2020-02-14 | 北京三快在线科技有限公司 | 物品遗落的确定方法和装置、模型训练方法和装置 |
US11328475B2 (en) | 2019-10-18 | 2022-05-10 | Magic Leap, Inc. | Gravity estimation and bundle adjustment for visual-inertial odometry |
US11257240B2 (en) * | 2019-10-29 | 2022-02-22 | International Business Machines Corporation | Accelerated object labeling using prior geometric knowledge |
US11430151B2 (en) * | 2019-11-06 | 2022-08-30 | Seiko Epson Corporation | Online learning for 3D pose estimation using simplified constellations |
US11216663B1 (en) * | 2020-12-01 | 2022-01-04 | Pointivo, Inc. | Systems and methods for generating of 3D information on a user display from processing of sensor data for objects, components or features of interest in a scene and user navigation thereon |
US11562474B2 (en) | 2020-01-16 | 2023-01-24 | Fyusion, Inc. | Mobile multi-camera multi-view capture |
US11776142B2 (en) | 2020-01-16 | 2023-10-03 | Fyusion, Inc. | Structuring visual data |
US11348280B2 (en) | 2020-01-24 | 2022-05-31 | Seiko Epson Corporation | Method and computer readable medium for pose estimation |
US11138752B2 (en) * | 2020-01-30 | 2021-10-05 | Seiko Epson Corporation | Training a pose detection algorithm, and deriving an object pose using a trained pose detection algorithm |
CN113701745B (zh) * | 2020-05-21 | 2024-03-08 | 杭州海康威视数字技术股份有限公司 | 一种外参变化检测方法、装置、电子设备及检测系统 |
WO2021243103A1 (en) | 2020-05-29 | 2021-12-02 | Magic Leap, Inc. | Determining angular acceleration |
CN111784680B (zh) * | 2020-07-06 | 2022-06-28 | 天津大学 | 基于双目摄像头左右目视图关键点一致性的检测方法 |
WO2022040921A1 (zh) * | 2020-08-25 | 2022-03-03 | 南京翱翔信息物理融合创新研究院有限公司 | 一种分布式增强现实的定位终端、定位装置及定位系统 |
US11422619B2 (en) * | 2020-09-01 | 2022-08-23 | Htc Corporation | Tracking method and tracking system |
US11514658B2 (en) * | 2021-01-20 | 2022-11-29 | Qualcomm Incorporated | Enhancing three-dimensional models using multi-view refinement |
US11605151B2 (en) | 2021-03-02 | 2023-03-14 | Fyusion, Inc. | Vehicle undercarriage imaging |
US20220310037A1 (en) * | 2021-03-26 | 2022-09-29 | Lightspace Technologies, SIA | Method and system for reducing motion-to-photon latency in head-mounted display system |
CN113190120B (zh) * | 2021-05-11 | 2022-06-24 | 浙江商汤科技开发有限公司 | 位姿获取方法、装置、电子设备及存储介质 |
WO2023281488A1 (en) * | 2021-07-04 | 2023-01-12 | Elbit Systems Ltd. | A conformal display system and a method thereof |
IL284600B2 (en) * | 2021-07-04 | 2023-10-01 | Elbit Systems Ltd | System and method for non-conformal display |
EP4369177A4 (en) * | 2021-07-31 | 2024-09-18 | Huawei Tech Co Ltd | DISPLAY METHOD, DEVICE AND SYSTEM |
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 |
CN113409384B (zh) * | 2021-08-17 | 2021-11-30 | 深圳市华汉伟业科技有限公司 | 一种目标物体的位姿估计方法和系统、机器人 |
KR102403258B1 (ko) * | 2021-12-15 | 2022-05-30 | 주식회사 리콘랩스 | 볼륨 추론 기반 3차원 모델링 방법 및 시스템 |
WO2023150885A1 (en) * | 2022-02-10 | 2023-08-17 | Singulos Research Inc. | System and method for object comprehension |
CN114862904B (zh) * | 2022-03-21 | 2023-12-12 | 哈尔滨工程大学 | 一种水下机器人的孪生网络目标连续跟踪方法 |
US11977672B2 (en) * | 2022-06-03 | 2024-05-07 | Qualcomm Incorporated | Distributed pose prediction |
CN116205947B (zh) * | 2023-01-03 | 2024-06-07 | 哈尔滨工业大学 | 基于相机运动状态的双目-惯性融合的位姿估计方法、电子设备及存储介质 |
CN116309442B (zh) * | 2023-03-13 | 2023-10-24 | 北京百度网讯科技有限公司 | 挑拣信息的确定方法及目标对象的挑拣方法 |
CN117934571B (zh) * | 2024-03-21 | 2024-06-07 | 广州市艾索技术有限公司 | 一种4k高清的kvm坐席管理系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662587A (zh) * | 2008-08-29 | 2010-03-03 | 佳能株式会社 | 摄像装置及其跟踪方法 |
WO2010142895A1 (fr) * | 2009-06-08 | 2010-12-16 | Total Immersion | Procédé et dispositif de suivi d'objets en temps réel dans une séquence d'images en présence de flou optique |
CN103119627A (zh) * | 2010-09-20 | 2013-05-22 | 高通股份有限公司 | 用于云辅助式扩增现实的可适应性框架 |
US8761439B1 (en) * | 2011-08-24 | 2014-06-24 | Sri International | Method and apparatus for generating three-dimensional pose using monocular visual sensor and inertial measurement unit |
CN103996220A (zh) * | 2014-05-26 | 2014-08-20 | 江苏大学 | 一种智能交通中的三维重建方法及系统 |
CN104076513A (zh) * | 2013-03-26 | 2014-10-01 | 精工爱普生株式会社 | 头戴式显示装置、头戴式显示装置的控制方法、以及显示系统 |
CN104280022A (zh) * | 2013-07-13 | 2015-01-14 | 哈尔滨点石仿真科技有限公司 | 视觉辅助惯性测量单元的数字头盔显示设备跟踪系统 |
CN104732514A (zh) * | 2013-12-20 | 2015-06-24 | 康耐视公司 | 用于处理高度图的设备、系统和方法 |
CN104915947A (zh) * | 2014-03-13 | 2015-09-16 | 欧姆龙株式会社 | 图像处理装置、系统、图像处理方法及图像处理程序 |
CN105825518A (zh) * | 2016-03-31 | 2016-08-03 | 西安电子科技大学 | 基于移动平台拍摄的序列图像快速三维重建方法 |
CN107341831A (zh) * | 2017-07-06 | 2017-11-10 | 青岛海通胜行智能科技有限公司 | 一种imu辅助的视觉特征鲁棒跟踪方法及装置 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4573085B2 (ja) | 2001-08-10 | 2010-11-04 | 日本電気株式会社 | 位置姿勢認識装置とその位置姿勢認識方法、及び位置姿勢認識プログラム |
US8625854B2 (en) * | 2005-09-09 | 2014-01-07 | Industrial Research Limited | 3D scene scanner and a position and orientation system |
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 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
NO327279B1 (no) * | 2007-05-22 | 2009-06-02 | Metaio Gmbh | Kamerapositurestimeringsanordning og- fremgangsmate for foroket virkelighetsavbildning |
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 |
US8571298B2 (en) * | 2008-12-23 | 2013-10-29 | Datalogic ADC, Inc. | Method and apparatus for identifying and tallying objects |
US9024972B1 (en) * | 2009-04-01 | 2015-05-05 | Microsoft Technology Licensing, Llc | Augmented reality computing with inertial sensors |
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次元計測装置、処理方法及びプログラム |
US8860760B2 (en) * | 2010-09-25 | 2014-10-14 | Teledyne Scientific & Imaging, Llc | Augmented reality (AR) system and method for tracking parts and visually cueing a user to identify and locate parts in a scene |
EP2668617A1 (en) * | 2011-01-27 | 2013-12-04 | Metaio GmbH | Method for determining correspondences between a first and a second image, and method for determining the pose of a camera |
US8467596B2 (en) | 2011-08-30 | 2013-06-18 | Seiko Epson Corporation | Method and apparatus for object pose estimation |
WO2014048475A1 (en) * | 2012-09-27 | 2014-04-03 | Metaio Gmbh | Method of determining a position and orientation of a device associated with a capturing device for capturing at least one image |
US9013617B2 (en) | 2012-10-12 | 2015-04-21 | Qualcomm Incorporated | Gyroscope conditioning and gyro-camera alignment |
US10444845B2 (en) * | 2012-12-21 | 2019-10-15 | Qualcomm Incorporated | Display of separate computer vision based pose and inertial sensor based pose |
US9240075B2 (en) * | 2013-03-15 | 2016-01-19 | Daqri, Llc | Campaign optimization for experience content dataset |
US9699375B2 (en) * | 2013-04-05 | 2017-07-04 | Nokia Technology Oy | Method and apparatus for determining camera location information and/or camera pose information according to a global coordinate system |
GB201310364D0 (en) | 2013-06-11 | 2013-07-24 | Sony Comp Entertainment Europe | Head-mountable apparatus and systems |
JP6353214B2 (ja) * | 2013-11-11 | 2018-07-04 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置および画像生成方法 |
FR3013488B1 (fr) * | 2013-11-18 | 2017-04-21 | Univ De Nice (Uns) | Procede d'estimation de la vitesse de deplacement d'une camera |
US9336440B2 (en) * | 2013-11-25 | 2016-05-10 | Qualcomm Incorporated | Power efficient use of a depth sensor on a mobile device |
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 |
US9652031B1 (en) * | 2014-06-17 | 2017-05-16 | Amazon Technologies, Inc. | Trust shifting for user position detection |
US9317921B2 (en) * | 2014-07-10 | 2016-04-19 | Qualcomm Incorporated | Speed-up template matching using peripheral information |
US9665804B2 (en) * | 2014-11-12 | 2017-05-30 | Qualcomm Incorporated | Systems and methods for tracking an object |
US9911395B1 (en) * | 2014-12-23 | 2018-03-06 | Amazon Technologies, Inc. | Glare correction via pixel processing |
JP6736257B2 (ja) * | 2015-04-02 | 2020-08-05 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム |
US10192133B2 (en) * | 2015-06-22 | 2019-01-29 | Seiko Epson Corporation | Marker, method of detecting position and pose of marker, and computer program |
US10089790B2 (en) * | 2015-06-30 | 2018-10-02 | Ariadne's Thread (Usa), Inc. | Predictive virtual reality display system with post rendering correction |
JP6565465B2 (ja) * | 2015-08-12 | 2019-08-28 | セイコーエプソン株式会社 | 画像表示装置、コンピュータープログラム、および画像表示システム |
US9953217B2 (en) * | 2015-11-30 | 2018-04-24 | International Business Machines Corporation | System and method for pose-aware feature learning |
US10482681B2 (en) * | 2016-02-09 | 2019-11-19 | Intel Corporation | Recognition-based object segmentation of a 3-dimensional image |
US11017610B2 (en) * | 2016-05-18 | 2021-05-25 | Google Llc | System and method for fault detection and recovery for concurrent odometry and mapping |
CA3029541A1 (en) | 2016-06-30 | 2018-01-04 | Magic Leap, Inc. | Estimating pose in 3d space |
CA3034058C (en) * | 2016-08-14 | 2023-08-08 | Uvic Industry Partnerships Inc. | Real-time hand modeling and tracking using sphere-mesh models |
US10698475B2 (en) | 2016-10-26 | 2020-06-30 | Htc Corporation | Virtual reality interaction method, apparatus and system |
US10380763B2 (en) * | 2016-11-16 | 2019-08-13 | Seiko Epson Corporation | Hybrid corner and edge-based tracking |
US10109055B2 (en) * | 2016-11-21 | 2018-10-23 | Seiko Epson Corporation | Multiple hypotheses segmentation-guided 3D object detection and pose estimation |
US10055028B2 (en) | 2016-12-05 | 2018-08-21 | Google Llc | End of session detection in an augmented and/or virtual reality environment |
US10417781B1 (en) * | 2016-12-30 | 2019-09-17 | X Development Llc | Automated data capture |
EP3616040B1 (en) | 2017-04-27 | 2022-09-28 | Magic Leap, Inc. | Augmented reality system comprising light-emitting user input device |
US10365656B2 (en) * | 2017-11-22 | 2019-07-30 | Locus Robotics Corp. | Robot charger docking localization |
US10410089B2 (en) * | 2018-01-19 | 2019-09-10 | Seiko Epson Corporation | Training assistance using synthetic images |
US10565728B2 (en) * | 2018-06-01 | 2020-02-18 | Tusimple, Inc. | Smoothness constraint for camera pose estimation |
-
2017
- 2017-12-26 US US15/854,277 patent/US10970425B2/en active Active
-
2018
- 2018-12-24 CN CN201811579353.6A patent/CN110047104B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662587A (zh) * | 2008-08-29 | 2010-03-03 | 佳能株式会社 | 摄像装置及其跟踪方法 |
WO2010142895A1 (fr) * | 2009-06-08 | 2010-12-16 | Total Immersion | Procédé et dispositif de suivi d'objets en temps réel dans une séquence d'images en présence de flou optique |
CN103119627A (zh) * | 2010-09-20 | 2013-05-22 | 高通股份有限公司 | 用于云辅助式扩增现实的可适应性框架 |
US8761439B1 (en) * | 2011-08-24 | 2014-06-24 | Sri International | Method and apparatus for generating three-dimensional pose using monocular visual sensor and inertial measurement unit |
CN104076513A (zh) * | 2013-03-26 | 2014-10-01 | 精工爱普生株式会社 | 头戴式显示装置、头戴式显示装置的控制方法、以及显示系统 |
CN104280022A (zh) * | 2013-07-13 | 2015-01-14 | 哈尔滨点石仿真科技有限公司 | 视觉辅助惯性测量单元的数字头盔显示设备跟踪系统 |
CN104732514A (zh) * | 2013-12-20 | 2015-06-24 | 康耐视公司 | 用于处理高度图的设备、系统和方法 |
CN104915947A (zh) * | 2014-03-13 | 2015-09-16 | 欧姆龙株式会社 | 图像处理装置、系统、图像处理方法及图像处理程序 |
CN103996220A (zh) * | 2014-05-26 | 2014-08-20 | 江苏大学 | 一种智能交通中的三维重建方法及系统 |
CN105825518A (zh) * | 2016-03-31 | 2016-08-03 | 西安电子科技大学 | 基于移动平台拍摄的序列图像快速三维重建方法 |
CN107341831A (zh) * | 2017-07-06 | 2017-11-10 | 青岛海通胜行智能科技有限公司 | 一种imu辅助的视觉特征鲁棒跟踪方法及装置 |
Non-Patent Citations (5)
Title |
---|
Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration;Yang Yang,inertial,visual;IEEE Transactions on Automation Science and Engineering;第14卷(第1期);全文 * |
Yinlong Zhang ; Jindong Tan ; Wei Liang ; Yang Li.Inertial Guided Visual Sample Consensus based wearable orientation estimation for body motion tracking.2015 IEEE International Conference on Robotics and Biomimetics (ROBIO).2016,全文. * |
一种面向移动终端的混合跟踪定位算法;曹若琛;陈靖;王涌天;;太原理工大学学报(第04期);全文 * |
基于前后双摄像头的鲁棒视觉里程计算法;施啸天; 张宇; 方舟,计算机工程与科学;计算机工程与科学;第39卷(第10期);全文 * |
视觉惯导融合实时6DOF机器人定位方法研究;郑新芳;中国优秀硕士学位论文全文数据库信息科技辑(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US10970425B2 (en) | 2021-04-06 |
CN110047104A (zh) | 2019-07-23 |
US20190197196A1 (en) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110047104B (zh) | 对象检测和跟踪方法、头戴式显示装置和存储介质 | |
CN109146965B (zh) | 信息处理装置、计算机可读介质和头戴式显示装置 | |
CN110310329B (zh) | 操作显示设备的方法、信息处理系统及非暂时性存储介质 | |
US10674142B2 (en) | Optimized object scanning using sensor fusion | |
US10818092B2 (en) | Robust optical disambiguation and tracking of two or more hand-held controllers with passive optical and inertial tracking | |
US10521026B2 (en) | Passive optical and inertial tracking in slim form-factor | |
EP3469458B1 (en) | Six dof mixed reality input by fusing inertial handheld controller with hand tracking | |
US20190033988A1 (en) | Controller tracking for multiple degrees of freedom | |
EP3226208A1 (en) | Information processing device and computer program | |
JP2018511098A (ja) | 複合現実システム | |
EP3047454A1 (en) | 3d reconstruction | |
CN110895433B (zh) | 用于增强现实中用户交互的方法和装置 | |
WO2023064017A1 (en) | Smooth and jump-free rapid target acquisition | |
WO2023157499A1 (ja) | 情報処理装置およびデバイス位置推定方法 | |
WO2023157338A1 (ja) | 情報処理装置およびデバイス位置推定方法 | |
US20240242327A1 (en) | Frame Selection for Image Matching in Rapid Target Acquisition | |
WO2021065607A1 (ja) | 情報処理装置および方法、並びにプログラム | |
WO2023069164A1 (en) | Determining relative position and orientation of cameras using hardware | |
JP2024106855A (ja) | 情報処理装置およびデバイス位置取得方法 |
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 |