CN112868224A - 捕获和编辑动态深度图像的技术 - Google Patents

捕获和编辑动态深度图像的技术 Download PDF

Info

Publication number
CN112868224A
CN112868224A CN201980059947.0A CN201980059947A CN112868224A CN 112868224 A CN112868224 A CN 112868224A CN 201980059947 A CN201980059947 A CN 201980059947A CN 112868224 A CN112868224 A CN 112868224A
Authority
CN
China
Prior art keywords
image
depth
camera
computer
implementations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980059947.0A
Other languages
English (en)
Other versions
CN112868224B (zh
Inventor
米拉·勒翁
史蒂夫·佩里
法尔斯·阿尔哈森
阿柏·斯蒂芬斯
尼尔·瓦德瓦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202311121209.9A priority Critical patent/CN117221512A/zh
Publication of CN112868224A publication Critical patent/CN112868224A/zh
Application granted granted Critical
Publication of CN112868224B publication Critical patent/CN112868224B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/178Metadata, e.g. disparity information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • 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/20112Image segmentation details
    • G06T2207/20132Image cropping

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Processing Or Creating Images (AREA)
  • Studio Devices (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本文描述的实施方式涉及一种计算机实现的方法,该方法包括使用一个或多个相机捕获图像数据,其中,图像数据包括主图像和相关联的深度值。该方法进一步包括以图像格式对图像数据进行编码。所编码的图像数据包括以图像格式编码的主图像和图像元数据,该图像元数据包括设备元素,该设备元素包括指示图像类型的简档元素和第一相机元素,其中,第一相机元素包括图像元素和基于深度值的深度图。该方法进一步包括在编码之后,基于图像格式将图像数据存储在文件容器中。该方法进一步包括使主图像被显示。

Description

捕获和编辑动态深度图像的技术
相关申请
本申请要求于2019年4月1日提交的美国临时申请No.62/827,739的优先权的权益,其通过引用整体并入本文。
背景技术
用户使用各种设备——例如,移动电话、可穿戴设备、智能电器、智能扬声器、平板电脑、计算机、独立相机等——来捕获图像。许多设备能够捕获具有增强信息的图像。例如,用户可以捕获静止图像和与静止图像中描绘的场景相关联的深度信息。在另一示例中,用户可以捕获静止图像以及该静止图像的一个或多个替代表示,例如,包括多个图像帧的突发模式图像。在又一示例中,用户可以捕获具有少量运动的图像,例如,在其期间相机被激活的0-3秒的短时段内捕获的运动。在又一个示例中,用户可以例如通过在捕获图像之前将对象插入场景来用虚拟对象来增强场景,从而获得增强现实(AR)图像。
用户可以使用不同类型的设备——例如,移动电话、可穿戴设备、智能电器、智能扬声器、平板电脑、计算机、独立相机等——查看或编辑图像。不同的设备可以具有不同的图像显示能力,例如,二维或三维显示。用于图像编辑的不同软件应用可以包括不同的特征,例如,肖像效果(其中被标识为图像主题的图像的一个或者多个对象处于对焦,而其他对象模糊)、散景效果(其中所选对象处于对焦中,而图像的其它部分模糊)等等。一些软件应用还可能包括执行图像分割的功能,例如,标识一个或多个对象。这样的应用可以允许用户修改所标识的对象,例如,通过对所标识的对象施加效果(例如,将其更改为黑白或棕褐色、柔化边缘等),而图像的其他部分未更改,或者例如通过剪切或复制操作来提取所标识的对象,并且将该对象插入另一图像中。
本文提供的背景技术描述是为了一般地呈现本公开的上下文。目前命名的发明人的工作(就在此背景技术部分中对它进行描述来说)以及说明书的在提交时可能无法以其它方式作为现有技术的各方面均未被明确地或隐式地承认为针对本公开的现有技术。
发明内容
一些实施方式涉及一种计算机实现的方法,该方法包括使用一个或多个相机捕获图像数据。图像数据包括主图像(primary image)和相关联的深度值。该方法进一步包括以图像格式对图像数据进行编码。编码图像数据包括以图像格式编码的主图像,以及图像元数据,该图像元数据包括设备元素,该设备元素包括指示图像类型的简档元素和第一相机元素。第一相机元素包括图像元素和基于深度值的深度图。该方法进一步包括基于图像格式将图像数据存储在文件容器中。该方法进一步包括使主图像被显示。
在一些实施方式中,深度图包括多个像素值,每个像素值指示距一个或多个相机中的特定相机的相应距离。在一些实施方式中,深度图进一步包括镜头焦点模型,该镜头焦点模型定义与距特定相机的多个距离相对应的弥散圆的相应半径值。在一些实施方式中,多个距离包括近距离和远距离,其中近距离小于远距离。在一些实施方式中,多个距离进一步包括大于近距离且小于远距离的焦距。
在一些实施方式中,该方法进一步包括通过将深度值转换成整数格式并基于图像格式压缩转换后的深度值来获得多个像素值。
在一些实施方式中,图像数据可以进一步包括一个或多个辅图像。在一些实施方式中,每个辅图像可以由与特定相机不同的一个或多个相机中的相应相机捕获。在一些实施方式中,图像元数据可以进一步包括一个或多个附加的相机元素,其中每个附加的相机元素对应于一个或多个辅图像中的至少一个图像,并且包括相应的图像元素,其包括对至少一个图像的指针。在一些实施方式中,一个或多个附加的相机元素在图像元数据中在第一相机元素之后被顺序地组织。在一些实施方式中,将图像数据存储在文件容器中包括将以图像格式编码的主图像和一个或多个辅图像连结(concatenate)。在一些实施方式中,文件容器中的主图像和一个或多个辅图像的顺序与图像元数据中的一个或多个附加相机元素的顺序相同。
在一些实施方式中,图像数据可以进一步包括一个或多个辅图像,其均由一个或多个相机中的相应相机捕获。在一些实施方式中,一个或多个辅图像可以包括由深度相机捕获的深度图像或视频。
一些实施方式涉及包括从文件容器获得图像数据的计算机实现的方法。图像数据包括与主图像相对应的多个像素值以及包括镜头焦点模型的图像元数据。该方法进一步包括使主图像被显示。该方法进一步包括接收指示目标焦距的用户输入。该方法进一步包括:响应于用户输入,基于镜头焦距模型来修改主图像的一个或多个像素值以获得修改后的图像,使得修改后的图像中处于目标焦距的对象处于对焦中。该方法进一步包括使修改后的图像被显示。
在一些实施方式中,镜头焦点模型可以定义与距捕获主图像的相机的多个距离相对应的弥散圆的相应半径值。在这些实施方式中,修改一个或多个像素值使主图像中的一个或多个对象模糊,其中一个或多个对象与深度数据相关联,该深度数据指示一个或多个对象处于距捕获主图像的相机与目标焦距相比不同的距离处。
在一些实施方式中,可以在文件容器中将镜头焦点模型存储在图像元数据中的深度图元素中。在一些实施方式中,深度图元素可以对应于捕获主图像的相机。
一些实施方式涉及包括从文件容器获得图像数据的计算机实现的方法。图像数据包括与主图像相对应的多个像素值以及包括深度图的图像元数据。该方法进一步包括使主图像被显示。该方法进一步包括:接收指示对主图像的裁剪操作或对主图像的缩放操作中的至少一个的用户输入。该方法进一步包括基于用户输入来修改主图像以获得修改后的图像。该方法进一步包括计算更新后的深度图,其中,更新后的深度图包括与修改后的图像相对应的深度数据。该方法进一步包括更新文件容器,以将主图像替换为修改后的图像,并将深度图替换为更新后的深度图。
一些实施方式涉及包括从文件容器获得图像数据的计算机实现的方法。图像数据包括多个像素值,每个像素值对应于主图像的多个像素中的特定像素;以及包括多个深度图的图像元数据。该方法进一步包括基于主图像和多个深度图生成三维图像。该方法进一步包括使三维图像被显示。
在一些实施方式中,该方法进一步包括接收指示针对三维图像的倾斜操作或平移操作的用户输入。该方法进一步包括:响应于接收到用户输入,基于用户输入、主图像和多个深度图来生成更新后的三维图像。该方法进一步包括使更新后的三维图像被显示。
在一些实施方式中,可以通过使用根据使用单个相机的运动技术的深度来获得多个深度图。在一些实施方式中,可以经由一个或多个深度相机获得多个深度图。
一些实施方式涉及包括从文件容器获得图像数据的计算机实现的方法。图像数据包括多个像素值,每个像素值对应于主图像的多个像素中的相应像素;以及包括深度图的图像元数据。该方法进一步包括使主图像被显示。该方法进一步包括接收指示对主图像中所描绘的对象的选择的用户输入。该方法进一步包括基于深度图生成分割掩模。分割掩模可以标识与对象相对应的主图像的像素子集。该方法进一步包括基于分割掩模获得对象的对象图像。该方法进一步包括提供使得能够选择对象图像的用户界面。
在一些实施方式中,深度图包括多个深度值,每个深度值对应于主图像的特定像素。在一些实施方式中,生成分割掩模包括选择具有在深度值的阈值范围内的相应深度值的主图像的像素。
一些实施方式涉及执行上述任何方法的计算装置、计算系统或计算设备。一些实施方式涉及其上存储有指令的计算机可读存储介质或包括指令的计算机程序,其中,所述指令在由一个或多个处理器执行时,使一个或多个处理器执行上述方法。
附图说明
图1是可以被用于本文所述的一个或多个实施方式的示例网络环境的框图。
图2A图示根据一些实施方式的通过相机进行图像捕获的示例。
图2B图示通过相机捕获的示例图像和对应的深度图像。
图3图示示例图像文件,该示例图像文件包括用于存储动态深度信息的元数据结构。
图4是图示根据一些实施方式的示例方法的流程图。
图5是图示根据一些实施方式的另一示例方法的流程图。
图6是可以被用于本文所述的一个或多个实施方式的示例设备的框图。
具体实施方式
深度图像和增强现实图像是跨移动设备和操作系统越来越流行的相机用例。但是,在捕获、保存、共享和编辑此类图像时缺乏标准化。使用相机应用创建的深度图像可能无法被其他应用编辑。
本文描述的技术在由各种客户端设备用来将图像元数据和/或附加图像存储在单个连结文件容器中的相机框架内提供统一且一致的框架。使用此处描述的技术存储的图像可以被任何应用访问以进行查看和/或编辑。因此,当捕获、保存、共享或编辑深度图像和/或增强现实图像时,本文所述的技术可以提供应用和/或设备之间的改进的互操作性。
该技术易于实现,快速解析并且跨在包括移动设备相机的相机以及在包括移动和个人计算设备软件的软件中使用的各种操作系统扩展现有图像格式。该技术使得能够在捕获的图像的图像元数据中存储与设备有关的元数据以及任意数目的辅图像,所述与设备有关的元数据例如是深度信息、设备相机的成像模型等。存储的元数据和辅图像可以被任何图像查看或编辑应用利用。
图1中使用相同的附图标记来标识相同的元件。诸如“156a”的附图标记后的字母指示该文本专门指代具有该特定附图标记的元件。诸如“156”的文本中不包含在后字母的附图标记指代附图中的携带该附图标记的任何或全部元件(例如,本文中的“156”指代附图中的附图标记“156a”和/或“156b”)。
图1图示可以在本文描述的一些实施方式中使用的示例网络环境100的框图。在一些实施方式中,网络环境100包括一个或多个服务器系统,例如,图1的示例中的服务器系统102。例如,服务器系统102可以与网络130进行通信。服务器系统102可以包括服务器设备104和存储设备(未示出)。服务器系统102可以存储一个或者多个图像文件106b。在一些实施方式中,服务器设备104可以提供图像管理应用156b。图像管理应用156b可以在提供相应图像文件106b的用户的许可下访问图像文件106b。
网络环境100还可以包括一个或多个客户端设备,例如,客户端设备120、122、124和126,这些客户端设备可经由网络130与彼此和/或与服务器系统102进行通信。网络130可以是任何类型的通信网络,包括互联网、局域网(LAN)、无线网络、交换机或集线器连接等中的一个或多个。在一些实施方式中,网络130可以包括设备之间的对等通信,例如使用对等无线协议(例如,
Figure GDA0003030838510000071
Wi-Fi Direct等)等。两个客户端设备120和122之间的对等通信的一个示例通过箭头132被示出。
为了便于图示,图1示出用于服务器系统102和服务器设备104,并且示出用于客户端设备120、122、124和126的四个框。服务器框102和104可以表示多个系统、服务器设备、和网络数据库,并且可按照与所示不同的配置提供这些框。例如,服务器系统102可表示可经由网络130与其它服务器系统进行通信的多个服务器系统。在一些实施方式中,例如,服务器系统102可以包括云托管服务器。在一些示例中,一个或者多个存储设备可以被设置在与服务器设备104分离的服务器系统框中并且可经由网络130与服务器设备104和其它服务器系统进行通信。
可以存在任何数目的客户端设备。每个客户端设备可以是任何类型的电子设备,例如,台式计算机、膝上型计算机、便携式或移动设备、蜂窝电话、智能电话、平板计算机、电视、TV机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、腕表、头戴式耳机、臂章、珠宝等)、个人数字助理(PDA)、媒体播放器、游戏设备等。一些客户端设备还可以包括本地图像文件106a,例如,使用客户端设备的相机捕获的本地图像文件,或者以其他方式,例如通过从服务器下载图像文件而获得的本地图像文件。在一些实施方式中,网络环境100可以不具有所示的所有组件并且/或者可以具有包括代替本文描述的那些元件或者除了本文描述的那些元件之外的其它类型的元件的其它元件。
在各种实施方式中,终端用户U1、U2、U3和U4可以使用相应的客户端设备120、122、124和126来与服务器系统102和/或彼此进行通信。在一些示例中,用户U1、U2、U3和U4可以经由在服务器系统102上实现的网络服务——例如,社交网络服务、图像托管服务、其它类型的网络服务——经由在相应客户端设备和/或服务器系统102上运行的应用彼此交互。例如,相应的客户端设备120、122、124和126可以向且从一个或多个服务器系统——例如,系统102——通信数据。
在一些实施方式中,服务器系统102可以向客户端设备提供适当的数据,使得每个客户端设备可接收上传到服务器系统102和/或网络服务的通信内容或共享内容。在一些示例中,用户U1-U4可经由音频或视频会议、音频、视频或文本聊天、或其它通信模式或应用交互。由服务器系统102实现的网络服务可以包括允许用户执行各种通信、形成链接和关联、上传并发布诸如图像、文本、视频、音频和其它类型的内容这样的共享内容、和/或执行其它功能的系统。例如,客户端设备可显示接收到的数据,诸如发送或者流式传输到客户端设备并且经由服务器和/或网络服务从不同的客户端设备(或者直接地从不同的客户端设备)起源或者从服务器系统和/或网络服务起源的内容发布。在一些实施方式中,客户端设备可例如使用如上所述的客户端设备之间的对等通信来直接地彼此通信。在一些实施方式中,“用户”可以包括一个或多个程序或虚拟实体、以及与系统或网络对接的人。
在一些实施方式中,客户端设备120、122、124和/或126中的任一个可提供一个或多个应用。例如,如图1中所示,客户端设备120可提供相机应用152和图像管理应用156a。客户端设备122-126还可以提供类似的应用。例如,相机应用152可以给相应的客户端设备的用户(例如,用户U1-U4)提供使用其相应的客户端设备的一个或者多个相机来捕获图像的能力。例如,相机应用152可以是在客户端设备120上执行的软件应用。
在一些实施方式中,相机应用152可以提供用户界面。例如,用户界面可以使客户端设备120的用户能够选择图像捕获模式,例如,静态图像(或照片)模式、突发模式(例如,在短时间段内捕获连续数目的图像)、运动图像模式、视频模式、高动态范围(HDR)模式等等。在一些实施方式中,相机应用152可以实现(例如,部分地或全部地)参考图4和图5描述的方法。在一些实施方式中,图像管理应用156a和/或图像管理应用156b可以实施(例如,部分地或全部地)本文参考图4至图5描述的方法。
可以使用客户端设备120的硬件和/或软件来实现相机应用152和图像管理应用156a。在不同的实施方式中,图像管理应用156a可以是独立的应用,例如,在客户端设备120-124的任何一个上执行,或可以与服务器系统102上设置的图像管理应用156b结合工作。图像管理应用156可以使用户能够查看和/或编辑图像,例如,图像文件106。
在用户许可下,图像管理应用156可以执行一个或多个自动功能,诸如在服务器上存储(例如,备份)图像、编辑图像、自动增强图像、稳定图像、识别图像中的一个或多个特征,例如,面部、身体、对象类型、移动类型等。
图像管理应用156还可以提供图像管理功能,诸如在用户界面中显示图像(例如,在包含单个图像的领先(one-up)视图中、在包括多个图像的网格视图中等)、编辑图像(例如,调整图像设置、应用滤波器、更改图像焦点、应用肖像效果、应用散景效果、应用其他效果、通过平移/倾斜操作查看三维图像、使用图像分割技术从图像中提取对象等)、与其他用户(例如,客户端设备120-126的用户)共享图像、归档图像(例如,存储图像使其不出现在主用户界面中)、生成基于图像的创作(例如,拼贴、相簿、基于运动的制品,诸如动画、故事、视频循环等)。在一些实施方式中,为了生成基于图像的创作,图像管理应用156可以利用与图像或存储在图像中的图像元数据相关联的一个或多个标签。
客户端设备120、122、124和/或126上的用户界面可使得能够显示用户内容和其它内容,包括图像、视频、数据、和其它内容以及通信、隐私设定、通知、和其它数据。可使用客户端设备上的软件、服务器设备上的软件、和/或客户端软件和在服务器设备104上执行的服务器软件的组合(例如,与服务器系统102通信的应用软件或客户端软件)来显示这样的用户界面。用户界面可由客户端设备或服务器设备的显示设备(例如,触摸屏或其它显示屏幕、投影仪等)来显示。在一些实施方式中,在服务器系统上运行的应用可与客户端设备进行通信,以在客户端设备处接收用户输入并且在客户端设备处输出诸如视觉数据、音频数据等这样的数据。
在一些实施方式中,服务器系统102和/或一个或多个客户端设备120-126中的任一个可提供通信应用程序。该通信程序可以允许系统(例如,客户端设备或服务器系统)提供用于与其它设备进行通信的选项。该通信程序可提供被显示在与服务器系统或客户端设备相关联的显示设备上的一个或多个关联的用户界面。用户界面可以向用户提供各种选项来选择用户或设备利用其进行通信的通信模式等。在一些示例中,通信程序可以提供选项来发送或广播内容发布,例如,发送或广播到广播区域,和/或可以输出指示内容发布已经被设备和例如在发布的已定义广播区域中的设备接收到的通知。通信程序可例如以各种格式中的任一种显示或者以其它方式输出传送的内容发布和接收到的内容发布。内容发布可以包括,例如,与其它用户共享的图像。
本文描述的特征的其它实施方式可使用任何类型的系统和/或服务。例如,代替社交联网服务或者除了社交联网服务之外,还可使用其它联网服务(例如,连接到互联网)。任何类型的电子设备可利用本文描述的特征。一些实施方式可在与计算机网络断开连接或者间歇地连接到计算机网络的一个或多个客户端或服务器设备上提供本文描述的一个或多个特征。在一些示例中,包括或者连接到显示设备的客户端设备可显示存储在客户端设备本地的存储设备上的例如先前通过通信网络接收的数据(例如,内容)。
图2A图示用相机捕获图像的示例。如图2A中所图示,具有镜头202的相机可以用于捕获图像。尽管图2A图示镜头202,但是相机可以包括其他元件,例如,图2A中未示出的成像传感器、焦距调节装置等。在图像捕获时,相机聚焦在焦平面208上。所捕获的图像可以包括距镜头202不同距离(距相机不同距离)的多个对象。例如,所捕获的图像可以在近平面206中、在焦平面208中、在远平面210中以及在任何中间平面处包括一个或多个对象。
用于图像捕获的单个设备(例如,客户端设备120-126中的任何一个)可以包括一个或多个相机或成像传感器。例如,设备可以包括可以被用于捕获彩色图像的一个或多个相机(例如,RGB相机)、红外相机等。例如,一个或多个相机可以包括具有不同配置的相机,例如,远摄相机、广角相机等。也可以使用其他配置的相机。每个相机可以生成对应的图像。在一些实施方式中,可以将从设备的不同相机获得的图像数据进行组合以获得主图像。主图像可以显示在例如设备的屏幕上。此外,根据本文描述的技术,主图像可以以例如JPEG、PNG、TIFF、HEIF等的图像格式存储。此外,根据本文描述的技术,从个别相机获得的一个或多个图像可以存储在如下面参考图3描述的容器中。
图2B图示用相机捕获的示例图像220和对应的深度图像230。例如,可以使用红外相机或其他深度传感器捕获深度图像。在另一个示例中,深度图像可以基于利用捕获图像220的相机捕获的图像数据来生成。
如图2B中看到的,图像220描绘场景,该场景包括比在背景中看到的叶子更靠近相机的花。相应地,在深度图像230中,与离相机更远的其他花瓣和离相机更远的叶子相比,在更深色的阴影下看到更靠近相机的花的花瓣。在深度图像230中,较深的阴影对应于场景中更靠近相机的对象,而较浅的阴影对应于较远的对象。
深度图像230可以是标量值(例如,整数值、实数或浮点值等)的图像,所述标量值表示从相机视点到在对应图像(例如,图像220)中查看的对象的距离。深度值的定义可能会基于深度传感器的类型而变化。例如,两个常见的定义是沿光轴(通常是z轴)距捕获图像的相机的深度,以及在图像捕获期间沿穿过每个像素的光线的深度。
图3图示示例图像文件300,其包括用于存储动态深度信息的元数据结构。可以将结构化的元数据用于包括深度信息的图像。在一些实施方式中,图像文件300可以被存储为包括合成或连结文件的连结文件容器,其中主图像具有附加到其上的零个、一个或多个辅媒体文件。在图3所图示的示例中,示出主图像340和相关联的元数据310以及XMP(可扩展元数据平台)元数据320。在一些实施方式中,辅媒体文件可以包括主图像的替代表示或诸如深度数据的相关媒体。
图像文件300可以是任何类型的图像,例如,JPEG、PNG、TIFF、HEIF等。图像文件300包括主图像340。图像文件300可以进一步包括元数据310,例如,EXIF(可交换图像文件格式)数据。EXIF数据可以包括一个或多个设定,诸如ISO速度、快门速度、光圈、白平衡、镜头类型、焦点长度、日期和时间等。
在一些实施方式中,可以基于ISO/IEC 14496-12将图像文件300存储为ISO Box媒体文件格式容器。在这些实施方式中,容器中的XMP元数据包括容器XMP元数据目录元素,其中目录中的每个项都使用URI(统一资源标识符)来指代ISO/IEC 14496-12容器中的框。
在一些实施方式中,编码到图像文件的XMP元数据中的容器元素可以定义容器中媒体项的目录。在一些实施方式中,连结的媒体项以与目录中的媒体项元素相同的顺序位于容器文件中。在一些实施方式中,连结的媒体项被紧密地打包,例如,与不同媒体项相对应的数据被连续地放置在文件容器中而没有间隙。例如,图像文件可以包括与在主图像(例如,主图像340)之后被连结的连结媒体项相对应的字节。
主图像340可以是准备好显示的图像,诸如JPEG图像或另一种格式的图像。图像文件300可以包括辅图像,诸如深度数据、中间图像、主图像的替代表示,或者可以包括其他媒体项(例如,一个或多个视频、文本等)。如上所述,辅图像和/或媒体项可以存储在连结文件容器中。在图像文件300是ISO/IEC 14496-12 ISO Box媒体文件格式容器的一些实施方式中,辅图像可以作为其他框存储在容器中。
图像文件300可以进一步包括XMP(可扩展元数据平台)元数据320。XMP元数据320可以包括指定一个或多个设备的数据,例如,设备元素324。元数据可以例如通过遵循ISO16684-1:2011(E)XMP规范第1部分来序列化,并嵌入到图像文件300中,例如,如在AdobeXMP规范第3部分在文件中存储中所述。在一些实施方式中,图像文件300可以包括以下项,其格式化为RDF/XML(资源描述框架/可扩展标记语言)。
在一些实施方式中,XMP元数据320(也称为容器XMP元数据目录)可以定义连结文件容器中后续媒体文件的顺序和性质。每个元素都可以是结构容器:项,并且可以定义容器的布局和内容。容器类型可以是例如“设备”元素、“相机”元素等。连结容器中的每个文件(例如,其他图像、视频、文本等)在目录中可以具有对应的媒体项。媒体项可以描述文件容器中的位置以及连结文件容器中每个连结文件的基本性质。在一些实施方式中,容器目录中的媒体项可以由来自元数据中的图像或深度图元素的ItemURI(统一资源标识符)属性来引用。URI可以基于命名空间,例如,使用默认命名空间前缀是Container。目录仅包含单个主图像,其是目录中的第一项。项元素包括应用可使用的每个项的描述。
在一些实施方式中,XMP数据320中的根元数据对象可以包括设备元素(324),也称为设备324。在一些实施方式中,设备元素324是强制性的,例如,至少一个设备324始终被包括在XMP数据320中。在一些实施方式中,可以包括一个以上的设备元素。
可以根据一个或多个简档或用例来指定设备元素324。每个简档可以具有对应的所需元素和数据的集合。简档可以由访问图像文件300的应用或其他应用使用,所述访问图像文件300的应用例如是生成图像文件300的相机应用,所述其他应用例如是图像备份、查看或编辑应用。例如,简档可以用于标识特定图像文件可以支持的用例。图像文件300可以包括一个或多个简档。在一些实施方式中,每个简档可以对应于特定的用例,并且可以具有对应的所需元素和数据的集合。例如,访问图像文件300以使用户能够查看或编辑图像的应用可以利用简档来标识给定图像文件可以支持的用例。
在图3中所图示的示例中,图像文件300的XMP元数据320包括单个设备元素324,该设备元素324包括简档类型”DepthPhoto”的简档元素326(也称为简档326)。此外,简档326指示例如在图像捕获(或创建)时从其获得图像文件300的图像数据的相机的编号(“cameraindices=i”,其中i是索引值)。在一些实施方式中,例如,在相机索引为零的情况下,主图像可以与在相机元素中引用的图像相同。在一些实施方式中,可以规定简档类型“DepthPhoto”的简档包括至少一个简档元素326和至少一个相机元素(例如,“相机328”)。在图3所图示的示例中,相机328(也称为相机元素328)被描绘为包括相机元素330(相机i)。在一些实施方式中,相机328是一个或多个相机元素的序列。
在一些实施方式中,每个相机元素(例如,相机元素330)包括用于由相机提供的图像的图像元素332和深度图元素334(也称为深度图334)。图像元素332可以包括属性“主”,其指示图像元素是否对应于连结文件容器中的主图像340。在一些实施方式中,图像元素332可以包括属性“原始”,其指示图像元素332所引用的媒体项是否是原始版本,例如,可用于渲染深度效果的未滤波的彩色图像。在一些实施方式中,图像元素332可以包括属性“未加工”,该属性“未加工”指示图像元素332所引用的媒体项,例如图像,是未准备好显示的未加工版本并且可以被处理以获得准备好显示的图像。在一些实施方式中,图像元素332可以包括属性“深度”,其指示图像元素332所引用的媒体项,例如图像,包括深度图像。
深度图334可以包括与深度有关的信息和/或用于由对应相机提供的图像的深度图。在一些实施方式中,图像元素332和/或深度图元素334可以包括URI(统一资源标识符),该URI指向存储在图像文件300中,例如在连结文件容器中,的对应图像数据和/或深度数据的位置。第一相机的深度数据必须没有孔。生成图像文件的应用在深度值不可用或无法计算的图像区域中对估计值进行编码。
在一些实施方式中,深度图像包括多个值,每个值对应于深度图像的特定像素。例如浮点指针或32位整数格式的深度信息被转换为整数格式,并使用文件容器类型(例如,JPEG)支持的图像编解码器进行压缩。可以以不同的方式执行到整数格式的转换,包括线性范围转换和逆范围转换。例如,如果在被编码时在深度图精度存在损失,例如,将浮点深度值转换为16位整数,则可以利用逆转换。
线性转换(RangeLinear):d是像素的深度距离值,并且能得到近和远的最小和最大深度值。首先使用以下公式将深度值归一化为[0,1]范围:
Figure GDA0003030838510000161
然后,使用以下公式将深度值量化为16位:
d16bit=[dn·65535]
使用公式从量化深度值dn恢复深度:
d=dn·(far-near)+near
逆转换(RangeInverse):RangeInverse将更多的位分配给近深度值,而将更少的位分配给远深度值。首先使用以下公式将深度值归一化为[0,1]范围:
Figure GDA0003030838510000162
然后,使用以下公式将深度值量化为16位:
d16bit=[dn·65535]
使用以下公式从量化深度值dn恢复深度:
Figure GDA0003030838510000163
在一些实施方式中,深度图334可以包括用于深度数据的镜头焦点模型。在一些实施方式中,镜头模型可以包括例如存储在FocalTable属性中的元数据。应用可以使用元数据,例如,以渲染景深效果。镜头模型定义在距查看器,例如捕获图像的相机,不同距离处的弥散圆的半径。FocalTable可以包括距离和半径对,其可用于构建将弥散圆定义为深度距离值的函数的查找表。
在一些实施方式中,FocalTable属性可以是由作为实际距离值的based-64编码的小端字节序浮点对组成的字符串值。这些<distance>,<radius>对定义查找表,该查找表可例如由图像查看或编辑应用使用以计算深度图的近值和远值之间的距离值处的弥散圆的半径。
在一些实施方式中,以由距离值进行排序的升序存储距离-半径对。在一些实施方式中,可以以深度图距离值单位来定义距离坐标。在一些实施方式中,可以在像素坐标中定义半径值。每个半径值都大于或等于零。半径值零可以表示图像的焦平面上的对焦深度距离。查找表包括至少两对,例如对应于近距离的第一对和对应于深度图的远距离的第二对。在一些实施方式中,可以在FocalTable中定义的点之间内插(例如,线性内插)半径值以获得在距捕获图像的相机的任何焦距处的弥散圆的半径。
在一些实施方式中,FocalTable可以包括三个半径值——近平面的近值、焦平面的焦平面值和远平面的远值。图像查看应用可以访问FocalTable并对焦渲染在焦平面深度值处的对象。在一些实施方式中,FocalTable可以包括两个或更多个距离值作为对焦的,例如,对应于焦平面。
在一些实施方式中,主图像340与相机元素328中的第一相机相关联。在一些实施方式中,在相机328中列出的第一相机元素可以是主相机,例如,作为智能电话或平板电脑的设备的主相机。在一些实施方式中,附加相机元素可以对应于设备的其他相机,例如,智能电话或平板设备的红外相机。其他相机的顺序可能是任意的。在一些实施方式中,每个附加相机元素可包括指示相机相对于设备的姿态的对应姿态元素。在一些实施方式中,单个相机元素内的所有图像和深度图可以由该同一相机来改正,例如,这些元素具有相同的姿态、比例和视场。
如果图像文件300由图像编辑应用修改,例如,裁剪、缩放等,则可以更新一个或多个相机元素以反映对图像的修改,例如,更新深度图和相机元素的图像元素。
在一些实施方式中,图像文件300可以包括关于图像捕获的信息,诸如姿态,该姿态包括相对于场景捕获图像的成像传感器或相机的位置和定向。包括此信息可以使应用能够一起使用来自多个相机的图像(例如,来自彩色图像相机的图像和来自深度传感器的深度图像)。例如,姿态信息可以使应用能够将深度数据(可能具有不同的分辨率)映射到图像上。
在一些实施方式中,设备324可以包括一个或多个其他元素。例如,此类元素可能包括作为文件容器中连结文件的有序目录的容器元素、包括设备的供应商相关信息的VendorInfo、包括设备的应用特定的或渲染信息的AppInfo元素等等。
在一些实施方式中,相机元素330可以包括一个或多个附加元素,例如,包括与相机的供应商有关的信息的VendorInfo元素、包括相机的应用特定或渲染信息的AppInfo元素、包括相机提供的图像(例如,深度图像)的图像元素、描述相机镜头的成像模型的ImagingModel元素。例如,ImagingModel元素可用于描述鱼眼失真模型或具有5-DoF径向失真的标准针孔相机模型。在一些实施方式中,ImagingModel元素可以指示沿着X轴和Y轴的焦距,其通过成像传感器的尺寸归一化,表达为实数;相机光轴分别沿X和Y轴与相机图像平面中心相交的主点(X位置和Y位置),其通过传感器高度进行归一化;以像素表达的图像宽度和高度;相机的偏转,例如,图像的y轴偏离垂直的顺时针角度,以度表达;像素宽度与像素高度的像素长宽比;以及一个或多个失真参数。当编辑图像(例如,缩放或裁剪)图像时,可以相应地更新ImagingModel元素。
Item结构可以定义其中包括项的容器的布局和内容,例如,以容器:项的形式。例如,“简档”容器元素可以包括“type”和“cameraindices”项,如图3中所图示。在另一个示例中,“相机”元素可以包括“图像”项,所述“图像”项包括到文件容器中对应图像的URI;“深度图”项,其包括图像的深度图等。每个项元素包括使得能够实现图像备份、查看或编辑应用的信息,以例如使用户能够查看或编辑图像。
在一些实施方式中,目录中的第一媒体项是主图像340。主图像元素具有关联字段以指示MIME类型。该字段可以是指示容器中媒体项的MIME类型的简单字符串。例如,主图像的MIME类型值可以是:
Figure GDA0003030838510000191
此外,如果被包括,则可以将主图像元素中的长度字段设置为零值。在主图像是文件容器中的第一文件的实施方式中,例如,在文件容器的开始处开始,通基于所指示的MIME类型解析主图像来确定主图像的长度。
XMP元数据中的第一媒体项可以可选地包括填充属性,该填充属性指定在编码的主图像的末端和第一辅图像的开始之间的附加填充。
在一些实施方式中,在媒体项被紧密打包的情况下,用于辅图像的后续媒体项不包括填充属性。每个媒体项(例如,除了主图像340之外的图像)具有对应的MIME类型属性和长度属性。长度属性可以是整数值,并且对于辅媒体项可能是必需的。在一些实施方式中,长度属性可以是简单字符串,其包括指示连结文件容器中的对应文件中的项的字节数的正整数长度。通常,项元素包括表1中列出的图像MIME类型之一的Mime属性。在一些实施方式中,顺序媒体项可以在文件容器内共享资源数据。第一媒体项可以指示资源在文件容器中的位置,并且后续共享媒体项可以具有设置为0的长度属性。在资源数据本身是容器的情况下,可以使用DataURI来确定资源内媒体项数据的位置。应用可以通过将在前的辅项资源的长度与主图像编码的长度加上主图像的填充值(如果指定)相加来确定媒体项资源在连结文件容器中的位置。
下表描述了可能包括在项元素中的各种属性的示例:
Figure GDA0003030838510000201
在一些实施方式中,XMP元数据可以指定用于增强现实(AR)图像的参数。AR图像的简档类型可以是”ARPhoto”。此类参数可以包括例如捕获AR图像的客户端设备的姿态、照明估计信息、场景中的水平和/或垂直表面平面(例如,地板、墙等等)、相机内参等等。此外,AR参数可以包括应用特定的元数据,例如,由图像捕获或增强现实应用提供的元数据。这样的应用特定的元数据可以包括三维(3D)资产的标识符,例如,用于增强AR图像中描绘的真实世界场景的一个或多个虚拟对象,以及对应的姿态。
此外,在一些实施方式中,可以将一个或多个图像嵌入用于增强现实图像的图像文件的内部。这种嵌入的示例用例是当嵌入图像是一个没有3D资产的图像并且容器,例如主图像,包括3D资产时。这使用户能够预览例如图像图库(gallery)中的具有3D资产的缩略图,同时使查看或编辑应用能够提供用户界面,所述用户界面使用户能够在增强现实图像中进行交互和移动虚拟对象。在该示例中,当用户在编辑之后保存增强现实图像时,可以更新主图像。在此示例中,XMP元数据将嵌入图像存储在具有大于索引0的索引的相机中。如果没有嵌入的图像,则相机0包括AR元数据。
还可以在XMP元数据中指定例如不同于“depthphoto”和“ARphoto”的其他类型的简档,以支持其他功能和用例。
在一些实施方式中,诸如移动设备上的相机应用的应用可以例如使用客户端设备(例如,客户端设备120-126中的任何一个)的相机硬件来生成图像文件300。在这些实施方式中,相机应用可以以上述格式生成图像文件300。为了生成图像文件300,可以从成像传感器,例如硬件传感器(例如,CCD、CMOS、红外等),获得图像数据。
可以例如通过相机应用来修改从成像传感器获得的图像数据,使得图像文件300中的主图像和一个或多个其他图像(例如,每个对应于相机i)具有相同姿态和相同的长宽比。例如,主图像和一个或多个其他图像可以被裁剪为相同的长宽比。在一些实施方式中,例如,当可从一个或多个相机获得深度信息时,图像文件300可包括深度图。在一些实施方式中,深度图的分辨率可以与主图像和一个或多个其他图像的分辨率相同。在一些实施方式中,深度图的分辨率可以与主图像和一个或多个其他图像的分辨率不同。在一些实施方式中,一个或多个其他图像可以存储在图像文件300中,并在附加的相机元素中被引用。
作为本文所述的具有XMP元数据的连结文件容器的图像文件使图像备份、查看或编辑应用能够以与图像的生成——例如,使用客户端设备的一个或多个成像传感器捕获——相一致的方式呈现媒体,例如,深度照片、增强现实照片等。此外,在文件容器中包括主图像使得不能解释XMP元数据的应用或服务能够获得图像的准备好显示的版本。
图4是图示根据一些实施方式的示例方法400的流程图。在一些实施方式中,可以例如在如图1中所示的服务器系统102上实现方法400。在一些实施方式中,可在如图1中所示的一个或多个客户端设备120、122、124或126上、在一个或多个服务器设备上和/或在服务器设备和/或客户端设备两者上实现方法400的一些或全部。在所描述的示例中,实现系统包括一个或多个数字处理器或处理电路(“处理器”)以及一个或多个存储设备。在一些实施方式中,一个或多个服务器和/或客户端的不同的组件可执行方法400的不同的框或其它部分。在一些示例中,第一设备被描述为执行方法400的框。一些实施方式可使方法400的一个或多个框由可将结果或数据发送到第一设备的一个或多个其它设备(例如,其它客户端设备或服务器设备)执行。
在各种实施方式中,客户端设备120可以是独立相机、包括相机的另一设备,例如,智能电话、平板电脑、计算机、诸如智能手表、耳机等的可穿戴设备,或可以接收由另一设备捕获的图像或视频的其它客户端设备。在一些实施方式中,客户端设备120可以是仅捕获的设备,例如,不包括屏幕的相机。在一些实施方式中,客户端设备120可以是仅查看的设备,例如,包括可以在其上显示图像或视频的屏幕但是不具有相机或捕获图像或视频的其他能力的设备。在一些实施方式中,客户端设备120可以具有捕获和查看能力两者。
在一些实施方式中,客户端设备120可以包括单个相机以捕获图像或视频。在一些实施方式中,客户端设备120可以包括多个相机(或镜头)。例如,智能电话或其他设备可以包括一个或多个前置相机(与屏幕位于设备的同一侧)和/或一个或多个后置相机。在一些实施方式中,一个或多个前置或后置相机可以在捕获期间一起操作,例如,第一相机可以捕获深度信息,而第二相机可以捕获图像或视频的图像像素。在一些实施方式中,不同的相机可以用于例如具有不同的扩缩水平的不同类型的图像或视频捕获(例如,远摄镜头、广角镜头等)。在一些实施方式中,客户端设备120可以被配置成捕获360度图像或视频。在一些实施方法中,相机或镜头可使用单个图像传感器(例如,CCD或CMOS传感器)或多个传感器来捕获图像。在一些实施方式中,在图像捕获时,其他传感器,例如深度传感器等,可以与一个或多个相机一起使用。
在一些实施方式中,客户端设备120可以将在图像传感器处从一个或多个相机(或镜头)捕获的未加工的图像数据与从其他传感器(例如,加速度计、陀螺仪、位置传感器、深度传感器等)获得的其他数据进行组合以形成图像并将该图像存储在文件容器中。
客户端设备120可以使用户能够在不同的模式下捕获图像,例如,静态图像(或照片)模式来捕获单个帧,突发或运动图像模式来捕获多个帧,视频模式来捕获包括多个帧的视频等等。在一些实施方式中,当相机捕获图像时,可以在图像捕获时执行方法400。
客户端设备120可以使用户能够在不同的用户界面中查看例如由客户端设备120捕获或与该用户相关联的图像或视频。例如,可以提供领先模式或幻灯片放映模式,所述领先模式或幻灯片放映模式可以被提供使用户能够一次查看和/或编辑单个图像或视频。在另一个示例中,可以提供画廊模式,该图库模式可以使用户能够同时查看和/或编辑例如作为图像网格的多个图像。在一些实施方式中,客户端设备120可以执行方法400。在另一个示例中,客户端设备或服务器设备可以执行方法400。在一些实施方式中,方法400可以由服务器设备来实现。
在框402中,检查是否已获得了在方法400的实施方式中使用用户数据的用户同意(例如,用户许可)。例如,用户数据可包括由用户使用客户端设备捕获的图像或者视频、由用户例如使用客户端设备来存储或者访问的图像或者视频、图像/视频元数据、与消息传递应用的使用有关的用户数据、用户偏好、用户生物计量信息、用户特性(例如,身份、姓名、年龄、性别、职业等)、关于用户的社交网络和联系人的信息、社交和其它类型的动作和活动、由用户创建或者提交的内容、评级和意见、用户的当前位置、历史用户数据、由用户生成、接收和/或访问的图像、由用户查看或者共享的图像等。本文描述的方法的一个或多个框可以在一些实施方式中使用这种用户数据。
如果已从相关用户获得了可以在方法400中使用用户数据的用户同意,则在框404中,确定了可像针对那些框所描述的那样在可能使用用户数据的情况下实现本文的方法的框,并且方法继续到框410。如果尚未获得用户同意,则在框406中确定了将在不使用用户数据的情况下实现框,并且方法继续到框410。在一些实施方式中,如果尚未获得用户同意,则在不使用用户数据的情况下并且利用合成数据和/或通用或公开可访问的且公开可用的数据来实现框。在一些实施方式中,如果尚未获得用户同意,则不执行方法400。
在框410中,使用例如客户端设备的一个或多个相机捕获图像数据。在一些实施方式中,捕获到的图像数据可以包括主图像和相关联的深度值。在一些实施方式中,捕获到的图像数据包括一个或多个辅图像。在一些实施方式中,主图像可以是彩色图像。在一些实施方式中,一个或多个辅图像可以包括彩色图像(例如,从与主图像不同的视点或在与主图像不同的时间获得)、灰度图像、单色图像、深度图像(例如,包括深度信息但是没有人类可查看的场景描述的图像)。在一些实施方式中,一个或多个辅图像可以由与捕获主图像的相机不同的相机捕获。在一些实施方式中,一个或多个辅图像中的每个可以由一个或多个相机中的对应相机捕获。框410之后可以是框412。
在框412中,可以以图像格式将图像数据编码例如为JPEG图像、TIFF图像、HEIF图像、PNG图像等。在一些实施方式中,编码的图像数据可以包括以图像格式编码的主图像。编码的图像数据可以进一步包括图像元数据。在一些实施方式中,图像元数据可以被编码为XMP元数据。在一些实施方式中,图像元数据可以包括设备元素,该设备元素包括指示图像类型的简档元素,例如,深度照片、增强现实(AR)照片等。在一些实施方式中,图像元数据可以进一步包括相机元素,该相机元素包括图像元素和深度图,该深度图基于深度值来获得。
在一些实施方式中,深度图可以包括多个像素值,所述多个像素值中的每个指示距用于捕获图像数据的一个或多个相机中的特定相机的相应距离。在一些实施方式中,深度可以进一步包括镜头焦点模型。在一些实施方式中,镜头焦点模型可以定义与距特定相机的多个距离相对应的弥散圆的相应半径值。在一些实施方式中,多个距离可以包括近距离(对应于近平面)和远距离(对应于远平面),其中,近距离小于远距离(近平面比远平面更靠近相机)。在一些实施方式中,多个距离可以进一步包括大于近距离并且小于远距离的焦距。在一些实施方式中,可以通过将深度值转换成整数格式(例如,16位整数)并基于图像格式(例如,JPEG)压缩转换后的深度值来获得多个像素值。
在包括一个或多个辅图像的实施方式中,图像元数据可以进一步包括一个或多个附加相机元素。每个附加的相机元素可以对应于一个或多个辅图像中的至少一个图像,并且可以包括相应的图像元素,该图像元素包括指向文件容器中的至少一个图像的指针(例如,统一资源标识符)。在一些实施方式中,可以在第一相机元素之后的图像元数据中顺序地组织一个或多个附加相机元素。框412之后可以是框414。
在框414中,可以基于图像格式将编码的图像数据存储在文件容器中。在一些实施方式中,将图像数据存储在文件容器中可以包括将以图像格式编码的主图像和一个或多个辅图像进行连结。文件容器中的主图像和一个或多个辅图像的顺序可以与图像元数据中一个或多个附加相机元素的顺序相同。框414之后可以是框416。
在框416中,可以显示主图像。
图5是图示根据一些实施方式的另一示例方法500的流程图。在一些实施方式中,可以例如在如图1中所示的服务器系统102上实现方法500。在一些实施方式中,可在如图1中所示的一个或多个客户端设备120、122、124或126、在一个或多个服务器设备上、和/或在服务器设备和客户端设备两者上实现方法500的一些或全部。在所描述的示例中,实现系统包括一个或多个数字处理器或处理电路(“处理器”)和一个或多个存储设备。在一些实施方式中,一个或多个服务器和/或客户端的不同的组件可执行方法500的不同的框或其它部分。在一些示例中,第一设备被描述为执行方法500的框。一些实施方式可使方法500的一个或多个框由可向第一设备发送结果或数据的一个或多个其它设备(例如,其它客户端设备或服务器设备)执行。
在各种实施方式中,客户端设备120可以是独立相机、包括相机的另一设备,例如,智能电话、平板电脑、计算机、诸如智能手表、耳机等的可穿戴设备,或可以接收另一设备捕获的图像或视频的其它客户端设备。在一些实施方式中,客户端设备120可以是仅捕获的设备,例如,不包括屏幕的相机。在一些实施方式中,客户端设备120可以是仅查看的设备,例如,包括可以在其上显示图像或视频的屏幕但是不具有相机或捕获图像或视频的其他能力的设备。在一些实施方式中,客户端设备120可以具有捕获和查看能力两者。
在一些实施方式中,客户端设备120可以包括单个相机以捕获图像或视频。在一些实施方式中,客户端设备120可以包括多个相机(或镜头)。例如,智能电话或其他设备可以包括一个或多个前置相机(与屏幕位于设备的同一侧)和/或一个或多个后置相机。在一些实施方式中,一个或多个前置或后置相机可以在捕获期间一起操作,例如,第一相机可以捕获深度信息,而第二相机可以捕获图像或视频的图像像素。在一些实施方式中,不同的相机可以用于例如具有不同的扩缩水平的不同类型的图像或视频捕获(例如,远摄镜头、广角镜头等)。在一些实施方式中,客户端设备120可以被配置成捕获360度图像或视频。在一些实施方式中,相机或镜头可以使用单个图像传感器(例如,CCD或CMOS传感器)或多个传感器来捕获图像。在一些实施方式中,在图像捕获时,其他传感器,例如深度传感器等,可以与一个或多个相机一起使用。
在一些实施方式中,客户端设备120可以将在图像传感器处从一个或多个相机(或镜头)捕获的未加工的图像数据与从其他传感器(例如,加速度计、陀螺仪、位置传感器、深度传感器等)获得的其他数据进行组合以形成图像并将该图像存储在文件容器中。
客户端设备120可以使用户能够以不同的模式来捕获图像,例如,静态图像(或照片)模式来捕获单个帧,突发或运动图像模式来捕获多个帧,视频模式来捕获包括多个帧的视频等。在一些实施方式中,方法500可以在相机捕获图像时、在捕获完成之后或在稍后的时间,例如当用户使用客户端设备120来查看和/或编辑图像时,执行。
客户端设备120可以使用户能够在不同的用户界面中查看例如由客户端设备120捕获或与该用户相关联的图像或视频。例如,可以提供领先模式或幻灯片放映模式,其使用户能够一次查看和/或编辑单个图像或视频。在另一个示例中,可以提供图库模式,其使用户能够同时查看和/或编辑例如作为图像网格的多个图像。
在一些实施方式中,客户端设备120可以执行方法500。在另一示例中,客户端设备或服务器设备可以执行方法500。在一些实施方式中,方法500可以由服务器设备来实现。
在框502中,检查是否已获得了在方法500的实施方式中使用用户数据的用户同意(例如,用户许可)。例如,用户数据可包括由用户使用客户端设备捕获的图像或者视频、由用户例如使用客户端设备存储或者访问的图像或视频、图像/视频元数据、与消息传递应用的使用有关的用户数据、用户生物计量信息、用户特性(例如,身份、姓名、年龄、性别、职业等)、关于用户的社交网络和联系人的信息、社交和其它类型的动作和活动、由用户创建或者提交的内容、评级和意见、用户的当前位置、历史用户数据、由用户生成、接收和/或访问的图像、由用户查看或者共享的图像等。本文描述的方法的一个或多个框可以在一些实施方式中使用这种用户数据。
如果已从相关用户获得了可以在方法500中使用用户数据的用户同意,则在框504中,确定了可像针对那些框所描述的那样在可能使用用户数据的情况下实现本文的方法的框,并且方法继续到框510。如果尚未获得用户同意,则在框506中确定了将在不使用用户数据的情况下实现框,并且方法继续到框510。在一些实施方式中,如果尚未获得用户同意,则在不使用用户数据的情况下并且利用合成数据和/或通用或公开可访问的且公开可用的数据来实现框。在一些实施方式中,如果尚未获得用户同意,则不执行方法500。例如,如果用户拒绝访问一个或多个图像的许可,则方法500不被执行或在执行框506之后被停止。
在框510中,从文件容器——例如,如参考图3所述以特定图像格式存储图像的文件容器——获得图像数据。在不同的实施方式中,框510之后可以是框512、框522、框542或框562。
在一些实施方式中,框510之后可以是框512。在框512中,使来自图像数据的主图像被显示在例如客户端设备的显示屏上。在一些实施方式中,主图像可以显示在使用户能够提供用户输入的用户界面中。框512之后可以是框514。
在框514中,可以接收指示目标焦距的用户输入。例如,用户界面可以包括用户界面元素(例如,滑块),该用户界面元素允许用户通过在与捕获的图像中的近距离值和远距离值相对应的距离值之间移动滑块来选取目标焦距。在一些实施方式中,可以直接接收例如作为标识主图像的特定部分的触摸输入、手势输入、语音输入等用户输入,并且可以基于特定部分来确定焦距。框514之后可以是框516。
在框516中,可以基于镜头焦距模型来修改主图像,例如,镜头焦距模型作为图像元数据的一部分存储在文件容器中。例如,可以修改主图像以应用肖像效果,例如在所述肖像效果中图像中的处于大于目标焦距的距离的对象被模糊;散景效果,例如,在所述散景效果中图像中的处于与目标焦距不同的距捕获主图像的相机的距离的对象被模糊;其他选择性模糊效果等等。也可以应用基于目标距离的其他类型的效果,例如,彩色效果、滤波器等。
在一些实施方式中,效果可以基于存储在图像元数据中的深度图中的FocalTable。如果目标焦距对应于FocalTable中包括的距离,则可以通过在FocalTable中的简单查找来获得弥散圆的半径。如果目标焦距不包括在Focal table中,则可以获得与可用距离,例如离目标焦距最近的距离,相对应的半径值。例如,如果FocalTable包括近平面和远平面的距离-半径对,则获得这样的值。然后基于所获得的值之间的内插确定目标焦距的半径值。例如,可以执行线性内插以获得目标焦距的半径值。这样确定的半径值用于应用效果,例如,使主图像模糊。框516之后可以是框518。
在框518中,使修改的图像被显示。在一些实施方式中,框518之后可以是框514,例如,以允许用户提供进一步的输入,例如,指示不同的目标焦距。
在一些实施方式中,框510之后可以是框522。在框522中,使来自图像数据的主图像被显示在例如客户端设备的显示屏上。在一些实施方式中,主图像可以显示在使用户能够提供用户输入的用户界面中。框522之后可以是框524。
在框524中,可以接收指示裁剪操作或缩放操作的用户输入。例如,用户界面可以包括一个或多个用户界面元素,其使用户能够指示裁剪或缩放操作。例如,用户可以通过绘制形状(例如,裁剪矩形)以选择主图像的像素子集来指示裁剪操作——移除主图像的一个或多个部分。在另一示例中,用户可以通过拖动主图像的一个或多个角或边缘来指示缩放操作——增加主图像的大小。可以提供其他类型的用户界面,其使用户能够提供裁剪或缩放操作的输入。框524之后可以是框526。
在框526中,基于在框524中接收到的用户输入来修改——裁剪和/或缩放——主图像。框526之后可以是框528。
在框528中,基于修改后的主图像来更新深度图。例如,可以删除与主图像的被裁剪(移除)的部分相对应的深度图的部分。对于缩放操作,可以基于应用于修改后的主图像的缩放来更新深度图。框528之后可以是框530。
在框530中,可以更新文件容器以存储修改后的主图像和更新后的深度图。
在一些实施方式中,框510之后可以是框542。在框542中,例如,使用计算机视觉技术来生成三维图像。从可以包括主图像、一个或多个辅图像以及深度信息的文件容器获得的图像数据可用于生成三维图像。例如,多个深度图可以被包括在深度信息中,每个深度图在捕获图像时由利用单个相机的运动生成,并且可以被嵌入在图像元数据中。在另一示例中,可以使用一个或多个深度相机来生成多个深度图。可以利用多个深度图来重构3D场景。框542之后可以是框544。
在框544中,显示三维图像。框544之后可以是框546。
在框546中,可以接收指示倾斜操作或平移操作的用户输入。例如,可以经由客户端设备的一个或多个传感器,例如陀螺仪、加速计、手势传感器、触摸屏或其他传感器,来接收用户输入。框546之后可以是框548。
在框548中,可以基于用户输入来生成更新的三维图像。图像的三维本质使对象能够具有固定的深度,并使图像能够被显示,使得对象在四周移动时可能遮挡图像中的其他对象。在一些实施方式中,效果可能类似于浏览3D立体模型。框548之后可以是框550。
在框550中,可以显示更新的三维图像。在一些实施方式中,框550之后可以是框546,以接收进一步的用户输入。
在一些实施方式中,框510之后可以是框562。在框562中,使得来自图像数据的主图像被显示在例如客户端设备的显示屏上。在一些实施方式中,主图像可以显示在使用户能够提供用户输入的用户界面中。框522之后可以是框524。
在框564中,可以接收指示对图像中的一个或多个对象的选择的用户输入。例如,用户可以使用指点设备、触摸屏、手势界面、语音等来选择对象。框564之后可以是框566。
在框566中,生成与用户选择的对象相对应的分割掩模。分割掩模可以标识与对象相对应的主图像的像素子集。可以使用包括多个深度值的深度图来生成分割掩模。在一些实施方式中,每个深度值可以对应于主图像的特定像素。在这些实施方式中,生成分割掩模可以包括选择具有在深度值的阈值范围内的相应深度值的主图像的像素。例如,深度值的阈值范围可以是对应于例如使用图像分割技术来标识的对象的最小深度值和最大深度值之间的范围,所述图像分割技术利用深度信息和关于由在图像捕获期间使用的相机应用所应用的景深效果的信息。基于分割掩模获得对象图像,例如,对象可以仅包括由分割掩模标识的主图像的像素子集。例如,参考图2B,深度图像230中的深色的花可以用于分割出图像220中的花。框566之后可以是框568。
在框568中,可以提供用户界面,该用户界面使用户能够选择对象图像并执行一个或多个操作,例如,从显示的图像中移除对象的剪切操作、用于复制对象的复制操作、或将对象插入不同的图像或显示的图像中的不同位置处的粘贴操作。
图6是可以用于实现本文描述的一个或多个特征的示例设备600的框图。在一个示例中,设备600可以用于实现客户端设备,例如,图1中所示的客户端设备(120、122、124、126)中的任一个。替换地,设备600可实现服务器设备,例如,服务器104。在一些实施方式中,设备600可以是用于实现客户端设备、服务器设备、或客户端和服务器设备两者。设备600可以是如上所述的任何适合的计算机系统、服务器、或其它电子或硬件设备。
可以在可在任何类型的计算设备上执行的独立程序、在web浏览器上运行的程序、在移动计算设备(例如,蜂窝电话、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机等)上运行的移动应用(“app”)中运行本文描述的一种或多种方法。在一个示例中,可使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)向服务器设备发送用户输入数据并且从服务器接收最终输出数据以进行输出(例如,以进行显示)。在另一示例中,可在移动计算设备上的移动app(和/或其它app)内执行所有计算。在另一示例中,可在移动计算设备和一个或多个服务器设备之间拆分计算。
在一些实施方式中,设备600包括处理器602、存储器604和输入/输出(I/O)接口606以及相机616。在一些实施方式中,相机616可以包括多个相机或成像传感器。例如,例如当设备600是移动电话、平板电脑或计算机设备时,相机616可以包括前置相机和后置相机。在另一个示例中,相机616可以包括例如捕获RGB图像的相机、例如使用红外或其他技术捕获深度信息的深度相机、灰度相机、单色相机等。
处理器602可以是用于执行程序代码并且控制设备600的基本操作的一个或多个处理器和/或处理电路。“处理器”包括处理数据、信号或其它信息的任何适合的硬件系统、机制、或组件。处理器可以包括具有利用一个或多个核(例如,在单核、双核、或多核配置中)的通用中央处理单元(CPU)、多个处理单元(例如,在多处理器配置中)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、用于实现功能性的专用电路、用于实现基于神经网络模型的处理的专用处理器、神经电路、针对矩阵计算(例如,矩阵乘法)而优化的处理器的系统、或其它系统。在一些实施方式中,处理器602可以包括实现神经网络处理的一个或多个协处理器。在一些实施方式中,处理器602可以是处理数据以产生概率输出的处理器,例如,由处理器602产生的输出可以是不精确的或者可以在距预期输出的范围内是准确的。处理不必限于特定地理位置或者具有时间限制。例如,处理器可以“实时地”、“离线”、在“批处理模式”等下执行其功能。可以通过不同的(或相同的)处理系统来在不同的时间并在不同的位置处执行处理的多个部分。计算机可以是与存储器通信的任何处理器。
存储器604通常被设置在设备600中以供由处理器602访问,并且可以是适合于存储由处理器执行的指令并被定位为与处理器602分开和/或与其集成在一起的任何适合的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪速存储器等。存储器604可存储由处理器602在服务器设备600上操作的软件,包括操作系统608、机器学习应用630、其它应用612、和应用数据614。
其它应用612可包括应用,诸如相机应用、图像图库、图像管理或图像库应用、媒体共享应用、数据显示引擎、、web托管引擎、图像显示引擎、通知引擎、社交联网引擎等等。在一些实施方式中,机器学习应用630和其它应用612可每一个包括使得处理器602能够执行本文描述的功能(例如,图4和图5的方法中的一些或全部)的指令。本文公开的一种或多种方法可在若干环境和平台中操作,例如,作为可在任何类型的计算设备上运行的独立计算机程序、作为具有网页的web应用、作为在移动计算设备上运行的移动应用(“app”)等。
在各种实施方式中,机器学习应用630可以利用贝叶斯分类器、支持向量机、神经网络或其它学习技术。在一些实施方式中,机器学习应用630可以包括训练模型634、推理引擎636、和数据632。
在一些实施方式中,数据632可以包括训练数据,例如,用于生成训练模型634的数据。例如,训练数据可以包括任何类型的数据,诸如文本、图像、音频、视频等。可以从任何源获得训练数据,所述任何源例如具体地标记用于训练的数据储存库、针对其提供许可以便用作用于机器学习的训练数据的数据等。在一个或多个用户许可使用他们相应的用户数据来训练机器学习模型,例如训练模型634,的实施方式中,训练数据可以包括这种用户数据。在用户许可使用他们相应的用户数据的实施方式中,数据632可以包括许可的数据,诸如图像/视频或图像/视频元数据(例如,视频、与其他用户共享视频有关的数据、与视频相关联的标签、是否从视频生成了基于视频的创作(诸如视频拼贴、故事等)等)、通信(例如,电子邮件;诸如文本消息、语音、视频等这样的聊天数据)、文档(例如,电子表格、文本文档、演示文稿等)。
在一些实施方式中,训练数据可以包括为了训练而生成的合成数据,诸如不基于正被训练的上下文中的用户输入或活动的数据,例如,从模拟或者计算机生成的视频等生成的数据。在一些实施方式中,机器学习应用630排除数据632。例如,在这些实施方式中,可以例如在不同的设备上生成训练模型634,并且训练模型634作为机器学习应用630的一部分被提供。在各种实施方式中,训练模型634可以作为包括模型结构或形式(例如,其定义了神经网络节点的数目和类型、节点之间的连接性以及节点组织成多层)和关联的权重的数据文件被提供。推理引擎636可以读取用于训练模型634的数据文件并且基于在训练模型634中指定的模型结构或形式来实现具有节点连接性、层、和权重的神经网络。
机器学习应用630还包括训练模型634。在一些实施方式中,训练模型可以包括一个或多个模型形式或结构。例如,模型形式或结构可包括任何类型的神经网络,诸如线性网络、实现多个层(例如,输入层与输出层之间的“隐藏层”,其中每个层是线性网络)的深度神经网络、卷积神经网络(例如,将输入数据拆分或划分为多个部分或块,使用一个或多个神经网络层来分别处理每个块,并且聚合来自每个块的处理的结果的网络)、序列到序列神经网络(例如,接收诸如句子中的单词、视频中的帧等的顺序数据作为输入并且产生结果序列作为输出的网络)等。
模型形式或结构可以指定各种节点之间的连接性以及节点变成层的组织。例如,第一层(例如,输入层)的节点可以接收数据作为输入数据632或应用数据614。例如,当训练模型被用于例如包括包括多个帧的视频的分析时,这种数据可按照节点包括例如一个或多个像素。后续中间层可以接收按照个模型形式或结构中指定的连接性的前一层的节点的输出作为输入。这些层也可以被称为隐藏层。最后层(例如,输出层)产生机器学习应用的输出。在一些实施方式中,模型形式或结构还指定每个层中的节点的数目和/或类型。
在不同的实施方式中,训练模型634可以包括一个或者多个模型。该模型中的一个或者多个可以包括被按照模型结构或形式布置成层的多个节点。在一些实施方式中,节点可以是没有存储器的计算节点,例如,被配置成处理一个单元的输入以产生一个单元的输出。由节点执行的计算可以包括例如将多个节点输入中的每一个乘以权重、获得加权和、并且利用偏置或截距值来调整加权和以产生节点输出。在一些实施方式中,由节点执行的计算还可包括将阶跃/激活函数应用于调整后的加权和。在一些实施方式中,阶跃/激活函数可以是非线性函数。在各种实施方式中,这种计算可以包括诸如矩阵乘法这样的操作。在一些实施方式中,可以并行执行由多个节点进行的计算,例如,使用多核处理器的多个处理器核、使用GPU的各个处理单元、或专用神经电路。在一些实施方式中,节点可以包括存储器,例如,可以能够在处理后续输入时存储并使用一个或多个较早的输入。例如,具有存储器的节点可以包括长短期记忆(LSTM)节点。LSTM节点可以使用存储器来维护许可节点像有限状态机(FSM)一样行动的“状态”。具有此类节点的模型在处理顺序数据,例如句子或段落中的单词、视频中的帧、语音或其它音频等,时可以是有用的。
在一些实施方式中,训练模型634可以包括用于各个节点的嵌入或权重。例如,可以将模型作为像通过模型形式或结构所指定的那样组织成层的多个节点来启动。在初始化时,可以将相应的权重应用于按照模型形式连接的每对节点,例如神经网络的连续层中的节点,之间的连接。例如,相应的权重可以被随机地指派或者初始化为默认值。然后可以例如使用数据632来训练模型,以产生结果。
例如,训练可以包括应用监督学习技术。在监督学习中,训练数据可包括多个输入(例如,视频集合)和针对每个输入的对应预期输出(例如,用于每个视频的一个或多个标签)。基于模型的输出与预期输出的比较,例如以增加模型在被提供类似的输入时产生预期输出的概率的方式自动地调整权重的值。
在一些实施方式中,训练可以包括应用无监督学习技术。在无监督学习中,可以提供仅输入数据并且可以训练模型以区分数据,例如,以将输入数据聚类成多个组,其中每个组包括以某种方式类似的输入数据。
在各种实施方式中,训练模型包括与模型结构相对应的权重或嵌入的集合。在省略了数据632的实施方式中,机器学习应用630可以包括基于例如由机器学习应用630的开发者、由第三方等进行的在先训练的训练模型634。在一些实施方式中,训练模型634可以包括例如从提供权重的服务器下载的固定的权重集合。
机器学习应用630还包括推理引擎636。推理引擎636被配置成将训练模型634应用于数据,诸如应用数据614(例如,视频),以提供推理。在一些实施方式中,推理引擎636可以包括要由处理器602执行的软件代码。在一些实施方式中,推理引擎636可以指定使得处理器602能够应用训练模型的电路配置(例如,用于可编程处理器、用于现场可编程门阵列(FPGA)等)。在一些实施方式中,推理引擎636可以包括软件指令、硬件指令、或组合。在一些实施方式中,推理引擎636可以提供可由操作系统608和/或其它应用612使用来调用推理引擎636的应用编程接口(API),例如,以将训练模型634应用于应用数据614来生成推理。
在一些实施方式中,可以以离线方式实现机器学习应用630。在这些实施方式中,训练模型634可以在第一阶段中被生成,并且作为机器学习应用630的一部分被提供。在一些实施方式中,可以以在线方式实现机器学习应用630。例如,在此类实施方式中,调用机器学习应用630的应用(例如,操作系统608、其它应用612中的一个或多个等)可以利用由机器学习应用630产生的推理,例如,将推理提供给用户,并且可以生成系统日志(例如,如果被用户许可,生成基于推理由用户采取的动作;或者如果被用作进一步处理的输入,生成进一步处理的结果)。系统日志可以被定期性地,例如每小时、每月、每季度等,产生,并且可以在用户许可情况下用于更新训练模型634,例如,以更新用于训练模型634的嵌入。
在一些实施方式中,可以以可适于在其上执行机器学习应用630的设备600的特定配置的方式实现机器学习应用630。例如,机器学习应用630可以确定利用可用的计算资源,例如处理器602,的计算图。例如,如果机器学习应用630作为分布式应用被实现在多个设备上,则机器学习应用630可以确定要以优化计算的方式在各个设备上执行的计算。在另一示例中,机器学习应用630可以确定处理器602包括具有特定数目的GPU核心(例如,1000个)并且相应地(例如,作为1000个各个进程或线程)实现推理引擎的GPU。
在一些实施方式中,机器学习应用630可以实现训练模型的总体。例如,训练模型634可以包括每一个适用于相同的输入数据的多个训练模型。在这些实施方式中,机器学习应用630可以例如基于可用的计算资源、在先推理的成功率等来选取特定训练模型。在一些实施方式中,机器学习应用630可以执行推理引擎636,使得多个训练模型被应用。在这些实施方式中,机器学习应用630可以组合来自应用各个模型的输出,例如,使用对来自应用每个训练模型的各个输出进行评分的投票技术或者通过选取一个或多个特定输出。另外,在这些实施方式中,机器学习应用可以应用用于应用各个训练模型的时间阈值(例如,0.5ms)并且仅利用在该时间阈值内可用的那些各个输出。可以不利用,例如丢弃,不在时间阈值内接收到的输出。例如,当在例如通过操作系统608或一个或多个应用612调用机器学习应用的同时指定了时间限制时,此类方法可以是适合的。在一些实施方式中,机器学习应用630可以基于由调用应用,例如操作系统608或一个或多个应用612,指定的格式来产生输出。在一些实施方式中,调用应用可以是另一机器学习应用。例如,此类配置可以被用在生成对抗网络中,其中使用来自机器学习应用630的输出来训练调用机器学习应用并且反之亦然。
存储器604中的软件中的任一个可替换地被存储在任何其它适合的存储位置或计算机可读介质上。此外,存储器604(和/或其它连接的存储设备)可存储一个或多个消息、一个或多个分类法、电子百科全书、词典、同义词库、知识库、消息数据、语法、用户偏好、和/或本文描述的特征中使用的其它指令和数据。存储器604和任何其它类型的存储(磁盘、光盘、磁带、或其它有形介质)可被认为是“存储”或“存储设备”。
I/O接口606可提供用于使得能够将服务器设备600与其它系统和设备对接的功能。对接设备可作为设备600的一部分被包括或者可以是分开的并与设备600进行通信。例如,网络通信设备、存储设备(例如,存储器)、和输入/输出设备可经由I/O接口606通信。在一些实施方式中,I/O接口可连接到接口设备,诸如输入设备(键盘、指点设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
可连接到I/O接口606的对接设备的一些示例可包括一个或多个显示设备620,所述显示设备620可用于显示内容,例如,图像、视频、和/或如本文所描述的输出应用的用户界面。显示设备620可经由本地连接(例如,显示总线)和/或经由联网连接来连接到设备600并且可以是任何适合的显示设备。显示设备620可包括任何适合的显示设备,诸如LCD、LED、或等离子体显示屏幕、CRT、电视、监视器、触摸屏、3-D显示屏幕、或其它视觉显示设备。例如,显示设备620可以是在移动设备上提供的平板显示屏幕、在护目镜或头戴式耳机设备中提供的多个显示屏幕、或用于计算机设备的监视器屏幕。
I/O接口606可与其它输入和输出设备对接。一些示例包括可捕获图像的一个或多个相机。一些实施方式可提供用于捕获声音(例如,作为捕获的图像、话音命令等的一部分)的麦克风、用于输出声音的音频扬声器设备、或其它输入和输出设备。
相机616可以是可以捕获包括多个帧的视频的任何类型的相机。如本文所使用的相机可以包括任何图像捕获设备。在一些实施方式中,相机616可以包括具有不同能力的多个镜头或成像传感器,例如,前置对后置、不同的扩缩水平、捕获的图像的图像分辨率等。在一些实施方式中,设备600可以包括一个或多个传感器,诸如深度传感器、加速计、位置传感器(例如,GPS)、陀螺仪等。在一些实施方式中,一个或多个传感器可以与相机一起操作以获得与使用相机捕获的视频的不同帧相对应的传感器读数。
为了便于图示,图6示出了用于处理器602、存储器604、I/O接口606、相机616、和软件框608、612和630中的每一个的一个框。这些框可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用、和/或软件模块。在其它实施方式中,设备600可以不具有所示的所有组件并且/或者还可以具有包括代替本文所示的那些元件或者除了本文所示的那些元件之外其它类型的元件的其它元件。虽然一些组件被描述为执行如本文的一些实施方式中所描述的框和操作,但是网络环境100、设备600、类似的系统的组件中的任何适合的组件或组合、或与这样的系统相关联的任何适合的一个或多个处理器可以执行所描述的框和操作。
本文描述的方法可通过可在计算机上执行的计算机程序指令或代码来实现。例如,代码可由一个或多个数字处理器(例如,微处理器或其它处理电路)实现并且可被存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,所述非暂时性计算机可读介质诸如磁、光学、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、硬磁盘、光盘、固态存储器驱动器等。程序指令还可被包含在电子信号中并作为电子信号被提供,例如以从服务器(例如,分布式系统和/或云计算系统)递送的软件即服务(SaaS)的形式提供。替换地,一种或多种方法可用硬件(逻辑门等)或者用硬件和软件的组合加以实现。示例硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(ASIC)等。可将一种或多种方法作为在系统上运行的应用的一部分或组件、或者作为与其它应用和操作系统相结合地运行的应用或软件来执行。
尽管已相对于说明书的特定实施方式描述了说明书,但是这些特定实施方式仅仅是说明性的,而不是限制性的。示例中图示的概念可以被应用于其它示例和实施方式。
在这里讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户位置和在该位置的时间、用户的生物计量特征信息、用户的活动和人口统计信息)的情况下,为用户提供一个或多个机会以控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。即,本文所讨论的系统和方法特别是在接收到来自相关用户要这样做的显式授权后收集、存储和/或使用用户个人信息。
例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。向要为其收集个人信息的每个用户呈现一个或多个选项,以允许控制与该用户有关的信息收集,以提供关于是否收集信息以及信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,在存储或使用某些数据之前,可能会以一种或多种方式处理某些数据,使得移除个人可识别信息。作为一个示例,可以处理用户的身份,使得不能确定个人可识别信息。作为另一示例,用户的地理位置可以被概括为更大的区域,使得不能确定用户的特定位置。
注意的是,如将为本领域的技术人员所知的那样,可以将本公开中描述的功能块、操作、特征、方法、设备和系统集成或者划分到系统、设备和功能块的不同组合中。可以使用任何适合的编程语言和编程技术来实现特定实施方式的例程。可以采用不同的编程技术,例如过程的或面向对象的。例程可以在单个处理设备或多个处理器上执行。尽管可以以具体次序呈现步骤、操作或计算,但是可以在不同的特定实施方式中改变该次序。在一些实施方式中,可以同时执行在本说明书中示出为有顺序的多个步骤或操作。

