CN110709897A - 用于插入到图像中的图像内容的阴影生成 - Google Patents

用于插入到图像中的图像内容的阴影生成 Download PDF

Info

Publication number
CN110709897A
CN110709897A CN201880037080.4A CN201880037080A CN110709897A CN 110709897 A CN110709897 A CN 110709897A CN 201880037080 A CN201880037080 A CN 201880037080A CN 110709897 A CN110709897 A CN 110709897A
Authority
CN
China
Prior art keywords
content
shadow
image
joints
surface plane
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
CN201880037080.4A
Other languages
English (en)
Other versions
CN110709897B (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN110709897A publication Critical patent/CN110709897A/zh
Application granted granted Critical
Publication of CN110709897B publication Critical patent/CN110709897B/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

提供了用于为插入的内容生成阴影的系统和方法。插入的内容可以包括插入到物理空间的图像中的增强现实内容。示例方法可以包括确定在图像内插入内容的位置。例如,内容可以包括来自骨架动画系统的骨架关节。所述示例方法还可以包括基于骨架关节而在表面平面上生成边界框;以及基于骨架关节而确定在表面平面上的阴影中心点位置。例如,可以基于图像而识别表面平面。所述示例方法还可以包括基于边界框和阴影中心点位置而在表面平面上生成阴影实体;以及使用至少部分地基于阴影中心点位置确定的像素值来渲染阴影实体。

Description

用于插入到图像中的图像内容的阴影生成
相关申请的交叉引用
本申请是2018年10月3日提交的标题为“用于插入的内容的阴影(SHADOWS FORINSERTED CONTENT)”的第16/150,794号美国非临时专利申请的继续申请并且主张所述专利申请的优先权,所述专利申请主张2017年10月4日提交的第62/568,083号美国申请的优先权并且主张2017年10月4日提交的第62/568,115号美国申请的优先权,这些美国申请的公开内容以全文引用的方式并入本文中。
本申请与2018年10月3日提交的第16/150,813号美国申请相关,所述美国申请以全文引用的方式并入本文中。
背景技术
内容可以插入到图像或用户的视野中。例如,增强现实(AR)系统可以通过插入内容来为用户生成沉浸式增强环境。可以通过将计算机生成的内容叠加在现实世界的用户视野上来生成沉浸式增强环境。例如,计算机生成的内容可以包括标签、文本信息、图像、子图形和三维实体。这些图像可以显示在用户视野中的某个位置,以便看起来似乎覆盖现实世界中的对象。类似地,计算机生成的内容可以覆盖在所显示图像上。插入的内容可能会生成覆盖所显示图像的阴影。用于生成阴影的现有技术可能不足以用于实时AR应用。
发明内容
本公开描述了为插入的内容生成阴影的系统和方法。例如,插入的内容可以包括插入到物理空间的图像中的增强现实内容。
一个方面是一种方法,包括:确定在图像内插入内容的位置,所述内容包括骨架动画模型;基于来自所述骨架动画模型的多个骨架关节而在表面平面上生成边界框;基于所述多个关节而确定所述表面平面上的阴影中心点位置;基于所述边界框以及所述阴影中心点位置而生成阴影实体;以及使用至少部分地基于所述阴影中心点位置确定的像素值来渲染所述阴影实体。
另一方面是非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括存储于其上的指令,所述指令在由至少一个处理器执行时被配置成使计算系统至少:确定在图像内插入内容的位置,所述内容包括骨架动画模型;基于所述图像而识别表面平面;基于来自所述骨架动画模型的多个骨架关节而在所述表面平面上生成边界框;基于所述多个关节而确定所述表面平面上的阴影中心点位置;基于所述边界框以及所述阴影中心点位置而生成阴影实体;以及使用至少部分地基于所述阴影中心点位置确定的像素值来渲染所述阴影实体。
在以下附图和具体实施方式中阐述一个或多个实施方案的细节。其它特征将从具体实施方式、附图和权利要求书变得显而易见。
附图说明
图1是说明根据示例实施方案的系统的框图。
图2是示例物理空间的第三人称视角,其中用户正通过图1的示例HMD体验AR环境。
图3A、图3B和图3C是根据本文所描述的实施方案描绘示例头戴式显示装置和控制器的图。
图4是用户通过示例便携式电子装置体验AR环境的示意图。
图5是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法的图。
图6是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法的图。
图7A至图7H是根据本文所描述的实施方案的为插入的内容生成阴影的步骤的示意图。
图8示出了可以用于实施本文所描述的技术的计算机装置和移动计算机装置的示例。
具体实施方式
现将详细参考本公开的非限制性示例,其示例在附图中说明。下文通过参考附图描述示例,其中相似附图标记指代相似元件。当示出相似附图标记时,不重复对应的描述,并且感兴趣的读者参考先前论述的图来描述相似元件。
增强现实(AR)系统包括将计算机生成的内容插入到用户对用户周围的物理空间的感知中的系统。计算机生成的内容可以包括标签、文本信息、图像、子图形和三维实体。在一些实施方案中,出于娱乐、教育或信息目的插入内容。
示例AR系统是例如智能电话的便携式电子装置,所述便携式电子装置包括相机和显示装置。便携式电子装置可以使用相机捕获图像,并且在显示装置上示出了AR图像,所述AR图像包括覆盖在相机所捕获的图像上的计算机生成的内容。
另一示例AR系统包括用户佩戴的头戴式显示器(HMD)。HMD包括被定位于用户的眼睛前方的显示装置。例如,HMD可能会遮挡用户的整个视野,使得用户仅可以看到由显示装置显示的内容。在一些示例中,显示装置被配置成显示两个不同图像,用户的每个眼睛可以看到一个图像。例如,一个图像中的至少一些内容可以相对于另一图像中的相同内容略微偏移,以便由于视差而生成对三维场景的感知。在一些实施方案中,HMD包括腔室,例如智能电话的便携式电子装置可以放置于所述腔室中,以便允许通过HMD观看便携式电子装置的显示装置。
另一示例AR系统包括HMD,所述HMD允许用户在佩戴HMD时看到物理空间。HMD可以包括微型显示装置,所述微型显示装置显示覆盖在用户的视野上的计算机生成的内容。例如,HMD可以包括至少部分透明的脸盔,所述脸盔包括组合器,所述组合器允许来自物理空间的光到达用户的眼睛,同时还朝向用户的眼睛反射由微型显示装置显示的图像。
当计算机生成的内容插入到图像中时,可能会在内容周围或下方生成阴影,使得内容显得更加逼真。例如,可以使用看起来由大面积头顶光源生成的软阴影来渲染三维模型。这些软阴影可能比点/定向光生成的硬阴影更优选,因为关于点/定向光的位置的信息可能不适用于物理空间。
AR系统可能需要以高速率,例如每秒24帧(FPS)、30FPS、60FPS或另一速率实时地刷新显示给用户的图像。用于生成阴影的传统技术可能需要确定或估计物理空间中的照明。但是从图像确定或估计场景中的照明可能需要太多计算(或处理器周期),以致于无法在AR系统上以可接受的帧速率实时地执行确定或估计照明。一些传统技术需要关于环境中的照明的先验信息,这可能不适用于使用AR系统的许多环境。本文进一步描述的技术允许以逼真方式为插入的内容生成阴影,而不需要环境照明的先验知识,同时使用比传统技术更少的处理器周期。另外,由于本文所描述的技术所需的处理周期数目减少,这些技术可以允许以逼真的方式将内容插入到所捕获的图像/视频中,同时使用的功率比传统技术所需的功率少。在包括电池供电的移动装置的AR系统中,估计照明并为插入的内容提供阴影所需的功率的此种减少可能尤其重要。
示例AR系统捕获用户周围的物理空间的图像。随后,系统可以识别图像中的表面平面,例如地面或地板,并且确定插入内容的位置。例如,系统可以接收指示内容在屏幕上的位置的用户输入。内容可以放置于由用户指示的位置处,或放置于在所识别的表面平面上的位置处,所述所识别的表面平面在由用户指示的位置下方。例如,内容可以包括使用骨架动画模型而动画化的三维模型。骨架动画模型可以包括网格和一组连接的骨架关节(可以称为骨架或架子),所述骨架关节用于动画化网格并定位网格。骨架关节可以表示为三维坐标。在一些实施方案中,关于骨架动画模型的共同原点定义三维坐标。骨架动画模型还可以存储连接数据,所述连接数据定义连接关节的线段。这些线段可以类比骨架的骨头。连接关节的线段可以围绕至少一些关节移动或旋转。这些移动可能会导致骨架动画模型的外表面网格发生对应的变化。随着线段移动或旋转,连接的关节和线段也可以移动或旋转。在一些实施方案中,关节(例如,骨架关节)可以是骨架动画模型的关节的近似物。在一些实施方案中,一个或多个关节可以位于内容(例如,对象)的纵向构件的交点处,或可以包括内容(例如,对象)的纵向构件的交点。在一些实施方案中,骨架可以是框架,或可以称为框架。
接下来,系统可以基于内容在表面平面上生成边界框和阴影中心点(例如,阴影中点)。例如,边界框在表面平面上可以是矩形,所述边界框限制与内容相关联的骨架动画模型的所有关节(或关节到平面上的投影)。阴影中心点可以是关节的质心。例如,可以通过使关节的位置(或在关节已经投影到表面平面上之后的位置)平均化来计算质心。在一些实施方案中,质心可以是近似质心。关节可以相等地进行加权,或可以基于其它因素,例如与表面平面的距离进行加权。在一些实施方案中,并非所有关节都用于生成边界框和阴影中心点。例如,在一些实施方案中,插入的内容可以识别用于生成边界框和阴影中心点的关节的子集(即,关节白名单)。在一些实施方案中,插入的内容可以识别在生成边界框和阴影中心点时要排除的关节的子集(即,关节黑名单)。例如,插入的内容可以与数据结构相关联,所述数据结构包括关节黑名单或关节白名单。插入内容的每一个骨架关节可以包括指示关节是否应该用于生成阴影(例如,在生成边界框和阴影中心点时)的布尔值。
基于边界框和阴影中心点,可以在表面平面上生成阴影多边形。阴影多边形可以具有各种形状。例如,阴影多边形可以具有椭圆形,所述椭圆形配合于边界框内并且包括在阴影中心点处相交的第一和第二轴。尽管许多描述与椭圆形有关,但是所述形状可以是任何类型的长圆形(oblong shape)。
在渲染期间,可以用透明度值(例如,阿尔法值)对阴影多边形进行阴影处理,所述透明度值随着距阴影中心点的距离增加而增加(即,阴影多边形变得更透明,因此距阴影中心点越远越不可见)。在一些示例中,透明度值基于距阴影中心点的距离而非线性地增加。随后,可以将阴影多边形放置于要插入的内容后方。随后,可以将插入的内容和生成的阴影呈现给用户(例如,覆盖在所捕获的用户周围的物理空间的图像上,投影/显示在设置在用户的视野内的光学组合器上等)。
尽管本文所描述的许多示例涉及将视觉内容插入到AR环境中的AR系统,但是也可以使用本文描述的技术将内容插入在其它系统中。例如,本文所描述的技术可以用于将内容插入到图像或视频中。
图1是说明根据示例实施方案的系统100的框图。系统100为系统100的用户生成增强现实(AR)环境。在一些实施方案中,系统100包括计算装置102、头戴式显示装置(HMD)104,以及AR内容源106。还示出了网络108,计算装置102可以通过所述网络与AR内容源106通信。
计算装置102可以包括存储器110、处理器组件112、通信模块114、传感器系统116以及显示装置118。存储器110可以包括AR应用120、AR内容122、图像缓冲器124、图像分析器126、内容分析器128和阴影引擎130。计算装置102还可以包括各种用户输入部件(未示出),例如使用无线通信协议与计算装置102通信的控制器。在一些实施方案中,计算装置102是移动装置(例如,智能电话),所述移动装置可以被配置成通过HMD 104向用户提供或输出AR内容。例如,计算装置102和HMD 104可以通过有线连接(例如,通用串行总线(USB)电缆)或通过无线通信协议(例如,WiFi协议、任何蓝牙协议、Zigbee等)通信。在一些实施方案中,计算装置102是HMD 104的部件,并且可以被包含在HMD 104的外壳内。
存储器110可以包括一个或多个非暂时性计算机可读存储介质。存储器110可以存储可用于为用户生成AR环境的指令和数据。
处理器组件112包括一个或多个装置,所述一个或多个装置能够执行指令,例如,由存储器110存储的以执行与生成AR环境相关联的各个任务的指令。例如,处理器组件112可以包括中央处理单元(CPU)和/或图形处理器单元(GPU)。例如,如果存在GPU,则一些图像/视频渲染任务,例如生成阴影或为表示阴影的多边形着色可以从CPU转移到GPU。
通信模块114包括用于与其它计算装置,例如AR内容源106通信的一个或多个装置。通信模块114可以通过无线或有线网络,例如网络108通信。
传感器系统116可以包括各种传感器,例如相机组件132。传感器系统116的实施方案还可以包括其它传感器,包括例如惯性运动单元(IMU)134、光传感器、音频传感器、图像传感器、距离和/或接近度传感器、接触传感器(例如电容传感器)、计时器和/或其它传感器和/或传感器的不同组合。
IMU 134检测计算装置102和/或HMD 104的运动、移动和/或加速度。IMU 134可以包括各种不同类型的传感器,例如,加速计、陀螺仪、磁力计和其它此类传感器。可以基于由包括在IMU 134中的传感器提供的数据而检测和跟踪HMD 104的位置和定向。检测到的HMD104的位置和定向可以允许系统检测和跟踪用户的注视方向和头部移动。
在一些实施方案中,AR应用可以使用传感器系统116来确定用户在物理空间内的位置和定向,和/或识别物理空间内的特征或对象。
相机组件132捕获计算装置102周围的物理空间的图像和/或视频。相机组件132可以包括一个或多个相机。相机组件132还可以包括红外相机。
AR应用120可以通过HMD和/或计算装置102的一个或多个输出装置(例如显示装置118)向用户呈现或提供AR内容。在一些实施方案中,AR应用120包括存储于存储器110中的指令,所述指令在由处理器组件112执行时使处理器组件112执行本文所描述的操作。例如,基于例如AR内容(例如AR内容122和/或从AR内容源106接收的AR内容)AR应用120可以生成AR环境并且向用户呈现AR环境。AR内容122可以包括例如图像或视频的内容,所述内容可以显示在HMD 104中的用户视野的一部分上。AR环境还可以包括物理(现实世界)环境和物理(现实世界)实体的至少一部分。例如,可以生成阴影,使得内容更好地配合用户所在的物理空间。内容可以包括覆盖物理空间的各个部分的对象。内容可以渲染为平面图像或三维(3D)对象。3D对象可以包括表示为多边形网格的一个或多个对象。多边形网格可以与各种表面纹理(例如颜色和图像)相关联。
AR应用120可以基于AR内容122而使用图像缓冲器124、图像分析器126、内容分析器128和阴影引擎130来生成图像,以通过HMD104显示。例如,由相机组件132捕获的一个或多个图像可以存储于图像缓冲器124中。在一些实施方案中,图像缓冲器124是存储器110的被配置成存储一个或多个图像的区域。在一些实施方案中,计算装置102将由相机组件132捕获的图像作为纹理存储在图像缓冲器124内。替代地或另外,图像缓冲器还可以包括与处理器组件112成一体的存储器位置,例如,GPU上的专用随机存取存储器(RAM)。
图像分析器126可以确定图像的各种特性,例如,在其上可以定位有内容的表面平面的位置。在一些实施方案中,表面平面是基本上水平的平面,所述表面平面对应于地面、地板或在其上可以放置对象(例如要插入的内容)的另一表面。
AR应用120可以确定插入内容的位置。例如,AR应用可以提示用户识别用于插入内容的位置,并且随后可以接收指示所述内容在屏幕上的位置的用户输入。AR应用可以基于所述用户输入来确定插入的内容的位置。例如,用于要插入的内容的位置可以是由用户指示的位置。在一些实施方案中,通过将由用户指示的位置映射到与图像中的例如地板或地面的表面对应的平面来确定所述位置(例如,通过在由图像分析器126所识别的平面上找到在由用户指示的位置下方的位置)。还可以基于针对由相机组件捕获的前一图像中的内容确定的位置来确定所述位置(例如,AR应用可以使内容移动跨越在图像中捕获的物理空间内识别的表面)。
随后,内容分析器128可以确定要插入所确定的位置处的内容的各种特性。例如,内容可以与3D模型以及包括关节的骨架动画模型相关联。骨架动画模型可以设置在3D模型内,并且可以允许3D模型的部分围绕一些或所有关节移动。作为示例,内容分析器128可以基于骨架动画模型的至少一些关节的位置而确定表面平面上的边界框和阴影中心点。例如,骨架关节可以投影在表面平面上。在至少一些实施例中,关节从头顶位置投影,以便生成看起来像来自头顶光源的阴影(例如,通过丢弃关节的3D位置的高度分量(即,当表面平行于X-Z平面时的Y分量)或将高度分量设定成等于平面的高度)。在一些实施方案中,所有关节用于生成边界框并识别阴影中心点。在一些实施方案中,关节的子集用于生成边界框并识别阴影中心点(例如,插入的内容可以识别要使用或排除的关节)。在一些实施方案中,阴影中心点可能不在对象的中心处。
在包含所有投影关节的表面上,边界框可以是矩形。在至少一些实施方案中,矩形与3D坐标系统的轴对准(例如,如果表面平行于X-Z平面,则矩形的边与X轴或Z轴对准)。
可以通过各种方式确定阴影中心点。例如,阴影中心点可以是投影关节的空间中点。阴影中心点还可以被计算为投影关节的质心(即,投影关节的平均位置)。在一些实施方案中,出于计算质心的目的,可以为关节分配权重。例如,可以基于距表面的距离而分配权重(例如,与较远的关节相比,更接近表面的关节具有更高的权重)。在一些实施方案中,基于距表面的距离,对未列入黑名单的所有关节进行反加权。
阴影引擎130可以生成要插入的内容的一个或多个阴影。在一些实施方案中,阴影引擎130基于由内容分析器128确定的边界框以及阴影中心点而生成阴影多边形。阴影多边形可以具有基于距阴影中心点的距离而变化的深色(例如,黑色)和透明度值。在一些实施方案中,通过基于距中心点的距离应用非线性衰减来确定透明度值。非线性衰减可以导致多边形的中心附近的像素具有低透明度值,而多边形的边缘附近的像素具有较高透明度值。在至少一些实施方案中,多边形的边缘上的像素是完全透明的。
在一些实施方案中,阴影引擎130还可以使用其它技术来生成阴影。例如,阴影引擎130可以使用阴影图来生成阴影。用于生成阴影图的示例技术在以下文档中描述:兰斯·威廉姆斯(Williams,Lance.)的“将弯曲阴影投射在弯曲表面上”,美国计算机协会计算机图形专业组(ACM Siggraph Computer Graphics),第12卷第3版,美国计算机协会,1978年。由阴影图生成的阴影可以与使用边界框和阴影中心点生成的阴影组合。在一些实施方案中,通过基于距插入的内容的距离对使用这两种技术生成的阴影进行加权,组合使用这两种技术(或甚至另外的技术)生成的阴影。例如,当插入的内容更接近相机组件132时,可以对使用阴影图生成的阴影更重地加权。另外,也可以使用生成阴影的其它技术并且以类似方式组合(或加权)这些技术。例如,可以基于骨架中的单独关节而生成另外的阴影。当插入的内容距离相机组件132更远(例如,以替代使用阴影图生成的阴影)时,可以向这些另外的阴影提供更高权重。
在一些实施方案中,图像分析器126、内容分析器128和阴影引擎130可以包括存储于在储器110中的指令,所述指令在由处理器组件112执行时使处理器组件112执行本文所描述的操作,以生成显示(例如,通过HMD 104)给用户的图像或图像序列。
AR应用120可以基于从相机组件132、IMU 134,和/或传感器系统116的其它部件接收的输入而更新AR环境。例如,IMU 134可以检测计算装置102和/或HMD 104的运动、移动和/或加速度。IMU 134可以包括各种不同类型的传感器,例如,加速计、陀螺仪、磁力计和其它此类传感器。可以基于由包括在IMU 134中的传感器提供的数据而检测和跟踪HMD 104的位置和定向。检测到的HMD 104的位置和定向可以允许系统检测和跟踪用户在物理空间内的位置和定向。基于检测到的位置和定向,AR应用120可以更新AR环境,以反映用户在环境内的改变的定向和/或位置。
尽管计算装置102和HMD 104在图1中示出为单独的装置,但是在一些实施方案中,计算装置102可以包括HMD 104。在一些实施方案中,计算装置102通过电缆与HMD 104通信,如图1中所示。例如,计算装置102可以将视频信号和/或音频信号传输到HMD 104以向用户显示,并且HMD 104可以将运动、位置和/或定向信息传输到计算装置102。
AR内容源106可以生成并输出AR内容,可以通过网络108将AR内容分布或发送到一个或多个计算装置,例如计算装置102。在示例实施方案中,AR内容包括三维场景和/或图像。另外,AR内容可以包括流式传输或分布到一个或多个计算装置的音频/视频信号。AR内容还可以包括AR应用,所述AR应用在计算装置102上运行,以生成3D场景、音频信号,和/或视频信号。
网络108可以是因特网、局域网(LAN)、无线局域网(WLAN),和/或任何其它网络。例如,计算装置102可以通过网络接收音频/视频信号,所述音频/视频信号在说明性示例实施方案中可以提供为AR内容的一部分。
图2是示例物理空间200的第三人称视角,其中用户正通过示例HMD 104体验AR环境202。AR环境202通过计算装置102的AR应用120生成并且通过HMD 104显示给用户。
AR环境202包括显示在物理空间200的图像上的插入的内容204。在此示例中,内容204是乌龟,所述乌龟正在AR环境202中的地板的表示上生成阴影206。所述阴影是根据本文所描述的技术生成的。
在一些实施方案中,AR环境202作为单个图像或一对立体图像提供给用户,所述单个图像或一对立体图像占据了用户的全部或基本上全部视野并且通过HMD 104显示给用户。在其它实施方案中,通过将插入的内容204和生成的阴影206显示/投影在占据用户视野的至少一部分的至少部分透明的组合器上,从而将AR环境提供给用户。例如,HMD 104的部分可以是透明的,并且当佩戴HMD 104时,用户可能够通过这些部分看到物理空间200。
图3A和图3B是示例HMD 300,例如图2中的用户佩戴的HMD104的透视图,并且图3C说明了用于控制HMD 300和/或与HMD 300交互的示例手持式电子装置302。
手持式电子装置302可以包括:外壳303,在所述外壳中接纳有装置302的内部部件;以及用户界面304,所述用户界面位于外壳303外部,并且可由用户访问。用户界面304可以包括被配置成接收用户触摸输入的触敏表面306。用户界面304还可以包括用于由用户操纵的其它部件,例如,致动按钮、旋钮、操纵杆等。在一些实施方案中,用户界面304的至少一部分可以被配置为触摸屏,其中用户界面304的所述部分被配置成向用户显示用户界面项目,并且还接收来自用户的在触敏表面306上的触摸输入。手持式电子装置302还可以包括光源308,所述光源被配置成例如响应于在用户界面304处接收的用户输入,通过外壳303中的端口选择性地发射光,例如光束或光线。
HMD 300可以包括联接到框架320的外壳310,所述外壳包括音频输出装置330,所述音频输出装置包括例如安装在耳机中的扬声器,所述音频输出装置也联接到框架320。在图3B中,外壳310的前部部分310a旋转远离外壳310的基底部分310b,使得容纳在外壳310中的一些部件可见。显示器340可以安装在外壳310的前部部分310a的面向内部侧上。当前部部分310a相对于外壳310的基底部分310b处于闭合位置中时,透镜350可以安装在外壳310中,在用户的眼睛与显示器340之间。在一些实施方案中,HMD 300可以包括:感测系统360,所述感测系统包括各种传感器;以及控制系统370,所述控制系统包括处理器390以及用于促进HMD 300的操作的各种控制系统装置。
在一些实施方案中,HMD 300可以包括用于捕获静止图像和移动图像的相机380。由相机380捕获的图像可以用于帮助跟踪用户和/或手持式电子装置302在现实世界中或相对于增强环境的物理空间中的物理位置,和/或可以用看透模式在显示器340上显示给用户,从而允许用户暂时离开增强环境并返回到物理环境,而无需移除HMD 300或以其它方式改变HMD 300的配置,以将外壳310移出用户的视线。
例如,在一些实施方案中,感测系统360可以包括惯性测量单元(IMU)362,所述IMU包括各种不同类型的传感器,例如,加速计、陀螺仪、磁力计和其它此类传感器。可以基于由IMU 362中包括的传感器提供的数据而检测和跟踪HMD 300的位置和定向。HMD 300的检测到的位置和定向可以允许系统检测和跟踪用户的头部注视方向和移动。
在一些实施方案中,HMD 300可以包括用于检测并跟踪用户的眼睛注视的注视跟踪装置365。注视跟踪装置365可以包括例如图像传感器365A或多个图像传感器365A,用于捕获用户眼睛,例如用户眼睛的特定部分(例如瞳孔等)的图像,以检测并跟踪用户的注视方向和移动。在一些实施方案中,可以配置HMD 300,使得将检测到的注视作为用户输入来处理,以转换成沉浸式虚拟体验中的对应交互。
在一些实施方案中,HMD 300包括可拆卸地设置在外壳310的腔室内的便携式电子装置,例如智能电话。例如,可以由便携式电子装置提供显示器340和相机380。当腔室闭合时(如图3A中所示),显示器340与透镜350对准,使得用户通过每只眼睛观看显示器340(由便携式电子装置提供)的至少一部分。相机380可以与外壳310中的孔对准,使得HMD 300的便携式电子装置可以在被设置在外壳310中时捕获图像。
图4是用户通过示例便携式电子装置402体验AR环境202的示意图。便携式电子装置402是计算装置102的示例。便携式电子装置402可以是智能电话、平板电脑或任何类型的便携式计算装置。在此示例中,用户通过便携式电子装置的显示装置418体验AR环境。例如,显示装置418可以包括可以示出图像和/或视频的屏幕。
图5是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法500的图。例如,此方法500可以由计算装置102执行,从而为用户提供AR环境。
在操作502处,接收图像。接收图像可以包括用相机组件,例如相机组件132捕获图像。接收图像可以包括访问存储在存储器位置中的先前捕获图像。还可以从另一计算装置,例如通过网络可访问的服务器接收图像。
在操作504处,识别图像内的表面平面。可以使用各种图像处理技术来识别表面平面。例如,可以通过识别图像的基本平坦区域来识别表面平面。在一些实施方案中,可以基于分析多个图像(例如,来自物理空间的视频流的图像序列)生成表面平面。表面平面可以对应于地面、地板或在其上可以放置物体的另一表面(例如,桌子、柜台、架子)。
在操作506处,确定要插入的内容的位置。在一些实施方案中,要插入的内容是AR内容。在至少一些实施方案中,内容包括一个或多个三维模型,例如多边形网格。多边形网格可以与骨架动画模型相关联,所述骨架动画模型包括彼此连接的多个关节。骨架动画模型可以允许围绕至少一些关节移动或旋转。这些移动可能导致多边形网络的各个部分发生对应的移动或变形。
例如,通过识别接收的图像中的基本平坦表面并且将内容定位在所识别表面上,可以确定要插入的内容的位置。还可以至少部分地通过用户输入确定要插入的内容的位置。例如,用户可以识别图像内的位置以插入内容。在一些实施方案中,可以将内容放置在水平面上与用户识别的位置对应的位置处(例如,由用户识别的位置下方的位置,使得内容被定位于平面上)。还可以基于内容在前一图像(即,由相机组件捕获的视频的前一帧)中的位置来确定内容的位置。例如,内容可以相对于物理空间四处移动(例如,图2中所示的计算机生成的乌龟图像内容可能会爬过地板)。
在操作508处,基于关节,为内容生成边界框。关节可以从上方投影到在操作504中所识别的表面平面上。在一些实施方案中,可以忽略关节的3D位置的竖直分量以计算边界框。在一些实施方案中,边界框是界定(bounds)(包围)关节的四边形。例如,边界框可以是矩形。在一些实施方案中,关节的子集用于确定边界框。例如,插入的内容可以与数据结构相关联,所述数据结构识别要用于生成边界框或排除用于生成边界框的一些关节。
在操作510处,基于关节确定阴影中心点位置。例如,基于投影到表面平面上的关节的位置而确定阴影中心点位置。在一些实施方案中,阴影中心点是关节的空间中点。在一些实施方案中,阴影中心点被计算为关节的质心。例如,关节可以相等地进行加权并且通过使关节的位置平均化来确定中心点的位置。在一些实施方案中,基于距表面平面的距离(例如,高度)对关节进行加权,并且中心点的位置被确定为关节位置的加权平均。类似于生成边界框(上文至少关于操作508描述),在一些实施方案中,关节的子集可以用于确定阴影中心点位置。
在操作512处,基于边界框和阴影中心点,在表面平面上生成阴影实体。例如,阴影实体可以是由边界框限制(circumscribed)的多边形。在至少一些实施方案中,阴影实体是椭圆形多边形,所述椭圆形多边形具有在阴影中心点处相交的第一轴和第二轴。椭圆形多边形可以具有零个、一个或两个对称轴。在一些实施方案中,可以使用具有其它形状的多边形,例如,矩形多边形。另外,在一些实施方案中,通常使用布置成近似椭圆形的多条直线来表示椭圆形多边形。
在操作514处,使用基于阴影中心点确定的像素值来渲染阴影实体。在一些实施方案中,阴影实体的像素用深色,例如黑色渲染,并且具有变化的透明度(例如,阿尔法值)。可以基于像素与中心点之间的距离来确定像素的透明度值。在一些实施方案中,透明度值还基于从像素值到多边形边缘的距离。例如,可以使用基于被表示为从阴影中心点到多边形边缘的距离百分比的像素位置的径向衰减函数来确定透明度值。在一些实施方案中,位于多边形边缘的像素(100%)将完全透明,并且位于阴影中心点的像素(0%)将完全不透明。在一些实施方案中,径向衰减是线性的。在其它实施方案中,径向衰减是非线性的。例如,对于距离多边形边缘不到50%的像素,透明度值可能较低,使得阴影实体基本上是不透明的;而距离多边形边缘大于50%的像素的透明度快速地增加。在一些实施方案中,像素值可以包括像素的颜色。
一旦渲染了阴影实体,就可以将插入的内容添加在阴影前方,并且随后阴影实体和插入的内容两者可以覆盖在操作502处接收的图像上,以生成增强图像。随后,可以向用户显示增强图像以提供增强环境。另外,可以将渲染后的阴影实体和插入的内容投影到透明的组合器表面上,在所述透明的组合器表面处,渲染后的阴影实体和插入的内容将示出在用户的物理空间的视野上。尽管此示例描述将插入的内容添加在渲染后的阴影实体前方,但是在一些实施方案中,插入的内容和阴影实体会一起渲染,并且实际上仅渲染阴影实体的可见部分。
图6是根据本文所描述的实施方案的为插入的内容生成阴影的示例方法600的图。例如,此方法600可以由计算装置102执行,从而为用户提供AR环境。
在操作602处,捕获图像。例如,图像可以由计算装置,例如计算装置102的相机组件捕获。所捕获的图像可以作为纹理存储在图像缓冲器124中。图7A中示出了示例图像700。
在操作604处,识别图像中的表面平面。如上所述,表面平面可以对应于图像中的地面或地板。图7A中示出了已在图像700中识别的示例表面平面702。
在操作606处,确定将要插入的内容的位置。在一些实施方案中,内容包括至少部分地由具有多个关节的骨架限定的多边形网格。如上所述,可以通过各种方式,例如基于用户输入、表面平面的位置,和/或内容在前一图像中的位置来确定所述位置。图7B示出了内容704的示例,所述内容的示例覆盖在图像700上的示例性确定的位置处。图7C从俯视图示出了在表面平面702上方的内容704,并且图7D示出了包括关节708的骨架706(也可以称为框架)。
在操作608处,基于所述多个关节而在内容的表面平面上生成边界框。如上所述,边界框在界定(包含)所有或基本上所有关节的表面平面(例如,X-Z平面)上可以是矩形。图7E示出了在界定关节708的表面平面702上的示例边界框710。如上所述,与插入的内容相关联的数据结构可以识别关节的子集,以包括用于生成边界框或排除用于生成边界框。
在操作610处,基于所述多个关节而确定在表面平面上的质心位置。如上所述,关节可以相等地进行加权并且将质心确定为关节的平均位置。替代地,可以通过各种因子(例如在表面平面上方的距离)对关节进行加权。图7E示出了被确定为关节708的质心位置的在表面平面702上的示例阴影中心点712。在一些实施方案中,与插入的内容相关联的数据结构可以提供关节的加权值,或可以识别关节的子集,以将所述关节的子集以包括在用于确定质心的处理中,或将所述关节的子集从用于确定质心的处理中排除。
在操作612处,基于边界框和质心位置而在表面平面上生成椭圆形阴影多边形。如上所述,椭圆形的尺寸可以设定为配合于边界框内部,并且可以具有在质心位置处相交的第一和第二轴。图7F示出了示例椭圆形(例如,长圆形)阴影多边形714。
在操作614处,使用基于从质心位置的径向衰减的透明度值来渲染阴影多边形。如上所述,径向衰减可以是线性的或非线性的。图7G示出了示例渲染后的椭圆形阴影多边形716。
在操作616处,内容插入在渲染后的阴影多边形的前方。阴影实体和插入的内容两者可以覆盖在操作602处捕获的图像上,以生成增强图像。图7H中示出了示例增强图像750。增强图像750包括内容704以及覆盖在图像700上的渲染后的椭圆形阴影多边形716。
图8示出了可以与本文所描述的技术一起使用的计算机装置1000和移动计算机装置1050的示例。计算装置1000包括处理器1002、存储器1004、存储装置1006、连接到存储器1004以及高速扩展端口1010的高速接口1008,以及连接到低速总线1014和存储装置1006的低速接口1012。部件1002、1004、1006、1008、1010和1012中的每一个使用各种总线互连,并且可以安装在共同的母板上或视情况以其它方式安装。处理器1002可以处理用于在计算装置1000内执行的指令,包括存储于存储器1004中或存储装置1006上的指令,所述指令将GUI的图形信息显示在外部输入/输出装置(例如联接到高速接口1008的显示器1016)上。在其它实施方案中,多个处理器和/或多个总线可以视情况与多个存储器以及多种类型的存储器一起使用。而且,可以连接多个计算装置1000,其中每个装置提供必要操作的各部分(例如,作为服务器组、刀片服务器群组,或多处理系统)。
存储器1004将信息存储在计算装置1000内。在一个实施方案中,存储器1004是一个或多个易失性存储器单元。在另一实施方案中,存储器1004是一个或多个非易失性存储器单元。存储器1004还可以是另一形式的计算机可读介质,例如,磁盘或光盘。
存储装置1006能够为计算装置1000提供大容量存储。在一个实施方案中,存储装置1006可以是或可以包含计算机可读介质,例如,软盘装置、硬盘装置、光盘装置,或磁带装置、闪存存储器或其它类似的固态存储器装置,或装置的阵列,包括存储区域网络或其它配置中的装置。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,所述指令在执行时执行一个或多个方法,例如,上述那些方法。信息载体是计算机或机器可读介质,例如,存储器1004、存储装置1006,或处理器1002上的存储器。
高速控制器1008管理计算装置1000的高带宽强度操作,而低速控制器1012管理较低带宽强度操作。这种功能分配仅仅是示例性的。在一个实施方案中,高速控制器1008联接到存储器1004、显示器1016(例如,通过图形处理器或加速计),以及可以接受各种扩展卡(未示出)的高速扩展端口1010。在实施方案中,低速控制器1012联接到存储装置1006和低速扩展端口1014。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器联接到一个或多个输入/输出装置,例如,键盘、指点装置、扫描仪,或例如交换机或路由器的联网装置。
如图所示,计算装置1000可以通过多种不同形式实施。例如,所述计算装置可以实施为标准服务器1020,或多次实施于此类服务器的群组中。所述计算装置还可以实施为机架式服务器系统1024的一部分。另外,所述计算装置可以实施于个人计算机(例如膝上型计算机1022)中。替代地,来自计算装置1000的部件可以与移动装置(例如装置1050)(未示出)中的其它部件组合。此类装置中的每一个可以包含计算装置1000、1050中的一个或多个,并且整个系统可以由彼此通信的多个计算装置1000、1050组成。
计算装置1050包括处理器1052、存储器1064、输入/输出装置(例如显示器1054)、通信接口1066和收发器1068,以及其它部件。装置1050还可以设置有存储装置(例如微驱动器或其它装置),以提供另外的存储。部件1050、1052、1064、1054、1066和1068中的每一个使用各种总线互连,并且若干部件可以安装在共同的母板上或视情况以其它方式安装。
处理器1052可以执行计算装置1050内的指令,包括存储于存储器1064中的指令。处理器可以实施为包括有分离的以及多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供装置1050的其它部件的协调,例如,用户界面、由装置1050运行的应用,以及由装置1050进行的无线通信的控制。
处理器1052可以通过控制接口1058和联接到显示器1054的显示器接口1056与用户通信。例如,显示器1054可以是TFT LCD(薄膜晶体管液晶显示器),或OLED(有机发光二极管)显示器,或其它合适的显示器技术。显示器接口1056可以包括用于驱动显示器1054向用户呈现图形和其它信息的合适电路。控制接口1058可以从用户接收命令并且转换所述命令以提交给处理器1052。另外,可以提供与处理器1052通信的外部接口1062,以便实现装置1050与其它装置进行近距离通信。例如,外部接口1062可以在一些实施方案中提供用于有线通信,或在其它实施方案中提供用于无线通信,并且还可以使用多个接口。
存储器1064将信息存储在计算装置1050内。存储器1064可以实施为一个或多个计算机可读介质、一个或多个易失性存储器单元,或一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器1074,并且通过扩展接口1072连接到装置1050,所述扩展接口可以包括例如,SIMM(单列直插式存储器模块)卡接口。此种扩展存储器1074可以为装置1050提供额外存储空间,或者还可以为装置1050存储应用或其它信息。具体来说,扩展存储器1074可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,可以将扩展存储器1074提供为装置1050的安全模块,并且可以用允许安全地使用装置1050的指令来编程。另外,可以通过SIMM卡与附加信息一起提供安全应用,例如,以不可侵入的方式将识别信息置于SIMM卡上。
如下所述,存储器可以例如包括闪存存储器和/或NVRAM存储器。在一个实施方案中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在执行时执行一个或多个方法,例如,上述那些方法。信息载体是可以例如通过收发器1068或外部接口1062接收的计算机或机器可读介质,例如,存储器1064、扩展存储器1074,或处理器1052上的存储器。
装置1050可以通过通信接口1066无线地通信,所述通信接口在必要时可以包括数字信号处理电路。通信接口1066可以通过各种模式或协议下的通信,例如,GSM语音呼叫、SMS、EMS,或MMS消息传递、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等等。例如,这种通信可以通过射频收发器1068进行。另外,短程通信可以例如使用蓝牙、Wi-Fi,或其它此种收发器(未示出)进行。另外,GPS(全球定位系统)接收器模块1070可以向装置1050提供与导航和位置相关的附加无线数据,所述无线数据视情况可以由装置1050上运行的应用使用。
装置1050还可以使用音频编解码器1060以听觉方式通信,所述音频编解码可以从用户接收语音信息并且将所述语音信息转换成可用的数字信息。音频编解码器1060同样可以例如通过在例如装置1050的听筒中的扬声器为用户生成可听声音。这种声音可以包括来自语音电话的声音,可以包括录音声音(例如,语音消息、音乐文件等),并且还可以包括在装置1050上运行的应用所生成的声音。
如图所示,计算装置1050可以通过多种不同形式实施。例如,所述计算装置可以实施为蜂窝电话1080。所述计算装置还可以实施为智能电话1082、个人数字助理,或其它类似移动装置的一部分。
本文描述的系统和技术的各种实施方案可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件,和/或它们的组合中实现。这些各种实施方案可以包括在一个或多个计算机程序中的实施方案,所述计算机程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程处理器可以用于专用或通用目的,且联接以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并将数据和指令传输到存储系统、至少一个输入装置和至少一个输出装置。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级程序化和/或面向对象的编程语言,和/或用汇编/机器语言实施。如本文所使用,术语机器可读介质摂、计算机可读介质摂指代用于将机器指令和/或数据提供到可编程处理器的任何计算机程序产品、设备和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号摂指代用于将机器指令和/或数据提供到可编程处理器的任何信号。
为了提供与用户的交互,本文描述的系统和技术可以在具有显示装置(LED(发光二极管),或OLED(有机LED),或LCD(液晶显示器)监视器/屏幕)的计算机上实施,以将信息显示给用户以及键盘和指点装置(例如,鼠标或轨迹球),用户可以通过所述鼠标和指点装置将输入提供给计算机。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈,或触觉反馈);以及来自用户的输入可以通过任何形式(包括声音、语音或触觉输入)接收。
本文描述的系统和技术可以在计算系统中实施,所述计算系统包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用服务器),或包括前端部件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可以通过所述图形用户界面或网络浏览器与本文描述的系统和技术的实施方案交互),或此后端部件、中间件部件或前端部件的任何组合。系统的部件可以通过数字数据通信(例如,通信网络)的任何形式或介质互连。通信网络的示例包括局域网(揕AN)、广域网(揥AN)和因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端和服务器的关系通过在相应计算机上运行以及彼此具有客户端-服务器关系的计算机程序产生。
在一些实施方案中,图8中描绘的计算装置可以包括传感器,所述传感器与AR头盔/HMD装置1090接口连接以生成增强环境,用于查看物理空间内的插入的内容。例如,计算装置1050或图8中描绘的其它计算装置上包括的一个或多个传感器可以将输入提供到AR头盔1090,或一般来说将输入提供到AR空间。传感器可以包括但不限于,触摸屏、加速计、陀螺仪、压力传感器、生物计量传感器、温度传感器、湿度传感器,以及环境光传感器。计算装置1050可以使用传感器来确定计算装置在AR空间中的绝对位置和/或检测到的旋转,所述绝对位置和/或检测到的旋转随后可以用作AR空间的输入。例如,计算装置1050可以作为虚拟对象(例如控制器、激光指示器、键盘、武器等)并入AR空间中。当并入到AR空间中时,用户对计算装置/虚拟对象的定位可以允许用户定位计算装置,以便以特定方式查看AR空间中的虚拟对象。例如,如果虚拟对象表示激光指示器,则用户可以操纵计算装置,如同所述计算装置是真的激光指示器一样。用户可以左右、上下、画圆等方式移动计算装置,并且以与使用激光指示器类似的方式使用所述装置。
在一些实施方案中,包括在计算装置1050上或连接到计算装置1050的一个或多个输入装置可以用作AR空间的输入。输入装置可以包括但不限于,触摸屏、键盘、一个或多个按钮、触控板、触摸板、指点装置、鼠标、轨迹球、操纵杆、相机、麦克风、耳机或具有输入功能的耳塞、游戏控制器,或其它可连接输入装置。当计算装置并入到AR空间中时,与包括在计算装置1050上的输入装置交互的用户可以导致在AR空间中发生特定动作。
在一些实施方案中,计算装置1050的触摸屏可以被渲染为AR空间中的触摸板。用户可以与计算装置1050的触摸屏交互。例如,该交互在AR头盔1090中被渲染为在AR空间中的渲染的触摸板上的移动。渲染的移动可以控制AR空间中的虚拟对象。
在一些实施方案中,包括在计算装置1050上的一个或多个输出装置可以向AR空间中的AR头盔1090的用户提供输出和/或反馈。输出和反馈可以是视觉、触觉或音频输出和反馈。输出和/或反馈可以包括但不限于,振动、一个或多个灯或闪光灯的开关或闪烁和/或闪光、发出警报、播放铃声、播放歌曲,以及播放音频文件。输出装置可以包括但不限于,振动电机、振动线圈、压电装置、静电装置、发光二极管(LED)、闪光灯,以及扬声器。
在一些实施方案中,计算装置1050可以看起来是计算机生成的3D环境中的另一对象。用户与计算装置1050的交互(例如,旋转、摇动、触摸触摸屏、在触摸屏上滑动手指)可以被解释为与AR空间中的对象的交互。在AR空间中的激光指示器的示例中,计算装置1050看起来是计算机生成的3D环境中的虚拟激光指示器。在用户操纵计算装置1050时,AR空间中的用户看到激光指示器的移动。用户在计算装置1050上或AR头盔1090上的AR环境中从与计算装置1050的交互中接收反馈。
在一些实施方案中,计算装置1050可以包括触摸屏。例如,用户可以通过可以模仿触摸屏上发生的事情以及AR空间中发生的事情的特定方式与触摸屏交互。例如,用户可以使用捏紧型运动来缩放显示在触摸屏上的内容。触摸屏上的这种捏紧型运动可以导致在AR空间中提供的信息被缩放。在另一示例中,计算装置可以被渲染为计算机生成的3D环境中的虚拟书本。在AR空间中,书的页面可以显示在AR空间中,并且用户的手指在触摸屏上的滑动可以被解释为翻动/翻转虚拟书的页面。当翻动/翻转每个页面时,除了看到页面内容变化之外,还可以向用户提供音频反馈,例如,翻动书中的页面的声音。
在一些实施方案中,除了计算装置之外,一个或多个输入装置(例如,鼠标、键盘)可以在计算机生成的3D环境中进行渲染。渲染后的输入装置(例如,渲染后的空间、渲染后的鼠标)可以作为在AR空间中渲染的输入装置使用,以控制AR空间中对象。
计算装置1000预期表示各种形式的数据计算机和装置,包括但不限于,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它合适的计算机。计算装置1050预期表示各种形式的移动装置,例如,个人数字助理、蜂窝电话、智能电话,以及其它类似的计算装置。此处所示的部件、所述部件的连接和关系,以及部件的功能预期仅仅是示例性的,并且并不意图限制本文档中描述和/或主张的发明的实施方案。
已描述多个实施例。然而,应理解的是,在不脱离本说明书的精神和范围的情况下可以进行各种改型。
另外,附图中描绘的逻辑流程不一定需要按所示的特定次序或按顺序实现期望的结果。另外,可以提供其它步骤,或可以从所描述的流程中去除步骤,并且其它部件可以添加到所描述系统,或从所描述系统移除。因此,其它实施例在所附权利要求书的范围内。
尽管已经如本文所描述的那样说明了所描述实施方案的某些特征,但是本领域技术人员现在将想到许多改型、替换、改变和等效物。因此,应理解的是,所附权利要求书预期涵盖落入实施方案的范围内的所有此类改型和改变。应理解的是,它们仅以示例而非限制性方式呈现,并且可以在形式和细节上进行各种改变。除了相互排斥的组合之外,本文所描述的设备和/或方法的任何部分可以通过任何组合进行组合。本文所描述的实施方案可以包括所描述的不同实施方案的功能、部件和/或特征的各种组合和/或子组合。

