CN112053444B - 基于光通信装置叠加虚拟对象的方法和相应的电子设备 - Google Patents

基于光通信装置叠加虚拟对象的方法和相应的电子设备 Download PDF

Info

Publication number
CN112053444B
CN112053444B CN201910485788.2A CN201910485788A CN112053444B CN 112053444 B CN112053444 B CN 112053444B CN 201910485788 A CN201910485788 A CN 201910485788A CN 112053444 B CN112053444 B CN 112053444B
Authority
CN
China
Prior art keywords
information
virtual object
superimposed
optical communication
virtual
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
Application number
CN201910485788.2A
Other languages
English (en)
Other versions
CN112053444A (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.)
Beijing Whyhow Information Technology Co Ltd
Original Assignee
Beijing Whyhow Information Technology Co Ltd
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 Beijing Whyhow Information Technology Co Ltd filed Critical Beijing Whyhow Information Technology Co Ltd
Priority to CN201910485788.2A priority Critical patent/CN112053444B/zh
Priority to PCT/CN2020/094381 priority patent/WO2020244576A1/zh
Publication of CN112053444A publication Critical patent/CN112053444A/zh
Application granted granted Critical
Publication of CN112053444B publication Critical patent/CN112053444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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

Landscapes

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

Abstract

一种基于光通信装置叠加虚拟对象的方法和相应的电子设备,所述方法包括:获得光通信装置的标识信息,其中所述标识信息与一个或者多个虚拟对象相关联;确定所述设备相对于所述光通信装置的位置信息和姿态信息;通过所述标识信息、所述位置信息以及所述姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息,所述叠加信息包括所述虚拟对象相对于光通信装置的叠加位置信息;以及基于所述位置信息、所述姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象。

Description

