CN111316123B - 单视图深度预测的光圈监督 - Google Patents

单视图深度预测的光圈监督 Download PDF

Info

Publication number
CN111316123B
CN111316123B CN201780096474.2A CN201780096474A CN111316123B CN 111316123 B CN111316123 B CN 111316123B CN 201780096474 A CN201780096474 A CN 201780096474A CN 111316123 B CN111316123 B CN 111316123B
Authority
CN
China
Prior art keywords
image
depth
images
scene
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780096474.2A
Other languages
English (en)
Other versions
CN111316123A (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
Publication of CN111316123A publication Critical patent/CN111316123A/zh
Application granted granted Critical
Publication of CN111316123B publication Critical patent/CN111316123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S11/00Systems for determining distance or velocity not using reflection or reradiation
    • G01S11/12Systems for determining distance or velocity not using reflection or reradiation using electromagnetic waves other than radio waves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • G06T5/60
    • G06T5/70
    • 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
    • G06T7/557Depth or shape recovery from multiple images from light fields, e.g. from plenoptic cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • 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/10016Video; Image sequence
    • 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/10024Color image
    • 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/10052Images from lightfield camera
    • 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]

Abstract

示例实施例允许对人工神经网络(ANN)的训练以基于图像来生成深度图。ANN基于多个图像的集合来被训练,其中,每个图像的集合表示单个场景,并且这样的图像的集合中的图像关于图像光圈和/或焦距不同。未训练的ANN基于图像的集合中的一个或多个图像来生成深度图。该深度图用于使用集合中的图像来生成关于图像光圈和/或焦距与集合中的图像中的一个相对应的预测图像。预测图像和对应图像之间的差异被用于更新ANN。以这种方式训练的ANN尤其适用于生成深度图,该深度图用于对小光圈图像执行模拟图像模糊。

Description