Claims (22)

1.一种方法,包括:
确定在图像内插入内容的位置,所述内容包括骨架动画模型;
基于来自所述骨架动画模型的多个骨架关节,在表面平面上生成边界框;
基于所述多个关节而确定在所述表面平面上的阴影中心点位置;
基于所述边界框和所述阴影中心点位置而生成阴影实体;以及
使用至少部分地基于所述阴影中心点位置确定的像素值来渲染所述阴影实体。
2.根据权利要求1所述的方法,还包括:
将所述内容覆盖在渲染后的阴影实体上;
将所述内容和渲染后的阴影实体插入到所述图像中,以生成增强图像;以及
使所述增强图像被显示。
3.根据权利要求1所述的方法,还包括:
显示所述图像;以及
将所插入的内容和渲染后的阴影实体覆盖在所显示的图像上。
4.根据权利要求1所述的方法,还包括:基于所述图像而识别所述表面平面,并且其中,所述内容是增强现实内容,并且确定在所述图像内插入所述内容的所述位置包括:基于所述表面平面而确定在所述图像内的所述位置。
5.根据权利要求1所述的方法,其中,所述表面平面对应于在所述图像中被识别的地板。
6.根据权利要求1所述的方法,其中,所述阴影实体包括多边形。
7.根据权利要求6所述的方法,其中,所述多边形是由所述边界框限制的长圆形多边形。
8.根据权利要求7所述的方法,其中,所述长圆形多边形的长轴和所述长圆形多边形的短轴在所述阴影中心点位置处相交。
9.根据权利要求6所述的方法,其中,所述多边形是由所述边界框的角限定的四边形多边形。
10.根据权利要求1所述的方法,其中,渲染所述阴影实体包括基于距所述阴影中心点位置的距离而确定像素值。
11.根据权利要求10所述的方法,其中,确定像素值包括基于距所述阴影中心点位置的距离而使用非线性径向衰减来计算像素的透明度值。
12.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括存储于其上的指令,所述指令在由至少一个处理器执行时被配置成使计算系统至少:
确定在图像内插入内容的位置,所述内容包括骨架动画模型;
基于所述图像而识别表面平面;
基于来自所述骨架动画模型的多个骨架关节,在所述表面平面上生成边界框;
基于所述多个关节而确定在所述表面平面上的阴影中心点位置;
基于所述边界框和所述阴影中心点位置而生成阴影实体;以及
使用至少部分地基于所述阴影中心点位置确定的像素值来渲染所述阴影实体。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其中,使所述系统确定在所述图像内插入内容的所述位置的所述指令包括:使所述系统接收识别所述内容的位置的用户输入的指令。
14.根据权利要求12所述的非暂时性计算机可读存储介质,其中,使所述系统确定所述阴影中心点位置的所述指令包括:使所述系统将所述多个关节投影到所述表面平面上的指令。
15.根据权利要求14所述的非暂时性计算机可读存储介质,其中,所述阴影中心点位置是基于计算所投影的多个关节的中点而确定的。
16.根据权利要求14所述的非暂时性计算机可读存储介质,其中,所述阴影中心点位置是基于所述多个关节的质心而确定的。
17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述质心是基于对所述多个关节相等地进行加权而确定的。
18.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述质心是基于对所述多个关节进行加权而确定的,所述加权是基于距所述表面平面的距离。
19.根据权利要求12所述的非暂时性计算机可读存储介质,其中,所述内容还包括包围所述多个关节的多边形网格。
20.根据权利要求12所述的非暂时性计算机可读存储介质,其中,使所述系统基于来自所述骨架动画模型的多个骨架关节而在所述表面平面上生成边界框的所述指令包括:使所述系统基于与所述骨架动画模型相关联的数据结构而识别来自所述骨架动画模型的多个骨架关节的指令,并且其中,所述多个骨架关节不包括所述骨架动画模型的所述骨架关节中的所有骨架关节。
21.一种系统,包括:
相机组件;
至少一个处理器;以及
存储器,所述存储器存储指令,所述指令在由所述至少一个处理器执行时使所述系统:
用所述相机组件捕获图像;
基于所述图像而识别表面平面;
确定插入内容的位置,所述内容包括部分地由具有多个关节的骨架限定的多边形网格;
基于所述多个关节而在所述内容的所述表面平面上生成边界框;
基于将所述多个关节投影在所述表面平面上以及将投影后的多个关节的位置平均化,确定所述内容的质心位置;
基于所述边界框和所述质心位置而在所述表面平面上生成阴影多边形;
使用透明度值来渲染所述阴影多边形,所述透明度值基于将径向衰减函数应用于所述质心位置;以及
将所插入的内容覆盖在渲染后的阴影多边形上。
22.根据权利要求21所述的系统,其中,所述阴影多边形是被包含在所述边界框内的长圆形多边形,并且包括在所述质心位置处相交的第一轴和第二轴。
CN201880037080.4A 2017-10-04 2018-10-04 用于插入到图像中的图像内容的阴影生成 Active CN110709897B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762568115P 2017-10-04 2017-10-04
US201762568083P 2017-10-04 2017-10-04
US62/568,115 2017-10-04
US62/568,083 2017-10-04
US16/150,794 US10607403B2 (en) 2017-10-04 2018-10-03 Shadows for inserted content
US16/150,794 2018-10-03
PCT/US2018/054360 WO2019070971A1 (en) 2017-10-04 2018-10-04 SHADOW GENERATION FOR IMAGE CONTENT INSERTED IN IMAGE