Claims (24)

1.一种计算机实现的方法,包括:
使用一个或多个相机捕获图像数据,其中,所述图像数据包括主图像和相关联的深度值;
以图像格式对所述图像数据进行编码,其中,所编码的图像数据包括:
以所述图像格式编码的所述主图像;以及
图像元数据,所述图像元数据包括:
设备元素,所述设备元素包括指示图像类型的简档元素;和
第一相机元素,其中,所述第一相机元素包括图像元素和基于所述深度值的深度图;
在所述编码之后,基于所述图像格式来将所述图像数据存储在文件容器中;以及
使所述主图像被显示。
2.根据权利要求1所述的计算机实现的方法,其中,所述深度图包括多个像素值,每个像素值指示距所述一个或多个相机中的特定相机的相应距离。
3.根据权利要求2所述的计算机实现的方法,其中,所述深度图进一步包括镜头焦点模型,所述镜头焦点模型定义与距所述特定相机的多个距离相对应的弥散圆的相应半径值。
4.根据权利要求3所述的计算机实现的方法,其中,所述多个距离包括近距离和远距离,其中所述近距离小于所述远距离。
5.根据权利要求4所述的计算机实现的方法,其中,所述多个距离进一步包括大于所述近距离且小于所述远距离的焦距。
6.根据权利要求2至5中的任一项所述的计算机实现的方法,进一步包括通过将所述深度值转换成整数格式并基于所述图像格式来压缩所转换的深度值来获得所述多个像素值。
7.根据权利要求2至6中的任一项所述的计算机实现的方法,其中,所述图像数据进一步包括一个或多个辅图像,其中,每个辅图像由与所述特定相机不同的所述一个或多个相机中的相应相机捕获。
8.根据权利要求7所述的计算机实现的方法,其中:
所述图像元数据进一步包括一个或多个附加的相机元素,其中,每个附加的相机元素对应于所述一个或多个辅图像中的至少一个图像并且包括相应的图像元素,所述相应的图像元素包括指向所述至少一个图像的指针,其中,所述一个或多个附加的相机元素在所述图像元数据中在所述第一相机元素之后被顺序地组织,并且
其中,将所述图像数据存储在所述文件容器中包括将以所述图像格式编码的所述主图像和所述一个或多个辅图像连结,其中,所述文件容器中的所述主图像和所述一个或多个辅图像的顺序与所述图像元数据中的所述一个或多个附加的相机元素的顺序相同。
9.根据权利要求1至6中的任一项所述的计算机实现的方法,其中,所述图像数据进一步包括一个或多个辅图像,所述一个或多个辅图像中的每一个由所述一个或多个相机中的相应相机捕获。
10.根据权利要求9所述的计算机实现的方法,其中,所述一个或多个辅图像包括由深度相机捕获的深度图像或视频。
11.一种计算机实现的方法,包括:
从文件容器获得图像数据,所述图像数据包括与主图像相对应的多个像素值以及包括镜头焦点模型的图像元数据;
使所述主图像被显示;
接收指示目标焦距的用户输入;
响应于所述用户输入,基于所述镜头焦距模型来修改所述主图像的一个或多个像素值以获得修改后的图像,其中,所述修改后的图像中在所述目标焦距处的对象处于对焦中;以及
使所述修改后的图像被显示。
12.根据权利要求11所述的计算机实现的方法,其中,所述镜头焦点模型定义与距捕获所述主图像的相机的多个距离相对应的弥散圆的相应半径值,并且其中,修改所述一个或多个像素值使所述主图像中的一个或多个对象被模糊,其中,所述一个或多个对象与深度数据相关联,所述深度数据指示所述一个或多个对象处于距捕获所述主图像的相机与所述目标焦距相比不同的距离处。
13.根据权利要求11所述的计算机实现的方法,其中,在所述文件容器中将所述镜头焦点模型存储在所述图像元数据中的深度图元素中,其中,所述深度图元素对应于捕获所述主图像的相机。
14.一种计算机实现的方法,包括:
从文件容器获得图像数据,所述图像数据包括与主图像相对应的多个像素值以及包括深度图的图像元数据;
使所述主图像被显示;
接收指示下述中的至少一个的用户输入:对所述主图像的裁剪操作或对所述主图像的缩放操作;
基于所述用户输入来修改所述主图像以获得修改后的图像;
计算更新后的深度图,其中,所述更新后的深度图包括与所述修改后的图像相对应的深度数据;以及
更新所述文件容器,以将所述主图像替换为所述修改后的图像并将所述深度图替换为所述更新后的深度图。
15.一种计算机实现的方法,包括:
从文件容器获得图像数据,所述图像数据包括多个像素值以及包括多个深度图的图像元数据,每个像素值对应于主图像的多个像素中的特定像素;
基于所述主图像和所述多个深度图来生成三维图像;以及
使所述三维图像被显示。
16.根据权利要求15所述的计算机实现的方法,进一步包括:
接收指示针对所述三维图像的倾斜操作或平移操作的用户输入;
响应于接收到所述用户输入,基于所述用户输入、所述主图像和所述多个深度图来生成更新后的三维图像;以及
使所述更新后的三维图像被显示。
17.根据权利要求15或者16所述的计算机实现的方法,其中,经由下述中的至少一个来获得所述多个深度图:来自使用单个相机的运动技术的深度或者一个或多个深度相机。
18.一种计算机实现的方法,包括:
从文件容器获得图像数据,所述图像数据包括多个像素值以及包括深度图的图像元数据,每个像素值对应于主图像的多个像素中的相应像素;
使所述主图像被显示;
接收指示对所述主图像中所描绘的对象的选择的用户输入;
基于所述深度图来生成分割掩模,其中,所述分割掩模标识与所述对象相对应的所述主图像的像素子集;
基于所述分割掩模来获得所述对象的对象图像;以及
提供使得能够选择所述对象图像的用户界面。
19.根据权利要求18所述的计算机实现的方法,其中,所述深度图包括多个深度值,所述多个深度值中的每个对应于所述主图像的特定像素,并且其中,生成所述分割掩模包括选择具有在深度值的阈值范围内的相应深度值的所述主图像的像素。
20.一种计算装置,所述计算装置包括用于执行根据权利要求1至19中的任一项所述的方法的装置。
21.一种计算系统,所述计算系统包括用于执行根据权利要求1至19中的任一项所述的方法的装置。
22.一种包括指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至19中的任一项所述的方法。
23.一种包括指令的计算机程序,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至19中的任一项所述的方法。
24.一种计算设备,包括:
一个或多个处理器;和
被耦合到所述一个或多个处理器的具有存储在其上的指令的存储器,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至19中的任一项所述的方法。
CN201980059947.0A 2019-04-01 2019-11-19 捕获和编辑动态深度图像的方法、装置和存储介质 Active CN112868224B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311121209.9A CN117221512A (zh) 2019-04-01 2019-11-19 捕获和编辑动态深度图像的技术

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962827739P 2019-04-01 2019-04-01
US62/827,739 2019-04-01
PCT/US2019/062156 WO2020205003A1 (en) 2019-04-01 2019-11-19 Techniques to capture and edit dynamic depth images

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311121209.9A Division CN117221512A (zh) 2019-04-01 2019-11-19 捕获和编辑动态深度图像的技术