单视图深度预测的光圈监督
背景技术
存在多种方法来确定图像的深度图。这样的深度图可以描述图像内的对象和/或区域的深度,例如,这些对象与用于捕获或生成图像的相机的距离。在一些示例中,距离传感器(例如,雷达、激光雷达、超声测距系统)可以用于提供用于确定深度图的信息。在其他示例中,可以使用多个相关图像(例如,立体图像对的左图像和右图像)来确定深度图。
发明内容
可以经由各种方法从单个图像中确定深度图。这可以包括例如基于图像内存在的视觉提示,将单个图像应用于人工神经网络(ANN)或其他算法以生成深度图。然后可以使用深度图来促进各种应用,例如导航,对源图像应用基于距离的模糊或其他滤波或其他应用。
可以根据各种过程来开发用于从单个图像生成深度图的ANN(或其他算法)。本公开提供了用于基于自然场景的图像的集合来训练ANN的方法。每个图像的集合包括以相应不同的光圈和/或焦距拍摄的共同场景的两个或更多个图像。将共同场景的源图像(例如,全部聚焦图像或具有大景深的一些其他图像)应用于ANN以生成预测深度图。然后,预测深度图被用于基于源图像,生成预测图像,该预测图像关于焦距、光圈或一些其他光学属性与来自共同场景的图像的集合中的另一图像(例如目标图像)相对应。然后可以使用预测图像和目标图像之间的差异来训练ANN(例如,通过使用差异作为误差信号以通过反向传播来更新ANN)。
这种更新过程可以基于多个图像的集合被执行多次,以生成ANN。然后可以使用这种训练的ANN(例如,通过手机的处理器)来从自然场景的单个图像(例如,室内或室外环境中的人、动物、植物或其他对象的图像)中确定深度图。ANN的输出可以是稀疏的,或者以其他方式具有比目标分辨率(例如,与输入图像的分辨率匹配的分辨率)低的分辨率。在这种示例中,可以对ANN的输出进行上采样以提供更高分辨率的深度图。这种上采样可以包括使用插值、双边方法或一些其他方法来生成更高分辨率的深度图。使用双边方法对深度图进行上采样可以包括生成与较低分辨率的深度图中表示的深度相对应的较高分辨率的深度图,使得较高分辨率的深度图可以显现与输入图像内的对象边缘或其他特征相对应的锐利边缘或其他锐利特征。
生成预测图像可以包括应用光圈渲染函数以通过模拟更宽的光圈、不同的焦距或源图像上的一些其他改变的影响来生成预测图像。例如,光圈渲染函数可以操作以使源图像弯曲以确定对产生源图像的光场的估计,然后剪切和投影估计的光场以生成预测图像。光圈渲染函数可能是可微分的,以促进反向传播或其他ANN训练技术。
在一些实施例中,可以在特定场景的单个图像的集合上训练ANN,以为生成该场景的图像中的一个(或多个)的深度图。例如,根据本公开的方法,可以使用具有相应不同焦距的场景的浅景深图像的集合来训练深度预测ANN(例如,自动编码器网络)和场景(例如,图像的集合中的一个)的深度图两者。
本文公开的方法允许图像的训练集合用于训练深度预测的人工神经网络,而不需要关于训练集合中的图像内的深度的“地面真值(ground truth)”的信息。此外,可以获得图像而无需复杂的多透视角设置(例如,使用立体图像对进行训练)。替代地,例如,通过以不同焦距和/或光圈设置拍摄多个图像,或者通过使用光场相机来捕获关于从场景接收的光场的信息,可以使用单个图像捕获设备从单个视点观察场景来获得用于这种训练集合的图像。因此,该方法解决了与用于训练深度预测的人工神经网络的需要复杂的多透视角设置和/或昂贵的、低分辨率深度感测设置的现有技术相关联的问题。训练的深度预测神经网络可用于从单个图像中生成深度信息。
在第一方面,一种方法包括:(i)获得多个图像,其中,多个图像中的至少两个图像的集合描述共同场景,其中,至少两个图像的集合包括具有第一景深的源图像和具有第二景深的目标图像,其中第二景深小于第一景深;(ii)使用人工神经网络基于源图像来确定共同场景的深度图;(iii)基于共同场景的所确定的深度图,确定基于源图像的预测图像,使得预测图像具有与第二景深相对应的景深;(iv)确定预测图像和目标图像之间的差异;(v)基于所确定的差异来更新人工神经网络;(vi)获得兴趣场景的图像;以及(vii)使用所更新的人工神经网络以基于兴趣场景的图像来生成兴趣场景的深度图。
以上方面可以包括以下可选特征中的一个或多个。基于第一深度图来确定基于源图像的预测图像的步骤可以包括使用可微分光圈渲染函数。使用可微分光圈渲染函数确定预测图像的步骤可以包括:基于源图像来确定估计的光场;以及基于第一深度图,对估计的光场进行剪切和投影以确定预测图像。使用人工神经网络基于源图像来确定共同场景的深度图的步骤可以包括:使用人工神经网络基于源图像来确定深度值的集合,其中深度值的集合中的每个深度值对应于源图像内的相应位置;以及,对深度值的集合进行上采样以生成共同场景的深度图。对深度值的集合进行上采样以生成共同场景的深度图的步骤可以包括:使用双边方法以基于源图像对深度值的集合进行上采样。目标图像可以是第一目标图像。预测图像可以是第一预测图像。所确定的差异可以是第一确定的差异。至少两个图像的集合可以进一步包括具有第三景深的第二目标图像,其中,第三景深不同于第二景深并且小于第一景深,并且该方法还可以包括:基于共同场景的所确定的深度图,确定基于源图像的第二预测图像,使得第二预测图像具有与第三景深相对应的景深。以及确定第二预测图像和第二目标图像之间的第二差异,其中,更新人工神经网络包括基于第二差异来更新神经网络。获得描述共同场景的至少两个图像的集合的步骤可以包括:使用光场相机捕获来自共同场景的光场;基于所捕获的光场来生成源图像,使得源图像具有第一景深;以及基于所捕获的光场来生成目标图像,使得目标图像具有第二景深。获得描述共同场景的至少两个图像的集合的步骤可以包括:使用被设置为第一光圈设置的相机捕获源图像;以及使用被设置为第二光圈设置的相机捕获目标图像,其中,第二光圈设置比第一光圈设置宽。获得兴趣场景的图像的步骤可以包括:操作蜂窝电话以捕获兴趣场景的图像,并且该方法可以还包括:从服务器向蜂窝电话传输对所更新的人工神经网络的指示,其中,使用所更新的人工神经网络以基于兴趣场景的图像来生成兴趣场景的深度图包括:蜂窝电话的处理器使用所更新的人工神经网络来生成兴趣场景的深度图。该方法还可以包括基于兴趣场景的所确定的深度图,对兴趣场景的图像执行图像处理。人工神经网络可以是卷积神经网络。
在另一方面,一种方法包括:(i)由系统获得多个图像,其中,多个图像中的至少两个图像的集合描述共同场景,其中,至少两个图像的集合包括具有第一景深的源图像和具有第二景深的目标图像,其中第二景深小于第一景深;(ii)由系统使用人工神经网络确定基于源图像的共同场景的深度图;(iii)由系统基于共同场景的所确定的深度图来确定基于源图像的预测图像,使得预测图像具有与第二景深相对应的景深;(iv)由系统确定预测图像和目标图像之间的差异;(v)由系统基于所确定的差异来更新人工神经网络;(vi)从系统向远程设备传输对所更新的人工神经网络的指示。
在又一方面,一种方法包括:(i)获得场景的多个图像,其中,每个图像具有浅景深并且关于焦距不同;(ii)使用人工神经网络基于多个图像来确定场景的深度图;(iii)基于多个图像和场景的所确定的深度图,确定场景的预测的大景深图像;(iv)基于共同场景的所确定的深度图,确定基于源图像的预测图像,使得该预测图像具有与多个图像中的特定图像相对应的焦距;(v)确定预测图像和特定图像之间的差异;(vi)基于所确定的差异来更新人工神经网络;以及(vii)使用所更新的人工神经网络以基于多个图像来确定场景的更新的深度图。
人工神经网络可以是自动编码器卷积神经网络。基于共同场景的所确定的深度图,确定基于预测的大景深图像的预测的浅景深图像使得预测的浅景深图像具有与多个图像中的特定图像相对应的焦距的步骤可以包括使用可微分光圈渲染函数。获得场景的多个图像的步骤可以包括:操作相机以使用相应不同的焦距设置来捕获场景的多个图像中的每个图像。
通过在适当的情况下参考附图阅读以下详细描述,这些以及其他方面、优点和替代方案对于本领域普通技术人员将变得显而易见。此外,应当理解,在本发明内容部分和本文其他地方提供的描述旨在通过示例而非限制的方式说明所要求保护的主题。
附图说明
图1描绘了由设备捕获的示例场景的内容。
图2A是由图1的设备的相机捕获的图1所描绘的场景的示例图像。
图2B是由图1的设备的相机捕获的图1所描绘的场景的示例图像。
图2C是由图1的设备的相机捕获的图1所描绘的场景的示例图像。
图3从图1的设备的透视角描绘了图1所描绘的场景的示例深度图。
图4示出了示例方法。
图5示出了示例方法。
图6是示出示例计算系统的组件的简化框图。
图7是方法的流程图。
图8是方法的流程图。
图9是方法的流程图。
具体实施方式
本文描述了方法和系统的示例。应当理解,词语“示例性”、“示例”和“说明性”在本文中用于意指“用作示例、实例或说明”。本文中被描述为“示例性”、“示例”或“说明性”的任何实施例或特征不必被解释为比其他实施例或特征优选或有利。此外,本文描述的示例性实施例并不意指限制性。容易理解的是,所公开的系统和方法的某些方面可以以多种不同的配置来布置和组合。
I.示例图像和应用
通常,成像可以意指以数字、化学或其他格式(例如,以照片和/或运动视频)捕获和存储真实世界环境或场景的颜色和亮度特性。存在各种各样的图像捕获设备(例如,CCD、光电检测器阵列、有源像素传感器)以促进以多种不同格式(例如,彩色成像、黑白成像)捕获图像。
在各种应用中确定图像中存在的对象的深度可能是有利的。这样的深度图可以包括图像内的每个位置——例如针对图像的每个像素——的深度值。此类深度图的深度值可能与图像中描绘的对象相对彼此的位置、此类对象与用于生成图像的相机或其他传感设备之间的距离或图像内表示的对象或位置的其他一些与深度相关的参数相关。例如,图像可以描绘室外场景,并且为图像确定的深度图可以描述场景中对象和/或位置与用于捕获图像的相机之间的距离。然后,可以使用这样的深度图来确定场景内对象的形状和位置(例如,映射场景中存在的对象和位置、在场景中导航机器人或其他设备),以执行深度感知图像处理或图像上的某些其他图像处理(例如,使场景内某些深度处的对象模糊化以模拟较浅的景深图像)或促进其他一些应用。
图1示出了包含近对象103和远对象105的场景100。图1附加示出了设备110,该设备110靠近近对象103设置并被配置为生成场景100的可见光图像以及其他功能。生成场景100的可见光图像可以包括生成场景的一个或多个光场图像、场景的一个或多个浅景深图像(例如,在不同的焦距下)、场景的一个或多个深景深图像(例如,使用小光圈设置)或生成有关场景100的一些其他图像相关信息。
作为示例而非限制,设备110可以是蜂窝移动电话(例如,智能电话)、静态相机、摄像机、计算机(例如台式机、笔记本、平板电脑或手持计算机)、个人数字助理(PDA)、家庭自动化组件、数字录像机(DVR)、数字电视、遥控器、可穿戴计算设备或配备有至少一个相机的某些其他类型的设备。应当理解,设备110可以表示离散的物理设备,诸如数字相机、相机应用在其上以软件操作的特定物理硬件平台或者被配置为执行相机功能的硬件和软件的其他组合。
设备110包括图像捕获元件115,其可以被操作以生成可见光图像。图像捕获元件115可以包括光场相机或被配置为生成光场图像或关于从图像捕获元件115所暴露的场景100接收的光场的其他信息的其他组件。这样的光场相机可以包括多个光圈、透镜或被配置为促进基于在图像捕获元件115的相应多个位置处接收到的光来生成图像信息的其他光学元件。附加地可替代地,图像捕获元件115可以包括一个或多个相机。这样的相机可以包括一个或多个致动器,其被配置为调整光学元件(例如,可控制的光圈、一个或多个透镜),以便调整图像捕获元件115的图像获取的光圈设置、焦距、焦深或一些其他性质。这样的相机可以被操作以生成场景100的关于景深不同的多个图像(例如,通过调整相机的光圈设置),以在相应不同的焦距处生成场景100的多个浅景深的图像和/或生成场景100的大景深图像。附加地或替代地,这样的相机可以包括被配置为生成场景100的大景深图像的小的、静态光圈(例如,相机可以是针孔相机)。
图2A示出了场景100的示例大景深图像250a,其包括近对象图像253a和远对象图像255a。具有大景深的示例大景深图像250a导致基本上图像中描绘的所有对象(例如253a、255a)基本上都聚焦,而与距图像捕获元件115的距离无关。这样的大景深图像250a可以由具有小光圈的相机(例如针孔相机)或以其他方式被配置为生成图像使得从与设备距离不同的对象接收的光被聚焦成像的图像捕获设备生成。附加地或替代地,光场相机可以用于生成场景100的光场图像,并且光场图像可以被处理(例如,通过剪切和投影光场图像)以生成场景100的大景深图像。
图2B示出了场景100的第一示例浅景深图像250b,其包括近对象图像253b和远对象图像255b。具有浅景深的图像(例如250b)导致图像中描绘的某些对象基本聚焦,而图像中描绘的其他对象则基本上模糊和/或失焦,这取决于这种对象与用于生成图像的成像设备(例如,图像捕获元件115)的距离。第一浅景深图像250b的焦距对应于使得近对象图像253b处于聚焦的近对象103与图像捕获元件115之间的距离。距图像捕获元件115较远的远对象105导致远对象图像255b失焦。
图2C示出了场景100的第二示例浅景深图像250c,其包括近对象图像253c和远对象图像255c。第二浅景深图像250c具有焦距,该焦距大于第一示例浅景深图像250d的焦距。第二浅景深图像250c的焦距对应于使得远对象图像255c处于聚焦的远对象105和图像捕获元件115之间的距离。与图像捕获元件115较近的近对象103导致近对象图像253c失焦。
可以为场景100确定深度图。这种深度图可以包括多个深度值,这些深度值表示场景100内的各种对象和/或位置的深度。这种深度值可以表示图像捕获设备115和场景内的对象/位置之间的距离。附加地或替代地,深度可以表示场景100内的对象或位置的相对距离(例如,相对于场景内的对象/位置之间的距离,而不是相对于这种对象/位置与图像捕获设备115之间的绝对距离)。这种深度图可以包括与示例图像250a、250b、250c之一内的相应位置相对应的深度值的集合。例如,深度图可以包括与示例图像250a、250b、250c之一中的每个像素相对应的深度值。
图3示出了示例深度图300,该示例深度图300可以对应于和/或从示例图像250a、250b、250b中的一个或多个中生成。示例深度图300可以对应于图像捕获设备115与场景100中的对象/位置之间的绝对距离。示例深度图300的特定像素或区域的灰度颜色对应于图像捕获设备115与在对应于示例深度图300的特定像素或区域的示例图像的像素或区域处的示例图像250a、250b、250c之一中描绘的对象/位置之间的距离。
这种深度图(例如,300)可以以多种方式针对场景来被生成。在一些示例中,可以使用距离传感器来生成深度图。这可以包括向场景中发射光图案、声音或其他能量,响应地检测从场景中的对象/位置接收到的光、声音或其他能量,以及使用接收到的能量的某个属性(例如飞行时间、相位、接收角度)来确定场景中对象/位置的深度。附加地或替代地,可以从相应不同的透视角生成场景的多个图像,并且可以基于不同透视角的相对位置和角度来使用所生成的图像来生成深度图。例如,可以使用两个相机来生成场景的立体图像对,并且可以使用立体方法基于立体图像对来确定深度图。在又一示例中,从同一透视角对场景(例如100)拍摄的一个或多个图像(例如250a、250b、250c)可以用作信息源以确定该场景的深度图。这可能包括使用人工神经网络或一些其他算法来确定图像中的一个或多个内的对象的深度值。例如,基于图像的训练集合和/或其‘地面真值’深度图,可以训练人工神经网络以生成深度图,然后可以将这种训练后的人工神经网络应用于确定其他图像的深度图。附加地或替代地,可以使用其他方法来确定场景的深度图。
II.示例基于图像的深度图预测
基于场景的一个或多个图像,可以以各种方式来确定深度图。在一些示例中,可以采用模式映射、三角测量、立体图像处理的方法和/或其他方法来基于与场景上的相应不同透视角相对应的场景的多个图像来确定深度图。还可以基于场景的单个图像来确定场景的深度图。这可以通过确定标识、图像内的相对位置/顺序或关于图像内容的其他信息(例如,关于图像中描绘的对象)来实现。可以应用各种机器学习技术或其他算法来识别图像中描绘的对象或其他内容,以确定图像内这种对象的范围,以确定图像内这种内容的顺序和/或重叠或以确定有关图像中描绘的对象或其他内容的一些其他信息,和/或以确定这种图像的深度图。
在一些示例中,可以将人工神经网络(ANN)应用于基于图像来确定深度图或其他深度信息。这种ANN可以包括两个或更多个层,可以包括线性、对数或以其他方式指定的输出函数,可以包括完全连接或以其他方式连接的神经元,可以包括不同层中神经元之间的递归和/或前馈连接,可以包括滤波器或其他元件来处理输入信息和/或在层之间传递的信息,或者可以以一些其他方式配置以促进基于输入图像来确定深度和/或深度图。
用于基于输入图像来生成深度图的ANN可以包括一个或多个可以应用于输入图像的滤波器,然后可以将这些滤波器的输出应用于ANN的一个或多个神经元的输入。例如,这种ANN可以是或可以包括卷积神经网络(CNN)。卷积神经网络是被配置为基于图像或其他大维度输入促进基于ANN的分类或其他处理的各种各样的ANN,所述其他大维度输入的元素被组织在可能与输入结构中的一些结构相关的两个或更多个维度内(例如,因为图像的二维空间内的相对位置可能与图像像素之间的相似性有关)。
在本文的实施例中,CNN包括至少一个应用于输入图像的二维滤波器;然后将滤波后的输入图像应用于CNN(例如CNN的卷积层的)神经元。对这种滤波器和输入图像的卷积可以表示关于存在于输入图像中的特征的存在、位置或其他信息(例如,输入图像中的边缘、面部或其他特征的存在和/或位置)。CNN的神经元的集合可以接收相应的输入,这些输入通过将相同的滤波器应用于输入图像来确定。附加地或可替代地,CNN的神经元的集合可以与相应的不同滤波器相关联,并且可以接收通过将相应的滤波器应用于输入图像而确定的相应的输入。在CNN训练期间,这种滤波器可以被训练,也可以被预先指定。例如,这种滤波器可以表示小波滤波器、中心环绕滤波器、受生物启发的滤波器核(例如,来自对动物视觉处理感受野的研究)或某些其他预先指定的滤波器模式。
CNN或其他各种ANN可以包括多个卷积层(例如,对应于相应不同的滤波器和/或特征)、池化层、校正层、完全连接的层或其他类型的层。CNN的卷积层表示输入图像或(例如,输入图像的滤波的、下采样或以其他方式处理的版本的)某些其他输入与滤波器的卷积。CNN的池化层将非线性下采样应用于CNN的较高层,例如通过将最大值、平均值、L2范数或其他池化函数应用于CNN的较高层的神经元、输出或其他特征的子集。CNN的校正层将校正非线性函数(例如,非饱和激活函数、sigmoid函数)应用于较高层的输出。CNN的完全连接层接收来自CNN的一个或多个较高层中的神经元中的一些或所有的输入。完全连接层的神经元的输出可以用于确定输入图像内的相应位置的深度值(例如,对于输入图像的每个像素)。
可以根据输入的对应维度来组织CNN中的神经元。例如,在输入是图像(二维输入)的情况下,CNN的(例如,CNN的输入层、CNN的池化层的)神经元可以对应于二维输入图像中的位置。CNN的不同层中的神经元和/或滤波器之间的连接可能与这样的位置有关。例如,CNN的卷积层中的神经元可以接收输入,该输入基于滤波器与输入图像的一部分或与CNN的一些其他层的一部分在接近卷积层神经元的位置的一个位置处的卷积。在另一示例中,CNN的池化层中的神经元可以在比池化层更高的层中(例如,在卷积层中、在更高的池化层中)从神经元接收输入,所述神经元具有接近池化层神经元的位置的位置。
ANN可以基于输入图像来生成深度值的集合,使得每个深度值对应于输入图像内的相应位置。在一些示例中,这可以包括ANN为输入图像的每个像素生成深度值(即,与输入图像内的像素的位置中的每个相对应的深度值)。在一些示例中,从ANN输出的深度值的集合可以被上采样以生成深度图(例如,以生成具有与输入图像的分辨率相等的分辨率的深度图)。
各种方法可用于对ANN或其他算法输出的深度值进行上采样,以生成输入图像的深度图。在一些示例中,可以相对于输入图像以边缘感知的方式执行上采样。例如,可以使用双边方法以基于输入图像来对多个深度值进行上采样,使得输出深度图在与存在于输入图像中的边缘或其他锐利特征相对应的位置处显现例如边缘或其他锐利特征。这样的双边方法可以生成这种深度图的深度值,使得减少了双边代价函数。双边代价函数可以包括与输出深度图和输入深度值之间的相似性有关的一个或多个项以及与输出深度图的平滑度有关的一个或多个其他项。可以确定一个或多个平滑度项,使得与输出深度图中与输入图像中的锐利特征(例如,对象的边缘或输入图像中描绘的其他边缘)相对应的锐利特征相比,代价函数被输出深度图中与输入图像中的锐利特征不对应的锐利特征更多地增加。
III.示例训练方法
用于从图像生成深度图的ANN或其他算法可以被训练以改善生成的深度图的质量。该训练可以包括基于训练图像的集合来迭代地或以其他方式更新ANN(或其他算法)。这种训练可以包括将特定训练图像应用于ANN,确定输出深度图,然后基于预测深度图和“地面真值”深度图(或其他训练数据)之间的对应程度来确定误差或损失。然后可以基于所确定的对应程度来更新ANN(例如,经由反向传播)。
在实践中,可能难以访问这种“地面真值”深度信息。可以使用距离传感器(例如,激光测距仪、激光雷达、超声距离传感器)来直接生成这种信息,但是这种传感器可能昂贵且难以操作,并且这种传感器生成的深度信息可能是低分辨率的、有噪声的或以其他方式低质量的。可以通过从相应不同的透视角(例如,使用立体相机)并使用立体算法或其他方法通过捕获场景的多个图像来生成深度信息,以基于场景图像之间的散度或其他对应来生成深度图。然而,这种多透视角设置可能是昂贵的并且难以操作,并且可能导致显现某些误差(例如,相对于场景的图像内存在的水平和垂直深度线索而言不对称的误差)的深度图的生成。
本文描述的方法可以通过基于从单个透视角捕获的图像信息来促进对ANN的训练来改善上述缺点。从特定透视角捕获的图像信息包括或允许场景的多个不同图像的生成,所述图像关于光圈、焦深、焦距或一些其他与深度有关的图像属性不同。然后,未训练的ANN用于基于不同图像中的至少一个来生成深度图。该预测深度图用于基于至少一个图像来生成模拟图像。关于光圈、焦深、焦距和/或一些其他与深度有关的图像属性,模拟图像对应于场景的“真实”图像之一。然后,将模拟图像与“真实”图像之间的对应程度用于更新ANN。
这种方法适合于确定深度图,该深度图用于将深度相关的模糊应用于图像(例如,从例如由蜂窝电话的相机生成的大焦深图像中生成类似“肖像”的图像)。这是因为该训练方法可以使用模拟“模糊”图像和关于光圈与模拟“模糊”图像相对应的图像之间的差异。光圈是一种图像属性,其可以与并非“全部聚焦”的图像的“模糊性”相关。因此,在这种训练的ANN基于场景的输入图像来生成不准确的深度图的示例中,当深度图用于将深度相关的模糊应用于输入图像时,所生成的深度图中的不准确性可能导致输入图像的模糊版本,其更准确地模拟与深度相关的图像模糊。
如本文所述,可以针对多个不同场景和/或其透视角获取图像的集合或其他图像信息,以便生成用于训练ANN的多个图像。可以以多种方式获取用于训练ANN的图像的集合或其他图像信息。在一些示例中,可以从单个透视角操作一个或多个相机或其他图像捕获设备以生成场景的图像的集合。该序列的图像可以关于光圈设置、焦深、焦距和/或一些其他图像特性而变化。例如,单个相机可以(例如,通过操作致动器或其他装置来控制相机的光学元件的焦距)在相应不同的焦距下拍摄场景的多个不同图像。附加地或替代地,可以使用光场相机为场景生成光场。然后,光场可以用于例如以相应不同的光圈设置生成场景的不同图像的集合。这可以包括将光场剪切和切片以生成一个或多个图像。可以以其他方式获取场景的图像的集合,以便促进对ANN的训练。
在一些示例中,用于训练ANN的图像的集合可能关于景深和/或光圈设置不同。这种图像的集合可以包括具有第一景深的第一图像(例如,全部聚焦或以其他方式显现出大景深的图像)和具有比第一景深小的第二景深(例如,浅景深图像)的第二图像。如上所述,可以通过根据不同的设置(例如,不同的光圈设置)操作一个或多个相机,通过从单个光场图像生成图像或通过某一其他方法来获取这种图像。可以将ANN应用于第一图像(例如,全部聚焦和/或具有较大景深的图像)以生成深度图。所生成的深度图可以用于使第一图像畸变,创建具有与第二图像的景深相对应的模拟景深的预测图像。然后,可以使用第二图像和预测图像之间的差异来更新ANN。使用第一图像和第二图像和/或使用附加的图像的集合,这种过程可以发生多次以训练ANN。然后可以将训练的ANN用于确定附加图像(例如,使用蜂窝电话捕获的图像)的深度图。
图4示出了图示这种ANN训练方法的元素的示例流程图。多个图像(“TRAININGIMAGE SET”)包括描绘共同场景的源图像(“SOURCE IMAGE”)和目标图像(“TARGET IMAGE”)(例如,源图像和目标图像从相同的透视角描绘公园的特定位置)。源图像具有第一景深,使得源图像是全部聚焦的。目标图像具有小于第一景深的第二景深,使得第二图像具有浅景深。
ANN(“ARTIFICIAL NEURAL NETWORK”)用于基于源图像来为源图像和目标图像中描绘的场景确定深度图(“DEPTH MAP”)。可以以多种方式(例如,如上所述)来配置ANN,以基于输入图像来提供深度图。例如,ANN可以是卷积神经网络。然后,基于深度图,使用光圈渲染函数(“APERTURE RENDERING FUNCTION”)以使源图像畸变,以生成预测图像(“PREDICTEDIMAGE”),使得预测图像具有对应于第二景深(即,目标图像的景深)的景深。因此,如果ANN输出的深度图准确地表示了源图像和目标图像中描绘的对象的深度,则预测图像应对应于目标图像。
可以确定预测图像和目标图像之间的差异(“ERROR SIGNAL”)并用于更新ANN。这样的确定的差异可以包括通过例如将预测图像和目标图像之间的对应像素的值相减来确定的差异图像。更新ANN可以包括将损失函数应用于确定的预测图像和目标图像之间的差异,执行反向传播,确定关于ANN系数的差异的梯度或根据其他方法基于确定的差异来更新ANN。
光圈渲染函数可以包括多种方法或变换,以便基于与输入图像相对应的深度图,将场景的输入图像畸变为预测图像。光圈渲染函数执行这种畸变,使得预测图像对应于可能已经以特定光圈设置、焦距、焦深或与输入图像中描绘的对象深度或位置有关的其他特定图像属性拍摄的场景的图像。例如,光圈渲染函数可以基于全部聚焦输入图像和深度图来生成预测光场。然后,光圈渲染函数可以对确定的光场进行切片和剪切,以生成预测图像。在一些示例中,光圈渲染函数关于深度图可以是可微分的(例如,可以包括执行一个或多个可微分变换或其他处理),使得可以使用反向传播来更新ANN(例如,通过将在预测图像和目标图像之间的确定的差异反向传播通过可微分光圈渲染函数)。
上面描述的用于更新ANN的过程(例如,结合图4)可以执行多次以训练ANN。例如,可以迭代执行过程直到ANN收敛为止(例如,直到每次迭代中ANN系数的变化程度减小到指定的绝对或相对水平以下为止),直到在每次迭代中确定的误差信号的幅度(例如,平方误差之和、校正误差之和)的测量减小到指定的绝对或相对水平以下达到指定的迭代数目为止,或根据其他条件。
此外,特定场景的多于两个图像可以用于生成信息以训练ANN。例如,特定场景的训练图像的集合(例如,如图4中)可以包括多个目标图像,这些目标图像具有浅景深并且具有相应不同的光圈设置(或关于例如焦距的某一其他图像属性不同)。在这种示例中,可以使用光圈渲染函数基于预测深度图来使源图像多次畸变以生成多个预测图像。每个预测图像可以关于光圈设置或一些其他图像特性对应于多个目标图像中的对应一个。然后可以在每个成对的目标图像和预测图像之间确定差异,并将该差异用于更新ANN。
此外,结合图4所描述的实施例旨在作为说明性示例实施例,而并非旨在限制。例如,用于训练ANN的多个图像可以包括与相应不同场景相对应的多个图像的集合。每个这种图像的集合可以包括可以用于执行本文所述的ANN训练方法的一个或多个元素的一个或多个全部聚焦图像、浅景深图像或共同场景的其他图像。在这种示例中,每个图像的集合可以提供一个(或多个)差异图像或可以被用于(例如,结合从其他图像的集合确定的这种信息)更新ANN的其他误差信息。
在一些示例中,用于训练ANN的场景的图像的集合可以包括关于焦距不同的多个浅景深图像。如上所述,可以通过根据不同的设置(例如,不同的焦距设置)操作一个或多个相机,通过从单个光场图像生成图像或通过某一其他方法来获取这样的图像。可以将ANN应用于图像中的一个或多个以生成深度图。所生成的深度图可用于基于场景的图像的集合来预测场景的大景深图像(例如,全部聚焦图像)。然后,深度图可用于使预测的大景深图像畸变一次或多次,创建具有模拟的焦距、光圈设置或与场景的图像的集合中的相应图像相对应的其他图像属性的一个或多个预测的浅景深图像。第二图像的景深。然后,可以将预测的浅景深图像与训练集合中的对应图像之间的差异用于更新ANN。使用场景的图像的集合和/或使用相应的附加场景的附加图像的集合,这种过程可以发生多次以训练ANN。然后可以将训练的ANN用于确定附加图像(例如,使用蜂窝电话捕获的图像)的深度图。
图5示出了图示这种ANN训练方法的元素的示例流程图。多个图像(“TRAININGIMAGE SET”)包括描绘共同场景的第一图像(“FIRST IMAGE”)和第二图像(“SECONDIMAGE”)(例如,第一图像和第二图像从相同透视角描绘公园的特定位置)。第一图像具有浅景深和第一焦距,使得在第一焦距处或附近的场景中的元素被描绘为在第一图像中聚焦。第二图像也具有浅景深,并且具有与第一焦距不同的第二焦距,使得在第二焦距处或附近的场景中的元素被描绘为在第二图像中聚焦。
基于第一图像和第二图像中的一个或多个,ANN(“ARTIFICIAL NEURAL NETWORK”)用于针对第一图像和第二图像中描绘的场景来确定深度图(“DEPTH MAP”)。可以以多种方式(例如,如上所述)来配置ANN,以基于输入图像来提供深度图。例如,ANN可以是卷积神经网络。然后,使用渲染函数(“RENDERING FUNCTION”,例如光圈渲染函数)基于深度图和第一图像和第二图像中的一个或多个来预测场景的大景深图像(“PREDICTED LARGE DEPTH-OF-FIELD IMAGE”)。在一些示例中,渲染函数可以是或包括如本文其他地方所述的光圈渲染函数。附加地或替代地,渲染函数可以使用来自全光成像的图像重建技术或一些其他方法来从多个浅景深图像中生成全部聚焦图像。
然后,使用光圈渲染函数(“APERTURE RENDERING FUNCTION”)基于深度图来使预测的大景深图像畸变,以生成浅景深图像(“PREDICTED SHALLOW DEPTH-OF-FIELDIMAGE”),使得预测的浅景深图像具有与第二焦距(即,第二图像的焦距)对应的焦距。因此,如果由ANN输出的深度图准确地表示了第一图像和第二图像中描绘的对象的深度,则预测的浅景深图像应对应于第二图像。
预测的浅景深图像与第二图像之间的差异(“ERROR SIGNAL”)可以被确定并用于更新ANN。这样确定的差异可以包括通过例如将预测的浅景深图像和第二图像之间的对应像素的值相减而确定的差异图像。更新ANN可以包括将损失函数应用于确定的预测图像和目标图像之间的差异,执行反向传播,确定关于ANN的系数的差异的梯度或根据其他方法基于确定的差异来更新ANN。在一些示例中,ANN可以是自动编码器ANN,其中深度图表示自动编码器ANN的内部“代码”层。在这种示例中,适合于对自动编码器ANN的训练的ANN训练技术(例如,无监督训练技术)可以被应用于更新ANN。
上面描述的用于更新ANN的过程(例如,结合图5)可以执行多次以训练ANN。例如,可以迭代执行这些过程直到ANN收敛为止(例如,直到每次迭代中ANN系数的变化程度减小到指定的绝对或相对水平以下为止),直到在每次迭代中确定的误差信号的幅度(例如,平方误差之和、校正误差之和)的测量减小到指定的绝对或相对水平以下达到指定的迭代数目为止或根据其他条件。
此外,特定场景的多于两个图像可以用于生成信息以训练ANN。例如,特定场景的训练图像的集合(例如,如图5中)可以包括附加的浅景深图形,并且具有相应不同的焦距(或关于例如光圈设置的某些其他图像属性不同)。在这种示例中,可以使用光圈渲染函数基于预测深度图来使预测的大景深图像多次畸变以生成多个预测的浅景深图像。每个预测的浅景深图像可以关于焦距或一些其他图像特性对应于训练集合中的多个浅景深图像中的相应一个。然后可以在每个成对的输入浅景深图像和预测的浅景深图像之间确定差异,并将该差异用于更新ANN。
此外,结合图5所描述的实施例旨在作为说明性示例实施例,而并非旨在限制。例如,用于训练ANN的多个图像可以包括与相应不同场景相对应的多个图像的集合。每个这种图像的集合可以包括可以用于执行本文所述的ANN训练方法的一个或多个元素的一个或多个全部聚焦图像、浅景深图像或共同场景的其他图像。在这种示例中,每个图像的集合可以提供一个(或多个)差异图像或可以被用于(例如,结合从其他图像的集合确定的这种信息)更新ANN的其他误差信息。
可以根据本文所述的技术,通过服务器、云计算服务或其他计算系统来训练ANN。然后,用于训练ANN的系统可以应用训练的ANN来确定进一步图像的深度图。例如,该系统可以(例如,从蜂窝电话、数码相机或其他图像捕获系统)接收附加图像,并将训练的ANN应用于这种图像以生成这种图像的深度图。然后,系统可以例如将确定的深度图传输到提供附加图像的任何设备或系统。
附加地或替代地,服务器或其他系统可以如本文所述训练ANN,然后将对训练的ANN的指示(例如,对训练的ANN的系数、内部结构或其他细节的指示)传输给某另一系统。然后,该另一系统可以操作以将训练的ANN应用于附加图像。例如,服务器可以如本文所述训练ANN,然后将对训练的ANN的指示传输到蜂窝电话(例如,经由互联网和/或蜂窝数据网络)。然后,蜂窝电话可以操作以将训练的ANN应用于图像(例如,经由蜂窝电话的相机捕获的图像),以生成这种图像的深度图。传输对训练的ANN的指示可以包括经由有线或无线组件将信息传输到已经操作的系统(例如,到蜂窝电话、数码相机或与互联网通信的其他设备)。附加地或可替代地,将对训练的ANN的指示传输到系统可以在系统的组装和/或编程期间发生。例如,传输对训练的ANN的指示可以包括用训练的ANN对控制器或存储器(例如,闪存或一些其他非暂时性计算机可读介质)进行编程,并且随后将控制器或存储器集成到设备或其他系统中。
注意,尽管如本文所述用于训练ANN的图像可被表征为用于训练ANN以便以后应用于进一步的兴趣图像的“训练数据”或“训练图像”(例如,蜂窝电话捕获的图像),这些特性旨在作为本文所述方法的非限制性示例。可以使用兴趣场景的两个或更多个图像来训练ANN,然后基于图像之一使用ANN来生成该场景的深度图。例如,蜂窝电话或其他图像捕获系统可以操作(例如,使用蜂窝电话的相机)以捕获具有相应不同的光圈设置、焦距或一些其他图像属性的场景的多个图像。然后,蜂窝电话的处理器或与蜂窝电话通信的处理器可以使用多个图像来训练ANN。然后,可以将训练的ANN用于基于捕获的图像中的一个或多个来生成场景的深度图。
IV.说明性系统
本文描述的计算功能(例如,用于基于一个或多个图像使用ANN来生成深度图和/或基于多个图像来训练这种ANN的功能)可以由一个或多个计算系统来执行。这种计算系统可以被集成到诸如移动电话、平板计算机、膝上型计算机、服务器、云计算网络和/或可编程逻辑控制器的计算设备中或采取该计算设备的形式。为了示例的目的,图6是示出了示例计算设备600的组件中的一些的简化框图,该示例计算设备600可以包括相机组件624。相机组件624可以包括一个或多个相机,诸如可见光相机、红外相机、光场相机、全光相机或其他类型的相机。
通过示例而非限制的方式,计算设备600可以是蜂窝移动电话(例如,智能电话)、静态相机、摄像机、传真机、计算机(诸如台式机、笔记本、平板电脑、或手持计算机)、个人数字助理(PDA)、家庭自动化组件、数字视频录像机(DVR)、数字电视、遥控器、可穿戴计算设备、机器人、无人机、无人驾驶汽车或可能配备一些图像捕获和/或图像处理能力的一些其他类型的设备。应当理解,计算设备600可以表示物理相机设备,诸如数字相机、相机应用在其上以软件操作的特定物理硬件平台或者被配置为执行图像捕获和/或图像处理功能的硬件和软件的其他组合。
如图6所示,计算设备600可以包括通信接口602、用户接口604、处理器606、数据存储608和相机组件624,所有这些都可以通过系统总线、网络或其他连接机制610通信地链接在一起。
通信接口602可以用于允许计算设备600使用电、磁、电磁、光或其他信号的模拟或数字调制与其他设备、接入网络和/或传输网络进行通信。因此,通信接口602可以促进电路交换和/或分组交换通信,诸如普通旧电话服务(POTS)通信和/或互联网协议(IP)或其他分组通信。例如,通信接口602可以包括芯片组和天线,其被布置用于与无线电接入网络或接入点进行无线通信。而且,通信接口602可以采取诸如以太网、通用串行总线(USB)或高清多媒体接口(HDMI)端口的有线接口的形式或包括该有线接口。通信接口602也可以采取诸如Wifi、全球定位系统(GPS)或广域无线接口(例如,WiMAX或3GPP长期演进(LTE))的无线接口的形式或包括该无线接口。然而,可以在通信接口602上使用其他形式的物理层接口和其他类型的标准或专有通信协议。此外,通信接口602可以包括多个物理通信接口(例如,Wifi接口、/>接口和广域无线接口)。
在一些实施例中,通信接口602可以用于允许计算设备600与其他设备、远程服务器、接入网络和/或传输网络进行通信。例如,通信接口602可以用于经由与远程服务器或其他远程设备或系统的通信来访问训练的ANN,以允许计算设备600使用训练的ANN基于捕获的图像来生成深度图。例如,计算系统600可以是蜂窝电话、数码相机或其他图像捕获设备,且远程系统可以是服务器,该服务器包含包括这种训练的ANN的存储器。附加地或替代地,远程系统可以包括相机或其他图像捕获设备,其被配置为生成大景深图像、全部聚焦图像、浅景深图像、光场图像或如上所述计算设备600可以访问的并且如本文所述计算设备600可以使用来训练ANN的其他图像信息。
用户接口604可以用于以允许计算设备600与用户交互,例如以从用户接收输入和/或向用户提供输出。因此,用户接口604可以包括输入组件,诸如小键盘、键盘、触敏或存在敏感面板、计算机鼠标、轨迹球、操纵杆、麦克风等。用户接口604还可以包括一个或多个输出组件,诸如显示屏,该输出组件可以例如与存在敏感面板组合。显示屏可以基于CRT、LCD和/或LED技术,或者其他目前已知或以后开发的技术。用户接口604也可以被配置为经由扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其他类似设备来生成可听输出。
在一些实施例中,用户接口604可以包括显示器,该显示器用作计算设备600所支持的静态相机和/或摄像机功能(例如,用于使用相机组件624捕获的图像的功能)的取景器。另外,用户接口604可以包括一个或多个按钮、开关、旋钮和/或转盘,其促进相机组件624的配置和聚焦以及使用相机部件624的图像捕获。可能这些按钮、开关、旋钮和/或转盘中的一些或所有被实现为功能在触摸屏或存在敏感面板上的功能。用户接口604可被配置为允许用户发起本文所述的功能或过程,例如,使用训练的ANN以生成捕获图像的深度图,并基于确定的深度图对捕获图像执行处理(例如,以模拟浅景深图像作为“肖像模式”相机应用的一部分)。
处理器606可以包括一个或多个通用处理器——例如,微处理器——和/或一个或多个专用处理器——例如,数字信号处理器(DSP)、图形处理单元(GPU)、浮点单元(FPU)、网络处理器或专用集成电路(ASIC)。在一些情况下,除其他应用或功能外,专用处理器可以能够进行图像处理、图像对准和合并图像。数据存储608可以包括一个或多个易失性和/或非易失性存储组件,诸如磁性、光学、闪存或有机存储,并且可以全部或部分地与处理器606集成。数据存储608可以包括可移动的和/或不可移动的组件。
处理器606可以能够执行存储在数据存储608中的程序指令618(例如,已编译或未编译的程序逻辑和/或机器代码)以执行本文所述的各种功能。因此,数据存储608可以包括具有存储在其上的程序指令的非暂时性计算机可读介质,该程序指令在由计算设备600执行时使计算设备600执行本说明书和/或附图中公开的任何方法、过程或功能。处理器606对程序指令618的执行可以导致处理器606使用数据612。
通过示例,程序指令618可以包括安装在计算设备600上的操作系统622(例如,操作系统内核、设备驱动器和/或其他模块)和一个或多个应用程序620(例如,相机功能、ANN训练、基于图像的深度图生成)。数据612可包括训练图像614和/或一个或多个训练的ANN616。训练图像614可用于如本文所述的训练ANN(例如,以生成和/或更新训练的ANN 616)。训练的ANN 616可以被应用以基于输入图像(例如,使用相机组件624捕获和/或经由通信接口602访问的图像)来生成深度图。
应用程序620可以通过一个或多个应用编程接口(API)与操作系统622通信。这些API可以促进例如应用程序620读取和/或写入训练的ANN 616,经由通信接口602传输或接收信息,在用户接口604上接收和/或显示信息,使用相机组件624捕获图像等等。
应用程序620可以采取“app”的形式,其可以是可通过一个或多个在线应用商店或应用市场(例如,经由通信接口602)下载到计算设备600的。然而,应用程序也可以以其他方式安装在计算设备600上,诸如经由web浏览器或通过计算设备600的物理接口(例如,USB端口)。
相机组件624可以包括但不限于光圈、快门、记录表面(例如,摄影胶片和/或图像传感器)、透镜和/或快门。相机组件624可以至少部分地由处理器606执行的软件(例如,由应用程序620)控制。此外,相机组件624可以包括多个相机系统,每个相机系统包括相应的光圈、快门、记录表面、透镜、图像传感器、处理器和/或其他元件。
当包括多个相机系统时,可能存在一些在系统之间共享的组件,以及不共享的其他组件。例如,每个相机可以包括其自己的光圈、透镜和图像传感器,同时共享其他组件,例如处理器、数据总线和/或快门按钮。作为另一示例,每个相机可以包括其自己的透镜、但共享同一图像传感器。替代地,单独相机系统的组件只能用于该单独相机系统,而不能与其他相机系统共享。
V.示例方法
图7是用于训练ANN以确定输入图像的深度图的方法700的流程图。方法700包括获得多个图像(710)。多个图像中的至少两个图像的集合描述共同的场景,并且至少两个图像的集合包括具有第一景深的源图像和具有第二景深的目标图像。第二景深小于第一景深。方法700附加地包括使用人工神经网络基于源图像来确定共同场景的深度图(720)。方法700附加地包括基于共同场景的所确定的深度图,确定基于源图像的预测图像,使得预测的图像具有与第二景深相对应的景深(730)。方法700附加地包括确定预测图像和目标图像之间的差异(740)并且基于所确定的差异来更新人工神经网络(750)。方法700附加地包括获得兴趣场景的图像(760),并使用所更新的人工神经网络基于兴趣场景的图像来生成兴趣场景的深度图(770)。
这些实施例可以包括附加的元件或特征。在一些实施例中,基于第一深度图,确定基于源图像的预测图像可以包括使用可微分光圈渲染函数。使用可微分光圈渲染函数可以包括:基于源图像来确定估计的光场,并且基于第一深度图,剪切和投影估计的光场以确定预测的图像。
在一些实施例中,使用人工神经网络基于源图像来确定共同场景的深度图可以包括:使用人工神经网络基于源图像来确定深度值的集合,其中深度值的集合中的每个深度值对应于源图像内的相应位置;并且,对深度值的集合进行上采样以生成共同场景的深度图。对深度值的集合进行上采样以生成共同场景的深度图可以包括使用双边方法来对基于源图像的深度值的集合进行上采样。
在一些实施例中,目标图像是第一目标图像,预测图像是第一预测图像,并且所确定的差异是第一确定的差异。在这种实施例中,至少两个图像的集合还包括具有第三景深的第二目标图像,该第三景深不同于第二景深并且小于第一景深。这种实施例还包括:基于共同场景的所确定的深度图,确定基于源图像的第二预测图像,使得第二预测图像具有与第三景深相对应的景深;以及确定第二预测图像与第二目标图像之间的第二差异。在这种实施例中,更新人工神经网络包括基于第二差异来更新神经网络。
在一些实施例中,获得描述共同场景的至少两个图像的集合包括:使用光场相机捕获来自共同场景的光场;基于所捕获的光场来生成源图像,使得源图像具有第一景深;以及,基于所捕获的光场来生成目标图像,使得目标图像具有第二景深。
在一些实施例中,获得描述共同场景的至少两个图像的集合包括:使用被设置为第一光圈设置的相机来捕获源图像;以及使用被设置为第二光圈设置的相机来捕获目标图像,其中,第二光圈设置比第一光圈设置宽。
在一些实施例中,获得兴趣场景的图像包括操作蜂窝电话以捕获兴趣场景的图像。这种实施例可以进一步包括从服务器向蜂窝电话传输对所更新的人工神经网络的指示。在这种实施例中,使用所更新的人工神经网络以基于兴趣场景的图像来生成兴趣场景的深度图包括蜂窝电话的处理器使用所更新的人工神经网络来生成兴趣场景的深度图。
一些上述实施例可以进一步包括基于兴趣场景的所确定的深度图来对兴趣场景的图像执行图像处理。
在一些上述实施例中,人工神经网络是卷积神经网络。
图8是用于训练ANN以确定输入图像的深度图的方法800的流程图。方法800包括由系统获得多个图像(810)。多个图像中的至少两个图像的集合描述共同场景,并且至少两个图像的集合包括具有第一景深的源图像和具有第二景深的目标图像。第二景深小于第一景深。方法800附加地包括由系统使用人工神经网络基于源图像来确定共同场景的深度图(820)。该方法还包括:由系统基于共同场景的所确定的深度图,确定基于源图像的预测图像,使得该预测图像具有与第二景深相对应的景深(830)。方法800附加地包括:由系统确定预测图像与目标图像之间的差异(840),并且由系统基于所确定的差异来更新人工神经网络(850)。该方法附加地包括从系统向远程设备传输对所更新的人工神经网络的指示(860)。
这些实施例可以包括附加的元素或特征。在一些实施例中,基于第一深度图,确定基于源图像的预测图像包括使用可微分光圈渲染函数。使用可微分光圈渲染函数来确定预测图像可以包括基于源图像来确定估计的光场;以及基于第一深度图,对估计的光场进行剪切和投影以确定预测图像。
在一些实施例中,目标图像是第一目标图像,预测图像是第一预测图像,并且所确定的差异是第一确定的差异。在这种实施例中,至少两个图像的集合还包括具有第三景深的第二目标图像,该第三景深不同于第二景深并且小于第一景深。这种实施例可以进一步包括:基于共同场景的所确定的深度图,确定基于源图像的第二预测图像,使得第二预测图像具有与第三景深相对应的景深;以及确定第二预测图像与第二目标图像之间的第二差异。在这种实施例中,更新人工神经网络可以包括基于第二差异来更新神经网络。
在一些实施例中,人工神经网络是卷积神经网络。
图9是用于训练ANN以确定输入图像的深度图的方法900的流程图。方法900包括获得场景的多个图像(910)。每个图像具有浅景深,并且关于焦距不同。方法900附加地包括使用人工神经网络基于多个图像来确定场景的深度图(920),并基于多个图像和场景的所确定的深度图,确定场景的预测的大景深图像(930)。方法900附加地包括:基于共同场景的所确定的深度图,确定基于该预测的大景深图像的预测的浅景深图像(940),使得预测的浅景深图像具有与多个图像中的特定图像相对应的焦距。方法900附加地包括确定预测的浅景深图像与该特定图像之间的差异(950);基于所确定的差异来更新人工神经网络(960);并且,使用所更新的人工神经网络以基于多个图像来确定场景的更新的深度图(970)。
这些实施例可以包括附加的元素或特征。在一些实施例中,基于共同场景的所确定的深度图,确定基于预测的大景深图像的预测的浅景深图像,使得预测的浅景深图像具有对应于多个图像中的特定图像的焦距包括使用可微分光圈渲染函数。
在一些实施例中,获得场景的多个图像包括操作相机以使用相应不同的焦距设置来捕获场景的多个图像中的每个图像。
VI.结论
上面的详细描述参照附图描述了所公开的系统、设备和方法的各种特征和功能。在附图中,除非上下文另外指出,否则相似的符号通常标识相似的组件。在详细描述、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文提出的主题的范围的情况下,可以利用其他实施例,并且可以进行其他改变。容易理解的是,可以以各种不同的配置来布置、替换、组合、分离和设计如本文一般地描述的以及在附图中示出的本公开的各方面,所有这些在本文都被明确地构想。
关于附图中以及如本文所讨论的任何或所有消息流程图、方案和流程图,每个步骤、框和/或通信可以表示根据示例实施例的信息的处理和/或信息的传输。替代实施例包括在这些示例实施例的范围内。在这些替代实施例中,例如,被描述为步骤、框、传输、通信、请求、响应和/或消息的功能可以取决于涉及的功能以与所示出或所讨论的顺序不同的方式执行,包括基本上并发或按相反的顺序。此外,更多或更少的步骤、框和/或功能可以与本文讨论的任何消息流程图、方案和流程图一起使用,并且可以部分或全部彼此组合。
表示信息处理的步骤或框可以对应于可以被配置为执行本文描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的步骤或框可以对应于程序代码(包括相关数据)的模块、段或一部分。该程序代码可以包括一个或多个可由处理器执行的指令,用于在该方法或技术中实现特定的逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,诸如存储设备,包括磁盘驱动器、硬盘驱动器或其他存储介质。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如短时间段存储数据的计算机可读介质,如寄存器存储器、处理器高速缓存和/或随机存取存储器(RAM)。计算机可读介质还可以包括用于较长时间段存储程序代码和/或数据的非暂时性计算机可读介质,诸如二级或永久性长期存储,如例如只读存储器(ROM)、光盘和/或例如光盘只读存储器(CD-ROM)。计算机可读介质还可以是任何其他易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质或有形存储设备。
此外,表示一个或多个信息传输的步骤或框可以对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间。
尽管本文已经公开了各个方面和实施例,但是其他方面和实施例对于本领域技术人员而言将是显而易见的。本文所公开的各个方面和实施例是出于说明的目的,而不旨在进行限制,其真实范围由所附权利要求指示。
虽然示例实施例始终包括使用ANN以基于输入图像来生成深度图,但是可以预期,可以应用替代算法以基于图像生成深度图。例如,根据本文所述的方法,可以应用内核方法、贝叶斯推理算法、强化学习算法、细胞自动机、决策树、增强决策树或其他替代算法和/或其组合,以基于输入图像来生成深度图。对应地,本文所述的用于训练ANN的方法可以例如通过提供误差信息(例如,预测的浅景深图像与捕获的或以其他方式获取的“地面真值”浅景深之间的差异图像)来被应用于训练这种替代算法,该误差信息可被应用于更新这种替代算法(例如,使用反向传播、强化学习或适用于所选替代算法的某一其他技术)。

