CN116724337A - 增强现实内容中显示屏的检测和模糊化 - Google Patents

增强现实内容中显示屏的检测和模糊化 Download PDF

Info

Publication number
CN116724337A
CN116724337A CN202180088792.0A CN202180088792A CN116724337A CN 116724337 A CN116724337 A CN 116724337A CN 202180088792 A CN202180088792 A CN 202180088792A CN 116724337 A CN116724337 A CN 116724337A
Authority
CN
China
Prior art keywords
representation
display screen
image data
eye
content
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.)
Pending
Application number
CN202180088792.0A
Other languages
English (en)
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.)
Snap Inc
Original Assignee
Snap Inc
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 Snap Inc filed Critical Snap Inc
Publication of CN116724337A publication Critical patent/CN116724337A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/02Recognising information on displays, dials, clocks
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本主题技术接收由眼戴设备的摄像装置捕获的第一图像数据。本主题技术使用机器学习模型检测第一图像数据中的显示屏的表示。本主题技术选择显示屏的表示的至少一部分。本主题技术调整显示屏的表示的该部分的视觉外观。本主题技术使得使用眼戴设备的显示系统显示调整后的视觉外观。

Description

增强现实内容中显示屏的检测和模糊化
优先权请求
本申请要求2020年12月31日提交的第63/132,955号美国临时专利申请的优先权权益,该美国临时专利申请的全部内容在此出于所有目的通过引用并入本文。
背景技术
随着数字图像的使用的增加、便携式计算设备的可负担性、数字存储介质的增加的容量的可获得性以及网络连接的增加的带宽和可访问性,数字图像已经成为越来越多人日常生活的一部分。
一些电子眼戴设备(诸如所谓的智能眼镜)允许用户在用户参与某一活动的同时与虚拟内容交互。用户佩戴眼戴设备并且可以在与由眼戴设备显示的虚拟内容交互的同时通过眼戴设备观察真实世界环境。
附图说明
为了容易标识对任何特定元件或动作的讨论,附图标记中的一个最高位数字或多个最高位数字指代该元件被首次引入时所在的图号。
图1是根据一些示例实施方式的其中可以部署本公开内容的联网环境的图解表示。
图2是根据一些示例实施方式的消息客户端应用的图解表示。
图3是根据一些示例实施方式的如在数据库中维护的数据结构的图解表示。
图4是根据一些示例实施方式的消息的图解表示。
图5示出了根据一个示例实施方式的包括眼戴系统的一副智能眼镜形式的眼戴设备的前透视图。
图6是示出根据一些实施方式的包括与给定消息相对应的附加信息的如图4中所述的消息注释的结构的示意图。
图7是示出根据某些示例实施方式的眼戴系统的各种模块的框图。
图8示出了AR内容的示例,在该AR内容中在使用眼戴设备时在用户的视场中检测到显示屏(例如,由给定电子设备包括)。
图9是示出根据某些示例实施方式的方法的流程图。
图10是示出根据一些示例实施方式的在其中可以实现本公开内容的软件架构的框图。
图11是根据一些示例实施方式的呈计算机系统形式的机器的图解表示,在该计算机系统中可以执行一组指令以使机器执行本文中讨论的方法中任何一种或更多种。
具体实施方式
来自各种位置的兴趣广泛的用户可以捕获各种主题的数字图像,并且使其他人可经由网络(诸如因特网)获得所捕获的图像。为了增强用户对数字图像的体验并提供各种特征,使得计算设备能够对在各种变化条件(例如,图像尺度、噪声、照明、运动或几何失真的变化)下捕获的各种对象和/或特征执行图像处理操作可能是有挑战性的并且是计算密集的。
增强现实技术旨在通过提供利用电子信息增强的增强真实世界环境来缩小虚拟环境与真实世界环境之间的差距。因此,电子信息看起来是用户所感知的真实世界环境的一部分。在示例中,增强现实技术还提供用户界面以与覆盖在增强真实世界环境中的电子信息进行交互。
增强现实(AR)系统使得真实环境和虚拟环境能够以不同的程度组合以促进来自用户的实时交互。因此,如本文所描述的这样的AR系统可以包括真实环境和虚拟环境的各种可能的组合,其包括主要包括真实元素并且比虚拟环境(例如,没有真实元素)更接近真实环境的增强现实。以这种方式,真实环境可以通过AR系统与虚拟环境连接。沉浸在AR环境中的用户可以导航通过这样的环境,并且AR系统可以跟踪用户的视点以基于用户如何位于环境中提供可视化。可以在本文的实施方式中所描述的消息收发客户端应用(或消息收发系统)中提供增强现实(AR)体验。
本文所描述的主题技术的实施方式支持涉及AR内容的各种操作,所述各种操作利用给定电子设备(诸如可穿戴头戴式耳机设备(例如,给定眼戴设备)和移动计算设备)来捕获和修改这样的内容。
在各种场景中,移动计算设备的用户经常使用和越来越多地利用消息收发系统,以用便利的方式提供不同类型的功能。如本文中所描述的,本主题消息收发系统包括以下实际应用:该实际应用通过至少向使用电力和资源受限电子设备捕获图像数据提供技术改进,来提供捕获图像数据和基于所捕获的图像数据渲染AR内容(例如,图像、视频等)方面的改进。通过由本主题技术提供的技术实现捕获图像数据的这种改进,这减少了对所捕获的图像数据进行处理的时延并提高了效率,从而也降低了捕获设备中的功耗。
如本文进一步讨论的,本主题基础设施支持在消息收发系统的全部各种组件中创建和共享包括3D内容或AR效果的交互式媒体,本文称为消息。在本文所描述的示例实施方式中,消息可以从现场摄像装置或经由存储装置(例如,其中,包括3D内容和/或AR效果的消息被存储在存储器或数据库中)进入系统。本主题系统支持运动传感器输入以及外部效果和资产数据的加载。
如本文所提及的,短语“增强现实体验”、“增强现实内容项”、“增强现实内容生成器”包括或指代与图像修改、滤波、AR内容生成器、媒体叠加、变换等相对应的各种图像处理操作,并且另外可以包括在AR内容或媒体内容的呈现期间音频或音乐内容的回放,如本文进一步描述的。
图1是示出用于通过网络交换数据(例如,消息和相关联的内容)的示例消息收发系统100的框图。消息收发系统100包括客户端设备102的多个实例,每个实例托管包括消息收发客户端应用104的多个应用。每个消息收发客户端应用104经由网络106(例如,因特网)通信地耦接至消息收发客户端应用104的其他实例和消息收发服务器系统108。
消息收发客户端应用104能够经由网络106与另一消息收发客户端应用104和消息收发服务器系统108进行通信和交换数据。在消息收发客户端应用104之间以及在消息收发客户端应用104与消息收发服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息收发系统100包括眼戴设备150,该眼戴设备150托管眼戴系统160以及其他应用。眼戴设备150经由网络106(其可以包括经由专用短程通信路径,诸如BluetoothTM或Wi-Fi直接连接)通信地耦接至客户端设备102。
眼戴设备150可以是由用户佩戴的头戴式便携式系统,其包括能够向用户呈现增强现实环境的可视化的显示系统(例如头戴式显示设备)。眼戴设备150可以用某种电池供电。在示例中,由眼戴设备150的眼戴系统160控制的显示系统向用户提供增强现实环境的立体呈现,所述立体呈现实现特定场景的渲染的三维视觉显示。此外,眼戴设备150可以包括各种传感器,包括但不限于摄像装置、图像传感器、触摸传感器、麦克风、惯性测量单元(IMU)、心率、温度以及其他类型的传感器。而且,眼戴设备150可以包括能够接收用户输入的硬件元件诸如硬件按钮或开关。由这样的传感器和/或硬件元件检测到的用户输入对应于各种输入模态以发起特定操作。例如,这样的输入模态可以包括但不限于面部跟踪、眼睛跟踪(例如,注视方向)、手部跟踪、姿势跟踪、生物计量读数(例如,心率、脉搏、瞳孔扩张、呼吸、温度、脑电波、嗅觉)、识别语音或音频(例如,特定热词)以及激活按钮或开关等。
眼戴设备150可以通信地耦接至诸如客户端设备102的基础设备。通常,与眼戴设备150相比,这样的基础设备可以包括更多的计算资源和/或可用的电力。在示例中,眼戴设备150可以以各种模式操作。例如,眼戴设备150可以独立于任何基础设备以独立模式操作。
眼戴设备150还可以以无线拴系模式操作(例如,经由与诸如客户端设备102的基础设备的无线连接来连接),从而与给定基础设备一起工作。当眼戴设备150以无线拴系模式操作时,处理用户输入和/或渲染增强现实环境的至少一部分可以被卸载至基础设备,从而减少对眼戴设备150的处理负担。例如,在实现方式中,眼戴设备150与客户端设备102一起工作以生成包括物理和/或虚拟对象的增强现实环境,该增强现实环境实现用户与所生成的增强现实环境之间的不同形式的实时交互(例如,视觉、听觉和/或物理或触感交互)。在示例中,眼戴设备150提供可以由用户感知并且与之实时交互的增强现实环境相对应的场景的渲染。另外,作为呈现所渲染的场景的一部分,眼戴设备150可以向用户提供声音、触觉或触感反馈。给定渲染场景的内容可以取决于可用处理能力、网络可用性和容量、可用电池功率以及当前系统工作负荷。
在实现方式中,眼戴系统160生成包括真实环境的记录的消息,并且生成包括用于共享和回放的二维(2D)视频的增强现实环境。在另一实现方式中,眼戴系统160生成消息,并且随后生成合并来自所有传感器的信息和/或将记录与其他用户的消息(例如,不同的视点(POV))组合的三维(3D)表示。还应当理解的是,客户端设备102也可以以与眼戴设备150一起工作或者独立于眼戴设备150工作的方式生成这样的增强现实环境。
当用户围绕眼戴设备150移动时,眼戴系统160自动地或选择性地将增强现实或虚拟现实内容从一个虚拟位置移动到另一个虚拟位置。例如,眼戴设备150的用户或穿戴者最初可以看向真实世界环境的第一部分(例如,房屋中的第一房间)。用户可以提供输入(例如,使用客户端设备102或者眼戴设备150的语音激活或触摸激活的界面)来启动或访问包括一个或更多个对象的虚拟内容。
消息收发服务器系统108经由网络106向特定消息收发客户端应用104提供服务器侧功能。虽然消息收发系统100的某些功能在本文中被描述为由消息收发客户端应用104或由消息收发服务器系统108执行,但是在消息收发客户端应用104或消息收发服务器系统108内的某些功能的位置是设计选择。例如,在技术上可能优选的是最初在消息收发服务器系统108内部署某些技术和功能,但是后面将该技术和功能迁移至其中客户端设备102具有足够处理能力的消息收发客户端应用104。
消息收发服务器系统108支持被提供至消息收发客户端应用104的各种服务和操作。这样的操作包括向消息收发客户端应用104发送数据、从消息收发客户端应用104接收数据以及对由消息收发客户端应用104生成的数据进行处理。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持续条件、社交网络信息和现场事件信息。通过经由消息收发客户端应用104的用户接口(UI)可用的功能来激活和控制消息收发系统100内的数据交换。
现在具体地转至消息收发服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器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,该图像处理系统116专用于通常针对在消息收发服务器应用114处的消息的有效载荷内接收的图像或视频执行各种图像处理操作。
社交网络系统122支持各种社交联网功能服务,并且使这些功能和服务对消息收发服务器应用114可用。为此,社交网络系统122维护并访问数据库120内的实体图304(如图3中所示)。社交网络系统122所支持的功能和服务的示例包括识别特定用户与之有关系或特定用户所“关注”的消息收发系统100的其他用户,以及还识别特定用户的兴趣以及其他实体。
应用服务器112通信地耦接至数据库服务器118,该数据库服务器118便于访问数据库120,在数据库120中存储有与由消息收发服务器应用114处理的消息相关联的数据。
图2是示出根据示例实施方式的关于消息传递系统100的另外的细节的框图。具体地,消息收发系统100被示出为包括消息收发客户端应用104和应用服务器112,它们又包含多个一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
短暂定时器系统202负责施行对消息收发客户端应用104和消息收发服务器应用114所允许的内容的临时访问。为此,短暂定时器系统202结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由消息收发客户端应用104访问消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
集合管理系统204负责管理媒体的集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容(例如,消息,包括图像、视频、文本和音频)的集合可以被组织成‘事件库’或‘事件故事’。这样的集合可以在指定的时间段(例如,与内容相关的事件的持续时间)内可用。例如,可以使与音乐会有关的内容在该音乐会的持续期间内作为‘故事’可用。集合管理系统204还可以负责向消息收发客户端应用104的用户界面发布提供存在特定集合的通知的图标。
此外,集合管理系统204还包括策展接口208,策展接口208使得集合管理者能够管理和策展特定内容集合。例如,策展接口208使得事件组织者能够策展与特定事件相关的内容的集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展接口208进行操作以自动向这样的用户支付费用以使用其内容。
注释系统206提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与生成和发布用于由消息收发系统100处理的消息的媒体叠加相关的功能。注释系统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中)相关联,并且应用于视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)。在一个示例中,过滤器是在呈现给接收者用户期间被显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型,包括当发送用户正在编写消息时由消息收发客户端应用104向发送用户呈现的来自过滤器的库中的用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的GPS单元确定的地理位置信息,消息收发客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置过滤器。另一类型的过滤器是数据过滤器,其可以由消息收发客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息来选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表308内的其他注释数据是增强现实内容生成器(例如,对应于应用AR内容生成器、增强现实体验或增强现实内容项)。增强现实内容生成器可以是可以添加至图像或视频的实时特殊效果和声音。
如上所述,增强现实内容生成器、增强现实内容项、覆盖、图像变换、AR图像和类似术语是指可以对视频或图像进行的修改。这包括实时修改,该实时修改在使用设备传感器捕获图像时修改该图像并且然后在设备的屏幕上显示具有修改的图像。这还包括对所存储的内容的修改,诸如在可以被修改的库中的视频片段。例如,在访问多个增强现实内容生成器的设备中,用户可以将单个视频片段与多个增强现实内容生成器一起使用来查看不同的增强现实内容生成器将如何修改所存储的剪辑。例如,通过针对内容选择不同的增强现实内容生成器,可以将应用不同伪随机运动模型的多个增强现实内容生成器应用于同一内容。类似地,实时视频捕获可以与所示出的修改一起使用,以示出当前由设备的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地被显示在屏幕上并且不被存储在存储器中,或者由设备传感器捕获的内容可以在有修改或没有修改(或两者)的情况下被记录并被存储在存储器中。在一些系统中,预览特征可以示出不同的增强现实内容生成器同时在显示器中的不同窗口内看起来如何。这可以例如使得能够同时在显示器上观看具有不同伪随机动画的多个窗口。
因此,数据和使用增强现实内容生成器或其他这样的变换系统来使用该数据修改内容的各种系统可以涉及:对象(例如,面部、手、身体、猫、狗、表面、对象等)的检测;当这样的对象离开视频帧中的视场、进入视频帧中的视场以及在视频帧中的视场四处移动时对这样的对象的跟踪;以及当跟踪这样的对象时对这样的对象的修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同方法。例如,一些实施方式可以涉及生成一个或多个对象的三维网格模型,并且使用视频内的模型的变换和动画纹理来实现变换。在其他实施方式中,可以使用对对象上的点的跟踪以将图像或纹理(其可以是二维或三维的)放置在所跟踪的位置处。在又一实施方式中,视频帧的神经网络分析可以用于将图像、模型或纹理放置在内容(例如,视频的图像或帧)中。因此,增强现实内容生成器既涉及用于创建内容中的变换的图像、模型和纹理,也涉及利用对象检测、跟踪和放置实现这样的变换所需的附加建模和分析信息。
可以用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并将它们保存在设备的存储器中,或者可以使用设备的传感器来生成视频流。另外,可以使用计算机动画模型来处理任何对象,诸如人的面部和人体的部分、动物或非生物(诸如椅子、汽车或其他对象)。
在一些实施方式中,当连同要变换的内容一起选择特定修改时,计算设备对要变换的元素进行标识,并且然后如果所述元素存在于视频帧中,则检测并跟踪它们。根据针对修改的请求来修改对象的元素,从而变换视频流的帧。可以通过用于不同类型的变换的不同方法来执行视频流的帧的变换。例如,对于主要涉及改变对象元素的形式的帧的变换,计算针对对象的每个元素的特征点(例如,使用主动形状模型(ASM)或其他已知方法)。然后,针对对象的至少一个元素中的每个元素,生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,所提及的针对每个元素的网格与每个元素的位置对准。然后,在网格上生成附加点。基于针对修改的请求来针对每个元素生成第一点的第一集合,并且基于第一点的集合和针对修改的请求来针对每个元素生成第二点的集合。然后,可以基于第一点的集合和第二点的集合以及网格通过修改对象的元素来对视频流的帧进行变换。在这样的方法中,也可以通过跟踪和修改背景来使经修改的对象的背景改变或变形。
在一个或更多个实施方式中,可以通过计算针对对象的每个元素的特征点并基于所计算的特征点生成网格,来执行使用对象的元素改变对象的一些区域的变换。在网格上生成点,并且然后生成基于这些点的各种区域。然后通过将针对每个元素的区域与针对至少一个元素中的每个元素的位置对准来跟踪对象的元素,并且可以基于针对修改的请求来修改区域的特性,从而变换视频流的帧。根据针对修改的特定请求,可以以不同的方式对所提及的区域的特性进行变换。这样的修改可以涉及:改变区域的颜色;从视频流的帧中去除区域的至少一些部分;将一个或更多个新对象包括到基于对修改的请求的区域中;以及修改区域或对象的元素或使区域或对象的元素变形。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为控制点,以用于确定针对模型动画的选项的整个状态空间。
在使用面部检测变换图像数据的计算机动画模型的一些实施方式中,使用特定的面部检测算法(例如,Viola-Jones)在图像上检测面部。然后,将主动形状模型(ASM)算法应用于图像的面部区域以检测面部特征参考点。
在其他实施方式中,可以使用适合于面部检测的其他方法和算法。例如,在一些实施方式中,使用表示在所考虑的大多数图像中存在的可区分点的界标来定位特征。例如,对于面部界标,可以使用左眼瞳孔的位置。在初始界标不可标识的情况下(例如,如果人具有眼罩),则可以使用次级界标。这样的界标标识过程可以用于任何这样的对象。在一些实施方式中,界标的集合形成形状。可以使用形状中的点的坐标将形状表示为向量。用使形状点之间的平均欧几里得距离最小化的相似性变换(允许平移、缩放和旋转)将一个形状与另一个形状对准。平均形状是对准的训练形状的平均。
在一些实施方式中,开始从与由全局面部检测器确定的面部的位置和大小对准的平均形状搜索界标。然后,这样的搜索重复以下步骤:通过对每个点周围的图像纹理进行模板匹配来调整形状点的位置以建议暂定形状,并且然后使暂定形状符合全局形状模型,直到出现收敛。在一些系统中,单独的模板匹配是不可靠的,并且形状模型汇集弱模板匹配器的结果以形成更强的整体分类器。在图像金字塔中的每一级处从粗分辨率到细分辨率重复整个搜索。
变换系统的实施方式可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状改变、情感变换(例如,将面部从皱眉改变为微笑)、状态变换(例如,使主体变老、减小外表年龄、改变性别)、风格变换、图形元素应用以及由已经被配置成在客户端设备102上高效执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
在一些示例实施方式中,用于变换图像数据的计算机动画模型可以由如下系统使用,在该系统中,用户可以使用具有作为在客户端设备102上操作的消息收发客户端应用104的一部分而操作的神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍照)。在消息收发客户端应用104内操作的变换系统确定图像或视频流内面部的存在,并且提供与用于变换图像数据的计算机动画模型相关联的修改图标,或者计算机动画模型可以与本文描述的接口相关联地存在。修改图标包括可以是用于作为修改操作的一部分修改图像或视频流内的用户面部的基础的变化。一旦选择了修改图标,则变换系统发起转换用户的图像以反映所选择的修改图标的处理(例如,在用户上生成微笑面部)。在一些实施方式中,一捕获图像或视频流并且选择了指定的修改,就可以在移动客户端设备上显示的图形用户界面中呈现修改后的图像或视频流。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,用户可以捕获图像或视频流,并且一旦选择了修改图标,就可以实时或接近实时地呈现修改后的结果。此外,在捕获视频流并且所选择的修改图标保持切换时,修改可以是持久的。机器教导的神经网络可以用于实现这样的修改。
在一些实施方式中,呈现由变换系统执行的修改的图形用户界面可以向用户提供附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的内容捕获和选择的界面(例如,从内容创建者用户界面发起)。在各种实施方式中,在初始选择修改图标之后,修改可以是持久的。用户可以通过轻敲或以其他方式选择正由变换系统修改的面部来切换修改的开或关,并对其进行存储以供稍后查看或浏览成像应用的其他区域。在变换系统修改多个面部的情况下,用户可以通过轻敲或选择在图形用户界面内修改和显示的单个面部来全局地切换修改的开或关。在一些实施方式中,可以分别修改多个面部的组中的各个面部,或者可以通过轻敲或选择图形用户界面内显示的各个面部或一系列各个面部来分别切换这样的修改。
在一些示例实施方式中,提供了图形处理流水线架构,其使得能够将不同的增强现实体验(例如,AR内容生成器)应用在对应的不同层中。这样的图形处理流水线提供了可扩展渲染引擎,所述可扩展渲染引擎用于提供复合媒体(例如,图像或视频)或者复合AR内容中包括的多个增强现实体验,所述复合媒体或复合AR内容用于由消息收发客户端应用104(或消息收发系统100)进行渲染。
如上面所提及的,视频表310存储视频数据,在一个实施方式中,视频数据与其记录在消息表314中被维护的消息相关联。类似地,图像表308存储与其消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
故事表306存储与消息和相关联的图像、视频或音频数据的集合相关的数据,所述消息和相关联的图像、视频或音频数据被编译成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录在实体表302中被维护的每个用户)发起。用户可以创建以已经由该用户创建和发送/广播的内容的集合的形式的‘个人故事’。为此,消息收发客户端应用104的用户界面可以包括用户可选以使得发送用户能够将特定内容添加至他或她的个人故事的图标。
集合还可以构成‘现场故事’,‘现场故事’是手动地、自动地或使用手动技术和自动技术的组合来创建的来自多个用户的内容的集合。例如,‘现场故事’可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备具有启用的位置服务并且在特定时间处于共同位置事件的用户可以例如经由消息收发客户端应用104的用户界面被呈现有选项,以向特定现场故事贡献内容。可以由消息收发客户端应用104基于用户的位置向用户标识现场故事。最终结果是从社区角度讲述的‘现场故事’。
另一类型的内容集合被称为‘位置故事’,‘位置故事’使得其客户端设备102位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要第二程度的认证来验证终端用户属于特定组织或其他实体(例如,是大学校园中的学生)。
图4是示出根据一些实施方式的消息400的结构的示意图,该消息400由消息收发客户端应用104或眼戴系统160生成以传送至另一消息收发客户端应用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内的用户记录。
图5示出了根据一个示例实施方式的包括眼戴系统160的一副智能眼镜的形式的眼戴设备150的前透视图。眼戴设备150包括本体503,本体503包括前部件或框架506以及一对镜腿509,一对镜腿509连接至框架506以在佩戴眼戴设备150时将框架506支撑在用户的面部上的适当位置。框架506可以由任何合适的材料(诸如,塑料或金属)制成,包括任何合适的形状记忆合金。
眼戴设备150包括呈一副透镜512的形式的一对光学元件,所述一对光学元件由对应的光学元件保持器来保持,所述光学元件保持器具有形成框架506的一部分的一对边框515的形式。边框515通过鼻梁架518连接。在其他实施方式中,光学元件中的一个或两个可以是显示器、显示组件或透镜及显示器组合。
框架506包括限定框架506的横向端部的一对端部件521。在该示例中,各种电子部件容纳在端部件521中的一个或两个中。镜腿509联接至相应的端部件521。在该示例中,镜腿509通过相应的铰链联接至框架506,以便在可穿戴模式和折叠模式之间可铰接地移动,在折叠模式下,镜腿509朝向框架506枢转以基本上平靠着框架506。在其他实施方式中,镜腿509可以通过任何合适的手段联接至框架506,或者可以刚性地或固定地固定至框架506,以便与其成一体。
镜腿509中的每一个镜腿包括联接至框架506的镜腿的前部和用于联接至用户的耳朵的任何合适的后部,诸如图5的示例实施方式中所示的弯曲或尖部件。在一些实施方式中,框架506由单件材料形成,以便具有统一的或整体性的构造。在一些实施方式中,本体503的整体(包括框架506和镜腿509两者)可以是统一的或整体性的构造。
眼戴设备150具有携带的电子部件,电子部件包括计算设备,诸如计算机524或低功率处理器,其在不同的实施方式中可以是任何合适的类型,以便由本体503携载。在一些实施方式中,计算机524至少部分地容纳在镜腿509中的一个或两个中。在本实施方式中,计算机524的各个部件容纳在框架506的横向端部件521中。计算机524包括具有存储器(例如,易失性存储设备,诸如随机访问存储器或寄存器)、存储设备(例如,非易失性存储设备)、无线通信电路(例如,BLE通信设备和/或WiFi直连设备)以及电源的一个或更多个处理器。计算机524包括低功率电路、高速电路,以及在一些实施方式中包括显示处理器。各个实施方式可以包括不同配置或以不同方式集成在一起的这些元件。
计算机524另外包括电池527或其他合适的便携式电力供应装置。在一个实施方式中,电池527被设置在镜腿509中的一个中。在图5中所示的眼戴设备150中,电池527被示出为设置在端部件521中的一个中,其电耦接至容纳在对应的端部件521中的计算机524的其余部分。
眼戴设备150是支持摄像装置功能的,在该示例中包括摄像装置530,摄像装置530安装在端部件521中的一个中并且面向前方,以便与眼戴设备150的佩戴者的视线方向或多或少地对准。摄像装置530被配置成捕获数字图像(在本文中也被称为数字照片或图片)以及数字视频内容。摄像装置530的操作由计算机524提供的摄像装置控制器控制,表示由摄像装置530捕获的图像或视频的图像数据临时存储在形成计算机524的一部分的存储器上。在一些实施方式中,眼戴设备150可以具有例如由相应的端部件521容纳的一对摄像装置530。
如下文将更详细描述的,携载的计算机524和透镜512被一起配置成提供眼戴系统160,眼戴系统160通过将虚拟内容从第一虚拟位置移动到第二虚拟位置来自动且选择性地使虚拟内容重新居中以使虚拟内容进入透镜512的视野内。具体地,透镜512可以显示虚拟内容或一个或更多个虚拟对象。这使得用户看起来虚拟内容融入在用户通过透镜512观看的真实世界环境内。在一些实施方式中,从客户端设备102接收虚拟内容。在一些实施方式中,从应用服务器112直接接收虚拟内容。
眼戴设备150包括加速度计和触摸界面以及语音命令系统。基于由眼戴设备150从加速度计和触摸界面以及语音命令系统接收的输入,眼戴设备150可以控制用户与虚拟内容的交互。在一个示例中,用户交互可以控制呈现在透镜512上的内容的回放。在另一示例中,用户交互可以浏览播放列表或者音乐或视频库。在另一示例中,用户交互可以例如通过滚动各种三维或二维对话元素(例如,聊天气泡)并且选择各个对话元素来进行响应以生成向对话的参与者发送的消息来处理用户所参与的对话。
眼戴系统160(其可以由计算机524实现)将虚拟内容指定到虚拟位置。眼戴系统160监视在真实世界环境的视野内的当前虚拟位置。眼戴系统160检索在视野内的当前虚拟位置的指定范围内的用于显示的虚拟内容。当眼戴设备150四处移动以指向与不同的一组虚拟位置的相关联的真实世界环境的新的部分时,眼戴系统160排除不在该不同的一组虚拟位置的范围内的任何虚拟内容。例如,当眼戴设备150四处移动以指向不与真实世界环境的先前显示的部分重叠的真实世界环境的新的部分时,眼戴系统160排除不在该不同的一组虚拟位置的范围内的任何虚拟内容。
眼戴系统160可以接收使虚拟内容进入当前视野中的请求。作为响应,眼戴系统160将指定的并与虚拟内容相关联的虚拟位置更新为与真实世界环境的当前视野相关联的虚拟位置。因此,现在将虚拟内容从视野中移出以包括在当前视野中,从而允许用户与虚拟内容交互。在一些情况下,用户可以仅与在透镜512的视野内的虚拟内容交互。如果用户四处移动以面向导致虚拟内容从视野中消失的另一方向,则用户输入不再能够控制先前显示的虚拟内容或与先前显示的虚拟内容交互,直到虚拟内容被带回视野中。
眼戴设备150还包括一个或更多个通信设备,诸如蓝牙低能量(BLE)通信接口。这样的BLE通信接口使得眼戴设备150能够与客户端设备102无线地通信。代替BLE通信接口或者除了BLE通信接口之外,还可以采用其他形式的无线通信,例如WiFi直连接口。BLE通信接口实现标准数量的BLE通信协议。
由眼戴设备150的BLE接口实现的通信协议中的第一通信协议使得能够在眼戴设备150与客户端设备102之间建立未加密链路。在该第一协议中,眼戴设备150与客户端设备102之间的链路层通信(物理接口或介质)包括未加密数据。在该第一协议中,应用层(对物理交换的数据操作的通信层)对在BLE通信接口的链路层上以未加密形式物理交换的数据进行加密和解密。以这种方式,在物理层上交换的数据可以由窃听设备自由地读取,但是该窃听设备在没有在应用层中执行解密操作的情况下将不能对交换的数据进行解密。
由眼戴设备150的BLE接口实现的通信协议中的第二通信协议使得能够在眼戴设备150与客户端设备102之间建立加密链路。在该第二协议中,眼戴设备150与客户端设备102之间的链路层通信(物理接口)从应用层接收数据,并且在通过物理介质交换数据之前向数据添加第一类型的加密。在该第二协议中,应用层(对物理交换的数据操作的通信层)可以使用或可以不使用第二类型的加密对在BLE通信接口的链路层上使用第一类型的加密以加密形式物理交换的数据进行加密和解密。即,数据可以首先由应用层加密,并且然后在通过物理介质被交换之前由物理层进一步加密。在通过物理介质进行交换之后,数据随后由物理层解密,并且然后由应用层再次解密(例如,使用不同类型的加密)。以这种方式,由于数据在物理介质中被加密,通过物理层交换的数据不由被窃听设备读取。
在一些实施方式中,客户端设备102使用第一协议与眼戴设备150通信以在消息收发客户端104与眼戴设备150之间交换图像或视频或虚拟内容。
如上所述,媒体覆盖诸如AR内容生成器、覆盖、图像变换、AR图像和类似术语是指可以对视频或图像进行的修改。这包括实时修改,实时修改在图像被使用设备传感器进行捕获并且然后显示在设备的屏幕上时用所述修改来修改图像。这还包括对所存储的内容,例如对可以被修改的库中的视频片段的修改。例如,在可以访问多个媒体覆盖(例如,AR内容生成器)的设备中,用户可以将多个AR内容生成器用于单个视频片段来查看不同的AR内容生成器将如何修改所存储的片段。例如,通过针对同一内容选择不同的AR内容生成器,可以将应用不同伪随机移动模型的多个AR内容生成器应用于该同一内容。类似地,可以将实时视频捕获与示出的修改一起使用,以显示当前由设备的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容可以在进行修改或不进行修改(或两者)的情况下记录并存储在存储器中。在一些系统中,预览特征可以示出不同的AR内容生成器同时在显示器中的不同窗口内看起来如何。例如,这可以使得能够同时在显示器上查看具有不同伪随机动画的多个窗口。
因此,数据和使用AR内容生成器或其他这样的变换系统来使用该数据以修改内容的各种系统可以涉及:对象(例如,面部、手、身体、猫、狗、表面、对象等)的检测;当这样的对象离开视频帧中的视场、进入视频帧中的视场以及在视频帧中的视场四处移动时对这样的对象的跟踪;以及在这样的对象被跟踪时对这样的对象的修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同方法。例如,一些实施方式可能涉及生成一个或多个对象的三维网格模型,并且使用视频中模型的变换和动画纹理来实现变换。在其他实施方式中,对象上的点的跟踪可以用于将图像或纹理(其可以是二维或三维的)放置在所跟踪的位置处。在更进一步的实施方式中,可以使用视频帧的神经网络分析将图像、模型或纹理放置在内容(例如,图像或视频帧)中。因此,透镜(lens)数据既涉及用于创建内容中的变换的图像、模型和纹理,也涉及利用对象检测、跟踪和放置实现这样的变换所需的附加建模和分析信息。
可以用保存在任何种类的计算机化系统的存储器中的任何种类的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。此外,可以使用计算机动画模型来处理任何对象,诸如人的面部以及人体的各部分、动物或非生物(诸如椅子、汽车或其他对象)。
在一些实施方式中,当与要变换的内容一起选择特定修改时,由计算设备标识要变换的元素,并且然后在要变换的元素存在于视频的帧中的情况下对要变换的元素进行检测和跟踪。根据对修改的请求来修改对象的元素,因此变换视频流的帧。可以通过用于不同种类的变换的不同方法来执行视频流的帧的变换。例如,对于主要涉及改变对象元素形式的帧变换,计算对象的元素中的每一个元素的特征点(例如,使用主动形状模型(ASM)或其他已知方法)。然后,针对对象的至少一个元素中的每一个元素生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,所提及的针对每个元素的网格与每个元素的位置对准。然后,在网格上生成附加点。基于对修改的请求针对每个元素生成第一点的第一集合,并且基于第一点的集合和对修改的请求针对每个元素生成第二点的集合。然后,可以通过基于第一点的集合和第二点的集合以及网格修改对象的元素,对视频流的帧进行变换。在这样的方法中,也可以通过跟踪和修改背景来使经修改的对象的背景改变或变形。
在一个或更多个实施方式中,可以通过计算针对对象的每个元素的特征点并基于所计算的特征点生成网格,执行使用对象的元素来改变对象的一些区域的变换。在网格上生成点,并且然后生成基于点的各种区域。然后,通过将针对每个元素的区域与针对至少一个元素中的每一个元素的位置对准来跟踪对象的元素,并且可以基于对修改的请求来修改区域的属性,从而变换视频流的帧。根据具体的对修改的请求,可以以不同的方式对所提及的区域的特性进行变换。这样的修改可以涉及:改变区域的颜色;从视频流的帧中去除区域的至少一些部分;将一个或更多个新对象包括到基于对修改的请求的区域中;以及修改区域或对象的元素或使区域或对象的元素变形。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为控制点,以用于确定针对模型动画的选项的整个状态空间。
在使用面部检测变换图像数据的计算机动画模型的一些实施方式中,使用特定的面部检测算法(例如,Viola-Jones)在图像上检测面部。然后,将主动形状模型(ASM)算法应用于图像的面部区域以检测面部特征参考点。
在其他实施方式中,可以使用适合于面部检测的其他方法和算法。例如,在一些实施方式中,使用表示在所考虑的大多数图像中存在的可区分点的界标来定位特征。例如,对于面部界标,可以使用左眼瞳孔的位置。在初始界标不可标识的情况下(例如,如果人具有眼罩),则可以使用次级界标。这样的界标标识过程可以用于任何这样的对象。在一些实施方式中,界标的集合形成形状。可以使用形状中的点的坐标将形状表示为向量。用使形状点之间的平均欧几里得距离最小化的相似性变换(允许平移、缩放和旋转)将一个形状与另一个形状对准。平均形状是对准的训练形状的平均。
在一些实施方式中,开始从与由全局面部检测器确定的面部的位置和大小对准的平均形状搜索界标。然后,这样的搜索重复以下步骤:通过对每个点周围的图像纹理进行模板匹配来调整形状点的位置以建议暂定形状,并且然后使暂定形状符合全局形状模型,直到出现收敛。在一些系统中,单独的模板匹配是不可靠的,并且形状模型汇集弱模板匹配器的结果以形成更强的整体分类器。在图像金字塔中的每一级处从粗分辨率到细分辨率重复整个搜索。
变换系统的实施方式可以在客户端设备上捕获图像或视频流,并且在客户端设备(诸如,客户端设备102)上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状改变、情感变换(例如,将面部从皱眉改变为微笑)、状态变换(例如,使主体变老、减小外表年龄、改变性别)、风格变换、图形元素应用以及由已经被配置成在客户端设备上高效执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
在一些示例实施方式中,用于变换图像数据的计算机动画模型可以由如下系统使用,在该系统中,用户可以使用具有作为在客户端设备102上操作的消息收发客户端应用104的一部分而操作的神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍照)。在消息收发客户端应用104内操作的变换系统确定图像或视频流内面部的存在,并且提供与用于变换图像数据的计算机动画模型相关联的修改图标,或者计算机动画模型可以与本文描述的接口相关联地存在。修改图标包括可以是用于作为修改操作的一部分修改图像或视频流内的用户面部的基础的变化。一旦选择了修改图标,则变换系统发起转换用户的图像以反映所选择的修改图标的处理(例如,在用户上生成微笑面部)。在一些实施方式中,一捕获图像或视频流并且选择了指定的修改,就可以在移动客户端设备上显示的图形用户界面中呈现修改后的图像或视频流。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,用户可以捕获图像或视频流,并且一旦选择了修改图标,就可以实时或接近实时地呈现修改后的结果。此外,在捕获视频流并且所选择的修改图标保持切换时,修改可以是持久的。机器教导的神经网络可以用于实现这样的修改。
在一些实施方式中,呈现由变换系统执行的修改的图形用户界面可以向用户提供附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的内容捕获和选择的界面(例如,从内容创建者用户界面发起)。在各种实施方式中,在初始选择修改图标之后,修改可以是持久的。用户可以通过轻敲或以其他方式选择正由变换系统修改的面部来切换修改的开或关,并对其进行存储以供稍后查看或浏览成像应用的其他区域。在变换系统修改多个面部的情况下,用户可以通过轻敲或选择在图形用户界面内修改和显示的单个面部来全局地切换修改的开或关。在一些实施方式中,可以分别修改多个面部的组中的各个面部,或者可以通过轻敲或选择图形用户界面内显示的各个面部或一系列各个面部来分别切换这样的修改。
在一些示例实施方式中,提供了图形处理流水线架构,其使得能够在对应的不同层中应用不同的媒体覆盖。这样的图形处理流水线提供了可扩展渲染引擎,所述可扩展渲染引擎用于提供由消息收发客户端应用104(或消息收发系统100)进行渲染的复合媒体(例如,图像或视频)或者复合AR内容中包括的多个增强现实内容生成器。
如本文所讨论的,本主题基础设施支持在消息收发系统100的全部各种组件中创建和共享具有交互式效果的交互式消息。在示例中,为了提供这样的交互式效果,给定的交互式消息可以包括图像数据以及2D数据或3D数据。如本文所描述的基础设施使得能够跨本主题系统提供其他形式的3D且交互式的媒体(例如,2D媒体内容),这允许将这样的交互式媒体跨消息收发系统100并且连同照片和视频消息一起被共享。在本文描述的示例实施方式中,消息可以从现场摄像装置或经由存储装置(例如,具有2D或3D内容或增强现实(AR)效果(例如,3D效果或其他交互式效果)的消息被存储在存储器或数据库中)进入系统。在具有3D数据的交互式消息的示例中,本主题系统会支持运动传感器输入,并且管理3D数据的发送和存储以及外部效果和资产数据的加载。
如上所述,交互式消息包括与2D效果或3D效果和深度数据结合的图像。在示例实施方式中,除了传统的图像纹理之外,还使用本主题系统来渲染消息以使摄像装置所看到的空间细节/几何形状可视化。当观看者通过将客户端设备移动来与该消息进行交互时,该移动会触发向观看者渲染图像和几何形状的视角的相应变化。
在实施方式中,本主题系统提供AR效果(其可以包括使用3D数据的3D效果或者不使用3D数据的交互式2D效果),该AR效果与系统的其他组件一起工作,以提供可以占据消息中的不同3D平面的粒子、着色器、2D资产和3D几何形状。在示例中,以实时方式向用户渲染如本文所描述的AR效果。
如本文所提及的,基于陀螺仪的交互是指其中给定客户端设备的旋转被用作输入以改变效果的方面(例如,沿x轴旋转电话以便改变场景中的光的颜色)的交互类型。
如本文所提及的,增强现实内容生成器是指可以添加至消息的实时特殊效果和/或声音,并且用AR效果和/或其他3D内容(诸如3D动画图形元素)、3D对象(例如,非动画的)等来修改图像和/或3D数据。
以下讨论涉及结合根据一些实施方式的这样的消息存储的示例数据。
图6是示出根据一些实施方式的由消息收发客户端应用104或眼戴系统160生成的包括与给定消息相对应的附加信息的如上面在图4中所描述的消息注释412的结构的示意图。
在实施方式中,如图3中所示,包括图6所示的附加数据的特定消息400的内容用于填充存储在数据库120内的用于给定消息的消息表314,然后该数据库120可由消息收发客户端应用104访问。如在图6中所示的,消息注释412包括与各种数据相对应的以下要素:
○增强现实(AR)内容标识符652:消息中使用的AR内容生成器的标识符
○消息标识符654:消息的标识符
○资产标识符656:消息中针对资产的标识符的集合。例如,可以针对由特定AR内容生成器确定的资产包括相应的资产标识符。在实施方式中,这样的资产由发送者侧客户端设备上的AR内容生成器创建,上传到消息收发服务器应用114,并且在接收者侧客户端设备上使用以便重新创建消息。典型资产的示例包括:
■由摄像装置捕获的原始静态RGB图像
■具有应用于原始图像的AR内容生成器效果的后处理图像
○增强现实(AR)内容元数据658:与对应于AR标识符652的AR内容生成器相关联的附加元数据,诸如:
○AR内容生成器类别:对应于针对特定AR内容生成器的类型或分类
○AR内容生成器轮播索引
○轮播组:当合格的捕获后AR内容生成器被插入到轮播界面中时,轮播组可以被填充和利用。在实现方式中,新值“AR_DEFAULT_GROUP”(例如,分配给AR内容生成器的默认组可以被添加至有效组名的列表。
○与附加元数据相对应的捕获元数据660,诸如:
○摄像装置图像元数据
■摄像装置固有数据
●焦距
●主点
■其他摄像装置信息(例如,摄像装置定位)
○传感器信息:
■陀螺仪传感器数据
■定位传感器数据
■加速度计传感器数据
■其他传感器数据
■位置传感器数据
图7是示出根据某些示例实施方式的眼戴系统160的各个模块的框图。眼戴系统160被示出为包括AR内容记录系统700。如进一步所示,AR内容记录系统700包括摄像装置模块702、捕获模块704、图像数据处理模块706、渲染模块708和内容记录模块710。AR内容记录系统700的各个模块被配置成(例如,经由总线、共享存储器或交换机)彼此通信。这些模块中的任何一个或更多个模块可以使用一个或更多个计算机处理器720来实现(例如,通过将这样的一个或更多个计算机处理器配置成执行针对该模块描述的功能),并且因此可以包括计算机处理器720中的一个或更多个计算机处理器720(例如,由眼戴设备150提供的一组处理器)。
所描述的模块中的任何一个或更多个模块可以单独使用硬件来实现(例如,机器(例如,机器1100)的计算机处理器720中的一个或更多个计算机处理器720)或者可以使用硬件和软件的组合来实现。例如,眼戴系统160的任何所描述的模块可以物理地包括被配置成执行本文针对该模块所描述的操作的计算机处理器720(例如,机器(例如,机器1100)的一个或更多个计算机处理器的子集或者在机器(例如,机器1100)的一个或更多个计算机处理器之中)的一个或更多个计算机处理器720的布置。作为另一示例,AR内容记录系统700的任何模块可以包括软件、硬件或软件和硬件两者,其将(例如,在机器(例如,机器1100)的一个或更多个计算机处理器之中的)一个或更多个计算机处理器720的布置配置成执行本文中针对该模块所描述的操作。因此,AR内容记录系统700的不同模块可以在不同时间点包括并且配置这样的计算机处理器720的不同布置或这样的计算机处理器720的单一布置。此外,眼戴系统160的任何两个或更多个模块可以被组合成单一模块,并且本文中针对单一模块所描述的功能可以在多个模块之间细分。此外,根据各种示例实施方式,本文中描述为在单一机器、数据库或设备中实现的模块可以跨多个机器、数据库或设备分布。
摄像装置模块702执行摄像装置相关操作,包括针对涉及眼戴设备150的一个或更多个摄像装置的操作的功能。在示例中,摄像装置模块702可以跨在眼戴设备150上执行的不同进程来访问摄像装置功能,从而确定用于面部或表面跟踪的表面,响应于来自这样的进程的针对摄像装置数据或图像数据(例如,帧)的各种请求(例如,涉及特定分辨率或格式的图像数据),将元数据提供到消耗所请求的摄像装置数据或图像数据的这样的进程。如本文中所提到的,“进程”或“计算进程”可以指由给定处理器的一个或更多个线程执行的计算机程序的实例。
如本文中所提到的,表面跟踪是指用于跟踪与输入帧中的平面(例如,给定的水平面、地板、桌子)相对应的表面的一个或更多个表示的操作。在示例中,表面跟踪是使用命中测试(hit testing)和/或射线投射(ray casting)技术来完成的。在示例中,命中测试确定输入帧中的选定点(例如,像素或像素的集合)是否与输入帧中的物理对象的表示的表面或平面相交。在示例中,射线投射利用基于笛卡尔的坐标系(例如,x和y坐标),并且将射线(例如,矢量)投射到如在输入帧中捕获的摄像装置的世界视图中,以检测射线相交的平面。
如进一步所示,摄像装置模块702接收输入帧(或替选地,实施方式中输入帧的副本)。摄像装置模块702可以包括基于要跟踪的对象类型的各种跟踪功能。在示例中,摄像装置模块702包括用于表面跟踪、面部跟踪、对象跟踪等的跟踪能力。在实现方式中,摄像装置模块702可以一次仅执行多个跟踪过程中的每一个跟踪过程中的一个,以有助于客户端设备102或眼戴设备150处的计算资源的管理。另外,摄像装置模块702可以对输入帧执行一个或更多个对象识别或检测操作。
如本文中所提及的,跟踪是指用于在后处理阶段期间确定给定对象(或其部分)的空间属性(例如,位置和/或取向)的操作。在实现方式中,在跟踪期间,以连续的方式测量对象的位置和取向。可以跟踪不同的对象,例如用户的头部、眼睛或肢体、表面或其他对象。跟踪涉及动态感测和测量以使得能够相对于与场景(例如,输入帧)相对应的三维空间中的物理对象来渲染虚拟对象和/或效果。因此,摄像装置模块702确定与输入帧中的一个或更多个物理对象的至少相对位置和取向相对应的度量,并且将这些度量包括在提供给渲染模块708的跟踪数据中。在示例中,摄像装置模块702从帧到后续帧更新(例如,随时间跟踪)这样的度量。
在实现方式中,摄像装置模块702提供与前述度量(例如,位置和取向)相对应的跟踪数据(例如,元数据)作为输出。在一些实例中,摄像装置模块702包括用于形状识别、边缘检测或任何其他合适的对象检测机制的逻辑。还可以由摄像装置模块702将感兴趣对象确定为预定对象类型的示例,从而将一定范围内的形状、边缘或界标与预定对象类型的集合中的对象类型进行匹配。
在实现方式中,摄像装置模块702可以利用将来自设备的运动传感器(例如,加速度计和陀螺仪传感器等)的信息与对输入帧中提供的场景的分析相结合的技术。例如,摄像装置模块702检测输入帧中的特征,并且因此,使用至少部分地基于来自设备的运动传感器的数据而得出的信息来跟踪这样的特征跨若干输入帧的各自位置的差异。
如本文中所提到的,面部跟踪是指用于跟踪输入帧中的面部特征(诸如,用户面部的部分)的表示的操作。在一些实施方式中,摄像装置模块702包括面部跟踪逻辑以识别一个或更多个图像内的面部的全部或一部分并且跨视频流的图像的集合来跟踪面部的界标(landmark)。如本文中所提到的,对象跟踪是指跟踪输入帧中的物理对象的表示。
在实施方式中,摄像装置模块702利用机器学习技术来(例如,从眼戴设备150的当前视场)检测对应于显示屏的表示的物理对象是否被包括在所捕获的图像数据中。该检测的实施方式将在下面图8和图9中更详细地讨论。
在示例中,摄像装置模块702利用机器学习模型,这样的神经网络被用于检测图像数据中的显示屏的表示。神经网络模型可以指前馈深度神经网络,该前馈深度神经网络被实现为近似函数f。这方面的模型被称为前馈模型,原因是信息流过正根据输入x评估的函数,流过用于限定f的一个或更多个中间操作,并且最终到输出y。前馈深度神经网络被称为网络,原因是它们可以通过将不同的操作连接在一起来表示。前馈深度神经网络的模型可以表示为表示如何从输入层将操作连接在一起、通过一个或更多个隐藏层并且最后连接至输出层的图。在这样的图中的每个节点表示将在示例中执行的操作。然而,应当理解的是,其他类型的神经网络是由本文中所描述的实现方式预期的。例如,可以为注释提供诸如长短期记忆(LSTM)神经网络的循环神经网络,或者可以利用卷积神经网络(CNN)。
在示例中,对于本主题技术的计算机视觉技术,摄像装置模块702利用卷积神经网络模型来检测图像数据中的显示屏(或其他适用对象)的表示。这样的卷积神经网络(CNN)可以使用包括成千上万个显示屏的图像的训练数据进行训练,使得经训练的CNN可以被提供有输入数据(例如,图像或视频数据)并且执行任务以检测输入数据中的显示屏的存在。卷积运算涉及在诸如图像数据的输入数据中找到局部模式。因此,可以在图像数据的任何其他部分中识别由CNN学习的这样的模式,这有利地提供了平移不变能力。例如,从侧面观看的显示屏的图像仍然可以产生显示屏的正确分类,就好像显示屏被从正面观看一样。类似地,在遮挡的情况下,当要检测的对象(例如,显示屏)被部分遮挡而看不见时,CNN仍然能够检测图像数据中的对象。
在实施方式中,摄像装置模块702充当捕获模块704与AR内容记录系统700的其他组件之间的中介。如上所述,摄像装置模块702可以从图像数据处理模块706接收对所捕获的图像数据的请求。摄像装置模块702还可以从内容记录模块710接收对所捕获的图像数据的请求。摄像装置模块702可以将这样的请求转发至捕获模块704以供处理。
捕获模块704(例如,响应于来自其他组件的前述请求)捕获由眼戴设备150的一个或更多个摄像装置捕获的图像(其还可以包括深度数据)。例如,图像是由眼戴设备150的光学传感器(例如,摄像装置)捕获的照片。图像包括一个或更多个真实世界特征,诸如在图像中检测到的用户的面部或真实世界对象。在一些实施方式中,图像包括对图像进行描述的元数据。每个被捕获的图像可以被包括在本文中提到的作为“帧”的数据结构中,其可以包括原始图像数据以及元数据和其他信息。在实施方式中,捕获模块704可以将捕获的图像数据和元数据作为(捕获的)帧发送至AR内容记录系统700的一个或更多个部件。捕获的帧的发送可以异步地发生,这可能导致同步问题,因为一个部件可能在另一部件接收和处理给定帧之前或之后不久接收和处理同一帧。在用于渲染AR效果和AR环境的应用中,这样的同步问题可能导致相对于用户的视点的感知滞后(例如,非响应性感知或故障),这降低和减损AR环境的沉浸式体验。如以下进一步讨论的,本主题技术的实施方式因此使得能够生成每个捕获的帧的时间信息(例如,时间戳)以促进操作的同步并且对呈现给眼戴设备150的观看用户的AR效果和AR环境的渲染进行改进。
图像数据处理模块706生成捕获的图像数据的跟踪数据和其他元数据,包括与用于生成应用于捕获的图像数据的AR内容和AR效果的操作相关联的元数据。图像数据处理模块706对接收到的图像数据执行操作。例如,由图像数据处理模块706执行各种图像处理操作。图像数据处理模块706基于与动画和/或向接收到的图像数据提供视觉和/或听觉效果相对应的算法或技术来执行各种操作。在实施方式中,给定的增强现实内容生成器可以利用图像数据处理模块706来执行操作,作为生成AR内容和AR效果的一部分,然后AR内容和AR效果被提供至渲染过程以渲染这样的AR内容和AR效果(例如,包括2D效果或3D效果)等。
渲染模块708基于由以上提及的模块中的至少之一提供的数据来执行AR内容的渲染以由眼戴系统160显示。在示例中,渲染模块708利用图形处理流水线来执行图形操作以渲染AR内容以供显示。在示例中,渲染模块708实现可扩展的渲染引擎,该可扩展的渲染引擎支持与各个增强现实内容生成器相对应的多个图像处理操作。在示例中,渲染模块708可以接收复合AR内容项以用于在由眼戴设备150提供的显示器上渲染。
在一些实现方式中,渲染模块708提供将来自三维(3D)世界(真实或虚构)的一个或多个二维(2D)对象渲染到2D显示屏上的图形系统。在一些实现方式中,这样的图形系统(例如,包括在眼戴设备150上的图形系统)包括图形处理单元(GPU),以用于执行图像处理操作和渲染图形元素以用于显示。
在实现方式中,GPU包括逻辑图形处理流水线,逻辑图形处理流水线可以接收2D或3D场景的表示并且提供表示2D图像的位图的输出以用于显示。现有的应用程序接口(API)已经实现了图形流水线模型。这样的API的示例包括开放图形库(OPENGL)API和METAL API。图形处理流水线包括将一组顶点、纹理、缓冲器和状态信息转换成屏幕上的图像帧的许多阶段。在实现方式中,图形处理流水线的阶段之一是着色器,着色器可以用作应用于输入帧(例如,图像或视频)的特定增强现实内容生成器的一部分。着色器可以被实现为在通常执行若干计算线程的专用处理单元(也称为着色器单元或着色器处理器)上运行的代码,所述代码被编程成针对正在被渲染的片段生成适当等级的颜色和/或特殊效果。例如,顶点着色器处理顶点的属性(定位、纹理坐标、颜色等),并且像素着色器处理像素的属性(纹理值、颜色、z深度和α值)。在一些实例中,像素着色器被称为片段着色器。
应当理解的是,可以提供其他类型的着色器处理。在示例中,在图形处理流水线内利用特定采样率来渲染整个帧,以及/或者以特定每像素率执行像素着色。以这种方式,给定电子设备(例如,眼戴设备150)操作图形处理流水线,以将与对象相对应的信息转换成可以由电子设备显示的位图。
内容记录模块710向摄像装置模块702发送请求以通过由眼戴设备150提供的一个或更多个摄像装置来发起对图像数据的记录。在实施方式中,摄像装置模块702充当AR内容记录系统中的其他部件之间的中介。例如,摄像装置模块可以从内容记录模块710接收用以发起记录的请求,并且将该请求转发至捕获模块704以用于处理。捕获模块704在从摄像装置模块702接收到请求之后就执行操作以发起由眼戴设备150提供的摄像装置进行的图像数据捕获。然后,可以将捕获的图像数据(包括来自捕获的图像数据的每一帧的时间戳信息)发送至内容记录模块710以用于处理。在示例中,内容记录模块710可以执行操作以处理捕获的图像数据以供渲染模块708进行渲染。
在实施方式中,AR内容记录系统700的部件可以使用进程间通信(IPC)协议进行通信。在实施方式中,AR内容记录系统700的部件可以通过由AR内容记录系统700提供的API进行通信。
在实施方式中,摄像装置模块702接收停止对(例如,从内容记录模块710发送的)图像数据的记录的信号或命令(或请求)。作为响应,摄像装置模块702向捕获模块704发送停止捕获图像数据的请求。响应于停止记录的请求,捕获模块704遵守请求并且停止使用眼戴设备150的一个或更多个摄像装置捕获图像数据的进一步操作。在接收到停止记录的信号或命令之后,摄像装置模块702还可以异步地向图像数据处理模块706发送关于图像数据的记录(例如,由捕获模块704对图像数据进行的捕获)已经(被请求)停止的信号。图像数据处理模块706在接收到信号之后执行操作以完成或结束图像处理操作,包括执行操作以生成与AR内容项目和AR效果相关的元数据。然后,这样的元数据可以发送至捕获模块704,捕获模块704然后生成包括元数据的复合AR内容项。复合AR内容项可以由渲染模块708接收并且被渲染以用于在由眼戴设备150提供的显示设备上显示。
图8示出了在使用眼戴设备150的同时在用户的视场中检测到显示屏(例如,由给定电子设备所包括)的AR内容的示例。
如第一AR环境800中所示,视场810包括用AR内容815指示的对象(例如,毯),该AR内容815提供关于在视场810中的当前对象未被检测为显示屏的注释。在实施方式中,调整视场810中的当前对象的视觉外观(例如,增加亮度或光度,改变颜色值等)。
在示例中,可以在视场810中执行其他类型的调整。例如,可以降低当前对象的亮度或光度,使其模糊、颜色反转、转换为灰度等。
如第二AR环境850中所示,视场860包括用AR内容865覆盖的对象870(例如,毯),该AR内容865提供关于视场810中的当前对象被检测为显示屏的注释。在该示例中,对应于检测到的显示屏来选择视场860的一部分,并且调整该部分的视觉外观(例如,降低亮度或光度)。
在实施方式中,当用户改变由眼戴设备150的显示系统显示的视场时,可以调整AR环境的视觉外观以提高未被认为是显示屏的对象的亮度或光度,或降低被检测为显示屏的对象的亮度或光度(同时保留或放弃修改视场中的其他对象)。
在实施方式中,如上所述,摄像装置模块702利用诸如CNN的机器学习模型来检测输入图像数据中的对象,诸如显示屏的表示。例如,输入图像数据(例如,由捕获模块704提供)被馈送至CNN,并且输入被解释为多个维度(例如,4个维度)的张量。在该示例中,第一轴表示批次,在这种情况下为1,第二轴表示图像数据的高度,第三轴表示图像数据的宽度,第四轴表示颜色通道的数量。以这种方式表示图像使用通道最后惯例,诸如出现在第四维度中的通道数量(N×H×W×C)。此外,可以提供替选的第一通道惯例,其将通道数量放置在批次轴紧之后(N×C×H×W)。对于输入图像,如果输入图像是分别表示红色、绿色、蓝色(RGB)通道的彩色图像,则通道数量是3,以及对于单色图像而言,通道数量是1。
然后,由摄像装置模块702利用的CNN对图像数据执行涉及若干过滤器的卷积运算以生成对应的特征图。在该示例中,这样的特征图表示由CNN自动学习的特征。后续操作涉及池化,其涉及将特征图尺寸缩小至到较小的尺寸。在一个示例中,可以利用最大池化或平均池化。最大池化包括选择滑动窗口中的最大特征,并且平均池化包括平均特征。然后,将下采样的特征图进一步卷积并且更深地传递至CNN中。在CNN中,较早的层检测诸如边缘的简单特征,而稍后的层将先前检测到的这些特征组合成诸如图案、对象部分等的复杂特征。随着在CNN中移动得更深,图像数据的大小在深度(例如,通道的数目)增加的同时减小。在CNN中,将高级特征图馈送至包括密集层和激活函数的全连接神经网络中。然后,由CNN使用在密集神经网络中提供的类似处理来确定最终预测(例如,图像数据是否包括显示屏的表示)。
图9是示出根据某些示例实施方式的方法900的流程图。方法900可以用计算机可读指令来实施,所述计算机可读指令用于由一个或更多个计算机处理器执行,使得方法900的操作可以由眼戴设备150(特别是关于上面在图7中描述的AR内容记录系统700的各个部件)部分地或整体地执行;因此,下面参考其通过示例的方式来描述方法900。然而,应当理解的是,方法900的操作中的至少一些可以被部署在各种其他硬件配置上,并且方法900不旨在受限于AR内容记录系统700。
在操作902处,摄像装置模块702接收由眼戴设备的摄像装置捕获的第一图像数据。
在操作904处,摄像装置模块702使用机器学习模型来检测第一图像数据中的显示屏的表示。
在操作906处,图像数据处理模块706选择显示屏的表示的至少一部分。
在操作908处,图像数据处理模块706调整显示屏的表示的所述部分的视觉外观。
在操作910处,渲染模块708使得使用眼戴设备的显示系统显示调整后的视觉外观。
在实施方式中,图像数据处理模块706使用机器学习模型来检测显示屏的表示,包括对第一图像数据执行对象检测处理以确定显示屏的表示,其中,机器学习模型确定第一图像数据中包括的显示屏的表示的预测。
在实施方式中,机器学习模型包括卷积神经网络(CNN)。
在实施方式中,CNN确定其中存在显示屏的表示的感兴趣区域,该感兴趣区域包括第一图像数据的一部分。
在实施方式中,感兴趣区域包括候选边界框,候选边界框包括显示屏的表示。
在实施方式中,CNN基于感兴趣区域生成特征图,并且提供与特征图对应的值的向量作为输出,该向量包括描述感兴趣区域的内容的相应值。
在实施方式中,特征图包括特征集合,并且分类器模型生成来自特征图的特征集合的分类,该分类包括显示屏对象。
在实施方式中,图像数据处理模块706通过生成围绕显示屏的表示的边界框的表示来调整显示屏的表示的部分的视觉外观,该框的表示包括与至少四个边对应的像素集合。通过至少将第一像素的第一颜色值改变为第二颜色值来修改像素集合,其中,第二颜色值不同于第一颜色值,并且通过至少将第三像素的第一光度值改变为第二光度值来修改与显示屏的表示对应的第二像素集合,其中,第二光度值大于第一光度值。
在实施方式中,图像数据处理模块706通过至少生成指示已经检测到屏幕的消息来修改像素集合。
在实施方式中,图像数据处理模块706进行以下操作:接收由摄像装置捕获的第二图像数据,第二图像数据是在眼戴设备的摄像装置基于佩戴眼戴设备的用户的头部的位置的变化而移动时被接收的;检测显示屏的表示不再存在于第二图像数据中;以及修改第二图像数据以指示显示屏的表示不再存在,该修改包括减少第二图像数据的一部分,以减小来自第二图像数据的像素的至少一个光度值。
图10是示出示例软件架构1006的框图,该示例软件架构1006可以与本文中描述的各种硬件架构结合使用。图10是软件架构的非限制性示例,应当理解的是,可以实现许多其他架构以促进本文中描述的功能。软件架构1006可以在诸如图11的机器1100的硬件上执行,机器1100包括处理器1104、存储器1114和(输入/输出)I/O部件1118等。示出了代表性硬件层1052并且该代表性硬件层1052可以表示例如图11的机器1100。代表性硬件层1052包括具有相关联的可执行指令1004的处理单元1054。可执行指令1004表示软件架构1006的可执行指令,包括本文中描述的方法、组件等的实现方式。硬件层1052还包括也具有可执行指令1004的存储器和/或存储模块存储器/存储装置1056。硬件层1052还可以包括其他硬件1058。
在图10的示例架构中,软件架构1006可以被概念化为层的堆叠,在所述层的堆叠中,每个层提供特定功能。例如,软件架构1006可以包括诸如操作系统1002、库1020、框架/中间件1018、应用1016和表示层1014的层。在操作上,这些层内的应用1016和/或其他组件可以通过软件堆栈调用API调用1008,并且接收如在消息1012中的对API调用1008的响应。所示出的层在本质上是代表性的,并且不是所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件1018,而其他操作系统可能提供这样的层。其他软件架构可以包括另外的层或不同的层。
操作系统1002可以管理硬件资源并且提供公共服务。操作系统1002可以包括例如核1022、服务1024和驱动器1026。核1022可以用作硬件与其他软件层之间的抽象层。例如,核1022可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务1024可以为其他软件层提供其他公共服务。驱动器1026负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器1026包括显示器驱动器、摄像装置驱动器、驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、/>驱动器、音频驱动器、电源管理驱动器等。
库1020提供由应用1016和/或其他组件和/或层使用的公共基础设施。库1020提供如下功能,该功能允许其他软件组件以比与底层操作系统1002的功能(例如,核1022、服务1024和/或驱动器1026)直接对接的方式更容易的方式来执行任务。库1020可以包括系统库1044(例如,C标准库),系统库1044可以提供函数,诸如存储器分配函数、字符串操纵函数、数学函数等。另外,库1020可以包括API库1046,诸如媒体库(例如,支持诸如MPREG4、H.264、MP3、AAC、AMR、JPG、PNG的各种媒体格式的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容渲染2D和3D的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、网络库(例如,可以提供网络浏览功能的WebKit)等。库1020还可以包括各种其他库1848,以向应用1016和其他软件组件/模块提供许多其他API。
框架/中间件1018(有时也被称为中间件)提供可以由应用1016和/或其他软件组件/模块使用的较高级别的公共基础设施。例如,框架/中间件1018可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1018可以提供可以由应用1016和/或其他软件组件/模块使用的广泛的其他API,其中一些可以专用于特定操作系统1002或平台。
应用1016包括内置应用1038和/或第三方应用1040。代表性内置应用1038的示例可以包括但不限于:联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息收发应用和/或游戏应用。第三方应用1040可以包括由除了特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTM电话的移动操作系统或其他移动操作系统上运行的移动软件。第三方应用1040可以调用由移动操作系统(诸如,操作系统1002)提供的API调用1008,以促进本文中描述的功能。
应用1016可以使用内置操作系统功能(例如,核1022、服务1024和/或驱动器1026)、库1020和框架/中间件1018来创建用户接口以与系统的用户进行交互。可替选地或另外地,在一些系统中,可以通过表示层诸如表示层1014来进行与用户的交互。在这些系统中,应用/组件‘逻辑’可以与应用/组件的与用户交互的方面分开。
图11是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文所讨论的方法中的任何一种或更多种方法的机器1100的部件的框图。具体地,图11示出了呈计算机系统的示例形式的机器1100的图解表示,在该机器1100内可以执行用于使机器1100执行本文讨论的方法中的任何一种或更多种方法的指令1110(例如,软件、程序、应用、小程序、app或其他可执行代码)。因此,指令1110可以被用来实现本文中描述的模块或组件。指令1110将通用的未编程的机器1100转换成被编程成以所描述的方式执行所描述和所示出的功能的特定机器1100。在替选实施方式中,机器1100作为独立装置进行操作或者可以耦接(例如,联网)至其他机器。在联网的部署中,机器1100可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1100可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器、或者能够顺序地或以其他方式执行指定要由机器1100采取的动作的指令1110的任何机器。此外,虽然仅示出了单个机器1100,但是术语“机器”还应该被视为包括单独或联合执行指令1110以执行本文中讨论的方法中的任何一个或更多个方法的机器的集合。
机器1100可以包括处理器1104(包括处理器1108至处理器1112)、存储器/存储装置1106和I/O部件1118,它们可以被配置成诸如经由总线1102彼此进行通信。存储器/存储装置1106可以包括存储器1114诸如主存储器或其他存储器存储装置以及存储单元1116,处理器1104诸如可经由总线1102访问存储器1114和存储单元1116两者。存储单元1116和存储器1114存储体现本文中描述的方法或功能中的任何一个或更多个方法或功能的指令1110。指令1110还可以在其被机器1100执行期间完全地或部分地驻留在存储器1114内、存储单元1116内、处理器1104中的至少一个内(例如,处理器的高速缓冲存储器内)或者它们的任何合适的组合内。因此,存储器1114、存储单元1116以及处理器1104的存储器是机器可读介质的示例。
I/O部件1118可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种各样的部件。包括在特定机器1100中的具体I/O部件1118将取决于机器的类型。例如,诸如移动电话的便携式机器将很可能包括触摸输入装置或其他这样的输入机构,而无头服务器机器将很可能不包括这样的触摸输入装置。将理解的是,I/O部件1118可以包括图11中未示出的许多其他部件。仅仅为了简化下面的讨论,I/O部件1118根据功能被分组,并且分组决不是限制性的。在各种示例实施方式中,I/O部件1118可以包括输出部件1126和输入部件1128。输出部件1126可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号生成器等。输入部件1128可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触感输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触感输入部件)、音频输入部件(例如,麦克风)等。
在其他示例实施方式中,I/O部件1118可以包括生物特征识别部件1130、运动部件1134、环境部件1136或定位部件1138以及各种其他部件。例如,生物特征识别部件1130可以包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1134可以包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1136可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测周围温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、听觉传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,出于安全考虑而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件1138可以包括位置传感器部件(例如,GPS接收器部件)、海拔高度传感器部件(例如,检测可以从其得出海拔高度的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O部件1118可以包括通信部件1140,该通信部件1140能够操作成分别经由耦接1124和耦接1122将机器1100耦接至网络1132或设备1120。例如,通信部件1140可以包括网络接口部件或其他合适的设备以与网络1132对接。在其他示例中,通信部件1140可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,/>)、/>部件、以及经由其他模态提供通信的其他通信部件。设备1120可以是另一机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件1140可以检测标识符或包括可操作成检测标识符的部件。例如,通信部件1140可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述项的光学传感器:一维条形码诸如通用产品代码(UPC)条形码;多维条形码,诸如快速响应(QR)代码、Aztec代码、数据矩阵、数据图示符(Dataglyph)、麦克斯码(MaxiCode)、PDF417、超代码、UCC RSS-2D条形码和其他光学代码)、或者声学检测部件(例如,用于标识标记的音频信号的麦克风)。另外,可以经由通信部件1140得到各种信息,诸如,经由因特网协议(IP)地理位置得到位置、经由信号三角测量得到位置、经由检测可以指示特定位置的NFC信标信号得到位置等。
以下讨论涉及贯穿本主题公开内容提及的各种术语或短语。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进软件或数据的通信。术语“信号介质”应当被视为包括任何形式的经调制的数据信号、载波等。术语“经调制的数据信号”意指使其特性中的一个或更多个特性以对信号中的信息进行编码的这样的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的事物,并且可以在本公开内容中互换使用。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进的增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被应用以操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或它们的任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)的多核处理器。
“机器存储介质”指的是存储可执行指令、例程和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓冲存储器和服务器)。因此,上述术语应被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例以示例的方式包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪速存储器设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、经调制的数据信号和其他这样的介质,载波、经调制的数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。
“组件”是指具有以下边界的设备、物理实体或逻辑,所述边界由函数或子例程调用、分支点、API或提供用于对特定处理或控制功能进行划分或模块化的其他技术来定义。组件可以经由它们的接口与其他组件组合以执行机器处理。组件可以是被设计用于与其他组件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。组件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件组件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为操作成执行如本文中描述的某些操作的硬件组件。也可以机械地、电子地或其任何合适的组合来实现硬件组件。例如,硬件组件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括通过软件被短暂配置成执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,硬件组件就成为被唯一地定制成执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。将理解的是,可以出于成本和时间考虑来推动在专用且永久配置的电路中或在短暂配置(例如,通过软件配置)的电路中机械地实现硬件组件的决策。因此,短语“硬件组件”(或者“硬件实现的组件”)应当被理解成包含有形实体,即作为被物理构造、永久配置(例如,硬连线)或短暂配置(例如,编程)成以某种方式进行操作或者执行本文中描述的某些操作的实体。考虑硬件组件被短暂配置(例如,被编程)的实施方式,无需在任一时刻对硬件组件中的每个硬件组件进行配置或实例化。例如,在硬件组件包括通过软件被配置成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置一个特定处理器或多个特定处理器,以例如在一个时刻处构成特定硬件组件并且在不同的时刻处构成不同的硬件组件。硬件组件可以向其他硬件组件提供信息并且从其他硬件组件接收信息。相应地,所描述的硬件组件可以被认为是通信上耦接的。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件组件在不同时间处被配置或被实例化的实施方式中,可以例如通过将信息存储在多个硬件组件可以访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件组件之间的通信。例如,一个硬件组件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器设备中。然后,另外的硬件组件可以在随后的时间处访问存储器设备,以检索和处理所存储的输出。硬件组件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。本文中描述的示例方法的各种操作可以至少部分地由暂时被配置(例如,由软件)或永久地被配置成执行相关操作的一个或更多个处理器来执行。无论是短暂配置还是永久配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的组件。如本文中使用的,“处理器实现的组件”是指使用一个或更多个处理器实现的硬件组件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的组件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)被访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器被部署。在一些示例实施方式中,处理器或处理器实现的组件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的组件可以跨多个地理位置分布。
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这样的指令的通信。可以使用传输介质经由网络接口设备来通过网络发送或接收指令。
“计算机可读介质”是指机器存储介质和传输介质两者。因此,这些术语包括存储设备/介质和载波/经调制的数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且可以在本公开内容中可互换地使用。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。在本公开内容中,客户端设备也被称为“电子设备”。
“短暂消息”是指在时间有限的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等。针对短暂消息的访问时间可以由消息发送者设置。可替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,该消息都是暂时的。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进软件或数据的通信。术语“信号介质”应当被视为包括任何形式的经调制的数据信号、载波等。术语“经调制的数据信号”意指使其特性中的一个或更多个特性以对信号中的信息进行编码的这样的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的事物,并且可以在本公开内容中互换使用。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其他类型的网络、或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进的增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被应用以操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或它们的任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)的多核处理器。
“机器存储介质”指的是存储可执行指令、例程和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓冲存储器和服务器)。因此,上述术语应被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例以示例的方式包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪速存储器设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、经调制的数据信号和其他这样的介质,载波、经调制的数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。
“组件”是指具有以下边界的设备、物理实体或逻辑,所述边界由函数或子例程调用、分支点、API或提供用于对特定处理或控制功能进行划分或模块化的其他技术来定义。组件可以经由它们的接口与其他组件组合以执行机器处理。组件可以是被设计用于与其他组件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。组件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件组件(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为进行操作以执行如本文中描述的某些操作的硬件组件。也可以机械地、电子地或其任何合适的组合来实现硬件组件。例如,硬件组件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括通过软件被短暂配置成执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,则硬件组件成为被唯一地定制成执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。将理解的是,可以出于成本和时间考虑来推动在专用且永久配置的电路中或在短暂配置(例如,通过软件配置)的电路中机械地实现硬件组件的决策。因此,短语“硬件组件”(或者“硬件实现的组件”)应当被理解成包含有形实体,即作为被物理构造、永久配置(例如,硬连线)或短暂配置(例如,被编程)成以某种方式进行操作或者执行本文中描述的某些操作的实体。考虑硬件组件被短暂配置(例如,被编程)的实施方式,无需在任一时刻对硬件组件中的每个硬件组件进行配置或实例化。例如,在硬件组件包括通过软件被配置成变为专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置一个特定处理器或多个特定处理器,以例如在一个时刻处构成特定硬件组件并且在不同时刻处构成不同的硬件组件。硬件组件可以向其他硬件组件提供信息并且从其他硬件组件接收信息。相应地,所描述的硬件组件可以被认为是通信上耦接的。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件组件在不同时间处被配置或被实例化的实施方式中,可以例如通过将信息存储在多个硬件组件可以访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件组件之间的通信。例如,一个硬件组件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器设备中。然后,另外的硬件组件可以在随后的时间处访问存储器设备,以检索和处理所存储的输出。硬件组件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。本文中描述的示例方法的各种操作可以至少部分地由被短暂地配置(例如,由软件)或被永久地配置成执行相关操作的一个或更多个处理器来执行。无论是短暂配置还是永久配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的组件。如本文中使用的,“处理器实现的组件”是指使用一个或更多个处理器实现的硬件组件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的组件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)被访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器被部署。在一些示例实施方式中,处理器或处理器实现的组件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的组件可以跨多个地理位置分布。
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这样的指令的通信。可以使用传输介质经由网络接口设备来通过网络发送或接收指令。
“计算机可读介质”是指机器存储介质和传输介质两者。因此,这些术语包括存储设备/介质和载波/经调制的数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且可以在本公开内容中可互换地使用。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“短暂消息”是指在时间有限的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等。针对短暂消息的访问时间可以由消息发送者设置。可替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,该消息都是暂时的。