Publications (2)

Publication Number Publication Date
CN110709897A true CN110709897A (zh) 2020-01-17
CN110709897B CN110709897B (zh) 2024-01-02

Family

ID=65896860

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880037080.4A Active CN110709897B (zh) 2017-10-04 2018-10-04 用于插入到图像中的图像内容的阴影生成
CN201880037061.1A Active CN110692089B (zh) 2017-10-04 2018-10-04 用于生成插入的内容的阴影的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201880037061.1A Active CN110692089B (zh) 2017-10-04 2018-10-04 用于生成插入的内容的阴影的方法和系统

Country Status (5)

Country Link
US (3) US10679404B2 (zh)
EP (2) EP3692506A1 (zh)
JP (2) JP7008733B2 (zh)
CN (2) CN110709897B (zh)
WO (2) WO2019070969A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922878B2 (en) * 2017-10-04 2021-02-16 Google Llc Lighting for inserted content
DE112017008230T5 (de) * 2017-12-21 2020-08-13 Intel Corporation Verfahren und vorrichtung zum abbilden einer virtuellen umgebung auf eine physische umgebung
US10997781B1 (en) * 2017-12-27 2021-05-04 Disney Enterprises, Inc. Systems and methods of real-time ambient light simulation based on generated imagery
TWI715903B (zh) * 2018-12-24 2021-01-11 財團法人工業技術研究院 動作追蹤系統及方法
US10846834B2 (en) * 2019-02-20 2020-11-24 United States Of America As Represented By The Secretary Of The Navy Shadow brightening image enhancement
CA3045133C (en) * 2019-06-03 2023-03-21 Eidos Interactive Corp. Systems and methods for augmented reality applications
US20220237849A1 (en) * 2019-06-28 2022-07-28 Tobii Ab Method and system for reducing processor load in a computer
US11164367B2 (en) 2019-07-17 2021-11-02 Google Llc Illumination effects from luminous inserted content
KR102314008B1 (ko) * 2019-12-20 2021-10-18 네이버랩스 주식회사 증강 현실 기반 내비게이션 환경에서 객체의 그림자를 표시하기 위한 전자 장치 및 그의 동작 방법
EP4121947A1 (en) * 2020-03-17 2023-01-25 InterDigital CE Patent Holdings, SAS System and method for real-time ray tracing in a 3d environment
CN112184920B (zh) * 2020-10-12 2023-06-06 中国联合网络通信集团有限公司 基于ar的滑雪盲区显示方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6437782B1 (en) * 1999-01-06 2002-08-20 Microsoft Corporation Method for rendering shadows with blended transparency without producing visual artifacts in real time applications
US20030071822A1 (en) * 2001-10-17 2003-04-17 Lake Adam T. Generating a shadow for a three-dimensional model
US20110234631A1 (en) * 2010-03-25 2011-09-29 Bizmodeline Co., Ltd. Augmented reality systems
CN103198516A (zh) * 2011-11-29 2013-07-10 苹果公司 动态图形界面阴影
CN103988234A (zh) * 2011-12-12 2014-08-13 微软公司 经由透视显示器来显示阴影

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3667393B2 (ja) * 1995-08-04 2005-07-06 株式会社ナムコ 3次元ゲーム装置及び画像合成方法
JP4098882B2 (ja) * 1998-05-01 2008-06-11 株式会社日立製作所 仮想現実感生成装置及び方法
JP4443012B2 (ja) * 2000-07-27 2010-03-31 株式会社バンダイナムコゲームス 画像生成装置、方法および記録媒体
US6791563B2 (en) * 2001-09-18 2004-09-14 Bentley Systems, Incorporated System, method and computer program product for global rendering
JP3629243B2 (ja) * 2002-02-13 2005-03-16 Necマイクロシステム株式会社 モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法
JP2003331313A (ja) * 2002-05-14 2003-11-21 Konami Computer Entertainment Japan Inc 画像処理プログラム
JP4001227B2 (ja) 2002-05-16 2007-10-31 任天堂株式会社 ゲーム装置及びゲームプログラム
US6975318B2 (en) * 2002-06-25 2005-12-13 Intel Corporation Polygon binning process for tile-based rendering
JP4193979B2 (ja) * 2003-03-17 2008-12-10 任天堂株式会社 シャドウボリューム生成プログラム及びゲーム装置
JP3748451B1 (ja) * 2005-03-31 2006-02-22 株式会社ナムコ プログラム、情報記憶媒体、及び画像生成システム
US7589725B2 (en) 2006-06-30 2009-09-15 Microsoft Corporation Soft shadows in dynamic scenes
JP4941934B2 (ja) * 2007-06-08 2012-05-30 サミー株式会社 画像生成装置および画像生成プログラム
JP2010055131A (ja) * 2008-07-28 2010-03-11 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
US8537233B1 (en) * 2008-10-14 2013-09-17 Marvell International Ltd. Preventing color artifacts in overexposed regions and preserving maximum signals in near-overexposed regions of digital images
US9122053B2 (en) 2010-10-15 2015-09-01 Microsoft Technology Licensing, Llc Realistic occlusion for a head mounted augmented reality display
US9613461B2 (en) * 2012-12-10 2017-04-04 Sony Corporation Display control apparatus, display control method, and program
CN104408775B (zh) 2014-12-19 2017-04-26 哈尔滨工业大学 基于深度感知的三维皮影戏制作方法
CN107230249A (zh) * 2017-07-04 2017-10-03 北京像素软件科技股份有限公司 阴影渲染方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6437782B1 (en) * 1999-01-06 2002-08-20 Microsoft Corporation Method for rendering shadows with blended transparency without producing visual artifacts in real time applications
US20030071822A1 (en) * 2001-10-17 2003-04-17 Lake Adam T. Generating a shadow for a three-dimensional model
US20110234631A1 (en) * 2010-03-25 2011-09-29 Bizmodeline Co., Ltd. Augmented reality systems
CN103198516A (zh) * 2011-11-29 2013-07-10 苹果公司 动态图形界面阴影
CN103988234A (zh) * 2011-12-12 2014-08-13 微软公司 经由透视显示器来显示阴影