Claims (22)

1.一种用于对人工神经网络进行训练以基于图像来生成深度图的方法,包括:
获得多个图像,其中,所述多个图像中的至少两个图像的集合描述共同场景,其中,所述至少两个图像的集合包括具有第一景深的源图像和具有第二景深的目标图像,其中,所述第二景深小于所述第一景深;
使用人工神经网络基于所述源图像来确定所述共同场景的深度图;
基于所确定的所述共同场景的深度图,确定基于所述源图像的预测图像,使得所述预测图像具有与所述第二景深相对应的景深;
确定所述预测图像和所述目标图像之间的差异;
基于所确定的差异来更新所述人工神经网络;
获得兴趣场景的图像;以及
使用所更新的人工神经网络基于所述兴趣场景的所述图像来生成所述兴趣场景的深度图。
2.根据权利要求1所述的方法,其中,基于所述深度图确定基于所述源图像的预测图像包括:使用可微分光圈渲染函数。
3.根据权利要求2所述的方法,其中,使用所述可微分光圈渲染函数来确定所述预测图像包括:
基于所述源图像来确定估计的光场;以及
基于所述深度图,剪切并投影所述估计的光场以确定所述预测图像。
4.根据权利要求1所述的方法,其中,使用所述人工神经网络基于所述源图像来确定所述共同场景的深度图包括:
使用所述人工神经网络基于所述源图像来确定深度值的集合,其中,所述深度值的集合中的每个深度值与所述源图像内的相应位置相对应;和
对所述深度值的集合进行上采样以生成所述共同场景的深度图。
5.根据权利要求4所述的方法,其中,对所述深度值的集合进行上采样以生成所述共同场景的深度图包括:使用双边方法基于所述源图像来对所述深度值的集合进行上采样。
6.根据权利要求1至5中的任一项所述的方法,其中,所述目标图像是第一目标图像,其中,所述预测图像是第一预测图像,其中,所确定的差异是第一确定的差异,其中,所述至少两个图像的集合进一步包括:具有第三景深的第二目标图像,其中,所述第三景深不同于所述第二景深并且小于所述第一景深,所述方法进一步包括:
基于所确定的所述共同场景的深度图,确定基于所述源图像的第二预测图像,使得所述第二预测图像具有与所述第三景深相对应的景深;以及
确定所述第二预测图像和所述第二目标图像之间的第二差异,其中,更新所述人工神经网络包括基于所述第二差异来更新所述人工神经网络。
7.根据权利要求1至5中的任一项所述的方法,其中,获得描述所述共同场景的所述至少两个图像的集合包括:
使用光场相机捕获来自所述共同场景的光场;
基于所捕获的光场来生成所述源图像,使得所述源图像具有所述第一景深;以及
基于所捕获的光场来生成所述目标图像,使得所述目标图像具有所述第二景深。
8.根据权利要求1至5中的任一项所述的方法,其中,获得描述所述共同场景的所述至少两个图像的集合包括:
使用被设置为第一光圈设置的相机捕获所述源图像;以及
使用被设置为第二光圈设置的相机捕获所述目标图像,其中,所述第二光圈设置比所述第一光圈设置宽。
9.根据权利要求1至5中的任一项所述的方法,其中,获得所述兴趣场景的所述图像包括:操作蜂窝电话以捕获所述兴趣场景的所述图像,所述方法进一步包括:
从服务器向所述蜂窝电话传输对所更新的人工神经网络的指示,其中,使用所更新的人工神经网络基于所述兴趣场景的所述图像来生成所述兴趣场景的深度图包括:所述蜂窝电话的处理器使用所更新的人工神经网络生成所述兴趣场景的深度图。
10.根据权利要求1至5中的任一项所述的方法,进一步包括:
基于所确定的所述兴趣场景的深度图来对所述兴趣场景的所述图像执行图像处理。
11.根据权利要求1至5中的任一项所述的方法,其中,所述人工神经网络是卷积神经网络。
12.一种用于对人工神经网络进行训练以基于图像来生成深度图的方法,包括:
由系统获得多个图像,其中,所述多个图像中的至少两个图像的集合描述共同场景,其中,所述至少两个图像的集合包括具有第一景深的源图像和具有第二景深的目标图像,其中,所述第二景深小于所述第一景深;
由所述系统使用人工神经网络基于所述源图像来确定所述共同场景的深度图;
由所述系统基于所确定的所述共同场景的深度图,确定基于所述源图像的预测图像,使得所述预测图像具有与所述第二景深相对应的景深;
由所述系统确定所述预测图像和所述目标图像之间的差异;
由所述系统基于所确定的差异来更新所述人工神经网络;以及
从所述系统向远程设备传输对所更新的人工神经网络的指示。
13.根据权利要求12所述的方法,其中,基于所述深度图确定基于所述源图像的预测图像包括:使用可微分光圈渲染函数。
14.根据权利要求13所述的方法,其中,使用所述可微分光圈渲染函数来确定所述预测图像包括:
基于所述源图像来确定估计的光场;以及
基于所述深度图,剪切并投影所述估计的光场以确定所述预测图像。
15.根据权利要求12至14中的任一项所述的方法,其中,所述目标图像是第一目标图像,其中,所述预测图像是第一预测图像,其中,所确定的差异是第一确定的差异,其中,所述至少两个图像的集合进一步包括具有第三景深的第二目标图像,其中,所述第三景深不同于所述第二景深并且小于所述第一景深,所述方法进一步包括:
基于所确定的所述共同场景的深度图,确定基于所述源图像的第二预测图像,使得所述第二预测图像具有与所述第三景深相对应的景深;以及
确定所述第二预测图像和所述第二目标图像之间的第二差异,其中,更新所述人工神经网络包括基于所述第二差异来更新所述人工神经网络。
16.根据权利要求12至14中的任一项所述的方法,其中,所述人工神经网络是卷积神经网络。
17.一种用于对人工神经网络进行训练以基于图像来生成深度图的方法,包括:
获得场景的多个图像,其中,所述图像每一个均具有浅景深并且关于焦距不同;
使用人工神经网络基于所述多个图像来确定所述场景的深度图;
基于所述多个图像和所确定的所述场景的深度图,确定所述场景的预测的大景深图像;
基于所确定的所述场景的深度图,确定基于所述预测的大景深图像的预测的浅景深图像,使得所述预测的浅景深图像具有与所述多个图像中的一个图像相对应的焦距;
确定所述预测的浅景深图像与所述一个图像之间的差异;
基于所确定的差异来更新所述人工神经网络;以及
使用所更新的人工神经网络基于所述多个图像来确定所述场景的更新的深度图。
18.根据权利要求17所述的方法,其中,所述人工神经网络是自动编码器卷积神经网络。
19.根据权利要求17至18中的任一项所述的方法,其中,基于所确定的所述场景的深度图来确定基于所述预测的大景深图像的预测的浅景深图像,使得所述预测的浅景深图像具有与所述多个图像中的所述一个图像相对应的焦距包括:使用可微分光圈渲染函数。
20.根据权利要求17至18中的任一项所述的方法,其中,获得所述场景的所述多个图像包括:操作相机以使用相应不同的焦距设置来捕获所述场景的所述多个图像中的每个图像。
21.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质具有存储在其上的程序指令,所述程序指令在被计算设备执行时使所述计算设备执行权利要求1至20中的任一项所述的方法。
22.一种用于对人工神经网络进行训练以基于图像来生成深度图的系统,包括:
控制器;以及
具有存储在其上的程序指令的非暂时性计算机可读介质,所述程序指令在被所述控制器执行时使所述控制器执行权利要求1至20中的任一项所述的方法。
CN201780096474.2A 2017-11-03 2017-11-03 单视图深度预测的光圈监督 Active CN111316123B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/059841 WO2019089039A1 (en) 2017-11-03 2017-11-03 Aperture supervision for single-view depth prediction