基于光通信装置叠加虚拟对象的方法和相应的电子设备
技术领域
本发明属于增强现实或虚拟现实技术领域,尤其涉及一种基于光通信装置叠加虚拟对象的方法和相应的电子设备。
背景技术
本部分的陈述仅仅是为了提供与本发明相关的背景信息,以帮助理解本发明,这些背景信息并不一定构成现有技术。
近年来,增强现实(Augmented Reality,AR)和虚拟现实(Virtual Reality,VR)技术取得了长足的进展,并获得了越来越广泛的应用。
增强现实技术也被称为混合现实技术,其通过计算机技术将虚拟对象应用到现实场景,使得现实场景和虚拟对象实时地呈现到同一个画面或空间中,从而增强用户对现实世界的感知。由于增强现实技术具有能够对真实环境进行增强显示输出的特性,其在医疗研究与解剖训练、精密仪器制造和维修、军用飞机导航、工程设计和远程机器人控制等技术领域,获得了越来越广泛的应用并且具有明显的优势。在一种增强现实应用中,可以在视野中的固定位置处叠加一些数据信息,例如,飞行员在学习驾驶飞机的时候,可以通过佩戴显示头盔来查看在现实场景上叠加的飞行数据,这些数据通常都是显示在视野中的固定的位置处(例如,始终在左上角)。这种增强现实技术缺乏足够的灵活性。在另一种增强现实应用中,可以首先识别出现实场景中的真实物体,然后将虚拟对象叠加到屏幕上显示的该真实物体上或附近。但是,当前的增强现实技术难以做到在现实场景中的精确位置处叠加虚拟对象,特别是当虚拟对象的叠加位置与识别出的真实物体距离较远时。
虚拟现实技术是一种能够创建和体验虚拟世界的计算机仿真技术,它利用计算机生成一种交互式的虚拟场景,其实体行为的仿真系统能够使用户沉浸到该虚拟场景中。在该虚拟场景中,通常具有许多虚拟对象,这些虚拟对象的叠加位置或呈现位置通常会根据用户的位置或姿态的改变而改变。但是,当前的虚拟现实技术通常是基于设备内部的传感器(例如,加速度传感器、陀螺仪等)来跟踪用户的位置或姿态,这种方式存在误差,且误差会随着时间逐渐积累,导致难以根据用户的实际位置或姿态来准确地叠加虚拟对象。
发明内容
本发明的一个方面涉及一种使用具有图像采集功能的设备实现的基于光通信装置叠加虚拟对象的方法,包括:获得光通信装置的标识信息,其中所述标识信息与一个或者多个虚拟对象相关联;确定所述设备相对于所述光通信装置的位置信息和姿态信息;通过所述标识信息、所述位置信息以及所述姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息,所述叠加信息包括所述虚拟对象相对于光通信装置的叠加位置信息;以及基于所述位置信息、所述姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象。
可选地,其中,通过如下方式来确定所述待叠加的虚拟对象:使用所述位置信息和所述姿态信息从与所述标识信息相关联的所有虚拟对象中选择待叠加的虚拟对象。
可选地,其中,所述待叠加的虚拟对象是位于由所述位置信息和所述姿态信息确定的三维立体区域内的虚拟对象。
可选地,其中,所述由所述位置信息和所述姿态信息确定的三维立体区域包括使用所述位置信息、所述姿态信息以及视场角信息确定的三维立体区域,其中,所述视场角信息是默认的视场角信息或所述设备的视场角信息。
可选地,上述方法还包括:定期地或实时地重新确定所述设备相对于所述光通信装置的位置信息和姿态信息;通过重新确定的位置信息和姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息;以及基于所述重新确定的位置信息和姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象。
可选地,其中,所述设备相对于所述光通信装置的位置信息通过如下方式获得:所述设备通过采集包括光通信装置的图像并分析该图像来确定其相对于光通信装置的位置信息。
可选地,其中,所述设备相对于所述光通信装置的姿态信息通过如下方式获得:基于所述光通信装置在所述设备的显示媒介上的成像来确定所述设备相对于所述光通信装置的姿态信息。
可选地,其中,所述基于所述位置信息、所述姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象包括:基于所述叠加信息和所述设备相对于所述光通信装置的位置信息来确定所述虚拟对象相对于所述设备的位置信息;以及基于所述虚拟对象相对于所述设备的位置信息和所述姿态信息,在所述设备的显示媒介上呈现所述虚拟对象。
可选地,其中,所述基于所述位置信息、所述姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象包括:基于所述位置信息、所述姿态信息以及所述叠加信息确定待叠加的虚拟对象在所述设备的显示媒介上的成像位置和成像大小;以及基于所述成像位置和成像大小在所述设备的显示媒介上呈现所述虚拟对象。
可选地,其中,所述通过所述标识信息、所述位置信息以及所述姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息包括:通过所述标识信息、所述位置信息、所述姿态信息以及所述设备或其用户的相关信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息。
可选地,其中,所述虚拟对象的叠加位置信息包括所述虚拟对象上的多个点中的每个点的叠加位置信息。
可选地,其中,所述叠加信息还包括虚拟对象的叠加姿态信息或叠加时间信息。
可选地,其中,通过在所述设备的显示媒介上呈现所述虚拟对象,实现了所述虚拟对象在现实场景或虚拟场景中的叠加。
本发明的再一个方面涉及一种存储介质,其中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现上述的方法。
本发明的再一个方面涉及一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现上述的方法。
通过采用本发明的方法,实现了一种基于光通信装置在现实场景或虚拟场景中叠加虚拟对象的方法,其通过使用光通信装置作为锚点,能够在现实场景或虚拟场景中的精确位置处叠加虚拟对象。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1示出了一种示例性的光标签;
图2示出了一种示例性的光标签网络;
图3示出了根据一个实施例的基于光标签在现实场景中叠加虚拟对象的方法;
图4示出了根据另一个实施例的基于光标签在现实场景中叠加虚拟对象的方法;
图5示出了根据再一个实施例的基于光标签在现实场景中叠加虚拟对象的方法;
图6示出了根据一个实施例的在一个方向观察的叠加了虚拟对象后的现实场景;以及
图7示出了根据一个实施例的在另一个方向观察的叠加了虚拟对象后的现实场景。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
光通信装置也称为光标签,这两个术语在本文中可以互换使用。光标签能够通过发出不同的光来传递信息,其具有识别距离远、可见光条件要求宽松、指向性强的优势,并且光标签所传递的信息可以随时间变化,从而可以提供大的信息容量和灵活的配置能力。
光标签中通常可以包括控制器和至少一个光源,该控制器可以通过不同的驱动模式来驱动光源,以向外传递不同的信息。图1示出了一种示例性的光标签100,其包括三个光源(分别是第一光源101、第二光源102、第三光源103)。光标签100还包括控制器(在图1中未示出),其用于根据要传递的信息为每个光源选择相应的驱动模式。例如,在不同的驱动模式下,控制器可以使用不同的驱动信号来控制光源的发光方式,从而使得当使用具有图像采集功能的设备拍摄光标签100时,其中的光源的图像可以呈现出不同的外观(例如,不同的颜色、图案、亮度、等等)。通过分析光标签100中的光源的成像,可以解析出各个光源此刻的驱动模式,从而解析出光标签100此刻传递的信息。
为了基于光标签向用户提供相应的服务,每个光标签可以被分配一个标识信息(ID),该标识信息用于由光标签的制造者、管理者或使用者等唯一地识别或标识光标签。通常,可由光标签中的控制器驱动光源以向外传递该标识信息,而用户可以使用设备对光标签进行图像采集来获得该光标签传递的标识信息,从而可以基于该标识信息来访问相应的服务,例如,访问与光标签的标识信息相关联的网页、获取与标识信息相关联的其他信息(例如,与该标识信息对应的光标签的位置信息)、等等。本文提到的具有图像采集功能的设备例如可以是用户随身携带的移动设备(例如,带有摄像头的手机、平板电脑、智能眼镜、智能头盔、智能手表等等),也可以是能够自主移动的机器(例如,无人机、无人驾驶汽车、机器人等等)。设备例如可以通过其上的摄像头对光标签进行连续的图像采集来获得包含光标签的多张图像,并通过内置的应用程序来分析每张图像中的光标签(或光标签中的各个光源)的成像以识别出光标签传递的信息。
光标签可以安装于固定的位置,并可以将光标签的标识信息(ID)以及任何其他信息(例如位置信息)存储于服务器中。在现实中,可以将大量的光标签构建成一个光标签网络。图2示出了一种示例性的光标签网络,该光标签网络包括多个光标签和至少一个服务器,其中,与每个光标签相关的信息可保存在服务器上。例如,可以在服务器上保存每个光标签的标识信息(ID)或任何其他信息,例如与该光标签相关的服务信息、与该光标签相关的描述信息或属性,如光标签的位置信息、物理尺寸信息、物理形状信息、姿态或朝向信息等。设备可以使用识别出的光标签的标识信息来从服务器查询获得与该光标签有关的其他信息。光标签的位置信息可以是指该光标签在物理世界中的实际位置,其可以通过地理坐标信息来指示。服务器可以是在计算装置上运行的软件程序、一台计算装置或者由多台计算装置构成的集群。光标签可以是离线的,也即,光标签不需要与服务器进行通信。当然,可以理解,能够与服务器进行通信的在线光标签也是可行的。
可以将光标签作为锚点,来实现虚拟对象到现实场景或虚拟场景中的叠加。虚拟对象例如可以是图标、图片、文字、表情符号、虚拟的三维物体、三维场景模型、一段动画、一段视频、一个可跳转的网页链接、等等。在下文中,以在现实场景中叠加虚拟对象为例进行了说明,但需要说明的是,这并非限制,本发明的方案同样适用于在虚拟场景中叠加虚拟对象。在一个实施例中,可以不依赖于光标签来呈现虚拟场景,并以摄像头视野中的光标签为锚点来在这个虚拟场景中叠加其他虚拟对象。在另一个实施例中,也可以以光标签为锚点来呈现虚拟场景并进一步在该虚拟场景中叠加其他虚拟对象。例如,可以基于光标签的位置和/或姿态等来确定所呈现的虚拟场景的位置和/或姿态等,虚拟场景本身可以被看作一个虚拟对象并可以以本发明的方案进行叠加或呈现。
图3示出了根据一个实施例的基于光标签在现实场景中叠加虚拟对象的方法,该方法包括如下步骤:
步骤301:设备获得光标签的标识信息。
例如,设备可以通过采集并分析光标签的图像,来识别出光标签传递的其标识信息。该标识信息可以与一个或多个虚拟对象相关联。
步骤302:设备使用光标签的标识信息进行查询,以获得待叠加的虚拟对象以及所述虚拟对象的叠加信息,该叠加信息包括叠加位置信息。
设备在识别出光标签的标识信息之后,可以使用该标识信息向服务器发出查询请求。在服务器处可以预先存储与该光标签相关的信息,其例如可以包括光标签的标识信息、与该光标签(或光标签的标识信息)相关联的一个或多个虚拟对象的描述信息、每个虚拟对象的叠加位置信息、等等。虚拟对象的描述信息是用于描述该虚拟对象的相关信息,例如可以包括虚拟对象中包含的图片、文字、图标、虚拟对象的标识信息、形状信息、颜色信息、尺寸信息、等等。基于该描述信息,设备可以呈现出相应的虚拟对象。虚拟对象的叠加位置信息可以是相对于光标签的位置信息(例如,虚拟对象的叠加位置相对于光标签的距离信息和相对于光标签的方向信息),其用于指示虚拟对象的叠加位置。设备通过向服务器发出查询请求,可以获得要在设备当前呈现的现实场景中叠加的虚拟对象的描述信息以及该虚拟对象的叠加信息。在一个实施例中,在服务器处存储的虚拟对象描述信息可以仅仅是虚拟对象的标识信息,设备在获得该标识信息后,可以使用该标识信息在设备本地或从第三方获得用于虚拟对象的呈现的更为详细的描述信息。在一个实施例中,虚拟对象的叠加信息还可以包括虚拟对象的叠加姿态信息或叠加时间信息,该叠加姿态信息可以是虚拟对象相对于光标签的姿态信息,也可以是其在现实世界的坐标系中的姿态信息。
需要说明的是,为了确定虚拟对象的叠加姿态,并非必须使用虚拟对象的叠加姿态信息,而是也可以使用虚拟对象的叠加位置信息来确定虚拟对象的叠加姿态。例如,对于一个虚拟对象,可以确定其上的若干个点的叠加位置信息,这些不同的点的叠加位置信息能够用于确定该虚拟对象相对于光标签的姿态或者在现实世界坐标系中的姿态。
在一个实施例中,可以基于现实世界中位于光标签附近的其他物体相对于光标签的位置来确定虚拟对象的叠加位置信息,例如,可以将虚拟对象相对于光标签的位置确定为某个物体相对于光标签的位置,或者可以将虚拟对象相对于光标签的位置确定为位于某个物体相对于光标签的位置附近,如此,在叠加虚拟对象时,这些虚拟对象可以覆盖现实场景中的物体,或者可以在这些物体周围或附近呈现相关的虚拟对象,从而实现精确的增强现实效果。
步骤303:设备确定其相对于光标签的位置信息。
设备可以采用各种方式来确定其相对于光标签的位置信息,该相对位置信息可以包括设备相对于光标签的距离信息和方向信息。通常情况下,设备相对于光标签的位置信息实际上是设备的图像采集器件相对于光标签的位置信息。在一个实施例中,设备可以通过采集包括光标签的图像并分析该图像来确定其相对于光标签的位置信息。例如,设备可以通过图像中的光标签成像大小以及可选的其他信息(例如,光标签的实际物理尺寸信息、设备的摄像头的焦距)来确定光标签与识别设备的相对距离(成像越大,距离越近;成像越小,距离越远)。设备可以使用光标签的标识信息从服务器获得光标签的实际物理尺寸信息,或者光标签可以具有统一的物理尺寸并在设备上存储该物理尺寸。设备可以通过包括光标签的图像中的光标签成像的透视畸变以及可选的其他信息(例如,光标签的成像位置),来确定设备相对于光标签的方向信息。设备可以使用光标签的标识信息从服务器获得光标签的物理形状信息,或者光标签可以具有统一的物理形状并在设备上存储该物理形状。在一个实施例中,设备也可以通过其上安装的深度摄像头或双目摄像头等来直接获得光标签与识别设备的相对距离。设备也可以采用现有的任何其他定位方法来确定其相对于光标签的位置信息。
步骤304:设备确定其姿态信息。
设备可以确定其姿态信息,该姿态信息可以用于确定设备拍摄的现实场景的范围或边界。通常情况下,设备的姿态信息实际上是设备的图像采集器件的姿态信息。在一个实施例中,设备可以确定其相对于光标签的姿态信息,例如,设备可以根据光标签的成像来确定其相对于光标签的姿态信息,当光标签的成像位置或成像区域位于设备成像视野的中心时,可以认为设备当前正对着光标签。在确定设备的姿态时可以进一步考虑光标签的成像的方向。随着设备的姿态发生改变,光标签在设备上的成像位置和/或成像方向会发生相应的改变,因此,可以根据光标签在设备上的成像来获得设备相对于光标签的姿态信息。
在一个实施例中,也可以以如下方式来确定设备相对于光标签的位置和姿态信息(可以统称为位姿信息)。具体地,可以根据光标签建立一个坐标系,该坐标系可以被称为光标签坐标系。可以将光标签上的一些点确定为在光标签坐标系中的一些空间点,并且可以根据光标签的物理尺寸信息和/或物理形状信息来确定这些空间点在光标签坐标系中的坐标。光标签上的一些点例如可以是光标签的外壳的角、光标签中的光源的端部、光标签中的一些标识点、等等。根据光标签的物体结构特征或几何结构特征,可以在设备相机拍摄的图像中找到与这些空间点分别对应的像点,并确定各个像点在图像中的位置。根据各个空间点在光标签坐标系中的坐标以及对应的各个像点在图像中的位置,结合设备相机的内参信息,可以计算得到拍摄该图像时设备相机在光标签坐标系中的位姿信息(R,t),其中R为旋转矩阵,其可以用于表示设备相机在光标签坐标系中的姿态信息,t为位移向量,其可以用于表示设备相机在光标签坐标系中的位置信息。计算R、t的方法在现有技术中是已知的,例如,可以利用3D-2D的PnP(Perspective-n-Point)方法来计算R、t,为了不模糊本发明,在此不再详细介绍。旋转矩阵R和位移向量t实际上可以描述如何将某个点的坐标在光标签坐标系和设备相机坐标系之间转换。例如,通过旋转矩阵R和位移向量t,可以将某个点在光标签坐标系中的坐标转换为在设备相机坐标系中的坐标,并可以进一步转换为图像中的像点的位置。如此,对于具有多个特征点(虚拟对象的轮廓上的多个点)的虚拟对象,可以在该虚拟对象的叠加信息中包括该多个特征点在光标签坐标系中的坐标(也即,相对于光标签的位置信息),基于多个特征点在光标签坐标系中的坐标,可以确定这些特征点在设备相机坐标系中的坐标,从而可以确定这些特征点在设备上的各自成像位置。虚拟对象的多个特征点的各自成像位置一旦确定,就可以相应地确定出该虚拟对象整体的成像的位置、大小、或姿态等。
步骤305:基于虚拟对象的叠加信息、设备相对于光标签的位置信息、设备的姿态信息,在设备的显示媒介上呈现所述虚拟对象,从而在现实场景中叠加所述虚拟对象。
虚拟对象的叠加位置信息体现了待叠加的虚拟对象相对于光标签的位置信息。在通过上述步骤获得了虚拟对象的叠加位置信息和设备相对于光标签的位置信息之后,实际上可以创建出以光标签为原点的三维空间坐标系,其中,设备和待叠加的虚拟对象均具有在该坐标系中的准确的空间坐标。在一个实施例中,也可以基于虚拟对象的叠加位置信息和设备相对于光标签的位置信息来确定待叠加的虚拟对象相对于设备的位置信息。在上述基础上,可以基于设备的姿态信息在现实场景中叠加该虚拟对象。例如,可以基于设备和待叠加的虚拟对象的相对距离来确定待叠加的虚拟对象的成像大小,可以基于设备和待叠加的虚拟对象的相对方向和设备的姿态信息来确定待叠加的虚拟对象在设备上的成像位置。基于该成像位置和成像大小,可以在现实场景中实现虚拟对象的准确叠加。在一个实施例中,待叠加的虚拟对象可以具有默认的成像大小,在这种情况下,可以仅确定待叠加的虚拟对象在设备上的成像位置,而不确定其成像大小。在叠加信息包括虚拟对象的叠加姿态信息的情况下,可以进一步确定所叠加的虚拟对象的姿态。在一个实施例中,可以根据上文所计算的设备(更准确地说,该设备的相机)相对于光标签的位姿信息(R,t)来确定待叠加的虚拟对象在设备上的成像的位置、大小或姿态等。在一种情况下,如果确定待叠加的虚拟对象当前不在设备的视野中(例如,虚拟对象的成像位置在显示屏幕之外),则不显示虚拟对象。
在上述实施例中,光标签实际上被用作了锚点,基于该锚点,实现了虚拟对象在现实场景中的精确叠加。而且,即使虚拟对象的叠加位置与光标签距离较远时,也可以实现精确叠加。
在一个实施例中,设备可以使用各种可行的方式来呈现现实场景。例如,设备可以通过摄像头采集现实世界的信息并使用上述信息在显示屏幕上再现出现实场景,虚拟对象的图像可以被叠加在该显示屏幕上。设备(例如智能眼镜)也可以不通过显示屏幕来再现现实场景,而是可以简单地通过棱镜、透镜、反射镜、透明物体(例如玻璃)等来再现现实场景,虚拟对象的图像可以被光学地叠加到该现实场景中。上述显示屏幕、棱镜、透镜、反射镜、透明物体等可以统称为设备的显示媒介,虚拟对象可以被呈现在该显示媒介上。例如,在一种光学透视式增强现实设备中,用户通过特定的透镜观察到现实场景,同时该透镜可以将虚拟对象的成像反射到用户的眼中。在一个实施例中,设备的用户可以直接观察到现实场景或其部分,该现实场景或其部分在被用户的眼睛观察到之前不需要经过任何媒介进行再现,并且虚拟对象可以被光学地叠加到该现实场景中。因此,现实场景或其中的部分在被用户的眼睛观察到之前并不一定需要通过设备来呈现或再现。
在叠加了虚拟对象之后,设备可能会发生平移和/或旋转,在这种情况下,可以使用本领域已知的方法(例如,诸如手机之类的终端设备可使用其内置的加速度传感器、陀螺仪、视觉里程计等)来测量其位置变化以及姿态变化,从而对虚拟对象的显示进行调整,例如,改变其成像位置、成像大小、观察角度、虚拟对象进入设备视野、虚拟对象离开设备视野、等等。这在本领域中是已知的,不再赘述。但是,由于设备内置传感器的精度问题,和某些场景下纹理特征的缺失(例如:光线不好的黑夜,无纹理特征的白墙,蓝天等),现有技术采用的通过内置传感器或视觉里程计跟踪设备位置和姿态的方法易引起所叠加的虚拟对象的漂移。例如,在设备经过了一段时间的平移和/或旋转之后,当虚拟对象再次出现在视野中时,会发现其当前的叠加位置偏离了初始的叠加位置。这种偏离通常会随着时间的过去而越来越严重。
在一个实施例中,设备可以重新(例如,当光标签离开设备视野后重新进入设备视野时,或者在光标签保持在设备视野中的情况下每隔一定时间)确定其相对于光标签的位置信息以及其相对于光标签的姿态信息,并基于虚拟对象的叠加位置信息、设备相对于光标签的位置信息、设备相对于光标签的姿态信息,重新确定虚拟对象的成像位置和/或成像大小,从而校正所述虚拟对象在现实场景中的叠加。例如,如果设备当前显示的虚拟对象的成像位置或成像大小与重新确定的成像位置或成像大小存在差异或者差异超过预设阈值,设备可以根据重新确定的成像位置和成像大小来叠加虚拟对象。如此,可以避免叠加的虚拟对象的位置随着设备的转动或移动而发生漂移。
在某些情况下,可能存在与光标签关联的多个虚拟对象,并且在叠加这些虚拟对象时可能会出现重叠、遮挡等情形。在一个实施例中,当叠加多个虚拟对象时可以考虑这些虚拟对象之间的重叠、遮挡等情形,并且仅在现实场景中叠加或呈现未被遮挡的虚拟对象或者虚拟对象的未被遮挡的部分。在另一个实施例中,也可以考虑将遮挡其他虚拟对象的虚拟对象或其部分设置为半透明,并且也叠加或呈现被遮挡的虚拟对象或其部分,从而使得设备用户能够观察到所有虚拟对象。
在一个实施例中,在叠加虚拟对象时,设备可以根据需要仅叠加其当前视野范围内的一部分虚拟对象,而非视野范围内的所有虚拟对象。例如,对于一些叠加位置与设备位置非常接近的虚拟对象,如果在设备观察到的现实场景中叠加该虚拟对象,该虚拟对象可能会显示为具有非常大的尺寸(近大远小),并会遮挡大量其他物体,从而影响设备用户的使用体验。对于一些叠加位置与设备位置相距非常远的虚拟对象,如果在设备观察到的现实场景中叠加该虚拟对象,该虚拟对象可能会显示为具有非常小的尺寸而难于观察,并不需要叠加。对于一些位于设备视野范围边缘处的虚拟对象,或者一些被实际物体或其他虚拟对象遮挡或部分遮挡的虚拟对象,也可以不进行叠加。
在一个实施例中,在叠加了虚拟对象之后,设备或其用户可以对该虚拟对象执行操作,以改变虚拟对象的属性。例如,设备或其用户可以移动虚拟对象的位置、改变虚拟对象的姿态、改变虚拟对象的大小或颜色、在虚拟对象上添加标注、等等。在一个实施例中,在设备或其用户改变了虚拟对象的属性之后,可以把虚拟对象的修改后的属性信息上传到服务器。服务器可以基于修改后的属性信息来修改其存储的虚拟对象的描述信息和叠加信息。如此,当之后其他用户使用其设备扫描光标签时,可以在现实场景中叠加修改后的虚拟对象。
在一个实施例中,为了提高虚拟对象叠加的灵活性、可定制性,可以为不同的设备或设备用户定制不同的虚拟对象。图4示出了根据另一个实施例的基于光标签在现实场景中叠加虚拟对象的方法,该方法包括如下步骤(部分步骤与图3中的步骤类似,在此不再详细解释):
步骤401:设备获得光标签的标识信息。
步骤402:设备使用光标签的标识信息以及所述设备或其用户的相关信息进行查询,以获得待叠加的虚拟对象以及所述虚拟对象的叠加信息,该叠加信息包括叠加位置信息。
设备的相关信息例如可以是设备自身的标识信息,设备的用户的相关信息例如可以是用户的标识信息。设备在识别出光标签的标识信息之后,可以使用该标识信息和所述设备或其用户的相关信息向服务器发出查询请求。服务器在接收到查询请求后,可以基于光标签的标识信息和设备或其用户的相关信息,向设备发送一个或多个虚拟对象的描述信息以及每个虚拟对象的叠加信息。在一个实施例中,虚拟对象的叠加信息还可以包括虚拟对象的叠加姿态信息或叠加时间信息。
步骤403:设备确定其相对于光标签的位置信息。
步骤404:设备确定其姿态信息。
步骤405:基于虚拟对象的叠加信息、设备相对于光标签的位置信息、设备的姿态信息,在设备的显示媒介上呈现所述虚拟对象,从而在现实场景中叠加所述虚拟对象。
如此,可以在相同的现实场景中为不同的设备或用户叠加不同的虚拟对象,这是非常有利的。例如,在机器人控制领域,在同一场所中可能存在不同的机器人,这些机器人被设计用于沿着不同的路线执行不同的任务或功能。通过采用图4所示的方法,可以在相同的现实场景中为不同的机器人叠加不同的虚拟对象,以分别辅助这些机器人的行进或操作。
在某些情况下,当用户设备使用光标签的标识信息查询要叠加的虚拟对象时,可能并不需要向其发送与该光标签关联的所有虚拟对象,也可能并不需要在设备上呈现位于设备视野范围内的所有虚拟对象,而是可以仅呈现适合设备当前位置和姿态的一个或多个虚拟对象,例如,仅呈现位于设备视野范围内并且距离适中的虚拟对象,或者仅呈现位于设备视野范围的中心区域附近的虚拟对象,或者仅呈现未被遮挡或覆盖的虚拟对象,等等。另外,如果与光标签关联的虚拟对象比较多,则当设备使用光标签的标识信息进行查询以确定待叠加的虚拟对象以及所述虚拟对象的叠加信息时,可能涉及从服务器到设备的大量的数据传输。例如,服务器可能需要向设备传输与该光标签关联的所有虚拟对象的描述信息、叠加信息(例如,叠加位置信息、叠加姿态信息、叠加时间信息)、等等,这会增加通信负担,增大延迟,并且影响用户的交互体验,这种问题在虚拟对象很多或者虚拟对象本身比较复杂的情况下尤为严重。图5示出了根据再一个实施例的基于光标签在现实场景中叠加虚拟对象的方法,其能够避免或减轻上述问题。该方法包括如下步骤(部分步骤与图3中的步骤类似,在此不再详细解释):
步骤501:设备获得光标签的标识信息。
步骤502:设备确定其相对于光标签的位置信息和姿态信息。
设备可以以与步骤303和304类似的方式通过采集并分析包括光标签的图像来确定其相对于光标签的位置信息和姿态信息(可以一起称为位姿信息)。
步骤503:设备通过所述标识信息、所述位置信息以及所述姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息,所述叠加信息包括叠加位置信息。
设备在识别出光标签的标识信息并且获得了其相对于光标签的位置信息和姿态信息之后,可以将该标识信息、位置信息、姿态信息发送给服务器。服务器在接收到这些信息后,可以使用这些信息来确定要在设备处叠加的虚拟对象以及这些虚拟对象的叠加信息,叠加信息中可以包括叠加位置信息。例如,服务器可以首先根据标识信息来确定与该标识信息相关联的所有虚拟对象以及这些虚拟对象相对于光标签的位置信息,然后,服务器可以根据设备相对于光标签的位置信息和姿态信息,从这些虚拟对象中筛选出待叠加的虚拟对象,并将这些筛选出的虚拟对象的描述信息以及叠加信息发送给设备。
在一个实施例中,在确定待叠加的虚拟对象时,服务器可以根据设备的位置和姿态信息,确定在设备的图像采集器件所面对的方向的一个三维立体区域,并将该三维立体区域中的虚拟对象作为待叠加的虚拟对象。该三维立体区域可以根据需要被设定为各种形状,例如立方体、长方体、球体、椭球体、圆柱体、锥体、截锥体等。在判断虚拟对象是否在三维立体区域内时,可以以虚拟对象的整体、虚拟对象的任一部分、虚拟对象的中心、虚拟对象的叠加位置等为依据来判断其是否在三维立体区域内。在一个实施例中,服务器可以使用默认的视场角信息来确定出一个三维立体区域(该三维立体区域通常类似于一个从设备的图像采集器件向远方无限延伸的锥体),并将该三维立体区域内的虚拟对象作为待叠加的虚拟对象。在一个实施例中,服务器可以从设备接收或者以其他方式获得该设备的视场角信息,并使用该视场角信息来确定出设备实际的视野范围,并将该视野范围内的虚拟对象作为待叠加的虚拟对象。设备的视场角信息可能是由设备的图像采集器件和图像显示媒介两者共同确定的。
需要理解的是,一方面,服务器所确定的待叠加的虚拟对象不一定处于设备的视野范围内。例如,设备可能确定出若干目前不处于设备视野范围内的虚拟对象,这些虚拟对象当前并不会被叠加到设备的显示媒介上,但当设备发生平移和/或旋转时,可能会进入设备的视野范围而被叠加。另一方面,处于设备当前视野范围内的虚拟对象也不一定会被服务器确定为待叠加的虚拟对象。例如,对于一些叠加位置与设备位置非常接近的虚拟对象,如果在设备观察到的现实场景中叠加该虚拟对象,该虚拟对象可能会显示为具有非常大的尺寸(近大远小),并会遮挡大量其他物体,从而影响设备用户的使用体验。对于一些叠加位置与设备位置相距非常远的虚拟对象,如果在设备观察到的现实场景中叠加该虚拟对象,该虚拟对象可能会显示为具有非常小的尺寸而难于观察,因此并不需要叠加。对于一些被实际物体或其他虚拟对象遮挡或部分遮挡的虚拟对象,也可以不将其确定为待叠加的虚拟对象。
在一个实施例中,虚拟对象的叠加信息还可以包括虚拟对象的叠加姿态信息或叠加时间信息。
步骤504:设备基于所述位置信息、所述姿态信息以及所述叠加信息,在设备的显示媒介上呈现所述虚拟对象,从而在现实场景中叠加所述虚拟对象。
在一个实施例中,针对图5所示的方法,在确定待叠加的虚拟对象时,还可以进一步使用与所述设备或其用户相关的信息。
在根据图5所示的方法叠加了虚拟对象之后,设备可能会发生平移和/或旋转,致使其位置和/或姿态发生变化,从而,某些虚拟对象可能会移出设备视野范围并且另外一些虚拟对象可能会移入设备视野范围。为了跟踪设备的位置和/或姿态变化,可以定期地或实时地重新确定设备相对于光通信装置的位置信息和姿态信息。设备可以通过采集并分析包括光标签的图像来确定其相对于光标签的位置信息和姿态信息,设备也可以使用其内置的加速度传感器、陀螺仪、视觉里程计等来测量其位置变化以及姿态变化。重新确定的设备的位置信息和姿态信息可以被发送到服务器,以用来确定需要叠加的虚拟对象。服务器可以将所确定的需要叠加的虚拟对象的描述信息和叠加信息发送给设备。如果服务器之前已经将所确定的需要叠加的虚拟对象中的一些发送给了设备,则此时可以仅发送这些虚拟对象的标识信息。然后,设备可以基于所述重新确定的位置信息和姿态信息以及所述叠加信息,在通过设备观察到的现实场景中叠加所述虚拟对象。
图6示出了根据一个实施例的在一个方向观察的叠加了虚拟对象后的现实场景,图7示出了根据一个实施例的在另一个方向观察的叠加了虚拟对象后的现实场景。在图6和图7中示出了安装于房间墙壁上的一个光标签(包括三个条状光源),并且示出了在桌子上方叠加的一个虚拟对象,该虚拟对象是一个虚拟显示屏,其中可以显示图片、视频等。
在上文中,以在现实场景中叠加虚拟对象为例进行了说明,但可以理解,本发明的方案同样适用于在虚拟场景中叠加虚拟对象。在设备呈现或显示的虚拟场景中可以包括各种虚拟对象,例如虚拟的三维场景模型、虚拟物体、虚拟人物、等等。在叠加各种虚拟对象时,设备可以通过摄像头识别出光标签,并将该光标签作为锚点来叠加各种虚拟对象,通过这种方式,可以准确地跟踪用户的位置或姿态并准确地叠加各种虚拟对象。在虚拟场景中可以显示或不显示光标签或用于示出光标签的位置的图标或标识。
本文中提到的设备可以是用户携带的设备(例如,手机、平板电脑、智能眼镜、智能头盔、智能手表、等等),但是可以理解,该设备也可以是能够自主移动的机器,例如,无人机、无人驾驶汽车、机器人等。设备上可以安装有图像采集器件(例如摄像头)和显示媒介(例如显示屏)。
在本发明的一个实施例中,可以以计算机程序的形式来实现本发明。计算机程序可以存储于各种存储介质(例如,硬盘、光盘、闪存等)中,当该计算机程序被处理器执行时,能够用于实现本发明的方法。
在本发明的另一个实施例中,可以以电子设备的形式来实现本发明。该电子设备包括处理器和存储器,在存储器中存储有计算机程序,当该计算机程序被处理器执行时,能够用于实现本发明的方法。
本文中针对“各个实施例”、“一些实施例”、“一个实施例”、或“实施例”等的参考指代的是结合所述实施例所描述的特定特征、结构、或性质包括在至少一个实施例中。因此,短语“在各个实施例中”、“在一些实施例中”、“在一个实施例中”、或“在实施例中”等在整个本文中各处的出现并非必须指代相同的实施例。此外,特定特征、结构、或性质可以在一个或多个实施例中以任何合适方式组合。因此,结合一个实施例中所示出或描述的特定特征、结构或性质可以整体地或部分地与一个或多个其他实施例的特征、结构、或性质无限制地组合,只要该组合不是不符合逻辑的或不能工作。本文中出现的类似于“根据A”、“基于A”、“通过A”或“使用A”的表述意指非排他性的,也即,“根据A”可以涵盖“仅仅根据A”,也可以涵盖“根据A和B”,除非特别声明或者根据上下文明确可知其含义为“仅仅根据A”。在本申请中为了清楚说明,以一定的顺序描述了一些示意性的操作步骤,但本领域技术人员可以理解,这些操作步骤中的每一个并非是必不可少的,其中的一些步骤可以被省略或者被其他步骤替代。这些操作步骤也并非必须以所示的方式依次执行,相反,这些操作步骤中的一些可以根据实际需要以不同的顺序执行,或者并行执行,只要新的执行方式不是不符合逻辑的或不能工作。
由此描述了本发明的至少一个实施例的几个方面,可以理解,对本领域技术人员来说容易地进行各种改变、修改和改进。这种改变、修改和改进意于在本发明的精神和范围内。虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。