Publications (2)

Publication Number Publication Date
CN112868224A true CN112868224A (zh) 2021-05-28
CN112868224B CN112868224B (zh) 2023-08-29

Family

ID=68848465

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311121209.9A Pending CN117221512A (zh) 2019-04-01 2019-11-19 捕获和编辑动态深度图像的技术
CN201980059947.0A Active CN112868224B (zh) 2019-04-01 2019-11-19 捕获和编辑动态深度图像的方法、装置和存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311121209.9A Pending CN117221512A (zh) 2019-04-01 2019-11-19 捕获和编辑动态深度图像的技术

Country Status (6)

Country Link
US (2) US11949848B2 (zh)
EP (1) EP3744088A1 (zh)
JP (2) JP7247327B2 (zh)
KR (2) KR102647336B1 (zh)
CN (2) CN117221512A (zh)
WO (1) WO2020205003A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106637B2 (en) * 2019-05-20 2021-08-31 5Th Kind, Inc. Metadata-driven tiered storage
CN113286073A (zh) * 2020-02-19 2021-08-20 北京小米移动软件有限公司 拍摄方法、拍摄装置及存储介质
US20220188547A1 (en) * 2020-12-16 2022-06-16 Here Global B.V. Method, apparatus, and computer program product for identifying objects of interest within an image captured by a relocatable image capture device
US11893668B2 (en) 2021-03-31 2024-02-06 Leica Camera Ag Imaging system and method for generating a final digital image via applying a profile to image information
US11991295B2 (en) 2021-12-07 2024-05-21 Here Global B.V. Method, apparatus, and computer program product for identifying an object of interest within an image from a digital signature generated by a signature encoding module including a hypernetwork
US20230328216A1 (en) * 2022-04-06 2023-10-12 Samsung Electronics Co., Ltd. Encoding Depth Information for Images
WO2024137470A1 (en) * 2022-12-19 2024-06-27 Google Llc Media container file format for depth, editing, and machine learning

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102257827A (zh) * 2008-12-19 2011-11-23 皇家飞利浦电子股份有限公司 从图像创建深度图
CN103329548A (zh) * 2010-12-27 2013-09-25 3D媒体公司 用于图像处理的主、辅图像捕获设备及其相关方法
CN104081414A (zh) * 2011-09-28 2014-10-01 派力肯影像公司 用于编码和解码光场图像文件的系统及方法
US20150039621A1 (en) * 2013-08-05 2015-02-05 Nvidia Corporation Method for capturing the moment of the photo capture
CN105052124A (zh) * 2013-02-21 2015-11-11 日本电气株式会社 图像处理设备、图像处理方法、以及非瞬时计算机可读介质
CN105165008A (zh) * 2013-05-10 2015-12-16 皇家飞利浦有限公司 对与多视图再现设备一起使用的视频数据信号进行编码的方法
CN105519105A (zh) * 2013-09-11 2016-04-20 索尼公司 图像处理设备及方法
US20160205341A1 (en) * 2013-08-20 2016-07-14 Smarter Tv Ltd. System and method for real-time processing of ultra-high resolution digital video
CN106233329A (zh) * 2014-04-24 2016-12-14 高通股份有限公司 3d拉东图像的产生和使用
CN106464860A (zh) * 2014-07-10 2017-02-22 英特尔公司 深度信息在数字图像文件中的存储
CN106576160A (zh) * 2014-09-03 2017-04-19 英特尔公司 用于具有模式切换的深度相机模式的成像架构
CN108107571A (zh) * 2013-10-30 2018-06-01 株式会社摩如富 图像处理装置及方法及非暂时性计算机可读记录介质
WO2018129692A1 (en) * 2017-01-12 2018-07-19 Intel Corporation Image refocusing

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480382B2 (en) 2003-09-30 2009-01-20 Microsoft Corporation Image file container
JP5096048B2 (ja) 2007-06-15 2012-12-12 富士フイルム株式会社 撮像装置、立体画像再生装置及び立体画像再生プログラム
US20090066693A1 (en) 2007-09-06 2009-03-12 Roc Carson Encoding A Depth Map Into An Image Using Analysis Of Two Consecutive Captured Frames
US8154647B2 (en) * 2008-03-05 2012-04-10 Applied Minds, Llc Automated extended depth of field imaging apparatus and method
WO2010077625A1 (en) 2008-12-08 2010-07-08 Refocus Imaging, Inc. Light field data acquisition devices, and methods of using and manufacturing same
JP2011077764A (ja) * 2009-09-30 2011-04-14 Fujifilm Corp 多次元画像処理装置、多次元画像撮影システム、多次元画像印刷物および多次元画像処理方法
JP5299214B2 (ja) 2009-10-20 2013-09-25 ソニー株式会社 画像処理装置、および画像処理方法、並びにプログラム
US8949913B1 (en) 2010-09-16 2015-02-03 Pixia Corp. Method of making a video stream from a plurality of viewports within large format imagery
JP6032879B2 (ja) 2011-10-03 2016-11-30 キヤノン株式会社 撮影情報出力装置及びそれを有するレンズ装置
EP2817955B1 (en) 2012-02-21 2018-04-11 FotoNation Cayman Limited Systems and methods for the manipulation of captured light field image data
RU2012138174A (ru) * 2012-09-06 2014-03-27 Сисвел Текнолоджи С.Р.Л. Способ компоновки формата цифрового стереоскопического видеопотока 3dz tile format
US20140092281A1 (en) 2012-09-28 2014-04-03 Pelican Imaging Corporation Generating Images from Light Fields Utilizing Virtual Viewpoints
US9275078B2 (en) 2013-09-05 2016-03-01 Ebay Inc. Estimating depth from a single image
JP6476658B2 (ja) 2013-09-11 2019-03-06 ソニー株式会社 画像処理装置および方法
JP2015075675A (ja) * 2013-10-10 2015-04-20 キヤノン株式会社 撮像装置
KR102082132B1 (ko) 2014-01-28 2020-02-28 한국전자통신연구원 2d 동영상으로부터 새로운 3d 입체 동영상 제작을 위한 장치 및 방법
US9934252B2 (en) 2014-03-10 2018-04-03 Microsoft Technology Licensing, Llc Metadata-based photo and/or video animation
US9922680B2 (en) 2015-02-10 2018-03-20 Nokia Technologies Oy Method, an apparatus and a computer program product for processing image sequence tracks
CN105163042B (zh) 2015-08-03 2017-11-03 努比亚技术有限公司 一种虚化处理深度图像的装置和方法
US10554956B2 (en) * 2015-10-29 2020-02-04 Dell Products, Lp Depth masks for image segmentation for depth-based computational photography
US20170213383A1 (en) 2016-01-27 2017-07-27 Microsoft Technology Licensing, Llc Displaying Geographic Data on an Image Taken at an Oblique Angle
US11189065B2 (en) 2017-04-17 2021-11-30 Intel Corporation Editor for images with depth data
US10373362B2 (en) * 2017-07-06 2019-08-06 Humaneyes Technologies Ltd. Systems and methods for adaptive stitching of digital images
JP7105062B2 (ja) * 2017-12-21 2022-07-22 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置、コンテンツ処理装置、コンテンツ処理システム、および画像処理方法
US10643375B2 (en) * 2018-02-26 2020-05-05 Qualcomm Incorporated Dynamic lighting for objects in images
WO2019173672A1 (en) * 2018-03-08 2019-09-12 Simile Inc. Methods and systems for producing content in multiple reality environments
US11741675B2 (en) * 2020-03-10 2023-08-29 Niantic, Inc. Determining traversable space from single images

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102257827A (zh) * 2008-12-19 2011-11-23 皇家飞利浦电子股份有限公司 从图像创建深度图
CN103329548A (zh) * 2010-12-27 2013-09-25 3D媒体公司 用于图像处理的主、辅图像捕获设备及其相关方法
CN104081414A (zh) * 2011-09-28 2014-10-01 派力肯影像公司 用于编码和解码光场图像文件的系统及方法
CN105052124A (zh) * 2013-02-21 2015-11-11 日本电气株式会社 图像处理设备、图像处理方法、以及非瞬时计算机可读介质
CN105165008A (zh) * 2013-05-10 2015-12-16 皇家飞利浦有限公司 对与多视图再现设备一起使用的视频数据信号进行编码的方法
US20150039621A1 (en) * 2013-08-05 2015-02-05 Nvidia Corporation Method for capturing the moment of the photo capture
US20160205341A1 (en) * 2013-08-20 2016-07-14 Smarter Tv Ltd. System and method for real-time processing of ultra-high resolution digital video
CN105519105A (zh) * 2013-09-11 2016-04-20 索尼公司 图像处理设备及方法
CN108107571A (zh) * 2013-10-30 2018-06-01 株式会社摩如富 图像处理装置及方法及非暂时性计算机可读记录介质
CN106233329A (zh) * 2014-04-24 2016-12-14 高通股份有限公司 3d拉东图像的产生和使用
CN106464860A (zh) * 2014-07-10 2017-02-22 英特尔公司 深度信息在数字图像文件中的存储
CN106576160A (zh) * 2014-09-03 2017-04-19 英特尔公司 用于具有模式切换的深度相机模式的成像架构
WO2018129692A1 (en) * 2017-01-12 2018-07-19 Intel Corporation Image refocusing