Publications (2)

Publication Number Publication Date
CN111316123A CN111316123A (zh) 2020-06-19
CN111316123B true CN111316123B (zh) 2023-07-25

Family

ID=62092223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780096474.2A Active CN111316123B (zh) 2017-11-03 2017-11-03 单视图深度预测的光圈监督

Country Status (5)

Country Link
US (1) US11113832B2 (zh)
EP (1) EP3704508B1 (zh)
JP (1) JP7013578B2 (zh)
CN (1) CN111316123B (zh)
WO (1) WO2019089039A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405547B2 (en) * 2019-02-01 2022-08-02 Electronics And Telecommunications Research Institute Method and apparatus for generating all-in-focus image using multi-focus image
CN110415284B (zh) * 2019-07-31 2022-04-19 中国科学技术大学 一种单视彩色图像深度图获得方法及装置
JP7382249B2 (ja) * 2020-02-14 2023-11-16 株式会社東海理化電機製作所 通信装置及びプログラム
US11503266B2 (en) * 2020-03-06 2022-11-15 Samsung Electronics Co., Ltd. Super-resolution depth map generation for multi-camera or other environments
US20220308166A1 (en) * 2021-03-18 2022-09-29 Wisense Technologies Ltd. System and method for electromagnetic signal estimation
JP7451465B2 (ja) 2021-07-29 2024-03-18 株式会社東芝 学習方法、プログラム及び画像処理装置
US11727537B1 (en) * 2022-03-24 2023-08-15 Qualcomm Incorporated Bokeh effect in variable aperture (VA) camera systems
KR20230174621A (ko) * 2022-06-21 2023-12-28 삼성전자주식회사 깊이 맵 생성을 위한 전자 장치 및 그 동작 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2288880A1 (en) * 1997-05-06 1998-11-12 Matthew J. Holcomb Surface analysis using gaussian beam profiles
US6556704B1 (en) * 1999-08-25 2003-04-29 Eastman Kodak Company Method for forming a depth image from digital image data
JP2004310504A (ja) * 2003-04-08 2004-11-04 Canon Inc 画像処理方法
IL156856A (en) * 2003-07-09 2011-11-30 Joseph Shamir Method for particle size and concentration measurement
EP1612731B1 (en) * 2004-06-11 2008-08-13 Saab Ab Computer modeling of physical scenes
EP1793580B1 (en) * 2005-12-05 2016-07-27 Microsoft Technology Licensing, LLC Camera for automatic image capture having plural capture modes with different capture triggers
JP2010081002A (ja) * 2008-09-24 2010-04-08 Sanyo Electric Co Ltd 撮像装置
US8335390B2 (en) * 2010-03-22 2012-12-18 Sony Corporation Blur function modeling for depth of field rendering
TW201432622A (zh) * 2012-11-07 2014-08-16 Koninkl Philips Nv 產生一關於一影像之深度圖
JP2014157425A (ja) * 2013-02-14 2014-08-28 Canon Inc 撮像装置及びその制御方法
US9292926B1 (en) * 2014-11-24 2016-03-22 Adobe Systems Incorporated Depth map generation
JP6353415B2 (ja) * 2015-07-30 2018-07-04 日本電信電話株式会社 辞書生成方法、辞書生成装置、画像処理方法、画像処理装置及び画像処理プログラム
US10237473B2 (en) * 2015-09-04 2019-03-19 Apple Inc. Depth map calculation in a stereo camera system
US9754351B2 (en) * 2015-11-05 2017-09-05 Facebook, Inc. Systems and methods for processing content using convolutional neural networks
EP3423865B1 (en) 2016-03-01 2024-03-06 Brightway Vision Ltd. Gated imaging apparatus, system and method
CN106780543B (zh) * 2017-01-13 2019-06-28 深圳市唯特视科技有限公司 一种基于卷积神经网络的双框架估计深度和运动方法
CN106934765A (zh) * 2017-03-14 2017-07-07 长沙全度影像科技有限公司 基于深度卷积神经网络与深度信息的全景图像融合方法