Claims (11)

1.一种使用具有图像采集功能的设备实现的基于光通信装置叠加虚拟对象的方法,包括:
设备通过采集并分析光通信装置的图像来获得该光通信装置传递的标识信息,其中所述标识信息与一个或者多个虚拟对象相关联;
确定所述设备相对于所述光通信装置的位置信息和姿态信息;
通过所述标识信息、所述位置信息以及所述姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息,所述叠加信息包括所述虚拟对象相对于光通信装置的叠加位置信息;
基于所述叠加信息、所述设备相对于光通信装置的位置信息、姿态信息确定待叠加的虚拟对象在所述设备的显示媒介上的成像位置和成像大小;以及
基于所述成像位置和成像大小在所述设备的显示媒介上呈现所述虚拟对象;
其中,所述待叠加的虚拟对象是位于由所述设备相对于所述光通信装置的位置信息和所述姿态信息确定的三维立体区域内的虚拟对象;
所述设备相对于所述光通信装置的位置信息通过如下方式获得:所述设备通过采集包括光通信装置的图像并分析该图像来确定其相对于光通信装置的位置信息;
所述设备相对于所述光通信装置的姿态信息通过如下方式获得:基于所述光通信装置在所述设备的显示媒介上的成像来确定所述设备相对于所述光通信装置的姿态信息。
2.根据权利要求1所述的方法,其中,所述待叠加的虚拟对象通过如下方式被确定:
使用所述设备相对于光通信装置的位置信息和所述姿态信息从与所述标识信息相关联的所有虚拟对象中选择待叠加的虚拟对象。
3.根据权利要求1所述的方法,其中,所述由所述设备相对于光通信装置的位置信息和所述姿态信息确定的三维立体区域包括使用所述设备相对于光通信装置的位置信息、所述姿态信息以及视场角信息确定的三维立体区域,其中,所述视场角信息是默认的视场角信息或所述设备的视场角信息。
4.根据权利要求1-3中任一项所述的方法,还包括:
定期地或实时地重新确定所述设备相对于所述光通信装置的位置信息和姿态信息;
通过重新确定的位置信息和姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息;以及
基于所述重新确定的位置信息和姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象。
5.根据权利要求1-3中任一项所述的方法,其中,基于所述设备相对于光通信装置的位置信息、所述姿态信息以及所述叠加信息,在所述设备的显示媒介上呈现所述虚拟对象包括:
基于所述叠加信息和所述设备相对于所述光通信装置的位置信息来确定所述虚拟对象相对于所述设备的位置信息;以及
基于所述虚拟对象相对于所述设备的位置信息和所述姿态信息,在所述设备的显示媒介上呈现所述虚拟对象。
6.根据权利要求1所述的方法,其中,所述通过所述标识信息、所述设备相对于光通信装置的位置信息以及所述姿态信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息包括:
通过所述标识信息、所述设备相对于光通信装置的位置信息、所述姿态信息以及所述设备或其用户的相关信息来获得待叠加的虚拟对象以及所述虚拟对象的叠加信息。
7.根据权利要求1-3中任一项所述的方法,其中,所述虚拟对象的叠加位置信息包括所述虚拟对象上的多个点中的每个点的叠加位置信息。
8.根据权利要求1-3中任一项所述的方法,其中,所述叠加信息还包括虚拟对象的叠加姿态信息或叠加时间信息。
9.根据权利要求1-3中任一项所述的方法,其中,通过在所述设备的显示媒介上呈现所述虚拟对象,实现了所述虚拟对象在现实场景或虚拟场景中的叠加。
10.一种存储介质,其中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现权利要求1-9中任一项所述的方法。
11.一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现权利要求1-9中任一项所述的方法。
CN201910485788.2A 2019-06-05 2019-06-05 基于光通信装置叠加虚拟对象的方法和相应的电子设备 Active CN112053444B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910485788.2A CN112053444B (zh) 2019-06-05 2019-06-05 基于光通信装置叠加虚拟对象的方法和相应的电子设备
PCT/CN2020/094381 WO2020244576A1 (zh) 2019-06-05 2020-06-04 基于光通信装置叠加虚拟对象的方法和相应的电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910485788.2A CN112053444B (zh) 2019-06-05 2019-06-05 基于光通信装置叠加虚拟对象的方法和相应的电子设备