Also Published As

Publication number Publication date
CN110709897B (zh) 2024-01-02
US20200273238A1 (en) 2020-08-27
JP7008730B2 (ja) 2022-01-25
US10762694B1 (en) 2020-09-01
US20190102935A1 (en) 2019-04-04
US20190102934A1 (en) 2019-04-04
US10679404B2 (en) 2020-06-09
US10607403B2 (en) 2020-03-31
EP3692506A1 (en) 2020-08-12
EP3692505A1 (en) 2020-08-12
WO2019070969A1 (en) 2019-04-11
CN110692089B (zh) 2023-06-06
WO2019070971A1 (en) 2019-04-11
CN110692089A (zh) 2020-01-14
JP2020537200A (ja) 2020-12-17
JP2020537201A (ja) 2020-12-17
JP7008733B2 (ja) 2022-01-25

Similar Documents

Publication Publication Date Title
CN110709897B (zh) 用于插入到图像中的图像内容的阴影生成
US20200379576A1 (en) Context-sensitive hand interaction
US11043031B2 (en) Content display property management
US11430192B2 (en) Placement and manipulation of objects in augmented reality environment
JP5877219B2 (ja) 動き特性を使用することによるディスプレイへの三次元ユーザインターフェイス効果
US10922889B2 (en) Directing user attention
CN110692237B (zh) 用于照明插入内容的方法、系统和介质
CN111696190B (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