Also Published As

Publication number Publication date
US20210183089A1 (en) 2021-06-17
JP2021501946A (ja) 2021-01-21
CN111316123A (zh) 2020-06-19
WO2019089039A1 (en) 2019-05-09
US11113832B2 (en) 2021-09-07
EP3704508B1 (en) 2023-07-12
JP7013578B2 (ja) 2022-01-31
EP3704508A1 (en) 2020-09-09

Similar Documents

Publication Publication Date Title
CN111316123B (zh) 单视图深度预测的光圈监督
US11663733B2 (en) Depth determination for images captured with a moving camera and representing moving features
US10205896B2 (en) Automatic lens flare detection and correction for light-field images
US9918065B2 (en) Depth-assisted focus in multi-camera systems
CN109919993B (zh) 视差图获取方法、装置和设备及控制系统
US20200043197A1 (en) Camera Calibration Method And Apparatus Based On Deep Learning
EP4055556B1 (en) Defocus blur removal and depth estimation using dual-pixel image data
CN111105347B (zh) 一种生成带深度信息的全景图的方法、装置及存储介质
WO2023164845A1 (zh) 三维重建方法、装置、系统及存储介质
GB2537886A (en) An image acquisition technique
CN105705979A (zh) 用于创建相机重聚焦效果的方法和系统
US20230033956A1 (en) Estimating depth based on iris size
Zhang et al. Data association between event streams and intensity frames under diverse baselines
US20220319026A1 (en) Imaging system and method
US11972512B2 (en) Directional editing of digital images
US20230237718A1 (en) Directional Editing of Digital Images
EP4154182A1 (en) Generation of machine learning predictions using multiple domain data sets
Lee et al. Spatiotemporal outdoor lighting aggregation on image sequences
CN115018067A (zh) 用于视频和其它顺序数据的有条件的以对象为中心的槽注意力学习
EP4248397A1 (en) Machine learning models for example-guided image inpainting
CN117788524A (zh) 基于多任务学习的平面目标追踪方法、装置、设备及介质
CN117474962A (zh) 深度估计模型的优化方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant