CN112639876A - 活动图像深度预测 - Google Patents

活动图像深度预测 Download PDF

Info

Publication number
CN112639876A
CN112639876A CN201980056294.0A CN201980056294A CN112639876A CN 112639876 A CN112639876 A CN 112639876A CN 201980056294 A CN201980056294 A CN 201980056294A CN 112639876 A CN112639876 A CN 112639876A
Authority
CN
China
Prior art keywords
image
depth
message
depth map
user
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
CN201980056294.0A
Other languages
English (en)
Inventor
段锟
D·罗恩
C·马
徐宁
王申龙
S·M·哈努曼特
D·萨加尔
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 CN112639876A publication Critical patent/CN112639876A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/536Depth or shape recovery from perspective effects, e.g. by using vanishing points
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Human Computer Interaction (AREA)

Abstract

活动深度检测系统可以从图像和用户交互数据(例如,一对点击)生成深度图。活动深度检测系统可被实现为循环神经网络,其可以在训练后接收用户交互数据作为运行时输入。活动深度检测系统可以存储所生成的深度图,用于进一步处理,例如图像操作或现实世界中的对象检测。

Description

活动图像深度预测
优先权要求
本申请要求于2018年8月31日提交的序列号为16/120,105的美国专利申请的优先权的权益,通过整体引用将其合并于此。
技术领域
本公开的实施例一般涉及机器学习,并且更具体地但非限制性地涉及基于图像的深度估计。
背景技术
深度估计机制试图确定图像(例如,图像,视频)中描绘的对象的深度。深度数据可用于不同的基于图像的任务,诸如增强现实,图像聚焦和面部解析。一些深度检测技术使用外部信号(例如,红外光束)来反射附近的对象,以帮助确定给定图像中对象的深度。尽管这些基于外部信号的方法可以产生准确的结果,但是许多用户设备(例如,智能手机,笔记本电脑)并未配备以实现基于信号的深度检测的必要的硬件(例如,红外(IR)激光,IR摄像头)。由于对象在图像中的外观与其实际几何结构之间存在固有的分歧,所以从单个图像直接确定深度是困难的。
附图说明
为了容易地识别对任何特定元素或动作的讨论,参考数字中的一个或多个最高有效数字是指其中首次引入该元素或动作的图的编号。
图1是示出用于通过网络交换数据(例如,消息和相关联的内容)的示例消息传递系统的框图。
图2是示出根据示例实施例的关于图1的消息传递系统的进一步细节的框图。
图3是示出根据某些示例实施例的可以存储在消息传递系统的数据库中的数据的示意图。
图4是示出根据一些实施例的由用于通信的消息传递客户端应用生成的消息的结构的示意图。
图5是示出根据一些示例实施例的示例访问限制过程的示意图,按照该过程,对内容(例如,短时(ephemeral)消息以及相关联的多媒体数据有效载荷)或内容集合(例如,短时消息故事)的访问可以是受时间限制的(例如,短时的)。
图6示出了根据一些示例实施例的活动(active)深度系统的示例功能引擎。
图7示出了根据一些示例实施例的用于实现活动深度图的方法的流程图。
图8示出了根据一些示例实施例的用于利用点击对数据集的示例方法的流程图。
图9A示出了根据一些示例实施例的用于深度引擎的示例网络。
图9B示出了根据一些示例实施例的示例图像和深度图。
图10-13示出了根据一些示例实施例的用于实现活动深度系统的示例用户界面。
图14是示出可与本文中所描述的各种硬件架构结合使用的代表性软件架构的框图。
图15是示出根据一些示例实施例的机器的组件的框图,该机器能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的方法中的任何一个或多个。
具体实施方式
以下描述包括体现本公开的示意性实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对发明主题的各种实施例的理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本发明的主题的实施例。通常,公知的指令实例、协议、结构和技术不必详细示出。
如所讨论的,确定图像中描绘的对象的深度是困难的。尽管一些基于外部信号的方法可以协助基于图像的深度检测,但是许多终端用户系统(例如,客户端设备,智能手机,便携式计算机)缺少实现这些基于信号的方法所需的专用设备。
为此,可以实现活动深度(active depth)检测系统,以使用运行时终端用户提供的数据(例如,在训练后提供给系统的终端用户输入数据)直接从图像确定对象的深度。根据一些方法,活动深度检测系统包括一个或多个神经网络,该神经网络被配置为使用终端用户提供的深度数据(例如,有序对(ordinal pairs),诸如图像上的一对点击或屏幕敲击)生成深度图并细化(refine)深度图。
例如,客户端设备可以显示图像,并且用户可以选择图像中的第一点(例如,屏幕敲击,点击或指定其图像坐标),然后选择图像中的第二点。活动深度检测系统生成从第一点到第二点的矢量,以指示深度检测(例如,指示第一点对应于图像中相比图像中对应于第二点的部分更靠近观看者的部分,反之亦然)。矢量可被输入到神经网络系统中,该神经网络系统已被训练为使用有序对(例如,一对点击)作为约束来更新深度图。
在一些示例实施例中,使用端到端训练技术(例如,反向传播)来训练活动深度检测系统。在训练模型之后,可以下载该模型以作为用户应用(例如,下面讨论的消息传递客户端应用104)的一部分供不同用户使用。当用户生成图像时,系统可以首先使用基本网络(诸如完全卷积残差神经网络(FCRN))生成初始深度图。活动深度检测系统然后可以使用指示成像区域(例如,原始图像中的区域,初始深度图中的区域)的深度方向的有序约束(例如,点击对)来细化初始深度图。在一些示例实施例中,活动深度检测系统实现被配置为采用多个层的交替方向乘子法(Alternating Direction Method of Multipliers(ADMM))模块的循环神经网络。循环神经网络可以执行多次迭代以生成在不同层中处理的变量。循环神经网络的输出是可用于进一步处理(诸如,图像操作)的细化的深度图。尽管在以下示例中,将细化的深度图用于图像处理,但其它用途也是可能的。例如,可以在增强现实系统中实现活动深度检测系统,以更准确地生成修改用户周围环境的外观的模拟。作为另一示例,活动深度检测系统可以被实现为自动驾驶车辆视觉系统的一部分,以确定在一个或多个图像中描绘的对象的相对深度。
图1是示出了用于通过网络交换数据(例如,消息以及相关联的内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104经由网络106(例如,因特网)通信地耦接到消息传递客户端应用104的其它实例和消息传递服务器系统108。在各种实施例中,消息传递客户端应用104和/或图像处理系统116可以使用虚拟机学习来分析消息传递系统100内发送的图像,并使用该分析来提供消息传递系统100内的特征。
因此,每个消息传递客户端应用104能够经由网络106与另一消息传递客户端应用104以及与消息传递服务器系统108通信和交换数据。在消息传递客户端应用104之间交换的数据以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其它多媒体数据)。
消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器侧功能。尽管消息传递系统100的某些功能在本文中被描述为由消息传递客户端应用104或者消息传递服务器系统108执行,但是可以理解的是,在消息传递客户端应用104内或者消息传递服务器系统108内的某些功能的位置是设计选择的。例如,在技术上优选的是,首先在消息传递服务器系统108内部署某些技术和功能,但是随后将该技术和功能移动到其中客户端设备102具有足够处理能力的消息传递客户端应用104。
消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。该操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据以及处理由消息传递客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和叠加、消息内容持久性条件、图像搜索数据、社交网络信息和现场事件信息,这些中的一些依赖于通过分析由消息传递系统100发送的图像而生成的信息。在消息传递系统100内的数据交换是经由消息传递客户端应用104的用户界面(UI)可用的功能来调用和控制的。
现在具体转向消息传递服务器系统108,应用编程接口(API)服务器110被耦接到应用服务器112,并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,数据库服务器118有助于访问数据库120,在数据库120中存储了与由应用服务器112处理的消息相关联的数据。在一些实施例中,数据库120还可以存储图像处理的结果或各种经过训练的和未经训练的支持向量机的细节,这些可以由消息传递服务器系统108使用。
API服务器110在客户端设备102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,API服务器110提供可以由消息传递客户端应用104调用或查询的一组接口(例如,例程和协议),以调用应用服务器112的功能。API服务器110公开了由应用服务器112支持的各种功能,包括帐户注册,登录功能,经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息,从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如,图像或视频)以供另一消息传递客户端应用104进行访问,媒体数据集合(例如故事)的设置,对此类集合的取得,对客户端设备102的用户的朋友列表的取得,对消息和内容的取得,向社交图添加朋友和从社交图删除朋友,对社交图中朋友的定位,以及应用事件(例如,与消息传递客户端应用104有关的事件)。
根据一些示例实施例,应用服务器112托管许多应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122和活动深度系统150。消息传递服务器应用114实现多种消息处理技术和功能,特别是与从消息传递客户端应用104的多个实例接收的消息中包含的内容(例如,文本和多媒体内容)的聚合和其它处理有关的技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合到内容集合(例如,称为故事或图库)中。然后,可通过消息传递服务器应用114使得这些集合对消息传递客户端应用104可用。鉴于用于此处理的硬件要求,消息传递服务器应用114还可在服务器侧执行其它处理器和存储器密集型数据处理。
应用服务器112还包括图像处理系统116,该图像处理系统116专用于执行各种图像处理操作,通常与消息传递服务器应用114的消息的有效载荷内接收的图像或视频相关。
社交网络系统122支持各种社交网络功能和服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图(例如,图3中的实体图304)。由社交网络系统122支持的功能和服务的示例包括消息传递系统100中与特定用户有关系或特定用户所“关注”的其他用户的标识,以及特定用户的兴趣和其它实体的标识。
应用服务器112通信地耦合到数据库服务器118,数据库服务器118促进对数据库120的访问,数据库120中存储有与由消息传递服务器应用114处理的消息相关联的数据。
图2是示出根据示例实施例的关于消息传递系统100的进一步细节的框图。具体地,消息传递系统100被示为包括消息传递客户端应用104和应用服务器112,其依次体现一些子系统,即短时计时器系统202、集合管理系统204、注释系统206、和活动深度系统150。
短时计时器系统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中)相关联并且被应用于视频和/或图像。在一个示例中,滤镜是在向接收者用户呈现期间显示为叠加在图像或视频上的叠加物。滤镜可以是各种类型的,包括当发送用户正在编写消息时由消息传递客户端应用104向发送用户呈现的滤镜图库中的用户选择的滤镜。其它类型的滤镜包括地理位置滤镜(也称为地理滤镜),可以基于地理位置向发送用户呈现地理位置滤镜。例如,消息传递客户端应用104可以基于由客户端设备102的全球定位系统(GPS)单元所确定的地理位置信息在用户界面内呈现特定于邻近处或特定位置的地理位置滤镜。另一种类型的滤镜是数据滤镜,其可以基于由客户端设备102在消息创建过程中收集的其它输入或信息,由消息传递客户端应用104有选择地呈现给发送用户。数据滤镜的示例包括特定位置处的当前温度、发送用户正在行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在注释表内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可以添加到图像或视频中的实时的特效和声音。
如上提到的,视频表310存储视频数据,在一个实施例中,该视频数据与消息(其记录在消息表314内被维护)相关联。类似地,图像表308存储与消息(其消息数据被存储在消息表314中)相关联的图像数据。实体表302可将来自注释表312的各种注释与存储在图像表308中的各种图像和存储在视频表310中的各种视频相关联。
故事表306存储关于消息和相关图像、视频或音频数据的集合的数据,这些数据被编译到集合(例如,故事或图库)中。特定集合的创建可以由特定用户(例如,在实体表302中维护其记录的任何用户)发起。用户可以以该用户已创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用104的用户界面可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。
集合还可以构成“现场故事”,其是来自多个用户的通过手动、自动或者使用手动和自动技术的组合来创建的内容的集合。例如,“现场故事”可以构成用户提交的来自各种位置和事件的内容的策展流。例如,可以经由消息传递客户端应用104的用户界面向用户(该用户的客户端设备102启用了位置服务并且在特定时间处于共同位置或事件)呈现选项,以将内容贡献给特定的现场故事。现场故事可以由消息传递客户端应用104针对用户基于他/她的位置来识别。最终的结果是从公共角度讲述“现场故事”。
另一类型的内容集合被称为“位置故事”,其使得客户端设备102位于特定地理位置内(例如,在大学或大学校园内)的用户能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可能需要二级认证,以验证终端用户属于特定组织或其它实体(例如,是大学校园中的学生)。
图4是示出根据一些实施例的由消息传递客户端应用104生成的消息400的结构的示意图,用于与另一消息传递客户端应用104或消息传递服务器应用114进行通信。特定消息400的内容用于填充存储在数据库120中可由消息传递服务器应用114访问的消息表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:以秒为单位指示消息400的内容(例如,消息图像有效载荷406、消息视频有效载荷408和消息音频有效载荷410)将经由消息传递客户端应用104向用户呈现或者可由用户访问的时间量的参数值。
消息地理位置参数416:与消息400的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数416值可以包括在有效载荷中,这些参数值中的每一个与内容中包括的相应的内容项相关联(例如,消息图像有效载荷406中的特定图像或消息视频有效载荷408中的特定视频)。
消息故事标识符418:用于识别一个或多个内容集合(例如,“故事”)的标识符值,其与消息400的消息图像有效载荷406中的特定内容项相关联。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
消息标签420:一个或多个标签,其中每个标签指示在消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘了动物(例如,狮子)的情况下,指示相关动物的标签值可被包括在消息标签420内。标签值可以基于用户输入手动生成或者可以使用例如图像识别自动生成。
消息发送者标识符422:指示客户端设备102的用户的标识符(例如,消息系统标识符,电子邮件地址或设备标识符),在该客户端设备102上生成消息400以及从该客户端设备102发送消息400。
消息接收者标识符424:指示消息400被寻址到的客户端设备102的用户的标识符(例如,消息系统标识符、电子邮件地址或设备标识符)。
消息400的各个组件的内容(例如,值)可以是指向存储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或其地址)的指针。类似地,消息视频有效载荷408中的值可以指向视频表310内存储的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,以及存储在消息发送者标识符422和消息接收器标识符424中的值可以指向存储在实体表302中的用户记录。
图5是示出访问限制过程500的示意图,根据访问限制过程500,对内容(例如,短时消息502和相关联的多媒体数据有效载荷)或内容集合(例如,短时消息故事504)的访问可以是受时间限制的(例如,短时的)。
短时消息502被示为与消息持续时间参数506相关联,消息持续时间参数506的值确定由消息传递客户端应用104向短时消息502的接收用户显示短时消息502的时间量。在一个实施例中,在消息传递客户端应用104是应用客户端的情况下,取决于发送用户使用消息持续时间参数506指定的时间量,接收用户可查看短时消息502最多10秒。
消息持续时间参数506和消息接收者标识符424被示出为将被输入到消息定时器512,消息定时器512负责确定向由消息接收者标识符424识别的特定接收用户显示的短时消息502时间量。特别地,短时消息502将仅在由消息持续时间参数506的值确定的时间段内显示给相关的接收用户。消息计时器512被示出为将输出提供给更通用的短时计时器系统202,其负责向接收用户显示内容(例如,短时消息502)的总体定时。
在图5中示出了短时消息502,其将被包含在短时消息故事504(例如,个人故事或事件故事)内。短时消息故事504具有相关联的故事持续时间参数508,故事持续时间参数508的值确定短时消息故事504被呈现以及可供消息传递系统100的用户访问的持续时间。例如,故事持续时间参数508可能是音乐会的持续时间,其中短时消息故事504是与该音乐会有关的内容的集合。可替代地,当执行短时消息故事504的建立和创建时,用户(所有者用户或策展者用户)可以指定故事持续时间参数508的值。
附加地,短时消息故事504内的每个短时消息502具有关联的故事参与参数510,其值确定短时消息502将在短时消息故事504的上下文内可被访问的持续时间。因此,在短时消息故事504本身根据故事持续时间参数508到期之前,特定的短时消息502可能“到期”并且变得不可在短时消息故事504的上下文内访问。故事持续时间参数508、故事参与参数510和消息接收者标识符424中的每一者向故事计时器514提供输入,故事计时器514在操作上确定短时消息故事504的特定短时消息502是否将被显示给特定的接收用户,并且如果显示,则确定显示多长时间。注意,由于具有消息接收者标识符424,所以短时消息故事504还知道特定接收用户的身份。
因此,故事计时器514在操作上控制相关的短时消息故事504的整体寿命以及包含在短时消息故事504中的单个短时消息502。在一个实施例中,短时消息故事504中的每个以及全部短时消息502在由故事持续时间参数508指定的时间段内保持可见和可访问。在另一个实施例中,某些短时消息502可能基于故事参与参数510而在短时消息故事504的上下文内到期。注意,即使在短时消息故事504的上下文内,消息持续时间参数506仍可以确定向接收用户显示特定短时消息502的持续时间。因此,消息持续时间参数506确定向接收用户显示特定短时消息502的持续时间,而不管接收用户是正在查看短时消息故事504的上下文以内的短时消息502还是其以外的短时消息502。
短时定时器系统202还可以在操作上基于确定已经超过相关联的故事参与参数510而从短时消息故事504中移除特定短时消息502。例如,当发送用户已经建立了从发布起24小时的故事参与参数510时,短时定时器系统202将在指定的24小时之后从短时消息故事504中移除相关的短时消息502。短时定时器系统202还操作以在短时消息故事504内的每个和所有短时消息502的故事参与参数510已经到期时,或者当短时消息故事504自身已经根据故事持续时间参数508到期时,移除短时消息故事504。
在某些使用情况中,特定短时消息故事504的创建者可以指定非限定的故事持续时间参数508。在该情况下,针对短时消息故事504内的最后剩余的短时消息502的故事参与参数510的到期将确定短时消息故事504自身何时到期。在该情况下,具有新故事参与参数510的新短时消息502(其被添加到短时消息故事504)有效地将短时消息故事504的寿命延长到等于故事参与参数510的值。
响应于短时定时器系统202确定短时消息故事504已经到期(例如,不可再访问),短时定时器系统202与消息传递系统100(例如,具体地,消息传递客户端应用104)通信,使得与相关短时消息故事504相关联的标记(例如,图标)不再被显示在消息传递客户端应用104的用户界面内。类似地,当短时定时器系统202确定特定短时消息502的消息持续时间参数506已经到期时,短时定时器系统202使消息传递客户端应用104不再显示与短时消息502相关联的标记(例如,图标或文本标识)。
图6示出了根据一些示例实施例的活动深度系统150的示例功能引擎。如图所示,活动深度系统150包括接口引擎600,训练引擎605,深度引擎610和内容引擎615。接口引擎600管理与消息传递服务器应用114的通信以生成用户界面,接收输入数据(例如,点击对,按钮的选择),并生成内容(例如,图像,视频)。训练引擎605被配置为训练在深度引擎610中实现的模型。深度引擎610被配置为使用图像和由用户输入的一个或多个有序约束(例如,点击对)从单个图像生成深度图。内容引擎615被配置为使用深度引擎610生成的深度图来执行一个或多个动作。例如,内容引擎615可以被配置为使用深度引擎610生成的深度信息将图像效果应用于图像,和/或在图像上叠加一个或多个项目。
图7示出了根据一些示例实施例的用于实现活动深度图的方法700的流程图。在操作705,训练引擎605训练活动深度系统模型,诸如下面参考图9A讨论的网络900。因为网络900是完全可微的,所以可以使用梯度下降来端到端(end-to-end)地训练网络900。在操作710,界面引擎600生成图像。例如,接口引擎600使用客户端设备102的图像传感器生成图像。在操作715,深度引擎610接收用户交互数据。例如,在操作715,深度引擎610接收点击对数据,如同在客户端设备102的显示设备上描绘的图像上的屏幕敲击的序列。在操作720,深度引擎610使用被训练的网络900生成细化的深度图,如下面参考图9A和9B更详细讨论的。在操作730,内容引擎615使用由深度引擎610生成的细化的深度图来修改图像。例如,在操作730,内容引擎615使用在操作720生成的细化的深度图来去除所生成的图像中的背景区域。在操作735,内容引擎615将修改后的图像作为短时消息(例如,短时消息502)发送到网站(例如,社交媒体网站),以供其他网站用户访问。
图8示出了根据一些示例实施例的用于利用点击对数据集的示例方法800的流程图。在一些实施方式中,客户端设备102的用户输入多对点击,每个点击对集合指示图像中区域的深度方向。深度引擎610可以将方法800实现为操作720(其中,生成细化的深度图)的子例程。
在操作805,深度引擎610识别有序对,诸如用户在客户端设备上显示的图像上输入的一对点击。在操作810,深度引擎610生成基本深度图以用于细化。例如,在操作810,深度引擎610实现FCRN以从图像(例如,在图7的操作710中生成的图像)生成初始深度图。
在操作815,深度引擎610使用接收到的有序对来进一步细化基本深度图。例如,在操作815,深度引擎610运行ADMM模块一个或多个迭代以细化初始深度图的区域。在操作820,深度引擎610确定是否存在额外的有序对集。如果用户输入了额外的点击对,则在操作820,方法800继续进行到操作805,并且深度引擎610在操作810和815中使用额外的有序对信息来进一步细化深度图。例如,第一有序对可以提高深度图中的第一区域(例如,右下角)的深度精度,第二有序对可以提高深度图中的不同的第二区域(例如,左上角)的深度精度,等等。可替代地,返回到操作820,如果深度引擎610确定用户没有输入其它有序对,则方法800进行到操作825,其中深度引擎610存储细化的深度图。
图9A示出了根据一些示例实施例的用于深度引擎610的示例网络900。如图所示,初始图像905被输入到基本网络910(例如,全卷积残差神经网络(FCRN)),基本网络910生成基本深度图915。图9B示出了示例图像950和深度图955。深度图955使用诸如明暗度的数据值来指示图像950中不同区域的深度。例如,在深度图955中,台球桌的像素比的墙的像素更暗,这表明台球桌比在台球桌后面描绘的墙更靠近观看者(例如,用户,摄像机镜头)。深度图可以是与其对应的图像分开的单独文件,但也可以作为每个像素的额外通道数据被集成到图像中。
返回9A,基本深度图915被输入到ADMM模块925中,该模块以若干次迭代(例如,迭代1,迭代2,…迭代n)进行操作以生成细化的深度图930。成对数据920另外输入到ADMM模块925中,成对数据920包括一对点或一对点击,其指定在深度方向上一对像素之间的相对顺序,如下面讨论的图11所示。
在一些示例实施例中,ADMM模块925被实现为循环神经网络,其实现更新规则以生成细化的深度图930。成对数据920包括用户输入指导(例如,点击以指示深度方向),其用作对推断深度估计的有序约束。深度估计可被建模为具有线性约束的二次规划机制(quadratic programming scheme)。特别地,令N为图像中像素的总数,并令x和y为输入图像和待求解的细化深度的矢量表示。细化的深度值y被限制在范围[0,D]内。给定来自用户指导的M对有序约束(用户点击对),用于优化y的目标函数为:
y*=argminyfu(y,x)+∑αfp(yα,x) [1]
S.t.
Ay≤B
其中
Figure BDA0002953463020000161
I是单位矩阵,0和1是所有0和1的向量。此外,fu(y,x)是对来自基本深度神经网络的预测进行编码的一元势,而fp(yα,x)是对相邻像素之间的空间关系进行编码的高阶势。Ay≤B对用于有序关系的硬约束进行编码。A和B中的前两个部分确保细化的深度输出在有效范围[0,D]内。P是编码M个不同的有序约束的M×N矩阵。如果(j,j’)是有序对(其中,k≤M),则使用Pkj=1且Pkj’=-1。
一元势fu采用fu(y,x;w)=1/2‖y-h(x;w)‖2的形式,其测量y与h(x;w)之间的L2距离。为了估计深度,h(x;w)指示来自基本深度预测网络(例如,基本网络910)的输出,该基本深度预测网络由网络权重w参数化。最小化一元项等效于最小化细化深度和基本网络输出之间的均方误差。
高阶势fp采用fp(yα,x;w)=hα(x;w)gα(Wαy)的形式。此处Wα表示用于过滤操作的变换矩阵,并且hα(x;w)提供每像素的指导信息,该信息为低频边缘上的像素提供更强的局部平滑度。hα(x;w)对于所有像素是恒定的,以示出相对于有序约束的改进。
为了求解细化的深度值y,ADMM算法被实现为处理不可微的目标和硬约束,同时保持快速收敛。使用辅助变量z={z1,…,zA}重新配置等式1。特别是:
Figure BDA0002953463020000171
然后,原始目标函数的增强拉格朗日为:
Figure BDA0002953463020000172
其中ρα是恒定的罚超参数(penalty hyperparameter),而λ,ξ是拉格朗日乘数,λ≥0。变量y,z,λ,ξ通过在以下子问题之间交替来求解。
为了求解细化深度y:y更新规则是拉格朗日函数相对于y的导数:
Figure BDA0002953463020000173
Figure BDA0002953463020000181
该步骤使用项ATλ来编码有序约束并调整来自基本网络的输出。深度在通过ADMM网络模块的正推法中迭代地被细化。
为了求解辅助变量z:令gα(·)=‖·‖1是y上的L1平滑先验,而S(a,b)是软阈值函数。通过求解Lasso问题来获得z更新规则:
Figure BDA0002953463020000182
对于每个Zα
Figure BDA0002953463020000183
为了求解拉格朗日乘数λ和ξ,使用梯度上升来获得用于λ的更新规则:
Figure BDA0002953463020000184
类似地,对于每个ξα,使用梯度上升更新规则:
Figure BDA0002953463020000191
其中η和τα是表示梯度更新步长的超参数。
在一些示例实施例中,ADMM模块925本质上是迭代的,不共享权重,并且迭代次数是固定的,以允许ADMM模块925使用具有定制的激活函数的卷积神经网络。
根据一些示例实施例,标注(call-out)933示出了ADMM模块925的不同的层。根据一些示例实施例,ADMM模块925被配置为运行以上更新规则的迭代。经由反向传播训练来学习对变换Wα进行编码的过滤器。数据张量zα,ξα和λ被初始化为零。
在一些示例实施例中,深度引擎610使用五个ADMM模块,其对应于运行ADMM模块925进行五次迭代。每个ADMM实例包含64个转换Wα(例如,每个卷积层包括64个过滤器,每个去卷积层包括64个层,等等)。在一些示例实施例中,由于ADMM模块925中的所有操作是可微的,所以可以使用梯度下降来端到端地学习整个网络900(例如,基本网络910和ADMM模块925)。在一些示例实施例中,网络900将标准均方误差(MSE)实现为损失函数。
ADMM模块925中的第一层935A被配置为求解细化深度y。分子的计算对应于在每个ραzαα上应用去卷积937(例如,转置卷积)步骤并将结果的总和并在一起。分母的计算是通过将去卷积内核转换为光学传递函数并求和来执行的。通过首先在分子上应用快速傅立叶变换(FFT),然后对该分化结果进行逆FFT,来执行最终输出的计算。
ADMM模块925中的第二层935B求解辅助变量z。这可以通过使用与去卷积层共享的相同过滤器在y上借助卷积层945来完成。卷积层的输出通过非线性活动层943(如通过运算符940所指示的),该非线性活动层943实现标准软阈值函数S(a,b)。实际上,我们使用两个整流线性单元(ReLU)函数实现该软阈值函数:S(a,b)=ReLU(a-b)-ReLU(-a-b)。在一些示例实施例中,卷积层945不与去卷积层共享权重以增加网络容量。
ADMM模块925中的第三层935C和第四层935D分别对应于求解拉格朗日乘数λ和ξ的梯度上升步骤。这些步骤被实现为张量减法和求和运算。梯度上升之后的λ的更新结果通过激活层939(例如,附加的ReLU层),以满足对λ的非负约束。
图10-13示出了根据一些示例实施例的用于实现活动深度系统150的示例用户界面。如图10所示,用户1000握持客户端设备102,客户端设备102显示用户界面1010。用户1000使用采集图像按钮1005生成了图像1015。为了输入点击对数据,用户1000选择添加点按钮1020。参照图11,用户1000选择了添加点按钮1020并且轻击屏幕两次以创建一个点击对集合。特别地,用户1000在点1100处点击了屏幕,随后在点1105处点击了屏幕,以指示与点1100相对应的像素比与点1105相对应的像素更近。尽管在示例中讨论了第一点比第二点更近,但是可以理解,有序对数据也可以以相反方向来配置(例如,第一点指示该点比随后的第二点更远)。活动深度系统150接收屏幕点击并生成连接两个点1100和1105的箭头,以指示图像的该区域(例如,所描绘的出纳员上方的天花板)的深度的方向是由两点创建的箭头的方向。尽管在此讨论的示例中的有序对是由用户提供的一对点击生成的,但是可以理解,有序对数据也可以通过其它方式生成,例如通过滑动手势或通过在文本输入栏输入第一点和第二点的坐标。
响应于接收到点击对(例如,点1100和点1105),深度引擎610生成图像1015的基本深度图,并且进一步使用该点击对来生成并存储使用该点击对的细化的深度图,如上所述。转向图12,内容引擎615可以被配置为使用所生成的细化的深度图从图像1015生成修改的图像1200。具体地,内容引擎615使用细化的深度图来识别图像1015的背景区域并去除背景区域以生成修改后的图像1200。参照图13,内容引擎615可以进一步被配置为在修改的图像1200上叠加诸如位置内容1300的附加内容。用户1000然后可以选择发布按钮1305以发布具有叠加内容(例如,位置内容1300)的修改后的图像1200作为网站上的短时消息。
图14是示出示例软件架构1406的框图,该示例软件架构1406可以与本文所述的各种硬件架构结合使用。图14是软件架构的非限制性示例,并且可以理解,许多其它架构可被实现以促进在此描述的功能。软件架构1406可以在诸如图15的机器1500的硬件上执行,机器1500包括处理器1510、存储器1530和I/O组件1550等。代表性硬件层1452被示出并且可以表示例如图15的机器1500。代表性硬件层1452包括具有相关联可执行指令1404的处理单元1454。可执行指令1404表示软件架构1406的可执行指令,包括在此描述的方法、组件等的实施方式。硬件层1452还包括存储器和/或存储模块1456,其也具有可执行指令1404。硬件层1452还可以包括其它硬件1458。
在图14的示例性架构中,软件架构1406可以概念化为层的堆栈,其中每个层提供特定的功能。例如,软件架构1406可以包括诸如操作系统1402、库1420、框架/中间件1410、应用1416和表示层1414的层。在操作上,层内的应用1416和/或其它组件可以通过软件堆栈调用API调用1408,并且接收来自消息1412的响应。所示的层本质上是代表性的,并且并不是所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件1410,而其它操作系统可提供此类层。其它软件架构可以包括附加的层或不同的层。
操作系统1402可以管理硬件资源并提供公共服务。操作系统1402可以包括例如内核1422、服务1424和驱动器1426。内核1422可以用作硬件和其它软件层之间的抽象层。例如,内核1422可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务1424可以为其它软件层提供其它公共服务。驱动器1426负责控制底层硬件或与底层硬件接口连接。例如,驱动器1426包括显示驱动器、相机驱动器、蓝牙
Figure BDA0002953463020000211
驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、Wi-Fi驱动器、音频驱动器、电源管理驱动器等等,取决于硬件配置。
库1420提供由应用1416和/或其它组件和/或层使用的公共基础结构。库1420提供允许其它软件组件以比与底层操作系统1402功能(例如,内核1422、服务1424和/或驱动器1426)直接通过接口连接更容易的方式执行任务的功能。库1420可以包括系统库1444(例如,C标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。另外,库1420可以包括API库1446,诸如媒体库(例如,用于支持各种媒体格式(诸如MPREG4、H.264、MP3、AAC、AMR、JPG、或PNG)的呈现和操作的库)、图形库(例如,可用于在显示器上的图形内容中呈现2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、web库(例如,可提供web浏览功能的WebKit)等。库1420还可以包括各种其它库1448,以向应用1416和其它软件组件/模块提供许多其它API。
框架/中间件1410提供可由应用1416和/或其它软件组件/模块使用的更高级别的公共基础结构。例如,框架/中间件1410可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1410可以提供可以由应用1416和/或其它软件组件/模块使用的宽范围的其它API,其中的一些可以针对特定操作系统1402或平台。
应用1416包括内置应用1438和/或第三方应用1440。代表性内置应用1438的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1440可以包括由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTM
Figure BDA0002953463020000221
Phone的移动操作系统或其它移动操作系统上运行的移动软件。第三方应用1440可以调用由移动操作系统(诸如操作系统1402)提供的API调用1408以便于实现在此描述的功能。
应用1416可以使用内置操作系统功能(例如,内核1422、服务1424和/或驱动器1426)、库1420和框架/中间件1410来创建用户界面以与系统的用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过表示层(诸如表示层1414)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的方面分开。
图15是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此所讨论的任何一种或多种方法的机器1500的组件的框图。具体地,图15示出了以计算机系统的示例形式的机器1500的图形表示,在该计算机系统内可以执行用于使机器1500执行在此所讨论的任何一种或多种方法的指令1516(例如,软件、程序、应用、小应用、应用软件或其它可执行代码)。这样,指令1516可用于实现在此描述的模块或组件。指令1516将通用的非程序化的机器1500变换成被编程为以所描述的方式执行所描述和示出的功能的特定的机器1500。在替代实施例中,机器1500作为独立设备操作或者可以耦接(例如,联网)到其它机器。在联网部署中,机器1500可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器1500可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其它智能设备、网络设备、网络路由器、网络交换机、网络桥接器、或者能够顺序地或以其它方式执行指令1516的任何机器,该指令1516指定机器1500要采取的动作。此外,尽管仅示出了单个机器1500,但是术语“机器”还可被视为包括单独或联合地执行指令1516以执行在此所讨论的任何一种或多种方法的机器的集合。
机器1500可以包括处理器1510(具有单个处理器1512和1514(例如,核))、存储器/存储设备1530和I/O组件1550,其可以被配置为例如经由总线1502彼此通信。存储器/存储设备1530可以包括存储器1536(诸如,主存储器或其它存储器存储设备)和存储单元1536,两者都可由处理器1510诸如经由总线1502访问。存储单元1536和存储器1532存储体现在此描述的任何一种或多种方法或功能的指令1516。在机器1500的执行期间,指令1516还可以完全或部分地驻留在存储器1532内、存储单元1536内、处理器1510中的至少一个处理器内(例如,处理器的高速缓存器内)、或其任何合适的组合。因此,存储器1532、存储单元1536和处理器1510的存储器是机器可读介质的示例。
I/O组件1550可以包括各种组件,以接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等。在特定机器1500中包括的特定I/O组件1550将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入设备或其它此类输入机构,而无头服务器机器可能不包括此类触摸输入设备。可以理解,I/O组件1550可以包括图15中未示出的许多其它组件。I/O组件1550根据功能分组仅仅是为了简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,I/O组件1550可以包括输出组件1552和输入组件1554。输出组件1552可以包括可视组件(例如,显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如扬声器)、触觉组件(例如,振动电机、电阻机构)、其它信号发生器等等。输入组件1554可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏,或其它触知输入组件)、音频输入组件(例如,麦克风)等。
在进一步的示例实施例中,I/O组件1550可以包括生物度量组件1556、运动组件1558、环境组件1560或定位组件1562,以及多种其它组件。例如,生物度量组件1556可包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1558可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1560可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测危险气体浓度或测量大气中的污染物的气体传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件1562可包括定位传感器组件(例如,GPS接收器组件)、高度传感器组件(例如,高度计或检测气压的气压计,可以从该气压导出高度)、取向传感器组件(例如,磁力计)等。
通信可以使用各种技术来实现。I/O组件1550可以包括通信组件1564,其可操作以分别经由耦接器1582和耦接器1572将机器1500耦接到网络1580或设备1570。例如,通信组件1564可包括网络接口组件或与网络1580接口连接的另一合适设备。在另外的示例中,通信组件1564包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、蓝牙
Figure BDA0002953463020000251
组件(例如,低功耗
Figure BDA0002953463020000255
)、
Figure BDA0002953463020000256
组件和经由其它模式提供通信的其它通信组件。设备1570可以是另一机器或各种外围设备(例如,经由USB耦接的外围设备)中的任何一个。
此外,通信组件1564可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1564可包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、最大码、PDF415、超码、UCC RSS-2D条形码和其它光学代码的多维条形码)或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由可以指示特定位置的通信组件1564来导出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由WI-FI
Figure BDA0002953463020000254
信号三角测量的位置、经由检测NFC信标信号的位置等。
词汇表
在该上下文中的“载波信号”是指能够存储、编码或承载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于此类指令的通信。可以使用传输介质经由网络接口设备并使用许多公知的传输协议中的任何一个传输协议来通过网络发送或接收指令。
在该上下文中的“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其它客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、PDA、智能电话、平板计算机、超级本、上网本、多处理器系统、基于微处理器或可编程的消费电子系统、游戏控制台、机顶盒或用户可用其访问网络的任何其它通信设备。
在该上下文中的“通信网络”是指网络的一个或多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、Wi-Fi
Figure BDA0002953463020000261
网络、另一种类型的网络,或两个以上此类网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线服务(GPRS)技术、GSM演进增强型数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
在该上下文中的“短时消息”是指可在受时间限制的持续时间期间访问的消息。短时消息502可以是文本、图像、视频等。短时消息502的访问时间可以由消息发送者设置。可替代地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,消息是暂态的。
在该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的组件、设备或其它有形介质,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其它类型的存储器(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还可被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或多个处理器执行时使机器执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储设备或设备,以及包括多个存储设备或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。
在该上下文中的“组件”是指具有由功能或子例程调用、分支点、API或提供特定处理或控制功能的分区或模块化的其它技术定义的边界的设备、物理实体或逻辑。组件可以经由它们的接口与其它组件组合以执行机器过程。组件可以是被设计用于与其它组件一起使用的封装功能硬件单元,以及通常执行相关功能的特定功能的程序的一部分。组件可以构成软件组件(例如,在机器可读介质上体现的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。
在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以通过软件(例如,应用或应用部分)将其配置为操作以执行如在此所述的某些操作的硬件组件。硬件组件还可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。在由该软件配置后,硬件组件就成为特定的机器(或机器的特定组件),其被独特地定制以执行配置的功能并且不再是通用处理器。
可以理解,可以由成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体,以某种方式操作或执行在此所述的某些操作。考虑其中硬件组件被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件组件,以及在不同的时刻构成不同的硬件组件。
硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个硬件组件之间或更多个硬件组件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,例如通过对多个硬件组件可访问的存储器结构中的信息的存储和取得,可以实现两个硬件组件之间或更多个硬件组件之中的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。然后,另一硬件组件可以稍后访问存储器设备以取得和处理所存储的输出。
硬件组件还可以启动与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,该处理器可以构成处理器实现的组件,其用于执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。
此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,API)访问。操作中的某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。
在该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值以及产生应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)或其任何组合。处理器可以进一步是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
在该上下文中,“时间戳”是指识别特定事件何时发生的字符序列或编码信息,例如给出日期和一天中的时间,有时精确到秒的分数。

Claims (20)

1.一种方法,包括:
在用户设备上识别描绘环境的图像;
通过所述用户设备接收有序对,所述有序对指示所述图像中描绘的所述环境中的深度的方向;
通过将接收的有序对输入到训练的神经网络中,在所述用户设备上生成深度图;以及
存储所述深度图。
2.根据权利要求1所述的方法,还包括:
通过使用所述深度图修改所述图像来生成修改的图像。
3.根据权利要求1所述的方法,其中,所述训练的神经网络是训练的循环神经网络。
4.根据权利要求3所述的方法,其中,所述训练的循环神经网络被训练为实现交替方向乘子法ADMM机制。
5.根据权利要求4所述的方法,其中,所述ADMM机制被配置为在训练之后接收所述有序对作为约束。
6.根据权利要求1所述的方法,还包括:
通过所述用户设备接收多个点对,所述多个点对中的每个点对指示在所述图像中描绘的所述环境中的深度的附加方向。
7.根据权利要求6所述的方法,其中,所述训练的神经网络被配置为接收所述多个点对作为输入以生成所述深度图。
8.根据权利要求1所述的方法,还包括:
使用所述用户设备的图像传感器在所述用户设备上生成所述图像。
9.根据权利要求8所述的方法,还包括:
在所述用户设备的显示设备上显示所生成的图像。
10.根据权利要求9所述的方法,其中,接收所述有序对包括通过所述显示设备接收第一点和第二点。
11.根据权利要求2所述的方法,还包括:
使用所述深度图识别所述图像的背景区域。
12.根据权利要求11所述的方法,其中,所述修改的图像是通过对所述图像的所述背景区域应用图像效果而生成的。
13.根据权利要求2所述的方法,还包括:
将所述修改的图像作为短时消息发布在网站上。
14.一种系统,包括:
机器的一个或多个处理器;以及
存储指令的存储器,所述指令在被所述一个或多个处理器中的至少一个处理器执行时使所述机器执行操作,所述操作包括:
识别描绘环境的图像;
接收指示所述图像中描绘的所述环境中的深度的方向的有序对;
通过将接收的有序对输入到训练的神经网络中来生成深度图;以及
存储所述深度图。
15.根据权利要求14所述的系统,其中,所述操作还包括:
通过使用所述深度图修改所述图像来生成修改的图像。
16.根据权利要求14所述的系统,其中,所述训练的神经网络是训练的循环神经网络。
17.根据权利要求16所述的系统,其中,所述训练的循环神经网络被训练为实现交替方向乘子法ADMM机制。
18.根据权利要求17所述的系统,其中,所述ADMM机制被配置为在训练之后接收所述有序对作为约束。
19.根据权利要求14所述的系统,其中,所述系统包括显示设备,并且其中,接收所述有序对包括通过所述显示设备接收第一点和第二点。
20.一种机器可读存储设备,其体现指令,所述指令在由设备执行时使所述设备执行操作,所述操作包括:
在所述设备上识别描绘环境的图像;
通过所述设备接收指示在所述图像中描绘的所述环境中的深度的方向的有序对;
通过将接收的有序对输入到训练的神经网络中,在所述设备上生成深度图;以及
存储所述深度图。
CN201980056294.0A 2018-08-31 2019-08-29 活动图像深度预测 Pending CN112639876A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/120,105 US10672136B2 (en) 2018-08-31 2018-08-31 Active image depth prediction
US16/120,105 2018-08-31
PCT/US2019/048823 WO2020047261A1 (en) 2018-08-31 2019-08-29 Active image depth prediction