Publications (2)

Publication Number Publication Date
CN112053444A CN112053444A (zh) 2020-12-08
CN112053444B true CN112053444B (zh) 2024-06-21

Family

ID=73609698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910485788.2A Active CN112053444B (zh) 2019-06-05 2019-06-05 基于光通信装置叠加虚拟对象的方法和相应的电子设备

Country Status (1)

Country Link
CN (1) CN112053444B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540542A (zh) * 2018-03-26 2018-09-14 湖北大学 一种移动增强现实系统及显示的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941749B1 (ko) * 2008-08-25 2010-02-11 에이알비전 (주) 증강 현실 장치 및 가상 이미지 합성 방법
US10026228B2 (en) * 2015-02-25 2018-07-17 Intel Corporation Scene modification for augmented reality using markers with parameters
CN107845132B (zh) * 2017-11-03 2021-03-02 太平洋未来科技(深圳)有限公司 虚拟对象色彩效果的渲染方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540542A (zh) * 2018-03-26 2018-09-14 湖北大学 一种移动增强现实系统及显示的方法

Also Published As

Publication number Publication date
CN112053444A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
US11887312B2 (en) Fiducial marker patterns, their automatic detection in images, and applications thereof
US11533489B2 (en) Reprojecting holographic video to enhance streaming bandwidth/quality
CN108292489B (zh) 信息处理装置和图像生成方法
CA2888943C (en) Augmented reality system and method for positioning and mapping
US10999412B2 (en) Sharing mediated reality content
JP6008397B2 (ja) 光学式シースルー型hmdを用いたarシステム
WO2015090421A1 (en) Method and system for providing information associated with a view of a real environment superimposed with a virtual object
JP2019124849A (ja) 頭部装着型表示装置、表示システム、及び、頭部装着型表示装置の制御方法
WO2019051228A1 (en) TRANSPARENT DISPLAY BASED ON A CAMERA
CN112558008B (zh) 基于光通信装置的导航方法、系统、设备及介质
CN112788443B (zh) 基于光通信装置的交互方法和系统
CN112053444B (zh) 基于光通信装置叠加虚拟对象的方法和相应的电子设备
CN112053451B (zh) 基于光通信装置叠加虚拟对象的方法和相应的电子设备
WO2021182124A1 (ja) 情報処理装置、及び情報処理方法
CN110769245A (zh) 一种校准方法及相关设备
CN111242107B (zh) 用于设置空间中的虚拟对象的方法和电子设备
CN111753565B (zh) 用于呈现与光通信装置有关的信息的方法和电子设备
WO2020244576A1 (zh) 基于光通信装置叠加虚拟对象的方法和相应的电子设备
TWI759764B (zh) 基於光通信裝置疊加虛擬物件的方法、電子設備以及電腦可讀取記錄媒體
CN112535392B (zh) 基于光通信装置的物品陈列系统和信息提供方法、设备及介质
CN112055034A (zh) 基于光通信装置的交互方法和系统
CN112417904B (zh) 用于呈现与光通信装置有关的信息的方法和电子设备
CN117234281A (zh) 数据处理方法、装置、电子设备、头戴设备及介质
CN117234282A (zh) 数据处理方法、装置、电子设备、头戴设备及介质
CN114827338A (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