Claims (20)

1.一种方法,包括:
接收由眼戴设备的摄像装置捕获的第一图像数据;
使用机器学习模型检测所述第一图像数据中的显示屏的表示;
选择所述显示屏的表示的至少一部分;
调整所述显示屏的表示的所述部分的视觉外观;以及
使得使用所述眼戴设备的显示系统显示调整后的视觉外观。
2.根据权利要求1所述的方法,其中,使用所述机器学习模型检测所述显示屏的表示包括:
对所述第一图像数据执行对象检测处理以确定所述显示屏的表示,其中,所述机器学习模型确定所述第一图像数据中包括的所述显示屏的表示的预测。
3.根据权利要求2所述的方法,其中,所述机器学习模型包括卷积神经网络(CNN)。
4.根据权利要求3所述的方法,其中,所述CNN确定其中存在所述显示屏的表示的感兴趣区域,所述感兴趣区域包括所述第一图像数据的部分。
5.根据权利要求4所述的方法,其中,所述感兴趣区域包括候选边界框,所述候选边界框包括所述显示屏的表示。
6.根据权利要求4所述的方法,其中,所述CNN基于所述感兴趣区域生成特征图,并且提供与所述特征图对应的值的向量作为输出,所述向量包括描述所述感兴趣区域的内容的相应值。
7.根据权利要求6所述的方法,其中,所述特征图包括特征集合,并且分类器模型生成来自所述特征图的特征集合的分类,所述分类包括显示屏对象。
8.根据权利要求1所述的方法,其中,调整所述显示屏的表示的所述部分的视觉外观包括:
生成围绕所述显示屏的表示的边界框的表示,所述框的表示包括与至少四个边对应的像素集合;
通过至少将第一像素的第一颜色值改变为第二颜色值来修改所述像素集合,其中,所述第二颜色值不同于所述第一颜色值;以及
通过至少将第三像素的第一光度值改变为第二光度值来修改与所述显示屏的表示对应的第二像素集合,其中,所述第二光度值大于所述第一光度值。
9.根据权利要求8所述的方法,还包括:
通过至少生成指示已经检测到屏幕的消息来修改所述像素集合。
10.根据权利要求1所述的方法,还包括:
接收由所述摄像装置捕获的第二图像数据,所述第二图像数据是在所述眼戴设备的摄像装置基于佩戴所述眼戴设备的用户的头部的位置的变化而移动时被接收的;
检测所述显示屏的表示不再存在于所述第二图像数据中;以及
修改所述第二图像数据以指示所述显示屏的表示不再存在,所述修改包括减少所述第二图像数据的部分以减小来自所述第二图像数据的像素的至少一个光度值。
11.一种系统,其包括:
处理器;以及
存储器,所述存储器包括指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:
接收由眼戴设备的摄像装置捕获的第一图像数据;
使用机器学习模型检测所述第一图像数据中的显示屏的表示;
选择所述显示屏的表示的至少一部分;
调整所述显示屏的表示的所述部分的视觉外观;以及
使得使用所述眼戴设备的显示系统显示调整后的视觉外观。
12.根据权利要求11所述的系统,其中,使用所述机器学习模型来检测所述显示屏的表示包括:
对所述第一图像数据执行对象检测处理以确定所述显示屏的表示,其中,所述机器学习模型确定所述第一图像数据中包括的所述显示屏的表示的预测。
13.根据权利要求12所述的系统,其中,所述机器学习模型包括卷积神经网络(CNN)。
14.根据权利要求13所述的系统,其中,所述CNN确定其中存在所述显示屏的表示的感兴趣区域,所述感兴趣区域包括所述第一图像数据的部分。
15.根据权利要求14所述的系统,其中,所述感兴趣区域包括候选边界框,所述候选边界框包括所述显示屏的表示。
16.根据权利要求14所述的系统,其中,所述CNN基于所述感兴趣区域生成特征图,并且提供与所述特征图对应的值的向量作为输出,所述向量包括描述所述感兴趣区域的内容的相应值。
17.根据权利要求16所述的系统,其中,所述特征图包括特征集合,并且分类器模型生成来自所述特征图的特征集合的分类,所述分类包括显示屏对象。
18.根据权利要求11所述的系统,其中,调整所述显示屏的表示的所述部分的视觉外观包括:
生成围绕所述显示屏的表示的边界框的表示,所述框的表示包括与至少四个边对应的像素集合;
通过至少将第一像素的第一颜色值改变为第二颜色值来修改所述像素集合,其中,所述第二颜色值不同于所述第一颜色值;以及
通过至少将第三像素的第一光度值改变为第二光度值来修改与所述显示屏的表示对应的第二像素集合,其中,所述第二光度值大于所述第一光度值。
19.根据权利要求18所述的系统,其中,所述操作还包括:
通过至少生成指示已经检测到屏幕的消息来修改所述像素集合。
20.一种包括指令的非暂态计算机可读介质,所述指令在由计算设备执行时使所述计算设备执行操作,所述操作包括:
接收由眼戴设备的摄像装置捕获的第一图像数据;
使用机器学习模型检测所述第一图像数据中的显示屏的表示;
选择所述显示屏的表示的至少一部分;
调整所述显示屏的表示的所述部分的视觉外观;以及
使得使用所述眼戴设备的显示系统显示调整后的视觉外观。
CN202180088792.0A 2020-12-31 2021-12-23 增强现实内容中显示屏的检测和模糊化 Pending CN116724337A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063132955P 2020-12-31 2020-12-31
US63/132,955 2020-12-31
PCT/US2021/065154 WO2022146890A1 (en) 2020-12-31 2021-12-23 Detection and obfuscation of display screens in augmented reality content