Publications (1)

Publication Number Publication Date
CN112639876A true CN112639876A (zh) 2021-04-09

Family

ID=69641244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980056294.0A Pending CN112639876A (zh) 2018-08-31 2019-08-29 活动图像深度预测

Country Status (5)

Country Link
US (3) US10672136B2 (zh)
EP (1) EP3844718A4 (zh)
KR (2) KR102658834B1 (zh)
CN (1) CN112639876A (zh)
WO (1) WO2020047261A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11276190B2 (en) 2018-08-31 2022-03-15 Snap Inc. Active image depth prediction

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10832140B2 (en) * 2019-01-30 2020-11-10 StradVision, Inc. Method and device for providing information for evaluating driving habits of driver by detecting driving scenarios occurring during driving
US11710247B2 (en) * 2020-01-30 2023-07-25 Unity Technologies Sf System for image compositing including training with synthetic data
US20210334646A1 (en) * 2020-04-28 2021-10-28 International Business Machines Corporation Robustness-aware quantization for neural networks against weight perturbations
RU2745010C1 (ru) * 2020-08-25 2021-03-18 Самсунг Электроникс Ко., Лтд. Способы реконструкции карты глубины и электронное вычислительное устройство для их реализации
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
CN117132646B (zh) * 2023-10-26 2024-01-05 湖南自兴智慧医疗科技有限公司 基于深度学习的分裂相自动对焦系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130127823A1 (en) * 2008-09-16 2013-05-23 Stephen J. DiVerdi Generating a Depth Map Based on a Single Image
US20130329068A1 (en) * 2012-06-08 2013-12-12 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US20140282278A1 (en) * 2013-03-14 2014-09-18 Glen J. Anderson Depth-based user interface gesture control
US20180059679A1 (en) * 2016-09-01 2018-03-01 Ford Global Technologies, Llc Depth map estimation with stereo images
CN108122264A (zh) * 2016-11-28 2018-06-05 奥多比公司 促进草图到绘画变换

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198655B2 (en) 2017-01-24 2019-02-05 Ford Global Technologies, Llc Object detection using recurrent neural network and concatenated feature map
CN109284826A (zh) * 2017-07-19 2019-01-29 阿里巴巴集团控股有限公司 神经网络处理方法、装置、设备及计算机可读存储介质
US20190244062A1 (en) * 2018-02-04 2019-08-08 KaiKuTek Inc. Gesture recognition method, gesture recognition system, and performing device therefore
US10672136B2 (en) 2018-08-31 2020-06-02 Snap Inc. Active image depth prediction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130127823A1 (en) * 2008-09-16 2013-05-23 Stephen J. DiVerdi Generating a Depth Map Based on a Single Image
US20130329068A1 (en) * 2012-06-08 2013-12-12 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US20140282278A1 (en) * 2013-03-14 2014-09-18 Glen J. Anderson Depth-based user interface gesture control
US20180059679A1 (en) * 2016-09-01 2018-03-01 Ford Global Technologies, Llc Depth map estimation with stereo images
CN108122264A (zh) * 2016-11-28 2018-06-05 奥多比公司 促进草图到绘画变换

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEIFENG CHEN ET AL.: "Single-Image Depth Perception in the Wild", pages 1 - 14, Retrieved from the Internet <URL:https://arxiv.org/abs/1604.03901> *
YAN YANG ET AL.: "ADMM-Net: A Deep Learning Approach for Compressive Sensing MRI", pages 1 - 14, Retrieved from the Internet <URL:https://arxiv.org/ abs/1705.06869> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11276190B2 (en) 2018-08-31 2022-03-15 Snap Inc. Active image depth prediction
US11715223B2 (en) 2018-08-31 2023-08-01 Snap Inc. Active image depth prediction