Also Published As

Publication number Publication date
JP2022526053A (ja) 2022-05-23
US20240214542A1 (en) 2024-06-27
CN117221512A (zh) 2023-12-12
KR102647336B1 (ko) 2024-03-14
KR20220150410A (ko) 2022-11-10
US20220132095A1 (en) 2022-04-28
JP2023085325A (ja) 2023-06-20
JP7247327B2 (ja) 2023-03-28
KR20210041057A (ko) 2021-04-14
EP3744088A1 (en) 2020-12-02
KR102461919B1 (ko) 2022-11-01
CN112868224B (zh) 2023-08-29
US11949848B2 (en) 2024-04-02
WO2020205003A1 (en) 2020-10-08

Similar Documents

Publication Publication Date Title
CN112868224B (zh) 捕获和编辑动态深度图像的方法、装置和存储介质
EP3791357B1 (en) Generating and displaying blur in images
EP3815042B1 (en) Image display with selective depiction of motion
CN112740709A (zh) 用于视频分析的门控模型
US20220053195A1 (en) Learning-based image compression setting
JP7257591B2 (ja) パーソナライズされた自動ビデオクロッピング
US11335057B2 (en) Video lighting using depth and virtual lights
JP2024514728A (ja) 機械学習を用いた選択的な画像ぼやけ

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