CN115516406B - 使用生物数据进行的深度估计 - Google Patents
使用生物数据进行的深度估计 Download PDFInfo
- Publication number
- CN115516406B CN115516406B CN202180032389.6A CN202180032389A CN115516406B CN 115516406 B CN115516406 B CN 115516406B CN 202180032389 A CN202180032389 A CN 202180032389A CN 115516406 B CN115516406 B CN 115516406B
- Authority
- CN
- China
- Prior art keywords
- user
- data
- client device
- image
- biometric data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 28
- 230000003190 augmentative effect Effects 0.000 claims description 18
- 210000000988 bone and bone Anatomy 0.000 claims description 10
- 230000004048 modification Effects 0.000 description 35
- 238000012986 modification Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 21
- 230000009466 transformation Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 210000000887 face Anatomy 0.000 description 8
- 238000000844 transformation Methods 0.000 description 6
- 230000006855 networking Effects 0.000 description 5
- 230000001131 transforming effect Effects 0.000 description 5
- 230000001815 facial effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000007789 gas Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010079 rubber tapping Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000004266 retinal recognition Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/536—Depth or shape recovery from perspective effects, e.g. by using vanishing points
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B7/00—Mountings, adjusting means, or light-tight connections, for optical elements
- G02B7/28—Systems for automatic generation of focusing signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/024—Multi-user, collaborative environment
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
基于生物数据来生成深度估计的方法开始于服务器从与第一用户相关联的第一设备接收定位数据。第一设备基于对包括与第二设备相关联的第二用户的图像的数据流的分析来生成定位数据。服务器然后从第二设备接收第二用户的生物数据。生物数据基于来自包括在第二设备中的传感器或摄像装置的输出。服务器然后使用定位数据和第二用户的生物数据来确定第二用户与第一设备的距离。本文中描述了其他实施方式。
Description
优先权声明
本申请要求于2020年3月30日提交的美国临时申请序列号第63/002,128号的优先权权益,并且要求于2020年8月3日提交的美国专利申请序列号第16/983,751号的优先权权益,这两个美国申请通过引用整体并入本文中。
背景技术
增强现实(Augmented-Reality,AR)是对虚拟环境的修改。例如,在虚拟现实(Virtual Reality,VR)中,用户完全沉浸在虚拟世界中,而在AR中,用户则沉浸在虚拟对象与现实世界组合或叠加的世界中。AR系统旨在生成和呈现以下虚拟对象:这些虚拟对象与现实世界环境真实交互以及彼此之间进行交互。AR应用的示例可以包括单人或多人视频游戏、即时消息传送系统等。
附图说明
在附图(不一定按比例绘制)中,相似的附图标记可以在不同的视图中描述类似的部件。具有不同字母后缀的相似的附图标记可以表示类似的部件的不同实例。为了容易地识别对任何特定元件或动作的讨论,附图标记中的一个或更多个最高有效数字指代首先引入该元件的图号。在附图的各图中以示例而非限制的方式示出了一些实施方式,在附图中:
图1是根据一些示例实施方式的可以在其中部署本公开内容的联网环境的图形表示。
图2是根据一些示例实施方式的消息传送客户端应用的图形表示。
图3是根据一些示例实施方式的如在数据库中维护的数据结构的图形表示。
图4是根据一些示例实施方式的消息的图形表示。
图5是根据一个实施方式的用于基于生物数据来生成深度估计的过程500的流程图。
图6示出了根据一个实施方式的基于生物数据来生成深度估计的过程600。
图7示出了根据一个实施方式的第一用户(用户B)使用第一客户端设备102来捕获第二用户(用户A)的图像或视频的示例700。
图8示出了根据一个实施方式的使用包括在第一客户端设备102中的摄像装置捕获的图像的示例800。
图9是根据一些示例实施方式的呈计算机系统形式的机器的图形表示,在所述机器内可以执行指令的集合以使所述机器执行本文中讨论的方法中的任一种或更多种方法。
图10是示出根据示例实施方式的可以在其中实现本公开内容的软件架构的框图。
具体实施方式
以下描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施方式的理解。然而,对于本领域的技术人员来说将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。一般来说,公知的指令实例、协议、结构和技术不一定详细地示出。
此外,本公开内容的实施方式通过使用关于用户的生物数据来生成用户的深度估计,来改进增强现实(AR)创建软件和系统的功能。生成AR场景的第一个挑战是确认被跟踪的用户离正在跟踪用户的客户端设备有多远。
更具体地,第一用户可以正在观看第一客户端设备上显示的包括第二用户的AR场景。为了在第一设备上生成包括第二用户的AR场景,AR系统需要确定第二用户到第一客户端设备的距离,以便在AR场景中生成和呈现与第二用户(例如,现实世界元素)真实交互的虚拟对象。
在一个实施方式中,例如,当第一客户端设备执行使得实现增强第二用户的身体或衣服的增强现实体验的骨骼跟踪时,第二客户端设备发送第二用户的用于生成深度估计(例如,第二用户到第一客户端设备的距离)的已知生物数据。
在一个实施方式中,消息传送服务器系统接收来自第一客户端设备的定位数据和来自第二客户端设备的生物数据。消息传送服务器系统基于定位数据和/或生物数据来确定用户与第一客户端设备的距离。在另一实施方式中,第二客户端设备将生物数据发送至第一客户端设备,并且第一客户端设备基于定位数据和/或生物数据来确定用户与第一客户端设备的距离。
图1是示出用于通过网络交换数据(例如,消息和相关联内容)的示例消息传送系统100的框图。消息传送系统100包括客户端设备102的多个实例,实例中的每一个托管包括消息传送客户端应用104和AR会话客户端控制器124的多个应用。每个消息传送客户端应用104经由网络106(例如,因特网)通信地耦接至消息传送客户端应用104的其他实例和消息传送服务器系统108。每个AR会话客户端控制器124经由网络106通信地耦接至AR会话客户端控制器124的其他实例和消息传送服务器系统108中的AR会话服务器控制器126。
消息传送客户端应用104能够经由网络106与另一消息传送客户端应用104以及与消息传送服务器系统108进行通信和交换数据。在消息传送客户端应用104之间以及在消息传送客户端应用104与消息传送服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息传送服务器系统108经由网络106向特定的消息传送客户端应用104提供服务器端功能。虽然在本文中将消息传送系统100的某些功能描述为由消息传送客户端应用104或由消息传送服务器系统108执行,但是将某些功能定位在消息传送客户端应用104内或消息传送服务器系统108内是一种设计选择。例如,在技术上可能优选的是最初在消息传送服务器系统108内部署某些技术和功能,但是稍后将这些技术和功能迁移至其中客户端设备102具有足够处理能力的消息传送客户端应用104。
消息传送服务器系统108支持被提供至消息传送客户端应用104的各种服务和操作。这样的操作包括向消息传送客户端应用104发送数据、从消息传送客户端应用104接收数据以及处理由消息传送客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和实况事件信息。通过经由消息客户端应用104的用户界面(UI)可用的功能来调用和控制消息传送系统100内的数据交换。
AR会话客户端控制器124能够经由网络106与另一AR会话客户端控制器124和AR会话服务器控制器126进行通信和交换数据。在多个AR会话客户端控制器124之间以及在AR会话客户端控制器124与AR会话服务器控制器126之间交换的数据可以包括:定位数据、生物数据、深度估计(例如,用户与跟踪用户的客户端设备的距离)、创建共享AR会话的请求、数据流(图像或视频)中的用户标识、标识共享AR会话的会话标识符、第一设备与第二设备(例如,多个客户端设备102包括第一设备和第二设备)之间的变换(transformation)、公共坐标系、函数(例如,调用函数的命令)以及其他有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
现在具体转至消息传送服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由应用服务器112处理的消息相关联的数据的数据库120。
应用程序接口(API)服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供接口(例如,例程和协议)的集合,所述接口可以由消息传送客户端应用104调用或查询,以便调用应用服务器112的功能。应用程序接口(API)服务器110展现由应用服务器112支持的各种功能,包括帐户注册、登录功能、经由应用服务器112从特定消息传送客户端应用104向另一消息传送客户端应用104发送消息、从消息传送客户端应用104向消息传送服务器应用114发送媒体文件(例如,图像或视频)以及针对另一消息传送客户端应用104的可能访问而进行的对媒体数据的集合(例如,故事)的设置、客户端设备102的用户的好友列表的检索、这样的集合的检索、消息和内容的检索、向社交图添加和删除好友、社交图内好友的位置以及打开应用事件(例如,涉及消息传送客户端应用104)。
应用服务器112托管多个应用和子系统,包括消息传送服务器应用114、图像处理系统116和社交网络系统122。消息传送服务器应用114实现许多消息处理技术和功能,尤其涉及包括在从消息传送客户端应用104的多个实例接收到的消息中的内容(例如,文本和多媒体内容)的汇集和其他处理。如将更详细地描述的,来自多个源的文本和媒体内容可以被汇集成内容的集合(例如,被称为故事或库)。然后消息传送服务器应用114使这些集合可用于消息传送客户端应用104。鉴于用于这样的处理的硬件要求,消息传送服务器应用114还可以在服务器端执行其他处理器和存储器密集型的数据处理。
应用服务器112还包括专用于执行各种图像处理操作的图像处理系统116,所述图像处理操作通常针对在消息传送服务器应用114处的消息的有效载荷内接收到的图像或视频。
社交网络系统122支持各种社交联网功能服务,并且使这些功能和服务可用于消息传送服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图304(如图3所示)。由社交网络系统122支持的功能和服务的示例包括识别特定用户与之有关系或“关注”其的消息传送系统100的其他用户,以及还包括识别其他实体和特定用户的兴趣。
应用服务器112还包括AR会话服务器控制器126,AR会话服务器控制器126可以与客户端设备102中的AR会话客户端控制器124通信以建立单独的或共享的AR会话。AR会话服务器控制器126还可以耦接至消息传送服务器应用114以在共享AR会话中为客户端设备建立电子群组通信会话(例如,组聊天、即时消息传送)。电子群组通信会话可以与由客户端设备102提供以获得对电子群组通信会话和共享AR会话的访问的会话标识符相关联。在一个实施方式中,客户端设备首先获得对电子群组通信会话的访问,并且然后在电子群组通信会话中获得使得客户端设备能够访问共享AR会话的会话标识符。在一些实施方式中,客户端设备102能够在没有应用服务器112中的AR会话服务器控制器126的帮助或没有与应用服务器112中的AR会话服务器控制器126通信的情况下访问共享AR会话。
应用服务器112通信地耦接至数据库服务器118,这有助于访问其中存储有与由消息传送服务器应用114处理的消息相关联的数据的数据库120。
图2是示出根据示例实施方式的关于消息传送系统100的另外的细节的框图。具体地,消息传送系统100被示出为包括消息传送客户端应用104和应用服务器112,它们又包含多个一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
短暂定时器系统202负责实施对消息传送客户端应用104和消息传送服务器应用114所允许的内容的短暂访问。为此,短暂定时器系统202结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由消息传送客户端应用104访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成“事件库”或“事件故事”。可以使这样的集合在指定的时间段(例如内容所涉及的事件的持续时间)内可用。例如,可以使与音乐会有关的内容在该音乐会的持续期间作为“故事”可用。集合管理系统204还可以负责发布向消息传送客户端应用104的用户界面提供特定集合的存在性的通知的图标。
集合管理系统204还包括允许集合管理器管理和策展内容的特定集合的策展接口208。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容的集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付费用以使用其内容。
注释系统206提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与消息传送系统100处理的消息的媒体覆盖(media overlay)的生成和发布相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传送客户端应用104供应媒体覆盖或补充(例如,图像过滤器)。在另一示例中,注释系统206基于其他信息(例如客户端设备102的用户的社交网络信息)可操作地向消息传送客户端应用104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片之上的文本。在另一示例中,媒体覆盖包括位置标识(例如,威尼斯海滩)覆盖、实况事件的名称或商家名称(例如,海滩咖啡馆)覆盖。在另一示例中,注释系统206使用客户端设备102的地理位置来标识包括客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
在一个示例实施方式中,注释系统206提供基于用户的发布平台,该发布平台使得用户能够选择地图上的地理位置,并且上传与所选择的地理位置相关联的内容。用户还可以指定特定媒体覆盖应当被提供至其他用户的环境。注释系统206生成包括所上传的内容的媒体覆盖并且将所上传的内容与所选择的地理位置相关联。
在另一示例实施方式中,注释系统206提供基于商家的发布平台,该发布平台使得商家能够经由竞价过程来选择与地理位置相关联的特定媒体覆盖。例如,注释系统206将最高出价商家的媒体覆盖与对应的地理位置相关联达预定义时间量。
图3是示出根据某些示例实施方式的可以存储在消息传送服务器系统108的数据库120中的数据结构300的示意图。虽然数据库120的内容被示出为包括多个表,但是应当理解,数据可以以其他类型的数据结构进行存储(例如,作为面向对象的数据库)。
数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。其记录被维护在实体表302内的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,消息传送服务器系统108存储了其数据的任何实体都可以是被识别的实体。每个实体设置有唯一标识符、以及实体类型标识符(未示出)。
实体图304还存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于感兴趣的或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。
数据库120还以过滤器的示例形式将注释数据存储在注释表312中。其数据存储在注释表312内的过滤器与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并且应用于视频和/或图像。在一个示例中,过滤器是在呈现给接收者用户期间被显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型,包括当发送用户正在编写消息时由消息传送客户端应用104向发送用户呈现的来自过滤器的库中的用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的GPS单元确定的地理位置信息,消息传送客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置过滤器。另一类型的文件管理器是数据文件管理器,其可以由消息传送客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息来选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表308内的其他注释数据是增强现实内容项(例如,对应于应用镜头或增强现实体验)。增强现实内容项可以是可以添加至图像或视频的实时特殊效果和声音。
如上面所描述的,增强现实内容项、覆盖、图像变换、AR图像和类似术语指代可以对视频或图像进行的修改。这包括实时修改,即在使用设备传感器捕获图像时修改图像,然后利用所述修改将图像显示在设备的屏幕上。这还包括对存储内容例如库中可以修改的视频剪辑的修改。例如,在具有对多个增强现实内容项的访问的设备中,用户可以使用具有多个增强现实内容项的单个视频剪辑来查看不同的增强现实内容项将如何修改所存储的剪辑。例如,通过为内容选择不同的增强现实内容项,可以将应用不同伪随机运动模型的多个增强现实内容项应用于相同的内容。类似地,实时视频捕获可以与所示出的修改一起使用,以显示当前由设备的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容可以在有或没有修改(或两者)的情况下记录并存储在存储器中。在一些系统中,预览功能可以示出不同的增强现实内容项将如何同时在显示器中的不同窗口内查看。例如,这可以使得具有不同伪随机动画的多个窗口能够同时在显示器上被查看。
使用增强现实内容项或其他这样的变换系统来使用该数据修改内容的数据和各种系统因此可以涉及:对象(例如,面部、手、身体、猫、狗、表面、对象等)的检测;在这些对象离开、进入和在视频帧中围绕视场移动时跟踪这些对象;以及在跟踪这些对象时对这些对象进行修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同方法。例如,一些实施方式可以涉及生成一个或更多个对象的三维网格模型,并且使用视频内模型的变换和动画纹理来实现变换。在其他实施方式中,对对象上的点的跟踪可以用于将图像或纹理(其可以是二维或三维的)置于所跟踪的位置处。在又一另外的实施方式中,视频帧的神经网络分析可以用于将图像、模型或纹理置于内容(例如,图像或视频帧)中。因此,增强现实内容项既指代用于在内容中创建变换的图像、模型和纹理,也指代通过对象检测、跟踪和布置实现这样的变换所需的附加建模和分析信息。
可以用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。另外,任何对象例如人脸和人体的部位、动物、或者诸如椅子、汽车的非生物、或者其他对象都可以使用计算机动画模型进行处理。
在一些实施方式中,当特定修改与要变换的内容一起被选择时,要变换的元素由计算设备识别,然后检测和跟踪它们是否存在于视频的帧中。根据修改请求来修改对象的元素,从而变换视频流的帧。对于不同种类的变换,可以通过不同的方法对视频流的帧进行变换。例如,对于主要涉及改变对象元素的形式的帧的变换,计算对象的每个元素的特征点(例如,使用主动形状模型(Active Shape Model,ASM)或其他已知方法)。然后,为对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中对象的元素的下一阶段。在跟踪过程中,所提及的针对每个元素的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求为每个元素生成第一点的第一集合,并且基于所述第一点的集合和修改请求为每个元素生成第二点的集合。然后,可以通过根据第一点的集合和第二点的集合以及网格而修改对象的元素来变换视频流的帧。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲修改对象的背景。
在一个或更多个实施方式中,使用对象的元素改变对象的一些区域的变换可以通过计算对象的每个元素的特征点并基于计算出的特征点生成网格来执行。在网格上生成点,然后生成基于这些点的各种区域。然后通过将每个元素的区域与至少一个元素中的每个元素的位置对准来跟踪对象的元素,并且可以根据修改请求来修改区域的属性,从而变换视频流的帧。根据对上述区域的修改属性的具体要求,可以以不同的方式进行变换。这样的修改可以涉及:改变区域的颜色;从视频流的帧中去除至少一些部分区域;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于某些要动画的模型,可以选择一些特征点作为控制点,以用于确定模型动画选项的整个状态空间。
在用于使用面部检测来变换图像数据的计算机动画模型的一些实施方式中,通过特定面部检测算法(例如,Viola-Jones)的使用在图像上检测面部。然后,将主动形状模型(ASM)算法应用于图像的面部区域以检测面部特征参考点。
在其他实施方式中,可以使用适合于面部检测的其他方法和算法。例如,在一些实施方式中,使用界标来定位特征,该界标表示存在于所考虑的大多数图像中的可区分点。例如,对于面部界标,可以使用左眼瞳孔的位置。在初始界标不可识别(例如,如果一个人有眼罩)时,可以使用次要界标。这样的界标识别程序可以用于任何这样的对象。在一些实施方式中,一组界标形成形状。可以使用形状中点的坐标将形状表示为矢量。一个形状通过相似变换(允许平移、缩放和旋转)与另一形状对准,该相似变换使形状点之间的平均欧几里得距离最小化。平均形状是对准的训练形状的平均值。
在一些实施方式中,开始从与由全局面部检测器确定的面部的位置和尺寸对准的平均形状搜索界标。然后,这样的搜索重复以下步骤:通过经由每个点周围的图像纹理的模板匹配而调整形状点的位置来建议暂定形状,然后使暂定形状符合全局形状模型,直至发生收敛为止。在一些系统中,单个模板匹配是不可靠的,并且形状模型将弱模板匹配器的结果汇集在一起以形成更强的整体分类器。整个搜索在图像金字塔的每个级别上重复,从粗分辨率到细分辨率。
变换系统的实施方式可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像处理,同时保持合适的用户体验、计算时间和功率消耗。复杂的图像处理可以包括尺寸和形状变化、情绪转移(例如,将面部从皱眉变为微笑)、状态转移(例如,使对象变老、减少表观年龄、改变性别)、风格转移、图形元素应用、以及由已经被配置成在客户端设备102上有效执行的卷积神经网络实现的任何其他合适的图像或视频处理。
在一些示例实施方式中,用于变换图像数据的计算机动画模型可以被系统使用,在该系统中用户可以使用具有作为在客户端设备102上操作的消息传送客户端应用104的一部分操作的神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍照)。在消息传送客户端应用104内操作的变换系统确定图像或视频流内的面部的存在并且提供与计算机动画模型相关联的修改图标以对图像数据进行变换,或者计算机动画模型可以呈现为与本文中描述的界面相关联。修改图标包括可以是用于作为修改操作的一部分在图像或视频流内修改用户面部的基础的变化。一旦选择了修改图标,变换系统就发起一个过程来转换用户的图像以反映所选择的修改图标(例如,在用户身上生成一个笑脸)。在一些实施方式中,只要图像或视频流被捕获并且所指定的修改被选择,就可以在移动客户端设备上显示的图形用户界面中呈现经修改的图像或视频流。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,一旦已经选择了修改图标,用户就可以捕获图像或视频流并且实时地或接近实时地呈现修改结果。此外,当正在捕获视频流并且所选择的修改图标保持切换时,修改可以是持久的。机器学习的神经网络可以用于实现这样的修改。
在一些实施方式中,呈现由变换系统执行的修改的图形用户界面可以为用户提供附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的内容捕获和选择的界面(例如,从内容创建者用户界面发起)。在各种实施方式中,修改可以在对修改图标的初始选择之后是持久的。用户可以通过轻敲或以其他方式选择由变换系统修改的面部来打开或关闭修改,并且将该修改存储以供以后查看或浏览到成像应用的其他区域。在变换系统修改多个面部的情况下,用户可以通过轻敲或选择在图形用户界面内修改和显示的单个面部来全局打开或关闭修改。在一些实施方式中,可以单独修改一组多个面部中的单独面部,或者可以通过轻敲或选择图形用户界面内显示的单独面部或一系列单独面部来单独切换这样的修改。
如上面所提及的,视频表310存储视频数据,在一个实施方式中,视频数据与其记录被维护在消息表314中的消息相关联。类似地,图像表308存储与其消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
故事表306存储关于消息和相关联的图像、视频或音频数据的集合的数据,所述消息和相关联的图像、视频或音频数据被汇编成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录被维护在实体表302中的每个用户)发起。用户可以创建已经由该用户创建和发送/广播的内容的集合的形式的“个人故事”。为此,消息传送客户端应用104的用户界面可以包括用户可选择以使得发送用户能够将特定内容添加至他或她的个人故事的图标。
集合还可以构成“实况故事”,“实况故事”是被手动地、自动地或使用手动和自动技术的组合来创建的来自多个用户的内容的集合。例如,“实况故事”可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备具有启用的位置服务并且在特定时间处于共同位置事件的用户可以例如经由消息传送客户端应用104的用户界面被呈现有选项以向特定实况故事贡献内容。可以由消息传送客户端应用104基于用户的位置向用户标识实况故事。最终结果是从社群角度讲述的“实况故事”。
另一类型的内容集合被称为“位置故事”,“位置故事”使得其客户端设备102位于特定地理位置(例如,在大学或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要第二程度的认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
数据库120还可以在AR会话表316中存储与单独的和共享的AR会话有关的数据。AR会话表316中的数据可以包括在AR会话客户端控制器124和另一AR会话客户端控制器124之间通信的数据,以及AR会话客户端控制器124和AR会话服务器控制器126之间通信的数据。数据可以包括定位数据、生物数据、深度估计、数据流(图像或视频)中的用户标识、用于建立共享AR场景的公共坐标系的数据、设备之间的变换、会话标识等。
图4是示出根据一些实施方式的消息400的结构的示意图,该消息400由消息传送客户端应用104生成以传送至另一消息传送客户端应用104或消息传送服务器应用114。特定消息400的内容用于填充消息传送服务器应用114可访问的存储在数据库120内的消息表314。类似地,消息400的内容作为客户端设备102或应用服务器112的“运输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下部件:
·消息标识符402:标识消息400的唯一标识符。
·消息文本有效载荷404:要由用户经由客户端设备102的用户界面生成并且包括在消息400中的文本。
·消息图像有效载荷406:由客户端设备102的摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的图像数据。
·消息视频有效载荷408:由摄像装置部件捕获或从客户端设备102的存储器部件检索并且包括在消息400中的视频数据。
·消息音频有效载荷410:由麦克风捕获或从客户端设备102的存储器部件检索并且包括在消息400中的音频数据。
·消息注释412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,过滤器、贴纸或其他增强)。
·消息持续时间参数414:以秒为单位指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将被呈现或使得用户可经由消息传送客户端应用104访问的时间量的参数值。
·消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个参数值与包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
·消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
·消息标签420:每个消息400可以用多个标签来标记,多个标签中的每个标签指示包括在消息有效载荷中的内容的主题。例如,在包括在消息图像有效载荷406中的特定图像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
·消息发送者标识符422:指示在其上生成消息400并且从其发送消息400的客户端设备102的用户的标识符(例如,消息传送系统标识符、电子邮件地址或设备标识符)。
·消息接收者标识符424:指示消息400寻址到的客户端设备102的用户的标识符(例如,消息传送系统标识符、电子邮件地址或设备标识符)。
消息400的各个部件的内容(例如,值)可以是指向在其内存储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或地址)的指针。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
尽管以下流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。此外,可以重新安排操作的顺序。过程在其操作完成时终止。过程可以对应于方法、程序等。方法的步骤可以全部或部分执行、可以与其他方法中的部分或全部步骤结合执行,并且可以由任意数量的不同系统(诸如图1和/或图9中描述的系统)执行或该系统的任何部分(诸如包括在任何系统中的处理器)执行。
图5是根据一个实施方式的用于基于生物数据来生成深度估计的过程500的流程图。在一个实施方式中,过程500可以由消息传送服务器系统108中的AR会话服务器控制器126执行以确定第一客户端设备102与第二客户端设备102的用户(例如,第二用户)之间的距离。第一客户端设备102和第二客户端设备102可以被包括在共享AR会话中。在一个示例中,共享AR会话包括实时消息传送会话。
在操作502处,AR会话服务器控制器126从与第一用户相关联的第一客户端设备102接收定位数据。在一个实施方式中,第一客户端设备102基于对包括与第二客户端设备102相关联的第二用户的图像的数据流的分析来生成定位数据。数据流可以是第二用户的视频。例如,如图7所示,第一客户端设备102可以使用包括在第一客户端设备102中的摄像装置来捕获数据流或视频。如图8所示,摄像装置的视场(或摄像装置框架(camera frame))可以包括第二用户并且可以显示在第一客户端设备102的显示器上。在该实施方式中,第一客户端设备102可以使用骨骼跟踪来跟踪图像中的第二用户。在一个实施方式中,为了生成定位数据,第一客户端设备102识别摄像装置框架中第二用户的骨骼的位置或姿势。第一客户端设备102还可以通过识别摄像装置框架中第二用户的面部的位置或姿势来生成定位数据。在这个阶段,骨骼或面部的比例以及第二用户与第一用户(或第一客户端设备102)的距离可能是不明确的。例如,由于第一客户端设备102中缺少双目摄像装置或深度传感器,因此该距离可能是不明确的。
在操作504处,AR会话服务器控制器126从第二客户端设备102接收第二用户的生物数据。生物数据可以基于来自包括在第二设备中的传感器或摄像装置的输出。例如,生物数据可以基于由包括在第二客户端设备102中的摄像装置捕获的第二用户的图像。例如,可以由包括在第二客户端设备102中的前置摄像装置捕获第二用户的图像。第二客户端设备102还可以基于来自包括在第二客户端设备102中的深度传感器或双目摄像装置的输出来生成第二用户的生物数据。在一个实施方式中,第二用户的生物数据是第二用户的面部的尺寸。
在操作506处,AR会话服务器控制器126使用定位数据和第二用户的生物数据来确定第二用户与第一客户端设备102的距离。例如,使用定位数据,AR会话服务器控制器126可以确定数据流中第二用户的骨骼的位置,并且识别数据流中第二用户的面部。AR会话服务器控制器126可以使用包括第二用户面部的实际尺寸的生物数据来确定数据流中第二用户面部的尺寸与第二用户面部的实际尺寸之间的比率。然后AR会话服务器控制器126可以使用该比率来确定第二用户与第一客户端设备102的距离(例如,深度估计)。
通过确定数据流中第二用户的深度估计,第一客户端设备102能够例如生成包括要在显示在第一客户端设备102上的共享AR会话中应用于第一客户端设备102上的第二用户的图像的视觉或声音效果的增强用户体验。例如,视觉或声音效果可以包括要由第二用户穿戴的服装、要应用于第二用户面部的效果、要应用于第二用户的语音声音效果等。
图6示出了根据一个实施方式的基于生物数据来生成深度估计的过程600。在一个实施方式中,过程600可以由包括在第一客户端设备102中的AR会话客户端控制器124执行以确定第一客户端设备102与第二客户端设备102的用户(例如,第二用户)之间的距离。第一客户端设备102和第二客户端设备102可以被包括在共享AR会话中。在一个示例中,共享AR会话包括实时消息传送会话。
在操作602处,第一客户端设备102的AR会话客户端控制器124使用包括在第一客户端设备102中的摄像装置来捕获包括第二客户端设备102的用户的图像的数据流。如图7所示,第一用户(用户B)使用第一客户端设备102中的摄像装置捕获第二客户端设备102的第二用户(用户A)的图像或视频。数据流可以是第二用户(用户A)的视频。如图8所示,摄像装置的视场(或摄像装置框架)可以包括第二用户(用户A)并且可以显示在第一客户端设备102的显示器上。
在一个实施方式中,在操作604处,第一客户端设备102通过识别摄像装置框架中用户的骨骼或面部的位置或姿势来基于对数据流的分析生成定位数据。在该实施方式中,第一客户端设备102可以使用骨骼跟踪来跟踪图像中的用户。在这个阶段,骨骼或面部的比例以及用户与第一客户端设备102的距离可能是不明确的。例如,由于第一客户端设备102中缺少双目摄像装置或深度传感器,因此该距离可能是不明确的。
在操作606处,第一客户端设备102的AR会话客户端控制器124从第二客户端设备102接收用户的生物数据。生物数据可以基于来自包括在第二客户端设备102中的传感器或摄像装置的输出。例如,生物数据可以基于由包括在第二客户端设备102中的摄像装置捕获的用户的图像。例如,用户的图像可以由包括在第二客户端设备102中的前置摄像装置捕获。第二客户端设备102还可以基于来自包括在第二客户端设备102中的深度传感器或双目摄像装置的输出来生成用户的生物数据。在一个实施方式中,用户的生物数据是用户的面部的尺寸。
在操作608处,第一客户端设备102的AR会话客户端控制器124使用定位数据和用户的生物数据来确定用户与第一设备的距离。例如,使用定位数据,AR会话服务器控制器126可以确定数据流中用户的骨骼的位置,并且识别数据流中用户的面部。AR会话服务器控制器126可以使用包括用户面部的实际尺寸的生物数据来确定数据流中用户面部的尺寸与用户面部的实际尺寸之间的比率。然后AR会话服务器控制器126可以使用该比率来确定用户与第一客户端设备102的距离(例如,深度估计)。
通过确定数据流中用户的深度估计,第一客户端设备102能够例如生成包括要在显示在第一客户端设备102上的共享AR会话中应用于第一客户端设备102上的用户的图像的视觉或声音效果的增强用户体验。例如,视觉或声音效果可以包括要由第二用户穿戴的服装、要应用于第二用户面部的效果、要应用于第二用户的语音声音效果等。
图7示出了根据一个实施方式的第一用户(用户B)使用第一客户端设备102来捕获第二用户(用户A)的图像或视频的示例700。如图7所示,第二用户(用户A)可以与第二客户端设备102相关联。例如,第二用户(用户A)在图7中正持有第二客户端设备102。第二客户端设备102生成与第二用户(用户A)相关联的生物数据,并且将生物数据发送至消息传送服务器系统108中的AR会话服务器控制器126和/或发送至第一客户端设备102中的AR会话客户端控制器124。
图8示出了根据一个实施方式的使用包括在第一客户端设备102中的摄像装置捕获的图像的示例800。图8中的图像示出了在第一客户端设备102的摄像装置的视场内的第二用户(用户A)。在一个实施方式中,包括第二用户(用户A)的、包括在第一客户端设备102中的摄像装置框架或摄像装置的视场显示在第一客户端设备102的显示器上。
图9是机器900的图形表示,在该机器900内可以执行用于使机器900执行本文中讨论的方法中的任一种或更多种方法的指令908(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令908可以使机器900执行本文中描述的方法中的任一种或更多种方法。指令908将通用的未编程的机器900变换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器900。机器900可以作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器900可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器900可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器900采取的动作的指令908的任何机器。此外,虽然仅示出了单个机器900,但是术语“机器”还应被视为包括单独或联合执行指令908以执行本文中讨论的方法中的任一种或更多种方法的机器的集合。
机器900可以包括处理器902、存储器904和I/O部件938,所述处理器902、存储器904和I/O部件938可以被配置成经由总线940彼此通信。在示例实施方式中,处理器902(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如执行指令908的处理器906和处理器910。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图9示出了多个处理器902,但是机器900可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
存储器904包括主存储器912、静态存储器914和存储单元916,所述主存储器912、静态存储器914和存储单元916均可由处理器902经由总线940访问。主存储器904、静态存储器914和存储单元916存储体现本文中描述的方法或功能中的任一种或更多种方法或功能的指令908。指令908还可以在其被机器900执行期间完全地或部分地驻留在主存储器912内、在静态存储器914内、在存储单元916内的机器可读介质918内、在处理器902中的至少一个处理器内(例如,在处理器的高速缓存存储器内)或其任何合适的组合内。
I/O部件938可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器中的特定I/O部件938将取决于机器的类型。例如,便携式机器诸如移动电话可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解,I/O部件938可以包括图9中未示出的许多其他部件。在各种示例实施方式中,I/O部件938可以包括用户输出部件924和用户输入部件926。用户输出部件924可以包括视觉部件(例如,显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。用户输入部件926可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在另外的示例实施方式中,I/O部件938可以包括生物识别部件928、运动部件930、环境部件932、或定位部件934以及各种其他部件。例如,生物识别部件928包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件930包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。环境部件932包括例如一个或更多个摄像装置(具有静态图像/照片和视频功能)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于出于安全考虑而检测危险气体的浓度或用于测量大气中的污染物的气体检测传感器)或可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件934包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以根据其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种技术来实现通信。I/O部件938还包括通信部件936,通信部件936可操作以经由相应的耦接或连接将机器900耦接至网络920或设备922。例如,通信部件936可以包括网络接口部件或与网络920对接的另一合适设备。在另外的示例中,通信部件936可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,低功耗)、部件以及经由其他形式提供通信的其他通信部件。设备922可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件936可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件936可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述项的光学传感器:一维条形码,例如通用产品代码(UPC)条形码;多维条形码,例如快速响应(QR)码、Aztec码、数据矩阵、数据图示符(Dataglyph)、最大编码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码和其他光学码)、或者听觉检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件936得到各种信息,例如经由因特网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
各种存储器(例如,主存储器912、静态存储器914和/或处理器902的存储器)和/或存储单元916可以存储一个或更多个指令集合和数据结构(例如,软件),所述一个或更多个指令集合和数据结构体现本文中描述的方法或功能中的任一种或更多种方法或功能或者由本文中描述的方法或功能中的任一种或更多种方法或功能使用。这些指令(例如,指令908)在由处理器902执行时使各种操作实现所公开的实施方式。
可以使用传输介质、经由网络接口设备(例如,包括在通信部件936中的网络接口部件)并使用若干公知的传输协议中的任一种传输协议(例如,超文本传输协议(HTTP))在网络920上发送或接收指令908。类似地,可以使用传输介质经由到设备922的耦接(例如,对等耦接)来发送或接收指令908。
图10是示出软件架构1004的框图1000,该软件架构1004可以安装在本文中描述的设备中的任一个或更多个设备上。软件架构1004由硬件例如包括处理器1020、存储器1026和I/O部件1038的机器1002支持。在该示例中,软件架构1004可以被概念化为层堆栈,其中每一层提供特定的功能。软件架构1004包括诸如操作系统1012、库1010、框架1008和应用1006的层。在操作上,应用1006通过软件堆栈来调用API调用1050并响应于API调用1050接收消息1052。
操作系统1012管理硬件资源并提供公共服务。操作系统1012包括例如内核1014、服务1016和驱动程序1022。内核1014充当硬件层与其他软件层之间的抽象层。例如,内核1014提供存储器管理、处理器管理(例如调度)、部件管理、网络和安全设置等功能。服务1016可以为其他软件层提供其他公共服务。驱动程序1022负责控制底层硬件或与底层硬件对接。例如,驱动程序1022可以包括显示器驱动程序、摄像装置驱动程序、驱动程序或低能耗驱动程序、闪速存储器驱动程序、串行通信驱动程序(例如,通用串行总线(USB)驱动程序)、驱动程序、音频驱动程序、电源管理驱动程序等。
库1010提供由应用1006使用的低级公共基础设施。库1010可以包括系统库1018(例如,C标准库),系统库1018提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。另外,库1010可以包括API库1024,例如媒体库(例如,用于支持各种媒体格式的呈现和操作的库,该媒体格式例如是运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)进行渲染的OpenGL框架)、数据库库(例如,用于提供各种关系数据库功能的SQLite)、web库(例如,用于提供web浏览功能的WebKit)等。库1010还可以包括各种各样的其他库1028以向应用1006提供许多其他API。
框架1008提供由应用1006使用的高级公共基础设施。例如,框架1008提供各种图形用户界面(GUI)功能、高级资源管理和高级定位服务。框架1008可以提供可以由应用1006使用的广泛的其他API,其中一些API可以特定于特定操作系统或平台。
在示例实施方式中,应用1006可以包括家庭应用1036、联系人应用1030、浏览器应用1032、书籍阅读器应用1034、位置应用1042、媒体应用1044、消息传送应用1046、游戏应用1048、以及诸如第三方应用1040的广泛分类的其他应用。e应用1006是执行程序中限定的功能的程序。可以采用各种编程语言来创建以各种方式结构化的一个或更多个应用1006,编程语言例如是面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C语言或汇编语言)。在特定示例中,第三方应用1040(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在诸如IOSTM、ANDROIDTM、Phone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用1040可以调用由操作系统1012提供的API调用1050以促进本文中描述的功能。
Claims (20)
1.一种方法,包括:
从与第一用户相关联的第一设备接收定位数据,所述第一设备基于对包括第二用户的图像的数据流的分析来生成所述定位数据,所述第二用户与第二设备相关联;
从所述第二设备接收所述第二用户的生物数据,所述生物数据基于来自包括在所述第二设备中的传感器或摄像装置的输出;以及
使用所述定位数据和所述第二用户的生物数据来确定所述第二用户与所述第一设备的距离。
2.根据权利要求1所述的方法,其中,所述数据流是所述第二用户的视频,其中,所述视频由包括在所述第一设备中的摄像装置捕获。
3.根据权利要求1所述的方法,其中,所述第一设备基于对所述数据流的分析来生成所述定位数据还包括:
所述第一设备识别摄像装置框架中所述第二用户的骨骼的位置或姿势。
4.根据权利要求1所述的方法,其中,所述第一设备基于对所述数据流的分析来生成所述定位数据还包括:
所述第一设备识别摄像装置框架中所述第二用户的面部的位置或姿势。
5.根据权利要求1所述的方法,其中,所述第二用户的生物数据是所述第二用户的面部的尺寸。
6.根据权利要求1所述的方法,其中,所述第二用户的生物数据基于来自包括在所述第二设备中的深度传感器或双目摄像装置的输出。
7.根据权利要求1所述的方法,其中,所述第一设备和所述第二设备被包括在共享增强现实会话中。
8.根据权利要求7所述的方法,其中,所述共享增强现实会话包括实时消息传送会话。
9.一种系统,包括:
处理器;以及
其上存储有指令的存储器,所述指令当由所述处理器执行时使所述系统执行包括以下的操作:
从与第一用户相关联的第一设备接收定位数据,所述第一设备基于对包括第二用户的图像的数据流的分析来生成所述定位数据,所述第二用户与第二设备相关联;
从所述第二设备接收所述第二用户的生物数据,所述生物数据基于来自包括在所述第二设备中的传感器或摄像装置的输出;以及
使用所述定位数据和所述第二用户的生物数据来确定所述第二用户与所述第一设备的距离。
10.根据权利要求9所述的系统,其中,所述数据流是所述第二用户的视频,其中,所述视频由包括在所述第一设备中的摄像装置捕获。
11.根据权利要求9所述的系统,其中,所述第一设备基于对所述数据流的分析来生成所述定位数据还包括:
所述第一设备识别摄像装置框架中所述第二用户的骨骼的位置或姿势。
12.根据权利要求9所述的系统,其中,所述第一设备基于对所述数据流的分析来生成所述定位数据还包括:
所述第一设备识别摄像装置框架中所述第二用户的面部的位置或姿势。
13.根据权利要求9所述的系统,其中,所述第二用户的生物数据是所述第二用户的面部的尺寸。
14.根据权利要求9所述的系统,其中,所述第二用户的生物数据基于来自包括在所述第二设备中的深度传感器或双目摄像装置的输出。
15.根据权利要求9所述的系统,其中,所述第一设备和所述第二设备被包括在共享增强现实会话中。
16.根据权利要求15所述的系统,其中,所述共享增强现实会话包括实时消息传送会话。
17.一种其上存储有指令的非暂态计算机可读存储介质,所述指令当由处理器执行时使所述处理器执行包括以下的操作:
从与第一用户相关联的第一设备接收定位数据,所述第一设备基于对包括第二用户的图像的数据流的分析来生成所述定位数据,所述第二用户与第二设备相关联;
从所述第二设备接收所述第二用户的生物数据,所述生物数据基于来自包括在所述第二设备中的传感器或摄像装置的输出;以及
使用所述定位数据和所述第二用户的生物数据来确定所述第二用户与所述第一设备的距离。
18.一种方法,包括:
使用包括在第一设备中的摄像装置来捕获包括第二设备的用户的图像的数据流;
由所述第一设备通过识别摄像装置框架中所述用户的骨骼或面部的位置或姿势来基于对所述数据流的分析生成定位数据;
由所述第一设备从所述第二设备接收所述用户的生物数据,所述生物数据基于来自包括在所述第二设备中的传感器或摄像装置的输出;以及
由所述第一设备使用所述定位数据和所述用户的生物数据来确定所述用户与所述第一设备的距离。
19.根据权利要求18所述的方法,其中,所述用户的生物数据是所述用户的面部的尺寸。
20.根据权利要求19所述的方法,其中,所述用户的生物数据基于来自包括在所述第二设备中的深度传感器或双目摄像装置的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410393310.8A CN118363456A (zh) | 2020-03-30 | 2021-03-30 | 使用生物数据进行的深度估计 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063002128P | 2020-03-30 | 2020-03-30 | |
US63/002,128 | 2020-03-30 | ||
US16/983,751 US11580657B2 (en) | 2020-03-30 | 2020-08-03 | Depth estimation using biometric data |
US16/983,751 | 2020-08-03 | ||
PCT/US2021/070341 WO2021203134A1 (en) | 2020-03-30 | 2021-03-30 | Depth estimation using biometric data |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410393310.8A Division CN118363456A (zh) | 2020-03-30 | 2021-03-30 | 使用生物数据进行的深度估计 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115516406A CN115516406A (zh) | 2022-12-23 |
CN115516406B true CN115516406B (zh) | 2024-04-23 |
Family
ID=77857552
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410393310.8A Pending CN118363456A (zh) | 2020-03-30 | 2021-03-30 | 使用生物数据进行的深度估计 |
CN202180032389.6A Active CN115516406B (zh) | 2020-03-30 | 2021-03-30 | 使用生物数据进行的深度估计 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410393310.8A Pending CN118363456A (zh) | 2020-03-30 | 2021-03-30 | 使用生物数据进行的深度估计 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11580657B2 (zh) |
EP (2) | EP4127876B1 (zh) |
KR (1) | KR20220159466A (zh) |
CN (2) | CN118363456A (zh) |
WO (1) | WO2021203134A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580657B2 (en) | 2020-03-30 | 2023-02-14 | Snap Inc. | Depth estimation using biometric data |
US11360733B2 (en) | 2020-09-10 | 2022-06-14 | Snap Inc. | Colocated shared augmented reality without shared backend |
US11949527B2 (en) | 2022-04-25 | 2024-04-02 | Snap Inc. | Shared augmented reality experience in video chat |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100781170B1 (ko) * | 2005-12-27 | 2007-11-30 | 삼성테크윈 주식회사 | 촬상장치 |
CN101086604A (zh) * | 2006-06-09 | 2007-12-12 | 索尼株式会社 | 成像设备、成像设备的控制方法以及计算机程序 |
CN101210995A (zh) * | 2006-12-28 | 2008-07-02 | 三星Techwin株式会社 | 摄影设备和方法 |
WO2013154562A1 (en) * | 2012-04-12 | 2013-10-17 | Intel Corporation | Techniques for augmented social networking |
CN105578018A (zh) * | 2014-10-10 | 2016-05-11 | 中兴通讯股份有限公司 | 一种调整焦距的方法、装置及终端 |
JP2017204156A (ja) * | 2016-05-11 | 2017-11-16 | ソフトバンク株式会社 | 情報端末 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101740231B1 (ko) * | 2010-11-17 | 2017-05-26 | 삼성전자주식회사 | 3차원 얼굴 위치 추정 방법 및 장치 |
US20120130284A1 (en) * | 2010-11-24 | 2012-05-24 | Honeywell International Inc. | System and method for constructing distance estimate models for personal navigation |
US9507416B2 (en) * | 2011-02-22 | 2016-11-29 | Robert Howard Kimball | Providing a corrected view based on the position of a user with respect to a mobile platform |
US9791872B2 (en) * | 2013-03-14 | 2017-10-17 | Pelco, Inc. | Method and apparatus for an energy saving heating, ventilation, and air conditioning (HVAC) control system |
US20160048202A1 (en) | 2014-08-13 | 2016-02-18 | Qualcomm Incorporated | Device parameter adjustment using distance-based object recognition |
US20180024632A1 (en) * | 2016-07-21 | 2018-01-25 | Aivia, Inc. | Interactive Display System with Eye Tracking to Display Content According to Subject's Interest |
IL295059A (en) * | 2016-10-05 | 2022-09-01 | Magic Leap Inc | A blind eye test for mixed reality calibration |
NO344671B1 (en) * | 2017-12-21 | 2020-03-02 | Elliptic Laboratories As | Contextual display |
JP7075237B2 (ja) * | 2018-02-23 | 2022-05-25 | ラピスセミコンダクタ株式会社 | 操作判定装置及び操作判定方法 |
KR20210046984A (ko) * | 2019-10-21 | 2021-04-29 | 삼성전자주식회사 | 얼굴 데이터 획득을 위한 방법 및 이를 위한 전자 장치 |
US11580657B2 (en) | 2020-03-30 | 2023-02-14 | Snap Inc. | Depth estimation using biometric data |
CN111707374B (zh) * | 2020-06-04 | 2021-08-06 | 安徽清新互联信息科技有限公司 | 一种人体红外测温仪的距离估算方法及系统 |
-
2020
- 2020-08-03 US US16/983,751 patent/US11580657B2/en active Active
-
2021
- 2021-03-30 KR KR1020227037923A patent/KR20220159466A/ko unknown
- 2021-03-30 WO PCT/US2021/070341 patent/WO2021203134A1/en unknown
- 2021-03-30 CN CN202410393310.8A patent/CN118363456A/zh active Pending
- 2021-03-30 CN CN202180032389.6A patent/CN115516406B/zh active Active
- 2021-03-30 EP EP21722741.2A patent/EP4127876B1/en active Active
- 2021-03-30 EP EP24174664.3A patent/EP4390505A3/en active Pending
-
2023
- 2023-02-06 US US18/165,201 patent/US11887322B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100781170B1 (ko) * | 2005-12-27 | 2007-11-30 | 삼성테크윈 주식회사 | 촬상장치 |
CN101086604A (zh) * | 2006-06-09 | 2007-12-12 | 索尼株式会社 | 成像设备、成像设备的控制方法以及计算机程序 |
CN101210995A (zh) * | 2006-12-28 | 2008-07-02 | 三星Techwin株式会社 | 摄影设备和方法 |
WO2013154562A1 (en) * | 2012-04-12 | 2013-10-17 | Intel Corporation | Techniques for augmented social networking |
CN105578018A (zh) * | 2014-10-10 | 2016-05-11 | 中兴通讯股份有限公司 | 一种调整焦距的方法、装置及终端 |
JP2017204156A (ja) * | 2016-05-11 | 2017-11-16 | ソフトバンク株式会社 | 情報端末 |
Also Published As
Publication number | Publication date |
---|---|
US11580657B2 (en) | 2023-02-14 |
KR20220159466A (ko) | 2022-12-02 |
WO2021203134A1 (en) | 2021-10-07 |
CN115516406A (zh) | 2022-12-23 |
US11887322B2 (en) | 2024-01-30 |
EP4390505A2 (en) | 2024-06-26 |
CN118363456A (zh) | 2024-07-19 |
EP4127876B1 (en) | 2024-06-26 |
US20230186498A1 (en) | 2023-06-15 |
EP4127876A1 (en) | 2023-02-08 |
US20210304429A1 (en) | 2021-09-30 |
EP4390505A3 (en) | 2024-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11960651B2 (en) | Gesture-based shared AR session creation | |
CN115053519A (zh) | 使用骨骼追踪的增强现实会话创建 | |
US11700225B2 (en) | Event overlay invite messaging system | |
CN115516406B (zh) | 使用生物数据进行的深度估计 | |
US11621997B2 (en) | Dynamically assigning storage locations for messaging system data | |
US11991469B2 (en) | Skeletal tracking for real-time virtual effects | |
US20220076492A1 (en) | Augmented reality messenger system | |
CN114868101A (zh) | 基于标记的共享增强现实会话创建 | |
CN115516445A (zh) | 对于检测到的对象对增强现实内容的基于语音的选择 | |
US20220187959A1 (en) | Timeline media content navigation system | |
EP4222982A1 (en) | Media content transmission and management | |
US11477397B2 (en) | Media content discard notification system | |
US12124678B2 (en) | Reply back mechanism within a messaging system | |
US12126588B2 (en) | Event overlay invite messaging system | |
CN116261850B (zh) | 用于实时虚拟效果的骨骼跟踪 | |
US20210303110A1 (en) | Reply back mechanism within a messaging system |
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 |