Also Published As

Publication number Publication date
US10672136B2 (en) 2020-06-02
US20200074653A1 (en) 2020-03-05
US20220156956A1 (en) 2022-05-19
US20200258248A1 (en) 2020-08-13
US11276190B2 (en) 2022-03-15
EP3844718A1 (en) 2021-07-07
KR102658834B1 (ko) 2024-04-19
KR20240056616A (ko) 2024-04-30
US11715223B2 (en) 2023-08-01
KR20210038699A (ko) 2021-04-07
WO2020047261A1 (en) 2020-03-05
EP3844718A4 (en) 2021-09-22

Similar Documents

Publication Publication Date Title
US11715223B2 (en) Active image depth prediction
CN116601675A (zh) 虚拟服装试穿
US11641403B2 (en) Analyzing augmented reality content usage data
CN115917608A (zh) 增强现实内容项中的机器学习
US11579757B2 (en) Analyzing augmented reality content item usage data
CN116057533A (zh) 自动网站数据迁移
CN115769260A (zh) 基于光度测量的3d对象建模
KR20230029904A (ko) 제품들에 대한 비디오 콘텐츠의 생성 및 액세스
US20220101361A1 (en) Augmented reality content items to track user activity and redeem promotions
KR20230031915A (ko) 카메라 사용자 인터페이스에 대한 서드-파티 수정들
CN115885247A (zh) 用于启动应用的视觉搜索
CN116250012A (zh) 用于图像动画的方法、系统和计算机可读存储介质
KR20230031921A (ko) 콘텐츠를 발생시키기 위한 카메라 사용자 인터페이스
KR20230079257A (ko) 사용자 생애 가치 결정
EP4172909A1 (en) Tracking usage of augmented reality content
US20230289560A1 (en) Machine learning techniques to predict content actions
US20210304449A1 (en) Machine learning-based modification of image content
KR20230122160A (ko) 클라이언트 애플리케이션을 통한 서드 파티 리소스들의액세스
US20220036647A1 (en) Object modeling using light projection
US20230306015A1 (en) Automatically estimating place data accuracy
US20220210107A1 (en) Messaging user interface element with reminders
KR20230074588A (ko) 메시징 시스템에서 제시하기 위한 콘텐츠를 선택하기 위한 사용자들의 생애 가치들의 이용

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