CN110895433A - 用于增强现实中用户交互的方法和装置 - Google Patents

用于增强现实中用户交互的方法和装置 Download PDF

Info

Publication number
CN110895433A
CN110895433A CN201910850664.XA CN201910850664A CN110895433A CN 110895433 A CN110895433 A CN 110895433A CN 201910850664 A CN201910850664 A CN 201910850664A CN 110895433 A CN110895433 A CN 110895433A
Authority
CN
China
Prior art keywords
user
pose
output
display
camera
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
CN201910850664.XA
Other languages
English (en)
Other versions
CN110895433B (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 CN110895433A publication Critical patent/CN110895433A/zh
Application granted granted Critical
Publication of CN110895433B publication Critical patent/CN110895433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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/013Eye tracking input arrangements
    • 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
    • G02B27/0172Head mounted characterised by optical features
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04815Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • 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
    • 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/017Head mounted
    • G02B2027/0178Eyeglass type
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/048023D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user
    • 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/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

用于增强现实中用户交互的方法和装置。该方法包括以下步骤:由摄像头获取真实场景中具有已知几何结构的对象的图像帧;并且估计该对象在图像帧中相对于摄像头的姿态。通过在3D坐标系中的3D位置处渲染光标,在显示器上显示光标。在对象的预定部分落在该3D位置处时,向用户呈现输出。输出的内容基于对象的预定部分。

Description

用于增强现实中用户交互的方法和装置
技术领域
本公开总体涉及增强现实领域,更具体地涉及用于增强现实中用户交互的方法和系统。
背景技术
增强现实(AR)已经随着计算机技术的进步而变得越来越常见。AR的一般定义是捕捉真实世界场景并使用软件添加人工(虚拟)元素。这可以增强用户对真实世界的感知或向用户提供娱乐。
用于实施AR的一种平台是智能电话或平板电脑。摄像头、显示装置以及处理器在同一装置上的存在允许软件将人工元素容易地添加到由摄像头捕捉的生动场景。而且,软件利用运动传感器和定位器(例如,加速度计和GPS)在这些装置上的存在来更佳地实施AR。
另一种平台是头戴式显示器(HMD),HMD可以实施提供较丰富AR体验的AR。这些系统通常为棱镜被放置在眼睛前面的眼镜。用户直接借助眼镜来观看场景。棱镜允许将人工图像叠加在如由用户感知的场景上。同时,HMD使用摄像头从场景采集数据。
在至少一些已知AR系统中,用户不能与AR环境交互,并且用户限于在没有能够确定正在示出什么或获得另外信息的能力的情况下观看AR环境。
发明内容
为了增强用户的AR体验,本公开的实施方式允许用户选择对象或对象的一部分,并且接收来自AR装置的输出,该输出基于所选对象或该对象的一部分。输出是人可辨识的输出,诸如AR场景中或单独显示器上的视觉显示、音频输出、触觉输出(诸如振动)或任意其他合适输出。
本公开的一些方面的优点是解决上述问题中的至少一部分,并且本公开的方面可以实施为以下方面。
本公开的一个方面是一种一个或更多个处理器在具有摄像头和显示器的装置中实施的方法。方法包括以下步骤:由摄像头获取真实场景中具有已知几何结构的对象的图像帧;以及估计对象在图像帧中相对于摄像头的姿态。通过在3D坐标系中的3D位置处渲染光标,在显示器上显示光标,并且在对象的预定部分落在3D位置处时,向用户呈现输出。输出的内容基于对象的该预定部分。
本公开的另一个方面是一种一个或更多个处理器在具有摄像头和显示器的装置中实施的方法。方法包括以下步骤:由摄像头获取真实场景中的对象的图像帧;以及估计对象在图像帧中相对于摄像头的姿态。在对象的姿态落在预定姿态内时,向用户呈现输出。输出的内容基于该预定姿态。
附图说明
将参照附图描述本公开,附图中,同样的附图标记引用同样的要素。
图1是例示了示例HMD的示意构造的图。
图2是例示了图1所示的HMD的功能构造的框图。
图3是例示了图1和图2所示的HMD在三维(3D)真实世界场景中的使用的图。
图4是例示了目标对象姿态估计过程的流程图。
图5是例示了单个2D模型点与在特定边缘中包括的多个图像点组合的图。
图6是例示了2D模型点与错误图像点组合的示例的图。
图7至图9是例示了相似性得分的计算的示例的图。
图10是使用光标的方法的示例实施方式的流程图。
图11例示了相对于HMD的三维X、Y以及Z。
图12是基于用户眼睛的位置确定光标的3D位置的示例HMD。
图13是不使用光标的示例方法的流程图。
图14、图15以及图16是处于三个不同姿态的目标对象的图像。
具体实施方式
这里描述的增强现实(AR)方法可以实施在包括摄像头和显示器的任意合适装置或系统上。这种合适装置可以包括例如移动电话、平板计算机、台式计算机(具有摄像头)、智能手表、数字摄像头、AR视图器(例如,透明HMD)等。本公开的实施方式将参照HMD来描述,但如上面注释的,方法可以在适当修改地情况下实施在包括摄像头和显示器的任意合适装置或系统上。
图1示出了HMD 100的示意构造。HMD 100是头戴式显示装置(头戴式显示器)。HMD100为透光式。即,HMD 100可以使得用户感受虚拟图像,并且同时使得用户直接视觉识别外部场景。
HMD 100包括可戴在用户头部上的穿戴带90、显示图像的显示部20以及控制显示部20的控制部10。显示部20在显示部20戴在用户头部上的状态下使得用户感受虚拟图像。使得用户感受虚拟图像的显示部20还被称为“显示AR”。用户所感受的虚拟图像还被称为AR图像。
穿戴带90包括由树脂制成的穿戴基部91、由耦接到穿戴基部91的布制成的带92、摄像头60、以及IMU(惯性测量单元)71。穿戴基部91具有沿着人的额区的形式弯曲的形状。带92被戴在用户的头部周围。
摄像头60起成像器的作用。摄像头60能够对外部场景成像,并且布置在穿戴基部91的中心部分中。换言之,摄像头60在穿戴带90戴在用户头部上的状态下布置在与用户前额的中心对应的位置中。因此,摄像头60对是沿用户的视线方向在外部的真实场景的外部场景成像,并且在用户将穿戴带90戴在头部上的状态下获取所捕捉图像,该图像是由摄像头60捕捉的图像。
摄像头60包括:摄像头底座61,该摄像头底座相对于穿戴基部91旋转;和镜头62,该镜头的相对位置相对于摄像头底座61固定。摄像头底座61被布置为能够在穿戴带90戴在用户头部上时沿着箭头CS1旋转,该箭头指示在包括用户的中心轴的平面中包括的轴线的预定范围。因此,是摄像头60的光轴的、镜头62的光轴的方向可以在箭头CS1的范围内改变。镜头62对根据定心在光轴上的变焦变化的范围成像。
IMU 71是检测加速度的惯性传感器。IMU 71除了可以检测加速度之外,还可以检测角速度和地磁。IMU 71被并入穿戴基部91中。因此,IMU 71检测穿戴带90和摄像头基部61的加速度、角速度、以及地磁。
IMU 71与穿戴基部91的相对位置固定。因此,摄像头60相对于IMU 71可移动。进一步地,显示部20与穿戴基部91的相对位置固定。因此,摄像头60与显示部20的相对位置可移动。在一些其他实施方式中,摄像头60和IMU 71可以设置在显示部20中,使得它们相对于显示部20固定。已经由校准获得的、摄像头60、IMU71以及显示部20之间的、由旋转和平移矩阵表示的空间关系存储在控制部10中的存储区域或装置中。
显示部20耦接到穿戴带90的穿戴基部91。显示部20为眼镜式的。显示部20包括右保持件21、右显示驱动器22、左保持件23、左显示驱动器24、右光学图像显示器26以及左光学图像显示器28。
右光学图像显示器26和左光学图像显示器28在用户戴显示部20时位于用户的右眼和左眼的前面。右光学图像显示器26的一端和左光学图像显示器28的一端在当用户戴显示部20时与用户前额的中间对应的位置中连接到彼此。
右保持件21具有从端部ER沿大致水平方向延伸并且在中途倾斜向上倾斜的形状,该端部是右光学图像显示器26的另一端。右保持件21连接端部ER和在穿戴基部91的右侧上的耦接部93。
类似地,左保持件23具有从端部EL沿大致水平方向延伸并且在中途倾斜向上倾斜的形状,该端部是左光学图像显示器28的另一端。左保持件23连接端部EL和在穿戴基部91的左侧上的耦接部(图中未示出)。
右保持件21和左保持件23由左和右耦接部93耦接到穿戴基部91,以将右光学图像显示器26和左光学图像显示器28定位在用户眼睛的前面。注意,耦接部93将右保持件21和左保持件23耦接为能够在任意旋转位置中旋转并且能够固定。因此,显示部20被设置为能够相对于穿戴基部92旋转。
右保持件21是被设置为在用户戴显示部20时从是右光学图像显示器26的另一端的端部ER延伸到与用户的颞区对应的位置的构件。
类似地,左保持件23是被设置为在用户戴显示部20时从是左光学图像显示器28的另一端的端部EL延伸到与用户的颞区对应的位置的构件。右显示驱动器22和左显示驱动器24在用户戴显示部20时布置在与用户头部相对的侧上。
显示驱动器22和24包括液晶显示器241和242(下文中,还被称为“LCD 241和242”)以及以下说明的投影光学系统251和252。以下详细说明显示驱动器22和24的构造。
光学图像显示器26和28包括以下说明的导光板261和262以及调光板。导光板261和262由透光树脂材料等形成,并且将从显示驱动器22和24输出的图像光引导到用户的眼睛。
调光板是薄板状光学元件,并且被布置为覆盖在用户眼睛侧的相对侧上的、显示部20的前侧。通过调节调光板的透光率,可以调节进入用户眼睛的外部光量,并且调节虚拟图像的可见度。
显示部20还包括连接部40,该连接部用于将显示部20连接到控制部10。连接部40包括连接到控制部10的主体线缆48、右线缆42、左线缆44以及耦接构件46。
右线缆42和左线缆44是从主体线缆48分出的两根线缆。显示部20和控制部10经由连接部40执行各种信号的传输。作为右线缆42、左线缆44以及主体线缆48,例如,可以采用金属电缆或光纤。
控制部10是用于控制HMD 100的装置。控制部10包括操作部135,该操作部包括静电跟踪垫和可以被按压的多个按钮。操作部135布置在控制部10的表面上。
图2是在功能上示出了HMD 100的构造的框图。如图2所示,控制部10包括ROM 121、RAM 122、电源130、操作部135、CPU 140(这里有时还被称为处理器140)、接口180以及发送器51(Tx 51)和发送器52(Tx 52)。
电源130向HMD 100的部供电。各种计算机程序存储在ROM 121中。CPU 140在RAM122中展开在ROM 121中存储的计算机程序,以执行计算机程序。计算机程序包括用于实现以下说明的跟踪处理和AR显示处理的计算机程序。
CPU 140将在ROM 121中存储的计算机程序在RAM 122中展开或加载到RAM122中,以起操作系统150(OS 150)、显示控制部190、声音处理部170、图像处理部160以及处理部167的作用。
显示控制部190生成用于控制右显示驱动器22和左显示驱动器24的控制信号。显示控制部190由右显示驱动器22和左显示驱动器24分别控制图像光的生成和发射。
显示控制部190经由发送器51和52分别向右LCD控制部211和左LCD控制部212发送控制信号。显示控制部190分别向右背光源(BL)控制部201和左背光源控制部202发送控制信号。
图像处理部160获取在内容中包括的图像信号,并且经由发送器51和52向显示部20的接收器53和54发送所获取的图像信号。声音处理部170获取在内容中包括的声音信号,放大所获取的声音信号,并且将声音信号供应到连接到耦接构件46的右耳机32中的扬声器(图中未示出)和连接到该耦接构件的左耳机34中的扬声器(图中未示出)。
处理部167与时间关联地从摄像头60获取所捕捉的图像。时间在该实施方式中可以或可以不是基于标准时间。处理部167例如根据单应矩阵来计算对象(真实对象)的姿态。对象的姿态意指摄像头60与对象之间的空间关系(旋转关系)。处理部167使用所计算的空间关系和由IMU 71检测的加速度等的检测值来计算旋转矩阵,该旋转矩阵用于将固定到摄像头60的坐标系转换成固定到IMU 71的坐标系。处理部167的功能是用于以下说明的跟踪处理和AR显示处理。
接口180是用于将是内容供应源的各种外部装置OA连接到控制部10的输入/输出接口。外部装置OA的示例包括内部存储有AR场景的存储装置、个人计算机(PC)、蜂窝电话终端以及游戏终端。作为接口180,例如,可以使用USB接口、微USB接口以及用于存储卡的接口。
显示部20包括右显示驱动器22、左显示驱动器24、起右光学图像显示器26的作用的右导光板261、以及起左光学图像显示器28的作用的左导光板262。右和左导光板261和262是透过来自真实场景的光的光学透视元件。
右显示驱动器22包括接收器53(Rx 53)、右背光源控制部201和右背光源221、右LCD控制部211和右LCD 241、以及右投影光学系统251。右背光源控制部201和右背光源221起光源的作用。
右LCD控制部211和右LCD 241起显示元件的作用。上述的显示元件和光学透视元件允许用户视觉地感知AR图像,该图像被显示元件显示为叠加在真实场景上。注意,在其他实施方式中,代替以上说明的构造,右显示驱动器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对应。因此,省略左显示驱动器24的说明。
被公开为实施方式的技术应用于的装置可以为除了HMD之外的成像装置。例如,装置可以为没有显示图像的功能的成像装置。在其他实施方式中,被公开为实施方式的技术可以应用于包括摄像头和显示器的任意合适装置,诸如移动电话、平板计算机等。
图3是例示了HMD 100在三维(3D)真实世界场景300中的使用的图。场景300包括桌子302和桌子302上的对象304。戴着HMD 100的用户(未示出)定位为观看场景300。HMD 100的摄像头60也从近似与用户相同的视点观看场景300。在一些实施方式中,执行校准来得到变换矩阵,该变换矩阵填补摄像头的视点与用户的视点之间的任意差异,以尝试使摄像头60的3D坐标系与用户或HMD 100中的显示器的3D坐标系对齐。摄像头60从视点捕捉场景300的图像,并且向控制部10提供图像数据流。图像数据流包括多个在时间上分开的二维(2D)图像帧。图3包括由控制部10接收的示例图像帧306,该图像帧有时被称为图像。图像帧306包括如从摄像头的视点观看的对象304的表示308和桌子302的一部分的表示310。对象在图像帧中的表示,诸如对象304的表示308,在这里有时还被称为图像帧中的对象。
如这里将更详细说明的,控制部10尝试定位图像帧306中的对象304的表示308,并且确定其姿态。控制部10然后尝试跟踪对象304的表示308,并且借助随后的图像帧来更新对象的姿态。
在这里描述的示例实施方式中,目标姿态估计过程依赖使用之前准备的模板。下面包括这种模板的准备的示例描述。应理解,姿态估计过程可以使用用不同技术创建的模板,并且可以使用不用任何模板的其他姿态估计过程。
模板创建
模板由模板创建器(未示出)来创建,该模板创建器基于3D CAD的视图Vn将目标对象在虚拟平面上的2D模型渲染成3D模型。模板创建器检测借助渲染获得的图像的边缘,进一步提取轮廓,并且选择在轮廓中包括的多个2D模型点。由轮廓特征CF表示所选2D模型点的位置和2D模型点的该位置处的梯度(亮度的梯度向量)。模板创建器对由二维空间中的轮廓特征CFi表示的2D模型点pi执行逆变换,以获得与轮廓特征CFi对应的三维空间中的3D模型点Pi。在这里,3D模型点Pi在对象坐标系中表示。视图Vn中的模板包括由以下方程(1)表达的元素。
(CF1n,CF2n,...,3DP1n,3DP2n,...,Vn) (1)
在方程(1)中,轮廓特征和具有相同后缀的3D模型点(例如,CF1n和3DP1n)彼此相关。在视图Vn中未检测到的3D模型点可以在与视图Vn不同的视图Vm等中检测。
如果提供了2D模型点p,则模板创建器把2D模型点p的坐标当作表示像素角落的整数。因此,2D模型点p的深度值与(p+0.5)的坐标对应。因此,模板创建器将(p+0.5)的坐标用于逆向地投影2D点p。在恢复的3D模型点被投影时,模板创建器截短浮动点坐标,以获得整数坐标。
所创建的模板存储在执行目标对象姿态估计的装置的存储器中,诸如HMD 100的ROM 121中。
图4是例示了目标对象姿态估计过程的流程图。将参照HMD 100来描述该过程,但该过程可以用任意合适的装置来执行。而且,这里描述的方法和系统不限于使用这里描述的目标对象姿态估计过程,而是可以使用用于识别目标对象、估计其姿态并跟踪目标对象的姿态的任意合适技术。
在图4的姿态估计过程中,首先,处理部167用摄像头60对包括目标对象的外部场景成像(步骤S21)。处理部167对目标对象的所捕捉图像执行以下描述的边缘检测(步骤S23)。
边缘检测(步骤S23)
处理部167检测目标对象的图像的边缘,以使所成像的目标对象与和目标对象对应的模板相关。处理部167基于所捕捉图像的像素计算充当边缘的特征。在本实施方式中,处理部167计算目标对象的所捕捉图像的像素的亮度梯度,以确定特征。在从所捕捉图像检测边缘时,外部场景中除了目标对象之外的对象、不同阴影、不同光照以及在外部场景中包括的对象的不同材料可以影响所检测的边缘。由此,从所捕捉图像检测边缘可能比从3DCAD模型检测边缘相对困难。在本实施方式中,为了较容易地检测边缘,处理部167以与在简单边缘检测方法中执行的过程相同的方式仅将边缘与阈值比较,并且抑制非极大值。
模板的选择(步骤S25)
如果从目标对象的图像检测到边缘,则处理部167从在HMD 100的模板储存器中存储的模板中选择具有最靠近其所捕捉图像中的目标对象的姿态的视图的模板(步骤S25)。模板储存器可以是ROM 121、或任意其他合适的存储装置。
对于该选择,可以单独使用用于估计目标对象的粗略姿态的现有三维姿态估计算法。处理部167在高度准确地得到3D姿态时可以找到比所选训练视图靠近图像中的目标对象的姿态的新训练视图。在找到新训练视图的情况下,处理部167高度准确地得到新训练视图中的3D姿态。在本实施方式中,如果视图彼此不同,则作为包括3D模型的2D轮廓的可视觉识别边缘的集合的轮廓特征也彼此不同,由此可以找到新训练视图。处理部167将超级模板用于可视觉识别的边缘的集合彼此不同的问题,由此提取尽可能多的可视觉识别的边缘。在另一实施方式中,代替使用预先创建的模板,处理部167可以对目标对象成像,并且可以通过在反射成像环境(诸如飞行中的渲染中的光照)的同时并且按需使用3D CAD数据来创建模板,以提取尽可能多的可视觉识别的边缘。
2D点对应关系(步骤S27)
如果步骤S25中的过程完成,则处理部167使目标对象的图像的边缘与模板中包括的2D模型点相关(步骤S27)。
图5是例示了单个2D模型点与在特定边缘中包括的多个图像点组合的图。图6是例示了2D模型点与错误图像点组合的示例的图。图5和图6例示了目标对象OBm的所捕捉图像IMG、2D模型点集合PMn的部分放大图、以及在与3D模型对应的目标对象OBm由摄像头60成像的情况下的多个箭头CS。如图5例示,从目标对象OBm的图像IMG检测到的边缘的一部分包括如在箭头CS1至CS5中的多个选项,该边缘与模板中包括的2D模型点中的一个的2D模型点PM1相关。图6例示了模板中包括并排列的2D模型点PM1至PM5与从目标对象OBm的图像IMG检测到的边缘(内部包括的图像点)错误组合的示例。在这种情况下,例如,在图6中,尽管2D模型点PM2、PM3、PM1、PM4以及PM5从顶部排列,但箭头CS7、CS6、CS8、CS10以及CS9按该顺序排列在目标对象OBm的图像IMG的边缘中。由此,改变箭头CS8和箭头CS6以及箭头CS9和箭头CS10。如上所述,处理部167需要使模板中包括的2D模型点与在目标对象OBm的图像IMG的边缘中包括的图像点准确相关,以准确估计或得到被成像目标对象OBm的姿态。
在本实施方式中,处理部167关于在各所投影2D模型点的当地附近包括的所有图像点通过使用以下方程(2)计算相似性得分。
Figure BDA0002196792470000101
在方程(2)中指示的相似性得分的测量基于模板中包括的2D模型点的亮度的梯度向量(下文中,简称为梯度)与图像点的梯度向量之间的匹配,但作为示例基于方程(2)中的两个向量的内积。方程(2)中的向量Ep是2D模型点(边缘点)p的单位长度梯度向量。处理部167使用测试图像(输入图像)的梯度▽I,以在获得相似性得分时计算图像点p’的特征。由表达式(11)中的分母中的梯度幅值的局部最大值归一化确保以局部高强度可靠地给予边缘优先级。该归一化防止弱并由此变成噪声的边缘被核对。处理部167在获得相似性得分时强化搜索对应关系的最近相邻区域的尺寸N(p)。例如,在连续迭代计算中减小所投影2D模型点的位置位移的平均值的情况下,可以减小N(p)。下文中,将描述用于使用方程(2)建立对应关系的特定方法。
图7至图9是例示了相似性得分的计算的示例的图。图7例示了由摄像头60捕捉的目标对象的图像IMGOB(实线)、基于与目标对象的图像IMGOB类似的模板的2D模型MD(点链线)以及作为2D模型MD中的多个轮廓特征CFm的2D模型点。图7例示了以晶格形式排列的多个像素px、以及由以各个轮廓特征CFm为中心的3个像素×3个像素形成的区域(例如,区域SA1)。图7例示了以稍后将描述的轮廓特征CF1为中心的区域SA1、以轮廓特征CF2为中心的区域SA2以及以轮廓特征CF3为中心的区域SA3。轮廓特征CF1和轮廓特征CF2与彼此相邻,并且轮廓特征CF1和轮廓特征CF3也彼此相邻。换言之,轮廓特征在图7中按轮廓特征CF2、轮廓特征CF1以及轮廓特征CF3的顺序排列。
如图7例示,因为目标对象的图像IMGOB与2D模型MD不匹配,所以处理部167通过使用方程(2)使在目标对象的图像IMGOB的边缘中包括的图像点与由2D模型MD的多个轮廓特征CFm表示的2D模型点分别相关。首先,处理部167选择轮廓特征CF1作为多个轮廓特征CFm中的一个,并且提取以包括轮廓特征CF1的像素px为中心的3个像素×3个像素的区域SA1。接着,处理部167提取分别以与轮廓特征CF1相邻的两个轮廓特征(诸如轮廓特征CF2和轮廓特征CF3)为中心的3个像素×3个像素的区域SA2和区域SA3。处理部167通过将方程(2)用于形成区域SA1、SA2以及SA3中的每一个的各像素px来计算得分。在该阶段,区域SA1、SA2以及SA3是具有相同形状和相同尺寸的矩阵。
图8例示了各区域SA1、SA2以及SA3的放大图、以及对于形成区域SA1、SA2以及SA3的各像素计算的相似性得分。处理部167计算作为轮廓特征的2D模型点与九个图像点之间的相似性得分。例如,在图8的下部例示的区域SA3中,处理部167计算针对像素px33和px36的0.8、针对像素px39的0.5、以及针对剩余六个像素的0,作为得分。像素px33和px36的得分0.8与像素px39的得分0.5不同的原因是像素px39中的目标对象的图像IMGOB弯曲,由此梯度不同。如上所述,处理部167以相同方式计算形成所提取区域SA1、SA2以及SA3的各像素(图像点)的相似性得分。
下文中,描述将聚焦于轮廓特征CF1来进行。处理部167计算形成区域SA1的各像素的校正得分。具体地,通过使用位于与形成区域SA1的各像素相同的、区域SA2和SA3的矩阵位置处的像素凭借加权因子对相似性得分取平均。处理部167不仅对轮廓特征CF1执行相似性得分的该校正,还对其他轮廓特征CF2和CF3执行该校正。以上述方式,可以实现使2D模型点与图像点之间的对应关系平滑的效果。在图8所例示的示例中,处理部167通过将区域SA1的各像素px的得分的加权因子设置为0.5、将区域SA2的各像素px的得分的加权因子设置为0.2并且将区域SA3的各像素px的得分的加权因子设置为0.3来计算校正得分。例如,作为图9所例示的像素px19的校正得分的0.55是通过将三个值(诸如通过将区域SA1的像素px19的得分0.8乘以加权因子0.5获得的值、通过将区域SA2的像素px29的得分0乘以加权因子0.2获得的值以及通过将区域SA3的像素px39的得分0.5乘以加权因子0.3获得的值)加在一起获得的值。加权因子与处理目标轮廓特征F1与其他轮廓特征CF2和CF3之间的距离成反比。处理部167确定具有形成区域SA1的像素的校正得分中的最大得分的图像点,作为与轮廓特征CF1相关的图像点。在图9所例示的示例中,校正得分的最大值是像素px13和px16的0.64。在多个像素具有相同校正得分的情况下,处理部167选择与轮廓特征CF1的距离最短的像素px16,并且处理部167使轮廓特征CF1与像素px16的图像点相关。处理部167将在由摄像头60捕捉的目标对象的多个图像中检测的边缘与在靠近目标对象的图像的视图中的模板中的2D模型点比较,以确定与2D模型点(轮廓特征CF)对应的目标对象的图像点。
如果处理部167完成图4中的步骤S27中的过程,则处理部167从在模板储存器121中存储的目标对象的模板获取与和图像点相关的2D模型点对应的3D模型点以及关于用于创建2D模型点的视图的信息(步骤S29)。处理部167基于所提取的3D模型点和关于视图的信息以及图像点导出由摄像头60成像的目标对象的姿态(步骤S33)。与导出有关的细节如下。
姿态的优化(步骤S33)
在本实施方式中,处理部167通过使用在与所选训练视图对应的模板中包括的轮廓特征、以及与在轮廓特征中包括的2D模型点对应的3D模型点高度准确地得到或细化目标对象的3D姿态。在导出时,处理部167通过执行用于使方程(5)最小化的优化计算来得到目标对象的姿态。
如果处理部167完成建立2D模型点与预定视图中的图像点之间的对应关系,则处理部167从与视图对应的模板读取与2D模型点(或轮廓特征CFi)对应的3D模型点Pi。在本实施方式中,如上所述,与2D模型点对应的3D模型点Pi存储在模板中。然而,3D模型点Pi不是必须存储在模板中,并且处理部167可以每次基于视图逆向地转换与图像点的对应关系完成的2D模型点,以获得3D模型点Pi
处理部167基于方程(3)将所获得的3D模型点Pi的位置重新投影到2D虚拟平面上。
π(Pi)=(ui,vi)T (3)
这里,方程(3)中的π包括刚体变换矩阵和视图中包括的透视投影变换矩阵。在本实施方式中,指示围绕在刚体变换矩阵中包括的三个轴线的三个旋转的三个参数以及指示沿着三个轴线的三个平移的三个参数被当作用于使方程(5)最小化的变量。旋转可以由四元数来表示。与3D模型点Pi对应的图像点pi如在方程(4)中表达。
pi=(pix,piy)T (4)
处理部167通过使用由以下方程(5)表达的成本函数来得到3D姿态,以使3D模型点Pi与图像点pi之间的误差最小化。
Figure BDA0002196792470000121
这里,方程(5)中的wi是用于控制各模型点对成本函数的贡献的加权因子。被投影到图像边界外部的点或具有低可靠性的对应关系的点被给予小值的加权因子。在本实施方式中,为了提出3D姿态的具体调节,处理部167在达到以下三项中的一项时使用高斯-牛顿法来作为3D姿态参数的函数确定由方程(5)表达的成本函数的最小化:
1.初始3D姿态比预设姿态发散得多。在这种情况下,确定成本函数的最小化失败。
2.使用高斯-牛顿方法逼近的次数超过预先设置的已定义次数。
3.高斯-牛顿方法中的相对姿态变化等于或小于预设阈值。在这种情况下,确定成本函数已最小化。
在得到3D姿态时,处理部167可以衰减目标对象的姿态的细化。处理目标对象的姿态的估计所需的衰减直接依赖于为了实现高准确度(细化)的姿态而执行的迭代计算的数量。从提高系统速度的角度,采用在不危害姿态的准确性的情况下借助尽可能少的迭代计算得到姿态的方法可以是有利的。根据本实施方式,各迭代计算独立于其之前的迭代计算执行,由此不强加约束,该约束确保2D模型点的对应关系保持一致,或者相同2D模型点在连续的迭代计算之间与相同的图像结构或图像点相关。因此,特别地,在存在噪声边缘结构的情况下,点的对应关系不稳定,噪声边缘结构是由于在由摄像头60捕捉的图像中混合有与目标对象不同的其他对象的混乱状态或存在阴影的状态引起的。因此,为了收敛会需要更多迭代计算。根据本实施方式的方法,该问题可以通过将方程(2)中的相似性得分乘以以下方程(6)所示的衰减加权因子来处理。
Figure BDA0002196792470000131
方程(6)表达高斯函数,并且σ具有控制衰减强度(效应)的函数。在σ的值大的情况下,衰减不大幅发生,但在σ的值小的情况下,发生强衰减,由此可以防止点变得远离目前位置。为了确保点的对应关系在不同迭代计算中的一致,在本实施方式中,σ是借助最近的多个迭代计算获得的重新投影误差的函数。在重新投影误差(可以由方程(5)来表达)显著的情况下,在本实施方式的方法中,不发生收敛。在根据本实施方式的算法中,σ被设置为大值,由此确保与遥远点的对应关系,使得几乎不或大幅执行衰减。在重新投影误差轻微的情况下,存在使用根据本实施方式的算法的计算状态可以引起准确解决方案的高可能性。因此,处理部167将σ设置为小值,以增大衰减,从而使点的对应关系稳定。
为了增强用户的AR体验,本公开的实施方式允许用户选择对象或对象的一部分,并且接收来自AR装置的输出,该输出基于所选对象或该对象的一部分。示例实施方式通常可以分成两类,使用光标的实施方式和不使用光标的实施方式。
图10是由一个或更多个处理器在具有摄像头和显示器的装置中实施的使用光标的方法1000的示例实施方式的流程图。方法1000将参照HMD 100及其部件来描述。然而,方法1000可以与用于AR的任意合适装置(例如,移动电话、连接到摄像头的计算机、平板计算机等)一起使用。
方法1000包括以下步骤:由摄像头60获取真实场景中具有已知几何结构的对象的图像帧(S1002)。HMD 100的处理器140然后估计对象在图像帧中相对于摄像头60的姿态(S1004)。姿态可以例如基于与一个或更多个已知姿态的对象对应的模板数据使用上述过程来估计。在一些实施方式中,通过从之前图像帧中的姿态得到姿态来估计姿态。在其他实施方式中,可以使用任意其他合适的姿态估计过程。
在S1006处,处理器140通过在3D坐标系中的3D位置处渲染光标,在显示部20上显示光标。
在操作HMD 100以执行方法1000之前,通常执行校准过程。在校准过程中,HMD1000尝试使用户或显示器的3D坐标系与摄像头60的3D坐标系对齐。该校准允许HMD 100在显示部20上显示图像(并且更具体地为在右光学图像显示器26和左光学图像显示器28上显示图像),使得用户在与摄像头的3D坐标系中的3D位置对应的、真实世界中的3D位置处感知所显示图像。由此,例如,如果目标对象是灯条在顶部上的救护车的模型,则HMD 100可以识别所捕捉图像中的灯条,并且在与所捕捉图像(摄像头的3D坐标系)中的灯条的3D位置对应的、用户的3D坐标系中的3D位置处渲染闪光灯的图像。对于用户,所渲染的闪光灯将看起来位于救护车的灯条处。因此,在校准之后,摄像头60的3D坐标系和用户的3d坐标系被当作它们相同,因为校准以例如变换矩阵的形式提供两个或更多个3D坐标系之间的空间关系的知识。这里为了避免不必要的复杂,两个坐标系在这里被称为3D坐标系,除非两者之间的区别与理解相关。
在一些实施方式中,3D位置是3D坐标系中的固定位置。3D位置在3D坐标系的至少两个维度上固定。如图11所示,三个维度X、Y以及Z对应于相对于HMD 100(和用户,在用户戴着HMD 100时)的左/右、上/下、以及距离(向前/向后)。由此,X和Y维度限定与右光学图像显示器26和左光学图像显示器28平行的平面,而Z维度确定点离HMD 100(和用户)多远(在前面或后面)。如图11所示,在HMD 100上显示光标1100的左图像1104和光标1100的右图像102。用户将把两个图像1102和1104作为单个3D光标1100和具有X坐标2、Y坐标1以及Z坐标1的3D位置来体验。3D坐标系相对于HMD和用户(如果用户戴着HMD)保持固定。由此,例如光标1100的3D坐标将保持相对于HMD固定,但可以随着用户在真实世界空间中移动她的头部而占据真实世界中的不同位置。图11中的坐标系的原点的比例位置(除了Z轴的原点通常将位于HMD 100的前面,并且X-X轴将平行于HMD的前面)以及光标1100的位置在图11中全部是随机的,并且仅为了说明性目的而选择。另外,虽然光标1100被例示为长方体,但光标1100可以具有任意合适的形状。通常,在一些实施方式中,对于光标1100可以优选3D形状,因为光标1100可以旨在出现在3D视图中,并且与3D对象交互。在一些实施方式中,光标1100是球形,而在其他实施方式中,光标1100具有不同3D形状。在又一些实施方式中,光标1100可以是单个点或2D形状。
在第一示例中,3D位置相对于用户在3D坐标系的所有三个维度上固定。在这种实施方式中,光标对于用户将看起来定位在离用户固定距离的固定点处。随着用户移动她的头部和/或移动她的身体使得真实世界的视图变化,光标将保持相对于用户固定。通过移动她的头部和/或身体来改变真实世界的视图,用户可以改变光标相对于真实世界的视位。由此,如果光标出现到目标对象的右边,则用户可以向左旋转她的头部,直到光标落在目标对象的至少一部分上(或与其相交)。如果光标看起来与目标对象对齐,但看起来在对象前面或后面某一距离,则用户可以靠近或远离(相应地),直到光标落在目标对象的至少一部分处。在使用这种固定光标的一些实施方式中,光标被显示为看起来定心在在用户前面固定距离的用户视觉中。
在另一个示例中,3D位置相对于用户在3D坐标系的X和Y维度(左/右和上/下)上固定。在这种实施方式中,光标对于用户将看起来定位在离用户可变距离(Z方向)的X和Y维度上的固定点处。对于任意特定距离,用户通过相对于场景移动她的头部和/或身体来左/右和/或上/下移动光标的视位。
光标离用户的距离可以根据若干可能实施方式改变。
在第一示例中,用户可以使用耦接到HMD 100或为其一部分的距离控制器(诸如距离滑块、鼠标、跟踪球、显示在触摸屏显示装置上的控制器等)来人工控制距离。
在其他实施方式中,Z轴上的位置受HMD 100控制。如果HMD 100随着用户的视野跟踪目标对象,则HMD 100知道目标对象离用户和/或HMD 100的距离。在一些实施方式中,如果HMD 100仅跟踪用户视场内的一个目标对象,则HMD 100可以将3D位置的Z坐标选择为是离用户与目标对象相同距离的坐标。如果多个可能目标对象在视场内,则HMD 100可以基于到(沿另两个方向)最靠近光标的目标对象的距离设置Z坐标。在又一些实施方式中,HMD100可以基于场景中的其他对象(包括未被跟踪的对象)控制Z坐标,使得由场景中的对象与在固定X和Y坐标处沿Z方向延伸的光线的视交点限定Z坐标。
在其他实施方式中,3D位置基于用户眼睛的位置在一个或更多个维度上可变。在这种实施方式中,HMD 100包括至少一个摄像头,该至少一个摄像头朝向用户,以捕捉用户眼睛的图像。
图12是基于用户眼睛的位置确定光标1100的3D位置的这种实施方式的示例实施方式。在图12的实施方式中,HMD 100还包括:右摄像头1200,该右摄像头捕捉用户右眼1202的图像;和左摄像头1204,该左摄像头捕捉用户左眼1206的图像。基于图像,计算从右眼1202沿用户右眼1202看的方向延伸的右光线1212和从左眼1206沿用户左眼1206看的方向延伸的左光线1214。计算右光线1212和左光线1214的交点并将其用作渲染光标1100的3D位置。具体地,在HMD 100上显示光标1100的左图像1104和光标1100的右图像1102,这引起光标1100在3D位置处显现给用户。随着用户移动她的眼睛,重新计算3D位置,以对应于新光线1212和1214的新交点。由此,用户可以通过看用户期望光标1100被定位的点,来控制3D位置的定位并控制光标1100的位置的定位。
一些实施方式基于用户眼睛的位置组合固定3D位置与可变3D位置。由此,例如,基于用户眼睛的位置,3D位置可以沿X和Y方向固定,但沿Z方向可变。
返回到图10,不管3D位置是固定还是可变,在S1008处,在目标对象的预定部分落在3D位置处时向用户呈现输出。由此,例如,在图12中,光标1100被定位为使得目标对象1218的部分1216落在由光标1100表示的3D位置处(例如,占据与该3D位置相同的3D空间中的至少一些)。因此,在S1008处,HMD向用户提供输出。在一些实施方式中,预定位置可以包括整个目标对象。
对用户的输出的内容基于对象的该预定部分。由此,例如,如果对象1218是投影仪并且该部分1216是投影仪的透镜,则输出可以向用户提供透镜的技术规格。另选地或另外地,输出可以向用户提供透镜的分解图、透镜的成本、可用的可替代透镜、与透镜有关的动画、与透镜有关的帮助/维修信息、或与透镜有关的任意其他合适的输出。如果部分1216相反是投影仪的主体,则可以向用户提供与整体投影仪有关的类似输出。
对用户的输出是人可辨识的输出。例如,输出可以是HMD或另一个显示器上的可见输出。具体地,可见输出可以是使用显示部20呈现给用户的3D图像、效果或动画的形式,使得输出形成用户所体验的AR的一部分。另外或另选地,输出可以是音频输出,诸如借助耳机32和34或任意其他合适的扬声器。由此,输出基于落在3D位置处的对象的预定部分向用户可听地描述部件、特征、修理步骤、技术特征等。进一步地,在一些实施方式中,输出是触觉输出。由此,例如,HMD 100可以输出振动、针对用户身体的力、或任意其他合适的触觉输出。用于输出对用户的输出的硬件在这里有时可以被称为用户接口硬件部件。这种用户接口硬件部件包括例如显示器、音频扬声器、振动马达等。
在一些实施方式中,HMD在目标对象的预定部分落在3D位置处的时间长于预定量的时间时向用户呈现输出。在这种实施方式中,因为用户环顾四周且目标对象的预定部分落在3D位置处仅简短时间(即,少于预定量的时间),所以不向用户提供输出。这帮助使在用户实际上未看预定位置而只是跨预定位置移动她的视觉(和光标)时恒定提供给用户的输出的注意力分散最小化。通过将她的视野和光标1100维持在预定部分1216上的时间长于预定量的时间,用户(知道或不知道地)选择预定部分1216,并且HMD 100向用户提供输出。在示例实施方式中,预定量的时间为大约一秒。在其他实施方式中,预定量的时间为大约半秒、两秒、三秒、四秒、五秒或任意其他合适量的时间。通常,时间量应被选择为长至足以避免预定部分的不想要的选择,但短至足以在用户对预定部分失去兴趣或询问HMD 100是否工作之前触发输出。
在一些实施方式中,3D位置包括围绕3D位置的精确位置的容差。在这种实施方式中,目标对象的预定部分在目标对象的预定部分落在离3D位置少于预定距离时落在3D位置处。该特征可以提高用户在用户在将3D位置精确对准在预定点方面上具有难度时选择预定部分的能力。在一些实施方式中,3D位置是单点,并且在单点周围的光标1100的尺寸表示预定距离。在其他实施方式中,在不考虑光标的尺寸的情况下确定预定距离,并且该预定距离可以延伸超过光标的外部边缘。另外地,在一些实施方式中,该容差与上面讨论的时间要求组合,使得在目标对象的预定部分落在离3D位置的距离小于预定距离的时间长于预定量的时间时提供输出。
由此,上面讨论的实施方式使用光标来允许用户选择目标对象的部分,并且基于所选部分接收输出。而且,在一些实施方式中,使用相同技术来允许用户从多个目标对象当中选择特定目标对象。
在第二组实施方式中,在不向用户显示光标的情况下实现类似结果。
第一无光标实施方式通常与上面讨论的实施方式相同地操作,但不显示光标。由此,计算3D位置(不管是固定还是可变),并且在目标对象的预定部分落在3D位置处时向用户呈现输出。在这种实施方式中,固定3D位置可以最佳地选择在用户最可能将其视野聚焦在的中心位置处。使用基于用户眼睛位置的3D位置的实施方式自动选择与用户正在看的位置对应的3D位置。由此,在不向用户显示光标的情况下,用户可以通过看对象的预定部分来选择它。
图13是由一个或更多个处理器在具有摄像头和显示器的装置中实施的不使用光标的另一示例方法1300的流程图。方法1300将参照HMD 100及其部件来描述。然而,方法1300可以与用于AR的任意合适装置(例如,移动电话、连接到摄像头的计算机、平板计算机等)一起使用。
方法1300包括以下步骤:由摄像头60获取真实场景中具有已知几何结构的对象的图像帧(S1302)。HMD 100的处理器140然后估计对象在图像帧中相对于摄像头60的姿态(S1304)。姿态可以例如基于与一个或更多个已知姿态的对象对应的模板数据使用上述过程来估计。在一些实施方式中,通过从之前图像帧中的姿态得到姿态来估计姿态。在其他实施方式中,可以使用任意其他合适的姿态估计过程。
在S1306处,在对象的姿态落在预定姿态内时,向用户呈现输出。预定姿态可以是例如对象的预定部分(如在光标实施方式中讨论的)可见的姿态。
图14至图16是处于三个不同姿态的目标对象1400的图像。图14示出了预定姿态的目标对象1400。在HMD 100将目标对象1400的姿态估计为与图14中的姿态相同时,向用户呈现输出。如果所估计的对象的姿态是都不匹配图14中的预定姿态的、图15或图16所示的姿态,则不向用户呈现输出。
如同包括光标的实施方式中的输出,在无光标实施方式中,对用户的输出是人可辨识的输出。例如,输出可以是HMD或另一个显示器上的可见输出。具体地,可见输出可以是使用显示部20呈现给用户的3D图像、效果或动画的形式,使得输出形成用户所体验的AR的一部分。另外或另选地,输出可以是音频输出,诸如借助耳机32和34或任意其他合适的扬声器。由此,输出基于预定姿态向用户可听地描述部件、特征、修理步骤、技术特征等。进一步地,在一些实施方式中,输出是触觉输出。由此,例如,HMD 100可以输出振动、针对用户身体的力、或任意其他合适的触觉输出。用于向用户输出输出的硬件在这里有时可以被称为用户接口硬件部件。这种用户接口硬件部件包括例如显示器、音频扬声器、振动马达等。
对用户的输出的内容基于对象的该预定姿态。由此,例如,如果预定姿态是图14中的姿态,则输出可以与在该姿态中可见的特征1402有关。另外或另选地,输出可以与特征1404或也在该姿态中可见的任意其他特征有关。
在一些实施方式中,预定姿态可以多于一个姿态。在这种实施方式中,在对象的姿态落在任一个预定姿态内时,可以向用户呈现输出。由此,例如,对于与特征1404有关的输出,图14中的姿态和图16中的姿态这两者均可以是预定姿态。如果目标对象1400的姿态被估计为是这两个姿态之一,则向用户提供输出。然而,如果姿态被估计为不落在预定姿态的任一姿态内的、图15中的姿态,则不向用户提供输出。
而且,预定姿态不需要与目标对象的特定特征或部分有关。例如,预定姿态(或姿态的组)可以是目标对象的前面可见的姿态,仅包括对象的后面或侧面的姿态不是预定姿态。由此,在用户观看对象的前面(并且更可能为实际看对象)时,而不是在用户看对象的后面时,提供输出。类似地,如果输出包括维修信息,则预定姿态可以是目标对象的底面可见的姿态。
在一些实施方式中,HMD在所估计的对象的姿态落在预定姿态内的时间长于预定量的时间时向用户呈现输出。在这种实施方式中,因为用户环顾四周且简短地(即,少于预定量的时间)使得所估计的姿态落在预定姿态内,所以不向用户提供输出。这帮助使在用户实际上未看预定位置时恒定提供给用户的输出的注意力分散最小化。通过将她的视野维持在处于预定姿态的目标对象的时间长于预定量的时间,用户(知道或不知道地)选择该姿态的目标对象,并且HMD 100向用户提供输出。在示例实施方式中,预定量的时间为大约一秒。在其他实施方式中,预定量的时间为大约半秒、两秒、三秒、四秒、五秒或任意其他合适量的时间。通常,时间量应被选择为长至足以避免不想要的选择,但短至足以在用户失去兴趣或询问HMD 100是否工作之前触发输出。
在一些实施方式中,3D位置包括围绕精确姿态的容差。由此,可以存在全部落在特定预定姿态内的、在预定姿态周围的预定姿态的范围。
由此,上面讨论的无光标实施方式允许用户通过移动她的视野使得目标对象的姿态在预定姿态中来选择目标对象。作为响应,用户接收基于预定姿态的输出。方法1300可以以比某些其他方法低的计算和存储成本来提供这种用户交互性/选择性,因为已经由HMD执行姿态跟踪,并且仅需要将当前所估计的姿态与预定姿态比较,以确定何时向用户提供输出(和提供什么输出)。
虽然单独描述了包括光标和无光标实施方式的实施方式,但可以在单个装置中组合两种实施方式的特征。例如,HMD 100可以使用无光标技术来向用户提供第一种输出(例如,通常与目标对象有关的输出),并且可以使用基于光标的技术来向用户提供与目标对象的特定部分有关的输出。
一些实施方式提供一种包含程序指令的非暂时存储介质(例如,ROM 121、RAM122),这些程序指令在由计算机处理器(例如,CPU 140或处理部167)执行时,执行这里描述的方法。
如本领域技术人员将理解的,本发明的方面可以被具体实施为系统、方法或计算机程序产品。因此,本发明的方面可以采取完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或组合在这里全部通常可以被称为“电路”、“模块”或“系统”的软件和硬件方面的实施方式。此外,本发明的方面可以采取计算机程序产品的形式,该计算机程序产品具体实施在上面具体实施有计算机可读程序代码的一个或更多个计算机可读介质中。
可以使用一个或更多个计算机可读介质的任意组合。计算机可读介质可以为计算机可读信号介质或非暂时计算机可读存储介质。计算机可读存储介质例如可以为但不限于电子、磁、光、电磁、红外或半导体系统、设备或装置,或前述内容的任意合适组合。非暂时计算机可读存储介质的更具体示例(非穷尽列表)将包括以下示例:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述内容的任意合适组合。在本文献的语境中,非暂时计算机可读存储介质可以为可以包含或存储用于由指令执行系统、设备或装置使用或关于该系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括内部具体实施有计算机可读程序代码的传播数据信号(例如,在基带中或作为载波的一部分)。这种传播信号可以采取各种形式(包括但不限于电磁、光或其任意合适组合)中的任意一个。计算机可读信号介质可以为不是非暂时计算机可读存储介质且可以传达、传播或输送用于由指令执行系统、设备或装置或关于该系统、设备或装置使用的程序的任意计算机可读介质。
在计算机可读介质上具体实施的程序代码可以使用任意适当介质(包括但不限于无线、有线、光纤电缆、RF等或前述内容的任意合适组合)来发送。用于进行本发明方面的操作的计算机程序代码可以以一个或更多个编程语言的任意组合来书写,包括面向对象的编程语言(诸如Java、Smalltalk、C++等)和常规程化编程语言(诸如“C”编程语言或类似编程语言)。程序代码可以全部在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机且部分在远程计算机上、或全部在远程计算机或服务器上执行。在后者的场景中,远程计算机可以借助任意类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者连接可以进行到外部计算机(例如,使用因特网服务供应商借助因特网)。
上面参照根据本发明的实施方式的方法、设备(系统)以及计算机程序产品的流程图和框图描述了本发明的方面。将理解,流程图和/或框图中的各块和/或流程图和/或框图中的块的组合可以由计算机程序指令来实施。为了产生机器,这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于实施在流程图和/或框图块中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以引导计算机、其他可编程数据处理设备或其他装置以特定方式起作用,使得存储在计算机可读介质中的指令产生包括指令的制品,这些指令实施流程图和/或框图块中指定的功能/动作。
计算机程序指令还可以加载到计算机、其他可编程数据处理设备或其他装置上,以使一系列操作步骤在计算机、其他可编程设备或其他装置上执行,以产生计算机实施的处理,使得在计算机和/或其他可编程设备上执行的指令提供用于实施流程图和/或框图块中指定的功能/动作的处理。
附图中的流程图和框图例示了根据本发明的各种实施方式的系统、方法以及计算机程序产品的可能实施方案的架构、功能以及操作。在这一点上,流程图或框图中的各块可以表示包括用于实施指定逻辑功能的一个或更多个可执行指令的模块、片段或代码的一部分。还应注意,在一些另选实施方案中,块中注释的功能可以在附图中注释的顺序之外发生。例如,连续示出的两个块实际上可以大致同时执行,或者块有时可以以相反的顺序来执行,这依赖于所涉及的功能。还将注意,框图和/或流程图的各块以及框图和/或流程图中的块的组合可以由基于专用硬件的系统来实施,这些系统执行专用硬件和计算机指令的指定功能或动作或组合。
这里所用的术语仅是为了描述特定实施方式的目的且不旨在限制本发明的实施方式。如此处所用的,单数形式“一”和“一个”旨在也包括复数形式,除非上下文另外清楚指示。还将理解,术语“具有”、“包括”在用于本说明书中时指定所叙述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多个其他特征、整数、步骤、操作、元件、部件和/或其组的存在或添加。
以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作以及等同物旨在包括用于结合如特别要求保护的其他要求保护的元件来执行功能的任意结构、材料或动作。对本发明的明确描述是为了例示和描述的目的而提出的,但并非旨在穷尽,或者限于所明确公开形式的本发明的实施方式。许多修改例和变型例将在不偏离本发明的实施方式的范围和精神的情况下对于本领域普通技术人员将明显。选择并描述实施方式以最好地说明本发明的实施方式的原理和实际应用,并且使本领域其他普通技术人员能够理解本发明的实施方式,以及适合于所设想的具体用途的各种修改。
虽然此处已经例示并且描述了具体实施方式,但本领域普通技术人员理解,被计算为实现同一目的的任意结构可以代替所示的具体实施方式,并且本发明的实施方式具有其他环境中的其他应用。本申请旨在覆盖本发明的任意改编或变更。以下权利要求并不旨在将本发明的实施方式的范围限于此处所描述的具体实施方式。

Claims (18)

1.一种由一个或更多个处理器在具有摄像头和显示器的装置中实施的方法,该方法包括以下步骤:
由所述摄像头获取真实场景中具有已知几何结构的对象的图像帧;
估计所述对象在所述图像帧中相对于所述摄像头的姿态;
通过在3D坐标系中的3D位置处渲染光标,在所述显示器上显示所述光标;
在所述对象的预定部分落在所述3D位置处时,向用户呈现输出,所述输出的内容基于所述对象的所述预定部分。
2.根据权利要求1所述的方法,其中,估计所述对象的姿态的步骤包括使用以下至少一项来估计所述对象在所述图像帧中相对于所述摄像头的姿态:(i)与处于一个或更多个已知姿态的所述对象对应的模板数据;以及(ii)从所述图像帧之前的另一图像帧得到的另一姿态。
3.根据权利要求1所述的方法,其中,向用户呈现输出的步骤包括借助耦接到所述装置的用户接口硬件部件向用户呈现输出。
4.根据权利要求3所述的方法,其中,向用户呈现输出的步骤包括借助用户接口硬件部件向用户呈现输出,该用户接口硬件部件包括所述显示器、音频扬声器和/或触觉装置。
5.根据权利要求1所述的方法,所述方法还包括以下步骤:跟踪用户眼睛的方位;以及基于所跟踪的所述用户眼睛的方位确定所述3D坐标系中的所述3D位置。
6.根据权利要求5所述的方法,其中,基于所跟踪的所述用户眼睛的方位确定所述3D坐标系中的所述3D位置的步骤包括:
确定从处于所跟踪的方位的所述用户眼睛延伸的假想线的交点;并且
将所确定的交点设置为在所述3D坐标系中渲染所述光标的所述3D位置。
7.根据权利要求1所述的方法,其中,在所述显示器上显示光标的步骤包括通过在3D位置处渲染光标来在所述显示器上显示所述光标,该3D位置在3D坐标系的至少两个维度上固定。
8.根据权利要求1所述的方法,其中,所述装置包括头戴式显示装置,该头戴式显示装置包括所述摄像头和所述显示器,并且所述显示器包括光学透视显示器。
9.根据权利要求1所述的方法,其中,在所述对象的预定部分落在所述3D位置处时向用户呈现输出的步骤包括在所述对象的预定部分落在所述3D位置处的时间长于预定量的时间时,向用户呈现输出。
10.根据权利要求1所述的方法,其中,在所述对象的预定部分落在所述3D位置处时向用户呈现输出的步骤包括在所述对象的预定部分落在离所述3D位置的距离小于预定距离的位置处时,向用户呈现输出。
11.一种由一个或更多个处理器在具有摄像头和显示器的装置中实施的方法,该方法包括以下步骤:
由所述摄像头获取真实场景中的对象的图像帧;
估计所述对象在所述图像帧中相对于所述摄像头的姿态;
在所述对象的所述姿态落在预定姿态内时,向用户呈现输出,所述输出的内容基于所述预定姿态。
12.根据权利要求11所述的方法,其中,估计所述对象的姿态的步骤包括使用以下至少一项来估计所述对象在所述图像帧中相对于所述摄像头的姿态:(i)与处于一个或更多个已知姿态的所述对象对应的模板数据;以及(ii)从所述图像帧之前的另一图像帧得到的另一姿态。
13.根据权利要求11所述的方法,其中,向用户呈现输出的步骤包括借助耦接到所述装置的用户接口硬件部件向用户呈现输出。
14.根据权利要求13所述的方法,其中,向用户呈现输出的步骤包括借助用户接口硬件部件向用户呈现输出,该用户接口硬件部件包括所述显示器、音频扬声器和/或触觉装置。
15.根据权利要求11所述的方法,其中,所述装置包括头戴式显示装置,该头戴式显示装置包括所述摄像头和所述显示器,并且所述显示器包括光学透视显示器。
16.根据权利要求11所述的方法,其中,在所述对象的所述姿态落在预定姿态内时向用户呈现输出的步骤包括在所述对象的所述姿态落在所述预定姿态内的时间长于预定量的时间时,向用户呈现输出。
17.一种非暂时计算机可读介质,该非暂时计算机可读介质存储指令,这些指令在由处理器执行时,执行包括以下步骤的方法:
由摄像头获取真实场景中具有已知几何结构的对象的图像帧;
估计所述对象在所述图像帧中相对于所述摄像头的姿态;
通过在3D坐标系中的3D位置处渲染光标,在显示器上显示所述光标;
在所述对象的预定部分落在所述3D位置处时,向用户呈现输出,所述输出的内容基于所述对象的所述预定部分。
18.根据权利要求17所述的非暂时计算机可读介质,其中,估计所述对象的姿态的步骤包括使用以下至少一项来估计所述对象在所述图像帧中相对于所述摄像头的姿态:(i)与处于一个或更多个已知姿态的所述对象对应的模板数据;以及(ii)从所述图像帧之前的另一图像帧得到的另一姿态。
CN201910850664.XA 2018-09-12 2019-09-10 用于增强现实中用户交互的方法和装置 Active CN110895433B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/128,860 US10748344B2 (en) 2018-09-12 2018-09-12 Methods and devices for user interaction in augmented reality
US16/128,860 2018-09-12

Publications (2)

Publication Number Publication Date
CN110895433A true CN110895433A (zh) 2020-03-20
CN110895433B CN110895433B (zh) 2023-12-26

Family

ID=69719883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910850664.XA Active CN110895433B (zh) 2018-09-12 2019-09-10 用于增强现实中用户交互的方法和装置

Country Status (2)

Country Link
US (1) US10748344B2 (zh)
CN (1) CN110895433B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443455B2 (en) * 2019-10-24 2022-09-13 Microsoft Technology Licensing, Llc Prior informed pose and scale estimation
CN113615169B (zh) * 2021-05-17 2022-06-10 香港应用科技研究院有限公司 用于扩增现实用户手册的设备和方法
US11169832B1 (en) * 2021-05-17 2021-11-09 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for augmented reality user manual

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455147A (zh) * 2013-09-10 2013-12-18 惠州学院 一种光标控制方法
US20130335303A1 (en) * 2012-06-14 2013-12-19 Qualcomm Incorporated User interface interaction for transparent head-mounted displays
US20150221133A1 (en) * 2012-08-31 2015-08-06 Layar B.V. Determining space to display content in augmented reality
CN107209567A (zh) * 2015-01-20 2017-09-26 微软技术许可有限责任公司 带有视觉反馈的注视致动的用户界面
US20180210628A1 (en) * 2017-01-23 2018-07-26 Snap Inc. Three-dimensional interaction system
CN108427498A (zh) * 2017-02-14 2018-08-21 深圳梦境视觉智能科技有限公司 一种基于增强现实的交互方法和装置
CN108431739A (zh) * 2016-01-25 2018-08-21 微软技术许可有限责任公司 用于增强现实环境的帧投影

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745541B2 (en) * 2003-03-25 2014-06-03 Microsoft Corporation Architecture for controlling a computer using hand gestures
JP2005108108A (ja) * 2003-10-01 2005-04-21 Canon Inc 三次元cg操作装置および方法、並びに位置姿勢センサのキャリブレーション装置
US9448407B2 (en) 2012-12-13 2016-09-20 Seiko Epson Corporation Head-mounted display device, control method for head-mounted display device, and work supporting system
JP5944600B1 (ja) * 2015-08-28 2016-07-05 株式会社タカラトミー 頭部装着型ディスプレイを備えた情報処理装置
JP2017182274A (ja) * 2016-03-29 2017-10-05 セイコーエプソン株式会社 情報処理装置およびコンピュータープログラム
JP2017187882A (ja) * 2016-04-04 2017-10-12 セイコーエプソン株式会社 画像処理に用いられるコンピュータープログラム
US10521603B2 (en) * 2016-08-24 2019-12-31 Branch Banking And Trust Company Virtual reality system for providing secured information
JP2018081410A (ja) * 2016-11-15 2018-05-24 セイコーエプソン株式会社 コンピュータープログラム
US10417781B1 (en) * 2016-12-30 2019-09-17 X Development Llc Automated data capture
US10451885B2 (en) * 2017-03-28 2019-10-22 Facebook Technologies, Llc Multifocal system using pixel level polarization controllers and folded optics
DK180470B1 (en) * 2017-08-31 2021-05-06 Apple Inc Systems, procedures, and graphical user interfaces for interacting with augmented and virtual reality environments

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130335303A1 (en) * 2012-06-14 2013-12-19 Qualcomm Incorporated User interface interaction for transparent head-mounted displays
US20150221133A1 (en) * 2012-08-31 2015-08-06 Layar B.V. Determining space to display content in augmented reality
CN103455147A (zh) * 2013-09-10 2013-12-18 惠州学院 一种光标控制方法
CN107209567A (zh) * 2015-01-20 2017-09-26 微软技术许可有限责任公司 带有视觉反馈的注视致动的用户界面
CN108431739A (zh) * 2016-01-25 2018-08-21 微软技术许可有限责任公司 用于增强现实环境的帧投影
US20180210628A1 (en) * 2017-01-23 2018-07-26 Snap Inc. Three-dimensional interaction system
CN108427498A (zh) * 2017-02-14 2018-08-21 深圳梦境视觉智能科技有限公司 一种基于增强现实的交互方法和装置

Also Published As

Publication number Publication date
US10748344B2 (en) 2020-08-18
US20200082626A1 (en) 2020-03-12
CN110895433B (zh) 2023-12-26

Similar Documents

Publication Publication Date Title
CN109146965B (zh) 信息处理装置、计算机可读介质和头戴式显示装置
US11546505B2 (en) Touchless photo capture in response to detected hand gestures
CN110047104B (zh) 对象检测和跟踪方法、头戴式显示装置和存储介质
US12008151B2 (en) Tracking and drift correction
CN110310329B (zh) 操作显示设备的方法、信息处理系统及非暂时性存储介质
JP6747504B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN108603749B (zh) 信息处理装置、信息处理方法和记录介质
JP6860488B2 (ja) 複合現実システム
US11520399B2 (en) Interactive augmented reality experiences using positional tracking
TW201902212A (zh) 具有經由眼睛追蹤之延伸有效眼動範圍之近眼顯示器
JP2023507867A (ja) 人工現実コンテンツの可変焦点ディスプレイを有する人工現実システム
KR20170031733A (ko) 디스플레이를 위한 캡처된 이미지의 시각을 조정하는 기술들
KR20150093831A (ko) 혼합 현실 환경에 대한 직접 상호작용 시스템
US11689877B2 (en) Immersive augmented reality experiences using spatial audio
CN114761909A (zh) 针对头戴式显示器的内容稳定
US11582409B2 (en) Visual-inertial tracking using rolling shutter cameras
CN110895433B (zh) 用于增强现实中用户交互的方法和装置
CN112655202B (zh) 用于头戴式显示器的鱼眼镜头的减小带宽立体失真校正
CN110895676B (zh) 动态对象跟踪
CN109587471A (zh) 图像显示系统、图像显示方法及图像显示程序
KR20230072757A (ko) 웨어러블 전자 장치 및 웨어러블 전자 장치의 동작 방법
CN118394205A (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