Publications (1)

Publication Number Publication Date
CN116724337A true CN116724337A (zh) 2023-09-08

Family

ID=80446220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180088792.0A Pending CN116724337A (zh) 2020-12-31 2021-12-23 增强现实内容中显示屏的检测和模糊化

Country Status (5)

Country Link
US (1) US20220207869A1 (zh)
EP (1) EP4272183A1 (zh)
KR (1) KR20230127326A (zh)
CN (1) CN116724337A (zh)
WO (1) WO2022146890A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113906765B (zh) * 2019-05-29 2024-05-31 苹果公司 对与物理环境相关联的位置特定数据进行模糊处理的方法和设备
US11816757B1 (en) * 2019-12-11 2023-11-14 Meta Platforms Technologies, Llc Device-side capture of data representative of an artificial reality environment
EP4272179A1 (en) * 2020-12-31 2023-11-08 Snap Inc. Recording augmented reality content on an eyewear device
EP4272180A1 (en) 2020-12-31 2023-11-08 Snap Inc. Post-capture editing of augmented reality content
US11935201B2 (en) * 2022-04-28 2024-03-19 Dell Products Lp Method and apparatus for using physical devices in extended reality environments

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474230B2 (en) * 2016-12-15 2019-11-12 Tectus Corporation Brightness control for an augmented reality eye-mounted display

Also Published As

Publication number Publication date
EP4272183A1 (en) 2023-11-08
WO2022146890A1 (en) 2022-07-07
US20220207869A1 (en) 2022-06-30
KR20230127326A (ko) 2023-08-31

Similar Documents

Publication Publication Date Title
US11934575B2 (en) Determining gaze direction to generate augmented reality content
US11816926B2 (en) Interactive augmented reality content including facial synthesis
US20220207840A1 (en) Recording augmented reality content on an eyewear device
US20220207869A1 (en) Detection and obfuscation of display screens in augmented reality content
US12045921B2 (en) Automated content curation for generating composite augmented reality content
KR20230162987A (ko) 서드 파티 애플리케이션들을 위한 증강 현실 콘텐츠에서의 얼굴 합성
US11875600B2 (en) Facial synthesis in augmented reality content for online communities
US11880949B2 (en) Post-capture editing of augmented reality content
US20220319060A1 (en) Facial synthesis in augmented reality content for advertisements
KR20230162971A (ko) 오버레이된 증강 현실 콘텐츠에서의 얼굴 합성
WO2022147404A1 (en) Automated content curation for generating composite augmented reality content

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