基于学习的镜头眩光移除的制作方法

文档序号:30390718发布日期:2022-06-11 15:31阅读:243来源:国知局
基于学习的镜头眩光移除的制作方法
基于学习的镜头眩光移除
1.相关申请的交叉引用
2.本技术要求于2020年9月28日提交的美国临时专利申请第63/084,377号的优先权,该申请通过引用结合于此,如同在本说明书中完全阐述一样。
技术领域
3.本技术涉及基于学习的镜头眩光移除。


背景技术:

4.镜头眩光(lens flare)是由于相机对准强光源而造成的照片中的常见伪影。镜头眩光会模糊或干扰环境各部分的表示,从而降低照片的图像质量。


技术实现要素:

5.可以训练机器学习模型(诸如卷积神经网络)来确定图像中的镜头眩光表示。具体地,机器学习模型可以被配置为处理包括镜头眩光表示的输入图像,以生成其中移除了镜头眩光表示的至少一些的、输入图像的去眩光(de-flared)版本。机器学习模型可以基于通过将缺少镜头眩光表示的多个基准图像与表示镜头眩光的多个镜头眩光图像相组合而形成的多个训练图像来训练。镜头眩光图像中的一些可以使用物理相机来实验性地捕获,而其他的可以基于相机的计算机模拟来生成。
6.在第一示例实施例中,一种方法可以包括获得(i)多个基准图像和(ii)多个镜头眩光图像。该方法还可以包括通过将多个基准图像的每个相应基准图像与多个镜头眩光图像中相应的镜头眩光图像相组合来生成多个训练图像。该方法还可以包括通过由机器学习模型处理相应训练图像,为多个训练图像中的每个相应训练图像确定经修改的图像。经修改的图像可以包括其中移除了相应的镜头眩光表示的至少一部分的相应训练图像。该方法还可以包括基于损失函数为多个训练图像中的每个相应训练图像确定损失值,该损失函数被配置为将经修改的图像与用于生成相应训练图像的相应的基准图像进行比较。该方法还可以包括基于(i)为每个相应训练图像确定的损失值和(ii)损失函数来调整机器学习模型的一个或多个参数。
7.在第二示例实施例中,系统可以包括处理器和其上存储有指令的非暂时性计算机可读介质,当由处理器执行时,指令使得处理器执行操作。操作可以包括获得(i)多个基准图像和(ii)多个镜头眩光图像。操作还可以包括通过将多个基准图像中的每个相应基准图像与多个镜头眩光图像中相应的镜头眩光图像相组合来生成多个训练图像。操作还可以包括,对于多个训练图像中的每个相应训练图像,通过由机器学习模型处理相应训练图像来确定经修改的图像。经修改的图像可以包括其中移除了相应的镜头眩光表示的至少一部分的相应训练图像。操作还可以包括基于损失函数为多个训练图像中的每个相应训练图像确定损失值,该损失函数被配置为将经修改的图像与用于生成相应训练图像的相应的基准图像进行比较。操作还可以包括基于(i)为每个相应训练图像确定的损失值和(ii)损失函数
来调整机器学习模型的一个或多个参数。
8.在第三示例实施例中,制品可以包括其上存储有指令的非暂时性计算机可读介质,当由计算设备执行时,指令使得计算设备执行操作。操作可以包括获得(i)多个基准图像和(ii)多个镜头眩光图像。操作还可以包括通过将多个基准图像中的每个相应基准图像与多个镜头眩光图像中相应的镜头眩光图像相组合来生成多个训练图像。操作还可以包括,对于多个训练图像中的每个相应训练图像,通过由机器学习模型处理相应训练图像来确定经修改的图像。经修改的图像可以包括其中移除了相应的镜头眩光表示的至少一部分的相应训练图像。操作还可以包括基于损失函数为多个训练图像中的每个相应训练图像确定损失值,该损失函数被配置为将经修改的图像与用于生成相应训练图像的相应的基准图像进行比较。操作还可以包括基于(i)为每个相应训练图像确定的损失值和(ii)损失函数来调整机器学习模型的一个或多个参数。
9.在第四示例实施例中,系统可以包括用于获得(i)多个基准图像和(ii)多个镜头眩光图像的装置。该系统还可以包括用于通过将多个基准图像的每个相应基准图像与多个镜头眩光图像的相应镜头眩光图像相组合来生成多个训练图像的装置。该系统还可以包括用于通过由机器学习模型处理相应训练图像来为多个训练图像中的每个相应训练图像确定经修改的图像的装置。经修改的图像可以包括其中移除了相应的镜头眩光表示的至少一部分的相应训练图像。该系统还可以包括用于基于损失函数为多个训练图像中的每个相应训练图像确定损失值的装置,该损失函数被配置为将经修改的图像与用于生成相应训练图像的相应的基准图像进行比较。操作还可以包括基于(i)为每个相应训练图像确定的损失值和(ii)损失函数来调整机器学习模型的一个或多个参数。
10.在第五示例实施例中,一种方法可以包括获得包含特定镜头眩光表示的输入图像。该方法还可以包括由机器学习模型处理输入图像以生成去眩光图像,该去眩光图像包括其中移除了特定镜头眩光表示的至少一部分的输入图像。机器学习模型可能已经被训练为确定图像中的镜头眩光表示。该方法还可以包括输出去眩光图像。
11.在第六示例实施例中,系统可以包括处理器和其上存储有指令的非暂时性计算机可读介质,当由处理器执行时,指令使得处理器执行操作。操作可以包括获得包含特定镜头眩光表示的输入图像。操作还可以包括由机器学习模型处理输入图像以生成去眩光图像,该去眩光图像包括其中移除了特定镜头眩光表示的至少一部分的输入图像。机器学习模型可能已经被训练为确定图像中的镜头眩光表示。操作还可以包括输出去眩光图像。
12.在第七示例实施例中,制品可以包括其上存储有指令的非暂时性计算机可读介质,当由计算设备执行时,指令使得计算设备执行操作。操作可以包括获得包含特定镜头眩光表示的输入图像。操作还可以包括由机器学习模型处理输入图像以生成去眩光图像,该去眩光图像包括其中移除了特定镜头眩光表示的至少一部分的输入图像。机器学习模型可能已经被训练为确定图像中的镜头眩光表示。操作还可以包括输出去眩光图像。
13.在第八示例实施例中,系统可以包括用于获得包含特定镜头眩光表示的输入图像的装置。该系统还可以包括用于由机器学习模型处理输入图像以生成去眩光图像的装置,该去眩光图像包括其中移除了特定镜头眩光表示的至少一部分的输入图像。机器学习模型可能已经被训练为确定图像中的镜头眩光表示。该系统还可以包括用于输出去眩光图像的装置。
14.通过阅读以下详细描述并适当参考附图,这些以及其他实施例、方面、优点和替代方案对于本领域普通技术人员来说将变得清楚。此外,本文所提供的概述和其他描述和附图旨在仅通过示例的方式说明实施例,因此,多种变化是可能的。例如,结构元件和过程步骤可以被重新排列、组合、分布、消除或以其他方式改变,同时保持在所要求保护的实施例的范围内。
附图说明
15.图1示出了根据本文描述的示例的计算设备。
16.图2示出了根据本文描述的示例的计算系统。
17.图3a示出了根据本文描述的示例的系统。
18.图3b和图3c示出了根据本文描述的示例的图像。
19.图4示出了根据本文描述的示例的、用于训练机器学习模型的系统。
20.图5示出了根据本文描述的示例的系统。
21.图6示出了根据本文描述的示例的流程图。
22.图7示出了根据本文描述的示例的流程图。
具体实施方式
23.本文描述了示例方法、设备和系统。应当理解,词语“示例”和“示例性”在本文中用于表示“用作示例、实例或说明”。本文中被描述为“示例”、“示例性”和/或“说明性”的任何实施例或特征不一定被解释为比其他实施例或特征更优或有利,除非是如此陈述的。因此,在不脱离本文所呈现的主题的范围的情况下,可以利用其他实施例,并且可以做出其他改变。
24.因此,本文所描述的示例实施例并不意味着是限制性的。将容易理解的是,如在本文中一般描述的和附图中示出的,本公开的方面可以以多种不同的配置来布置、替换、组合、分离和设计。
25.此外,除非上下文另有说明,图中的每一个中示出的特征可以彼此结合使用。因此,附图一般应该被视为一个或多个总体实施例的组成方面,应当理解,并非所有示出的特征对于每个实施例都是必要的。
26.此外,本说明书或权利要求中对元素、框或步骤的任何列举都是为了清楚的目的。因此,这样的列举不应该被解释为要求或暗示这些元素、框或步骤遵循特定的布置或以特定的顺序来执行。除非另有说明,否则附图不是按比例绘制的。
27.一.概述
28.镜头眩光是在相机捕获到由相对强/亮光源发出的光时所观察到的光学现象。镜头眩光可能导致和/或被表示为图像数据中类似条纹、线条和/或不规则斑点以及其他可能的视觉伪影/图案。图像数据中的镜头眩光表示可能是由相机的光学组件(例如,镜头)对光的内部反射导致的,并且该表示的特定视觉图案可以取决于光学组件的光学属性而变化。图像数据中的镜头眩光表示也可能是由相机的光学组件中和/或光学组件上存在的瑕疵(imperfection)引起的光的散射和/或衍射导致的,并且该表示的特定视觉图案可以取决于瑕疵的具体类型、尺寸和/或空间分布而变化。
29.一般地,来自场景的多个部分的光可能经历这种内部反射、散射和/或衍射。当入射光的强度相对较低时,内部反射、散射和/或衍射的光可能不会导致可感知的镜头眩光表示。然而,当入射光的强度相对较高时,诸如在场景内存在强/亮光源时,内部反射、散射和/或衍射的光可能导致可感知的镜头眩光表示。在一些情况下,可能期望从图像中移除镜头眩光表示,以像场景在没有镜头眩光的情况下看起来的那样来表示相应的场景。在其他情况下,可能期望镜头眩光表示通过例如增强该表示、减弱该表示和/或调整该表示的颜色以及其他可能的方式来调整。
30.对于任何特定的成像场景,由于难以预测和/或控制的各种复杂的光学现象,可能会出现镜头眩光。因此,通常通过对图像的手动处理来移除镜头眩光表示,在对图像的手动处理中,用户通过视觉检查(visual inspection)来识别图像中的镜头眩光,并修改图像以移除或减少镜头眩光。然而,这种手动图像处理是耗时的,并且需要熟练的图像操纵。与在成像场景中控制镜头眩光相关联的挑战意味着需要自动化图像处理来移除图像中的镜头眩光表示。由于与在成像场景中控制镜头眩光相关联的挑战,现有的镜头眩光技术一般试图表征镜头眩光表示的形状属性,并使用这种属性来识别镜头眩光表示。可能导致镜头眩光的各种光学现象意味着使用镜头眩光表示的特征属性的技术一般表现不佳。
31.因此,可以训练机器学习模型(诸如卷积神经网络(cnn))来确定图像中的镜头眩光表示。具体地,由机器学习模型确定输入图像中的特定镜头眩光表示可以包括(i)生成表示镜头眩光的恢复的镜头眩光图像和/或(ii)生成包括其中移除了特定镜头眩光表示的至少一部分的输入图像的去眩光图像。
32.捕获训练图像对可能是困难、耗时和/或不可行的,其中每个训练图像对都包括(i)场景和由于形成场景的部分的光源而出现的镜头眩光的相应表示,以及(ii)没有镜头眩光的相应表示的场景的相应表示。具体地,捕获这样的训练图像对可能是困难、耗时和/或不可行的,因为相机设备导致镜头眩光的方面可能不容易控制(如果可控的话)。
33.因此,用于机器学习模型的训练数据可以通过组合(i)无眩光的基准图像和(ii)仅有眩光的镜头眩光图像来生成。无眩光的基准(baseline)图像可以独立于仅有炫光的图像而被捕获/生成。因此,训练数据中的每个训练图像可以被显式地分为(i)相应无眩光场景的表示和(ii)镜头眩光的相应表示,用于为机器学习模型提供监督。镜头眩光图像可以使用相机设备和光源的计算机模拟和/或用物理相机设备对物理光源的图像的实验/物理捕获来生成。
34.特别地,由计算机模拟生成的模拟镜头眩光图像可以至少表示由各种光学瑕疵引起的光的散射和/或衍射导致的镜头眩光。光学瑕疵在物理相机上可能难以控制和/或变化,但是可能相对更容易模拟,因此允许确定性地生成由散射和/或衍射引起的各种视觉图案(例如,第一镜头眩光图案)。物理上捕获的图像可以至少表示由光学组件对光的内部反射(以及由与相应的物理相机设备相关联的特定光学瑕疵引起的光的散射和/或衍射)导致的镜头眩光。内部反射可能难以模拟,因为该模拟可能是基于光学组件的准确模型(可能不是公开可用的),但是可能相对更容易被物理上捕获,因此允许确定性地生成由内部反射引起的各种视觉图案(例如,第二镜头眩光图案)。
35.总的来说,模拟的镜头眩光图像和实验的镜头眩光图像可以提供图像中可能存在的镜头眩光的各种可能表示的代表样本。此外,尽管镜头眩光是由场景中强光源的存在而
导致的,但是镜头眩光表示的视觉图案一般是独立于场景组成部分的,因为场景内(除光源外的)对象的存在和/或布置不太可能导致和/或影响镜头眩光。因此,通过组合不同的、独立生成的基准图像和镜头眩光图像而生成的合成训练数据不会损害机器学习模型在推断时(inference time)外推到真实/非合成场景的能力,因为对镜头眩光的移除不太可能依赖于场景组成部分。事实上,因为可以得到多种不同的场景和眩光组合,所以以这种方式生成的合成训练数据可能是可取的,这可以提高经训练的模型外推到新的真实/非合成场景的能力。
36.经训练的机器学习模型可以处理包括镜头眩光表示的输入图像,以生成去眩光图像。去眩光图像可以对应于其中移除了镜头眩光表示的至少一部分的输入图像。在一个示例中,机器学习模型可以被配置为直接生成去眩光图像(即,去眩光图像可以是机器学习模型的输出)。在另一个示例中,机器学习模型可以被配置为生成恢复的镜头眩光图像,该恢复的镜头眩光图像可以从输入图像中被减去,从而生成去眩光图像。在任一情况下,机器学习模型可以被配置为确定/识别输入图像内的镜头眩光的表示。
37.附加地或可替代地,可以通过从输入图像中减去去眩光图像来生成恢复的镜头眩光图像。因此,恢复的镜头眩光图像可以表示输入图像中由机器学习模型确定/识别的镜头眩光表示的部分。在一些情况下,恢复的镜头眩光的各方面的强度和/或颜色可以被修改,并且被添加回去眩光图像,从而生成其中镜头眩光表示的视觉外观(visual appearance)已经以特定方式改变的输入图像的版本。
38.机器学习模型可以被配置为对使用单视场相机捕获到的单视场图像数据进行操作。因此,机器学习模型可能不依赖使用任何特定类型的硬件(例如,立体相机)捕获的和/或包括除了图像数据本身之外的任何注释(例如,视差图)的输入图像。
39.在一些情况下,机器学习模型可能已经被训练为通过确定导致镜头眩光的光源的表示来确定镜头眩光表示。因此,光源的表示可以与镜头眩光表示一起被确定/识别,并且因此可以在生成去眩光图像时从输入图像中被移除。因此,可以生成光源掩模(mask),并将其用于将光源的表示从输入图像复制到去眩光图像中,从而得到输入图像的修改版本,在该版本中(i)镜头眩光表示从其中被移除,以及(ii)光源表示存在于其中。在一些情况下,如上所述,光源表示可以被复制到输入图像的其镜头眩光的相应表示已经被修改的版本中。
40.二.示例计算设备和系统
41.图1示出了示例计算设备100。计算设备100以移动电话的形式示出。然而,计算设备100可以可替代地被实现为膝上型计算机、平板计算机或可穿戴计算设备以及其他可能设备。计算设备100可以包括各种元件,诸如主体102、显示器106以及按钮108和110。计算设备100还可以包括一个或多个相机,诸如前置相机104和后置相机112。
42.前置相机104可以位于在操作时通常面向用户的主体102的一侧(例如,与显示器106在同一侧)。后置相机112可以位于主体102的与前置相机104相对的一侧。将相机称为前置和后置是任意的,并且计算设备100可以包括位于主体102的各个侧上的多个相机。
43.显示器106可以表示阴极射线管(cathode ray tube,crt)显示器、发光二极管(light emitting diode,led)显示器、液晶(liquid crystal,lcd)显示器、等离子显示器、有机发光二极管(organic light emitting diode,oled)显示器或本领域已知的任何其他
类型的显示器。在一些示例中,显示器106可以显示由前置相机104和/或后置相机112捕获的当前图像的数字表示,和/或可以由这些相机中的一个或多个能够捕获或最近捕获的图像。因此,显示器106可以用作相机的取景器(viewfinder)。显示器106还可以支持能够调整计算设备100的任何方面的设置和/或配置的触摸屏功能。
44.前置相机104可以包括图像传感器和相关联的光学元件,诸如镜头。前置相机104可以提供变焦能力、或者可以具有固定的焦距。在其他示例中,可互换镜头可以与前置相机104一起使用。前置相机104可以具有可变的机械光圈和机械和/或电子快门。前置相机104还可以被配置为捕获静止图像、视频图像或两者。此外,前置相机104可以表示例如单视场相机。后置相机112可以被类似地或不同地布置。此外,前置相机104和/或后置相机112中的一个或多个可以是一个或多个相机的阵列。在一个示例中,后置相机112可以构成和/或形成立体相机的一部分。
45.前置相机104和/或后置相机112中的一个或多个可以包括提供光场以对目标对象进行照明的照明组件或与该照明组件相关联。例如,照明组件可以提供对目标对象的闪光照明或恒定照明。照明组件还可以被配置为提供包括结构化光、偏振光和具有特定光谱内容的光中的一种或多种的光场。已知的且用于从对象恢复三维(3d)模型的其他类型的光场在本文的示例的上下文中是可能的。
46.计算设备100还可以包括可以连续地或不时地确定相机104和/或112可以捕获的场景的环境亮度的环境光传感器。在一些实现方式中,环境光传感器可以用于调整显示器106的显示亮度。此外,环境光传感器可以用于确定相机104或112中的一个或多个的曝光长度、或者帮助该确定。
47.计算设备100可以被配置为使用显示器106和前置相机104和/或后置相机112来捕获目标对象的图像。捕获到的图像可以是多个静止图像或视频流。图像捕获可以通过激活按钮108、按下显示器106上的软键(softkey)或通过某种其他机制来触发。取决于实现方式,可以以特定的时间间隔(例如,在按下按钮108时、在目标对象处于适当的照明条件下、在将数字相机设备100移动预定距离时、或者根据预定的捕获时间表)自动地捕获图像。
48.图2是示出示例计算系统200的组件中的一些的简化框图。作为示例而非限制,计算系统200可以是蜂窝移动电话(例如智能电话)、计算机(诸如台式计算机、笔记本、平板或手持式计算机)、家庭自动化组件、数字录像机(dvr)、数字电视、遥控器、可穿戴计算设备、游戏控制台、机器人设备、车辆或一些其他类型的设备。计算系统200可以表示例如计算设备100的各方面。
49.如图2所示,计算系统200可以包括通信接口202、用户接口204、处理器206、数据存储208和相机组件224,这些中的全部都可以通过系统总线、网络或其他连接机制210通信地链接在一起。计算系统200可以配备有至少一些图像捕获和/或图像处理能力。应当理解,计算系统200可以表示物理图像处理系统、图像感测和处理应用在其上以软件方式操作的特定物理硬件平台、或者被配置为执行图像捕获和/或处理功能的硬件和软件的其他组合。
50.通信接口202可以允许计算系统200使用模拟或数字调制来与其他设备、接入网络和/或传输网络进行通信。因此,通信接口202可以便于电路交换通信和/或分组交换通信,诸如普通老式电话服务(plain old telephone service,pots)通信和/或互联网协议(ip)或者其他分组化通信。例如,通信接口202可以包括被布置用于与无线电接入网络或接入点
进行无线通信的芯片集和天线。此外,通信接口202可以采取有线接口的形式或包括有线接口,诸如以太网、通用串行总线(usb)或高清多媒体接口(hdmi)端口。通信接口202还可以采取无线接口的形式或包括无线接口,诸如wi-fi、全球定位系统(gps)或广域无线接口(例如,wimax或3gpp长期演进(lte))。然而,可以在通信接口202上使用其他形式的物理层接口和其他类型的标准或专有通信协议。此外,通信接口202可以包括多个物理通信接口(例如,wi-fi接口、接口和广域无线接口)。
51.用户接口204可以允许计算系统200与人类或非人类用户进行交互,诸如从用户接收输入以及向用户提供输出。因此,用户接口204可以包括输入组件,诸如小键盘、键盘、触敏面板、计算机鼠标、轨迹球、操纵杆、麦克风等。用户接口204还可以包括一个或多个输出组件,诸如显示屏,其例如可以与触敏面板相组合。显示屏可以基于crt、lcd和/或led技术、或者基于现在已知或以后开发的其他技术。用户接口204还可以被配置为经由扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其他类似的设备来生成听觉输出。用户接口204还可以被配置为通过麦克风和/或其他类似的设备来接收和/或捕获可听见的话语、噪声和/或信号。
52.在一些示例中,用户接口204可以包括用作由计算系统200支持的静态相机功能和/或视频相机功能的取景器的显示器。此外,用户接口204可以包括促进相机的聚焦功能和图像的捕获的配置的一个或多个按钮、开关、旋钮和/或拨号盘。这些按钮、开关、旋钮和/或拨号盘中的一些或全部可以通过触敏面板来实现。
53.处理器206可以包括一个或多个通用处理器(例如微处理器)和/或一个或多个专用处理器(例如数字信号处理器(dsp)、图形处理单元(gpu)、浮点单元(fpu)、网络处理器或专用集成电路(asic))。在一些情况下,专用处理器可能能够进行图像处理、图像对准和合并图像以及其他可能处理。数据存储208可以包括一个或多个易失性和/或非易失性存储组件,诸如磁存储、光存储、闪存或有机存储,并且可以整体或部分地与处理器206集成。数据存储208可以包括可移动和/或不可移动组件。
54.处理器206可能能够执行存储在数据存储208中的程序指令218(例如,编译或非编译的程序逻辑和/或机器代码),以执行本文所描述的各种功能。因此,数据存储208可以包括其上存储有程序指令的非暂时性计算机可读介质,在由计算系统200执行时,该程序指令使得计算系统200执行本说明书和/或附图中公开的任何方法、过程或操作。处理器206对程序指令218的执行可以使得处理器206使用数据212。
55.例如,程序指令218可以包括安装在计算系统200上的操作系统222(例如,操作系统内核、设备驱动和/或其他模块)以及一个或多个应用程序220(例如,相机功能、地址簿、电子邮件、网络浏览、社交联网、音频到文本功能、文本翻译功能和/或游戏应用)。类似地,数据212可以包括操作系统数据216和应用数据214。操作系统数据216可以是主要可由操作系统222访问的,而应用数据214可以是主要可由一个或多个应用程序220访问的。应用数据214可以被布置在对计算系统200的用户可见或隐藏的文件系统中。
56.应用程序220可以通过一个或多个应用编程接口(api)来与操作系统222通信。这些api可以便于例如应用程序220读取和/或写入应用数据214、经由通信接口202发送或接收信息、在用户接口204上接收和/或显示信息等。
57.在一些情况下,应用程序220可以被简称为“应用(app)”。此外,应用程序220可以
是可通过一个或多个在线应用商店或应用市场而被下载到计算系统200的。然而,应用程序也可以以其他方式(诸如经由网络浏览器或通过计算系统200上的物理接口(例如,usb端口))安装在计算系统200上。
58.相机组件224可以包括但不限于光圈、快门、记录表面(例如,摄影胶片和/或图像传感器)、镜头、快门按钮、红外投影仪和/或可见光投影仪。相机组件224可以包括被配置用于以可见光光谱(例如,具有380-700纳米波长的电磁辐射)捕获图像的组件和被配置用于以红外光光谱(例如,具有701纳米-1毫米波长的电磁辐射)捕获图像的组件。相机组件224可以至少部分地由处理器206执行的软件来控制。
59.三.用于从图像中移除镜头眩光表示的示例系统
60.图3a示出了用于从图像中移除镜头眩光表示的示例系统。具体地,图3a示出了系统300,系统300包括机器学习模型304、眩光控制器310、掩模生成器314和逆操作器318。系统300可以形成计算设备100和/或计算系统200的一部分等。系统300可以表示硬件组件(例如,专用电路)、软件指令或其组合。
61.系统300可以被配置为接收输入图像302,并基于此生成经修改的输入图像312、经修改的输入图像320和/或经修改的输入图像312和320的组合,其中的每一个都可以是输入图像302的相应修改版本。具体地,输入图像302可以在其中包括镜头眩光表示。机器学习模型304可以被配置为在输入图像302内确定和/或识别镜头眩光表示的至少一部分。
62.在一个示例中,由机器学习模型304确定输入图像302中的镜头眩光表示可以包括生成新的图像,该新的图像(i)缺少镜头眩光表示的至少一部分,并且(ii)保留输入图像302的底层(underlying)场景的表示。因此,机器学习模型304可以被配置为生成与输入图像302相对应的去眩光图像306,在该去眩光图像306中,镜头眩光表示的至少一部分从输入图像302中被移除。机器学习模型304可以包括例如可以根据u-net架构或vgg-19架构布置的卷积人工神经网络,等等。
63.系统300还可以被配置为从输入图像302中减去去眩光图像306,从而生成恢复的镜头眩光图像308。恢复的镜头眩光图像308可以包含机器学习模型304已经在输入图像302中确定的并且在生成去眩光图像306时已经从输入图像302中移除的镜头眩光表示。因此,去眩光图像306和恢复的镜头眩光图像308的和可以等于输入图像302。
64.在第二示例中,由机器学习模型304确定输入图像302中的镜头眩光表示可以替代地包括生成新的图像,该新的图像(i)表示镜头眩光表示的至少一部分,并且(ii)缺少输入图像302的底层场景的表示。也就是说,机器学习模型304可以替代地被配置为生成恢复的镜头眩光图像308,其表示在输入图像302中确定/识别的镜头眩光表示的至少一部分。因此,系统300可以替代地被配置为从输入图像302中减去恢复的镜头眩光图像308,从而生成去眩光图像306。
65.眩光控制器310可以被配置为生成一个或多个眩光修改值,该一个或多个眩光修改值与恢复的镜头眩光图像308的多个像素相乘以修改镜头眩光表示的视觉外观。具体地,当确定去眩光图像306时,输入图像302中不表示镜头眩光的一些像素可能不被修改,因此恢复的镜头眩光图像308中相应的像素可能具有零值。因此,恢复的镜头眩光图像308中的每个非零像素可以根据由眩光控制器310生成的一个或多个眩光修改值来修改。
66.具体地,可以通过将恢复的镜头眩光图像308的像素的每个颜色分量(例如,红色、
绿色、蓝色)乘以相应的值来修改恢复的镜头眩光图像308中的镜头眩光表示的强度和/或颜色。例如,可以通过将每个颜色分量乘以大于1的值来增加镜头眩光表示的强度。在另一示例中,可以通过将每个颜色分量乘以不同的值来修改镜头眩光表示的颜色,以便获得期望的颜色(例如,将绿色和蓝色像素分量乘以1,将红色像素分量乘以2,以便使镜头眩光表示看起来更红)。可以通过将恢复的镜头眩光图像308中的非零值中的每一个乘以零来完全移除镜头眩光表示,使得经修改的输入图像312等于去眩光图像306。
67.系统300可以被配置为,在将恢复的镜头眩光图像308的像素乘以一个或多个眩光修改值之后,将经相乘的恢复的镜头眩光图像308与去眩光图像306相加,从而生成经修改的输入图像312。经修改的输入图像312可以表示其中根据一个或多个眩光修改值修改了镜头眩光表示的输入图像302。例如,经修改的输入图像312可以等同于其中镜头眩光表示被增加、减少和/或该表示的颜色被修改等等的输入图像302。因此,通过生成恢复的镜头眩光图像308,使用眩光控制器310对其进行修改,并将修改版本添加回去眩光图像306,系统300可以允许对输入图像302中镜头眩光表示进行各种视觉修改。
68.在一些实现方式中,机器学习模型304还可以被配置为在输入图像302内确定和/或识别导致镜头眩光的一个或多个光源表示(例如,机器学习模型304可以将一个或多个光源视为与镜头眩光相同)。因此,在这样的实现方式中,去眩光图像306可以不表示导致镜头眩光的一个或多个光源。然而,在一些情况下,可能期望,从输入图像302中移除镜头眩光表示,同时在保持导致这个镜头眩光的相应的一个或多个光源表示。因此,系统300可以包括被配置为生成光源掩模316的掩模生成器314,该光源掩模316可以用于将导致镜头眩光的一个或多个光源表示添加回去眩光图像306中。
69.具体地,光源掩模316可以包括例如灰度图像,该灰度图像包括多个像素并且具有与输入图像302和/或去眩光图像306相同的分辨率。具有第一值(例如,255)的像素可以指示输入图像302中相应的像素表示光源,而具有第二值(例如,0)的像素可以指示输入图像302中相应的像素不表示光源。第一值和第二值之间的值可以用于在表示光源的区域和不表示光源的区域之间创建平滑和/或逐渐的过渡。
70.掩模生成器314可以被配置为基于例如与输入图像302中的特定像素相关联的亮度值超过阈值亮度值(例如,0.95)来确定该特定像素表示光源。因此,掩模生成器314可以被配置为,通过基于输入图像302中空间上相应的像素的亮度值是否超过阈值亮度值来为光源掩模316的每个像素分配相应的值(例如,255或0),来生成光源掩模316。
71.系统300可以被配置为将光源掩模316和输入图像302相乘,从而生成包括输入图像302中表示的光源但是排除其中表示的其他特征的第一掩蔽图像。此外,系统300可以被配置为将去眩光图像306乘以光源掩模316的逆(inverse),从而生成排除去眩光图像306中与光源相对应的区域但是包括去眩光图像306的所有其他特征的第二掩蔽图像。系统300还可以被配置为将第一掩蔽图像和第二掩蔽图像相加,从而生成经修改的输入图像320。因此,系统300可以实现函数ib=if⊙
m+i
de-flared

(1-m),其中ib表示经修改的输入图像320,if表示输入图像302,m表示光源掩模316,i
de-flared
表示去眩光图像306,并且

表示像素乘法。因此,经修改的输入图像320可以表示其中从输入图像302移除了镜头眩光表示并且包括导致镜头眩光的一个或多个光源表示的输入图像302。
72.可替代地,在一些情况下,系统300可以替代地被配置为将(由逆操作器318修改
的)光源掩模316应用于经修改的输入图像312,而不是将(由逆操作器318修改的)光源掩模316应用于去眩光图像306。因此,包含在输入图像302中的镜头眩光表示可以根据眩光控制器310来修改,同时导致镜头眩光表示的光源可以保持不修改。因此,经修改的输入图像320可以表示其中镜头眩光表示被修改并且包括导致镜头眩光的一个或多个光源表示的输入图像302。可替代地,相同的效果可以通过将(由逆操作器318修改的)光源掩模316应用于眩光控制器310的输出来实现,使得恢复的镜头眩光图像308中的光源表示被添加回去眩光图像306,而无需修改。
73.图3b和图3c包括输入图像302、去眩光图像306、恢复的镜头眩光图像308、光源掩模316、经修改的输入图像312和经修改的输入图像320的示例视觉图示。具体地,输入图像302可以包括光源(例如,太阳)的表示330、由光源导致的镜头眩光(由从光源投射出的线指示)的表示332、以及形成由输入图像302表示的底层场景的一部分的山的表示334。去眩光图像306包括山的表示334,但是缺少镜头眩光表示332。在一些情况下,去眩光图像306也可以缺少光源的表示330,如其上的阴影图案所示。恢复的镜头眩光图像308包括镜头眩光表示332,并且在一些情况下,包括光源的表示330。
74.光源掩模316包括与光源的表示330相对应的掩模区域336、以及与输入图像302的剩余部分对应的掩模区域338(即,不表示导致镜头眩光的光源的区域)。掩模区域336以白色示出,指示其像素被分配第一值(例如,灰度图像中的255、或二进制图像中的1),并因此“通过(pass)”输入图像302的所有相应的像素,而掩模区域338以黑色示出,指示其像素被分配第二值(例如,灰度图像和/或二进制图像中的0),并因此“阻挡(block)”输入图像302的所有相应的像素。中间像素值未被示出为光源掩模316的一部分,但是可以用于在掩模区域336和掩模区域338之间创建逐渐的过渡。光源掩模316的逆(未示出)包括被分配第二值(例如,与黑色相对应的0)的掩模区域336的每个像素,并且因此被配置为“阻挡”去眩光图像306的所有相应的像素,并且掩模区域338的每个像素被分配第一值(例如,与白色相对应的255或1),并且因此被配置为“通过”去眩光图像306的所有相应像素。
75.经修改的输入图像312包括表示330、332和334,其中表示332(以及在一些情况下,表示330)已被修改为增强镜头眩光的视觉外观,如由比输入图像302中所示的更粗的相应线条所指示的。在其他情况下,表示332可以可替代地和/或附加地通过改变其颜色和/或通过降低其强度(例如,降低相应像素的亮度)以及其他可能的方式来修改。经修改的输入图像320包括表示330和表示334,并且排除表示332。因此,经修改的输入图像320像场景在没有镜头眩光的情况下看起来的那样来表示相应的场景。
76.四.示例训练操作
77.图4示出了用于训练机器学习模型304以从图像中确定/识别镜头眩光表示的示例系统和过程。具体地,可以基于训练图像420来训练机器学习模型304,训练图像420可以基于基准图像400和镜头眩光图像406来生成。基准图像400可以包括基准图像402至基准图像404(即,基准图像402-404)。基准图像400可以表示多个不同的场景/环境。在一些情况下,基准图像400或其子集可以包括没有镜头眩光表示的图像,并且因此可以被认为表示“干净的”场景/环境。因此,由于缺少镜头眩光表示,基准图像400可替代地被称为自然图像、干净图像、无眩光图像和/或无眩光自然图像。基准图像400的每个基准图像可以使用变量i0来表示。
78.镜头眩光图像406可以包括模拟镜头眩光图像408和/或实验镜头眩光图像414。模拟镜头眩光图像408可以包括镜头眩光图像410至镜头眩光图像412(即,镜头眩光图像410-412),实验镜头眩光图像可以包括镜头眩光图像416至镜头眩光图像418(即,镜头眩光图像416-418)。镜头眩光图像406可以包括多个不同的镜头眩光表示。在一些情况下,镜头眩光图像406可以表示相对于单色调(例如,黑色)背景而不是相对于非均匀背景(例如,环境表示)的多个不同的镜头眩光变化,使得表示镜头眩光的镜头眩光图像406的部分可以容易地与不表示镜头眩光的部分相分离/区分。因此,镜头眩光图像406可以因为仅包括镜头眩光表示而被可替代地称为仅有炫光的图像。镜头眩光图像406的每个镜头眩光图像可以使用变量f来表示。
79.模拟镜头眩光图像408可以基于至少(i)光源和(ii)一个或多个相机设备(包括其一个或多个相应光学组件)的计算机模拟来生成。模拟镜头眩光图像408可以表示由相机设备的相应光学组件上存在的瑕疵(例如灰尘、划痕等)引起的光的散射和/或衍射导致的镜头眩光。因为这样的瑕疵是随机的,所以实验性地收集表示由各种瑕疵(这些瑕疵代表了实践中可能遇到的瑕疵)导致的镜头眩光的多个图像可能是有挑战性的、耗时的、困难的和/或不可行的。然而,模拟允许控制这各种瑕疵,从而允许生成覆盖和/或代表实践中可能遇到的各种可能瑕疵的图像。在一些情况下,模拟镜头眩光图像408可以附加地或可替代地表示由来自相机设备的光学组件(例如,镜头)的光的内部反射而导致的镜头眩光。
80.在一个示例中,计算机模拟可以包括基于相机设备的光瞳函数的傅立叶变换来生成相机设备的点扩散函数具体地,光瞳函数可以是基于(i)光圈函数a、(ii)线性相移项φs(x/z,y/z)和(iii)散焦项φ
df
(z)的。点扩散函数可以表示为(i)光圈函数和(ii)线性相移项和散焦项之和的指数的乘积,即,
81.光圈函数a可以可替代地被称为振幅,并且可以表示相机设备的光圈和/或一个或多个镜头的一个或多个模拟瑕疵(例如,灰尘或划痕的存在)。因此,可以使用多个不同的光圈函数来表示多个不同的瑕疵。例如,为了模拟多个不同的瑕疵,可以在表示相机设备的光圈和/或一个或多个镜头的盘上(例如,随机地)生成各种尺寸和/或各种透明度的多个不同的线和点。
82.线性相移项φs(x/z,y/z)可以表示由相机设备的一个或多个镜头导致的相移。线性相移项φs(x/z,y/z)可以基于光入射到相机设备的一个或多个镜头上的角度来确定,并且因此可以是基于相机设备和光源之间的模拟相对位置的。散焦项φ
df
(z)可以基于模拟光源相对于相机设备的一个或多个镜头的深度,表示模拟光源失焦的程度。因此,散焦项φ
df
(z)也可以基于相机设备和光源之间的模拟相对位置来确定。
83.点扩散函数可以是特定于单个波长λ0的。因此,为了模拟包括(例如,与电磁波谱的可见部分相对应的)多个波长的光源,可以以多个不同的波长来对点扩散函数进行采样。例如,点扩散函数可以以5纳米的增量从380纳米到740纳米来采样,从而生成表示发射多个不同波长的光源的多通道(例如,73-通道)点扩散函数psf
λ
。在一些实现方式中,点扩散函数可以沿着不同的波长范围和/或以不同的增量来采样。
84.多通道点扩散函数psf
λ
可以用于生成模拟传感器测量,从而得到模拟镜头眩光图
像408中相应的一个模拟镜头眩光图像。具体地,可以通过将多通道点扩散函数psf
λ
乘以与模拟相机设备的图像传感器相对应的颜色矩阵c来生成模拟传感器测量。颜色矩阵c可以表示例如从点扩散函数空间到图像空间(表示为例如红-绿-蓝(rgb)像素值)的变换。因此,可以根据函数psf
rgb
=c(psf
λ
)来确定模拟镜头眩光图像。可以使用多个不同的颜色矩阵来模拟不同类型的图像传感器。
85.模拟镜头眩光图像408可以包括多个不同的镜头眩光表示。这些不同的表示可以通过改变光圈函数a、光源和相机设备之间的相对位置(从而改变线性相移项φs(x/z,y/z)和散焦项φ
df
(z))、多通道点扩散函数psf
λ
和/或颜色矩阵c来生成。在一些情况下,镜头眩光图像408的生成还可以包括一个或多个光学失真(例如桶形失真、枕形失真等)的应用,以使镜头眩光表示显得更加逼真。
86.实验镜头眩光图像414可以通过使用一个或多个物理相机设备捕获物理光源的图像来生成。实验镜头眩光图像414可以表示由来自相机设备的光学组件(例如,镜头)的光的内部反射导致的镜头眩光。模拟表示由内部反射导致的镜头眩光的多个图像可能是有挑战性的、耗时的、困难的和/或不可行的,因为这种模拟可能取决于光学组件(例如,镜头)的准确光学模型,而该准确光学模型可能是不可公开获得的。
87.然而,由内部反射导致的镜头眩光表示在类似的相机设备和/或类似的光学组件(例如,镜头)上通常是相似的。例如,镜头眩光表示在特定相机模型的不同实例中可能是相似的。因此,已经使用各种(例如,常用的)相机设备和/或光学组件物理上捕获的图像可以覆盖和/或代表与相同或类似相机设备和/或光学组件相关联的各种可能的镜头眩光表示。在一些情况下,实验镜头眩光图像414可以附加地或可替代地表示由相机设备的相应光学组件上存在的瑕疵(例如,灰尘、划痕等)引起的光的散射和/或衍射导致的镜头眩光。
88.具体地,实验镜头眩光图像414可以包括由一个或多个相机设备从一个或多个相机和光源之间的多个不同相对位置(例如,线性和/或角度位置)捕获的光源表示。光源和一个或多个相机设备可以被设置在光学隔离的环境中,使得一个或多个相机设备基本上仅捕获由光源发射的光。附加地或可替代地,可以相对于单色调(例如,黑色)背景拍摄光源,使得镜头眩光和/或光源的表示可与背景分离(例如,基于具有除黑色之外的颜色的镜头眩光的表示)。
89.在实验镜头眩光图像414的捕获期间,光源可以是固定的,而相机可以被设置在允许其相对于光源的姿态被控制和/或修改(或者反之亦然)的旋转台和/或平移台上。在一个示例中,可以沿着相机设备沿特定方向从负五十度到正五十度的等距角扫描的每一度来捕获相应实验镜头眩光图像。在另一个示例中,可以在沿着相机设备沿特定方向的线性扫描的多个线性位置中的每一个处捕获相应实验镜头眩光图像。此外,在一些情况下,可以对在相邻姿态处捕获的实验性镜头眩光图像进行内插(interpolate),以生成表示可能已经在相邻姿态之间观察到的镜头眩光的附加图像。例如,可以使用两个相邻的实验图像来生成例如1、2、4、8或其他数量的内插实验图像。
90.从不同的相对位置捕获光源的图像可以允许生成由内部反射导致的多个不同的镜头眩光表示,因为镜头眩光表示的视觉图案取决于光的入射角。类似地,使用多个不同的相机设备捕获光源的图像可以进一步增加由内部反射导致的多个不同的镜头眩光表示,因为镜头眩光表示的视觉图案取决于每个相机设备的光学组件的光学属性。
91.训练图像420可以包括训练图像422至训练图像424(即,训练图像422-424)。训练图像420中的每一个可以通过将基准图像400的相应的基准图像与镜头眩光图像406的相应的镜头眩光图像相组合而形成。例如,训练图像422可以通过将基准图像402与镜头眩光图像410相组合来形成,而训练图像424可以通过将基准图像404与镜头眩光图像418相组合来形成。在一些情况下,基准图像400的特定基准图像可以与镜头眩光图像406的多个不同的镜头眩光图像相组合,从而形成训练图像420的多个不同训练图像。类似地,镜头眩光图像406的特定镜头眩光图像可以与基准图像400的多个不同的基准图像相组合,从而形成训练图像420的多个不同训练图像。因此,基准图像400的数量可以不同于镜头眩光图像406的数量。在一些情况下,训练图像420可以基于模拟镜头眩光图像408来生成,而不是基于实验镜头眩光图像414来生成,反之亦然。
92.训练图像420的每个训练图像可以使用变量if来表示,并且可以根据函数if=i0+f+n来计算,其中n表示添加的噪声。因此,在一个示例中,特定基准图像可以通过将特定基准图像的多个像素值添加到相应的镜头眩光图像的相应的像素值来与相应的镜头眩光图像相组合。具体地,可以将相应的镜头眩光图像中表示镜头眩光(而不是单色调背景)的像素值添加到特定基准图像中空间上相应的像素的值。在一些情况下,噪声可以被添加到每个得到的像素值,以生成训练图像的相应的训练像素。例如,可以从具有零均值和σ标准差(例如,σ=0.01)的正态分布n(0,σ2)中选择高斯噪声。也可以以其他方式(诸如通过对其他类型的分布进行随机地采样)来添加噪声。
93.在另一个示例中,训练像素值可以是基于基准像素值和相应的镜头眩光像素值的加权和的。在另一个示例中,通过在特定基准图像中用来自相应的镜头眩光图像的相应的像素值替换多个像素值,特定基准图像可以与该相应的镜头眩光图像相组合。具体地,相应的镜头眩光图像中表示镜头眩光(而不是单色调背景)的像素的像素值可以替换特定基准图像中空间上相应的像素。因此,与最初不表示镜头眩光的特定基准图像的像素相关联的像素值可以用从相应的镜头眩光图像获得的新值来替换,使得得到的训练图像表示其中添加了镜头眩光表示的基准图像的场景。
94.通过由机器学习模型304处理一个或多个相应训练图像,可以为训练图像420的一个或多个相应训练图像中的每一个生成相应的经修改的图像430。经修改的图像430可以用于生成镜头眩光图像432和/或可以基于恢复的镜头眩光图像432来生成。恢复的镜头眩光图像432可以包括作为机器学习模型304处理的结果而从相应的训练图像中被移除的镜头眩光表示。经修改的图像430可以被表示为im,并且恢复的镜头眩光图像432可以被表示为ir。
95.在一些实现方式中,可以训练机器学习模型304来生成经修改的图像430(如图4所示),并且可以经由从相应的训练图像中减去经修改的图像430来确定恢复的镜头眩光图像432。因此,机器学习模型304可以由函数f(if,θ)来表示,其中θ表示机器学习模型304的多个参数值(在训练期间可调整),f(if,θ)=im并且ir=i
f-im。在其他实现方式中,机器学习模型304可以替代地被训练为生成恢复的镜头眩光图像432(未示出),并且经修改的图像430可以经由从相应的训练图像中减去恢复的镜头眩光图像432来确定。因此,机器学习模型304可以由函数f(if,α)来表示,其中α表示机器学习模型304的多个参数值(在训练期间可调),f(if,α)=ir并且im=i
f-ir。
96.一旦机器学习模型304的训练完成,经修改的图像430可以是包括很少或基本不包括在相应的训练图像中发现的镜头眩光表示的去眩光图像。当机器学习模型304被训练时,经修改的图像430可以表示尝试从相应的训练图像中移除镜头眩光表示,并且可以用于调整机器学习模型304的一个或多个参数以提高移除该表示的准确度。
97.具体地,损失函数434可以被配置为将经修改的图像430与用于形成经修改的图像430所基于的相应的训练图像的相应基准图像进行比较。例如,当基于机器学习模型304对训练图像422的处理来生成经修改的图像430时,损失函数434可以被配置为将经修改的图像430与基准图像402进行比较,以量化基准图像402已经被重构的准确程度。在一个示例中,损失函数434可以表示经修改的图像430和相应基准图像(例如,上面示例中的基准图像402)之间的l1损失,并且可以由函数li(θ)=||i
m-i0||1来表示。在机器学习模型304未被配置为对饱和像素和/或饱和像素区域进行去瑕疵(in-paint)的情况下,这样的饱和像素和/或饱和像素区域可以被损失函数434省略。
98.附加地或可替代地,损失函数436可以被配置为将恢复的镜头眩光图像432与用于形成恢复的镜头眩光图像432所基于的相应的训练图像的相应的镜头眩光图像进行比较。例如,当基于机器学习模型304对训练图像422的处理生成经修改的图像430和恢复的镜头眩光图像432时,损失函数436可以被配置为将恢复的镜头眩光图像432与镜头眩光图像410进行比较,以量化镜头眩光图像410已经被移除的准确程度。在一个示例中,损失函数436可以表示恢复的镜头眩光图像432和相应镜头眩光图像(例如,上面示例中的镜头眩光图像410)之间的l1损失,并且可以由lf(θ)=||i
r-f||1来表示。除了损失函数434之外,还可以使用损失函数436来提高经训练的机器学习模型304从图像中移除镜头眩光表示的准确度。
99.在一些情况下,一个或多个附加损失函数(未示出)可以用于机器学习模型304的训练。例如,第三损失函数可以被配置为比较通过预先训练的图像处理模型(例如,预先训练的卷积神经网络)处理(i)经修改的图像430和(ii)相应基准图像中的每一个的结果。例如,当基于机器学习模型304对训练图像422的处理生成经修改的图像430时,第三损失函数可以被配置为将通过预先训练的图像处理模型处理经修改的图像430的结果φ
l
(im)与通过预先训练的图像处理模型处理基准图像402的结果φ
l
(i0)进行比较。
100.在一些情况下,结果φ
l
(im)和结果φ
l
(i0)可以表示预先训练的图像处理模型的特定特征层(由“l”下标表示),并且因此可以被视为相应图像的语义嵌入。因此,第三损失函数可以基于经修改的图像430和基准图像402的相应语义嵌入来量化机器学习模型304重构基准图像402的准确度。在一个示例中,第三损失函数可以表示在经修改的图像430的嵌入和相应基准图像(例如,上述示例中的基准图像402)的嵌入之间、跨l个特征层计算的l1损失,并且可以由l
p
(θ)=∑
l
λ
l
||φ
l
(im)-φ
l
(i0)||1来表示,其中λ
l
是特征层特定的权重。
101.参数调整器438可以被配置为基于损失函数434及其输出、损失函数436及其输出、和/或一个或多个附加损失函数及其输出,来调整机器学习模型304的一个或多个参数。例如,参数调整器438可以被配置为基于损失函数434和436以及一个或多个附加损失函数的加权和来计算总损失函数。因此,总损失函数可以表示为l(θ)=w1li(θ)+w2l
p
(θ)+w3lf(θ)。参数调整器438可以被配置为确定总损失函数在与通过其生成的损失值相对应的点处的梯度。基于该梯度,参数调整器438可以被配置为选择机器学习模型304的一个或多个参数的一个或多个新值。参数调整器438可以被配置为使用例如随机梯度下降、批梯度下降和/或
迷你批(mini-batch)梯度下降来训练机器学习模型304。可以执行训练迭代,直到机器学习模型304至少达到由总成本函数测量的准确度的阈值水平为止。
102.五.示例图像重采样
103.图5示出了被应用于不同分辨率的输入图像的系统300的各方面。具体地,机器学习模型304可以被配置为接受具有特定分辨率的图像数据作为输入并生成具有特定分辨率的图像数据作为输出。例如,如图5所示,特定分辨率可以是512像素乘512像素(即,512x512)。因此,为了对具有不同尺寸的图像数据进行操作,系统300可以包括下采样器502和上采样器510。例如,具有2048像素乘2048像素(即,2048x2048)的(第一)分辨率的输入图像500可以由下采样器502以因子四下采样,以生成具有512像素乘512像素的(第二)分辨率的输入图像504。
104.机器学习模型304可以被配置为处理输入图像504以生成分辨率为512像素乘512像素的去眩光图像506。系统300可以被配置为基于去眩光图像506和输入图像504之间的差来生成分辨率为512乘512像素的恢复的镜头眩光图像508。在替代实现方式中,机器学习模型304可以替代地被配置为处理输入图像504以生成恢复的镜头眩光图像508,并且系统300可以被配置为基于恢复的镜头眩光图像508和输入图像504之间的差来生成去眩光图像506(或者可以省略去眩光图像506的生成)。
105.上采样器510可以被配置为将恢复的镜头眩光图像508以因子四上采样,以生成分辨率为2048像素乘2048像素的恢复的镜头眩光图像512。系统300可以被配置为基于恢复的镜头眩光图像512和输入图像500之间的差来生成分辨率为2048乘2048像素的去眩光图像514。
106.因此,机器学习模型304可以应用在512像素乘512像素的第二较小分辨率,而系统300的输入和输出以2048乘2048像素的第一较高分辨率来提供。在其他情况下,可以使用其他分辨率。例如,特定于特定相机模型的机器学习模型304的实例可以被训练为接受并生成特定分辨率的图像,其可以对应于对特定相机模型被配置为生成的全分辨率图像数据的n倍(例如,两倍、四倍、八倍等)下采样。机器学习模型304的相机特定的实例可以考虑相应的全分辨率图像数据的纵横比,并且其输入和输出的纵横比可不同于一比一。
107.此外,掩模生成器314可以被配置为以机器学习模型使用的第二分辨率(例如,512x512)和/或以输入和输出图像数据的第一分辨率(例如,2048x2048)来生成光源掩模316。因此,在第一示例中,具有第一分辨率(2048x2048)的光源掩模316可以被应用于输入图像500和去眩光图像514。可替代地,在第二示例中,具有第二分辨率(512x512)的光源掩模316可以被应用于输入图像504和去眩光图像506,随后向上采样到第二分辨率(2048x2048)。
108.六.附加示例操作
109.图6示出了处理包含镜头眩光表示的图像的与训练机器学习模型相关的操作流程图。图7示出了与使用机器学习模型处理图像以便从图像中移除镜头眩光表示相关的操作流程图。图6和/或图7的操作可以由计算设备100、计算系统200、系统300和/或其他类型的计算设备来执行。图6和/或图7的操作可以由配备有一个或多个相机设备的计算设备来执行,和/或由没有任何相机设备的计算设备来执行。图6和/或图7的实施例可以通过移除其中所示的任何一个或多个特征来简化。此外,这些实施例可以与任何先前附图的特征、方面
和/或实现方式相组合、或者在此以其他方式描述。
110.转到图6,框600可以包括获得(i)多个基准图像和(ii)多个镜头眩光图像。
111.框602可以包括通过将多个基准图像中的每个相应基准图像与多个镜头眩光图像中相应的镜头眩光图像相组合来生成多个训练图像。例如,相应基准图像中的一个或多个像素的值可以被添加到相应的镜头眩光图像中表示镜头眩光(而不是背景)的一个或多个像素的值、或者被相应的镜头眩光图像中表示镜头眩光(而不是背景)的一个或多个像素的值替换。
112.框604可以包括通过由机器学习模型处理相应训练图像来为多个训练图像中的每个相应训练图像确定经修改的图像。经修改的图像可以包括其中移除了相应的镜头眩光表示的至少一部分的相应训练图像。在机器学习模型的训练过程中,机器学习模型确定训练图像中相应的镜头眩光表示的程度和/或准确度可以提高。因此,从相应训练图像中移除相应的镜头眩光表示的程度和/或准确度也可以提高。
113.框606可以包括基于损失函数为多个训练图像中的每个相应训练图像确定损失值,该损失函数被配置为将经修改的图像与用于生成相应训练图像的相应的基准图像进行比较。
114.框608可以包括基于(i)为每个相应训练图像确定的损失值和(ii)损失函数来调整机器学习模型的一个或多个参数。例如,可以基于损失函数在损失值处或附近的梯度值来调整一个或多个参数。
115.在一些实施例中,多个镜头眩光图像可以包括一个或多个模拟镜头眩光图像,该一个或多个模拟镜头眩光图像是通过计算地模拟相机设备的光学系统生成一个或多个第一镜头眩光图案的表示而生成的。例如,可以模拟相机设备的光学组件(诸如镜头和图像传感器)以及用于发射相机设备被配置为捕获的光的光源。
116.在一些实施例中,一个或多个第一镜头眩光图案的表示的至少一部分可以表示由相机设备的镜头上存在的一个或多个缺陷引起的光的散射。例如,缺陷可以包括镜头上存在的灰尘和/或镜头上存在的划痕或其他物理瑕疵。捕获包括各种各样的缺陷的实验数据可能是困难、耗时和/或不切实际的,因为可能难以准确地控制相机设备的物理组件上存在的物理缺陷。然而,模拟可以允许更容易地控制缺陷的尺寸、定位和/或其他属性,并且因此可以有助于收集代表各种各种各样的镜头眩光表示的镜头眩光图像。
117.在一些实施例中,计算地模拟相机设备的光学系统可以包括确定相机设备的光圈函数。光圈函数可以表示相机设备的镜头上存在的一个或多个缺陷。例如,沿着相机设备的模拟版本的模拟光圈的每个点可以与相应的光透明度相关联,其中缺陷具有与光圈的非缺陷部分不同的透明度。线性相移可以基于相机设备相对于模拟光源的角度位置来确定。散焦的程度可以基于相机设备相对于模拟光源的深度来确定。可以基于(i)光圈函数和(ii)线性相移和散焦的程度之和的指数函数的乘积的傅立叶变换来确定相机设备的点扩散函数。因此,计算模拟可以用于对(具有相应的缺陷的)一个或多个相机设备对各种模拟光源的物理响应进行建模。
118.在一些实施例中,计算地模拟相机设备的光学系统还可以包括通过以多个不同的波长对点扩散函数采样来生成表示非相干光源的多通道点扩散函数。例如,点扩散函数可以以5纳米的增量从380纳米到740纳米来采样,得到73-通道点扩散函数。一个或多个模拟
镜头眩光图像的特定模拟镜头眩光图像可以通过将多通道点扩散函数乘以被配置为将多通道点扩散函数变换到图像空间的颜色矩阵来生成。因此,在模拟相机设备的图像平面上形成的图像可以被变换为共同定义了相应的图像(其包含由光圈函数表示的相应的缺陷导致的相应镜头眩光表示)的像素值(例如,红-绿-蓝像素值)。
119.在一些实施例中,一个或多个模拟镜头眩光图像的附加模拟镜头眩光图像可以通过调整以下中的一个或多个来生成:(i)光圈函数、(ii)相机设备相对于模拟光源的位置、或者(iii)颜色矩阵。因此,模拟镜头眩光图像可以代表导致各种不同的镜头眩光表示的各种可能的物理条件。
120.在一些实施例中,多个镜头眩光图像可以包括使用物理相机设备捕获的一个或多个实验镜头眩光图像。一个或多个实验镜头眩光图像可以包含由一个或多个光源向相机设备发射光而导致的一个或多个第二镜头眩光图案的表示。可以用相对于一个或多个光源以一个或多个不同姿态设置的相机设备来捕获一个或多个实验镜头眩光图像。
121.在一些实施例中,一个或多个实验镜头眩光图像可以包括用相对于一个或多个光源以多个不同姿态设置的相机设备捕获的多个实验镜头眩光图像。因此,实验镜头眩光图像可以表示真实世界条件下由实际相机设备捕获的镜头眩光。相机相对于光源的位置和/或朝向的变化可以生成各种不同的镜头眩光表示,从而提供训练图像的多样性。
122.在一些实施例中,相机设备可以包括多个不同的相机设备。多个不同相机设备中的每个相机设备可以与多个不同相机设备中的其他相机设备在至少一个成像/光学参数上不同。因此,实验镜头眩光图像可以包括从各种可能的相机设计/实现方式导致的镜头眩光表示,并且因此可以允许机器学习模型学习,以外推到由机器学习模型相对其还没有被专门训练的相机设备捕获的镜头眩光表示。
123.在一些实施例中,一个或多个第二镜头眩光图案的表示的至少一部分可以表示来自相机设备的镜头的一个或多个表面的光的反射。由于难以获得/确定相机设备所使用的镜头的准确模型(其可能不是镜头设计者和/或制造商公开可用/可得到的),因此由镜头对光的反射导致的镜头眩光可能难以模拟。此外,由特定相机捕获的反射导致的镜头眩光表示在类似的相机设备和/或镜头模型上可能是相似的。因此,使用特定相机捕获的实验镜头眩光图像可以代表与类似相机设备相关联的镜头眩光。使用两个或更多个不同的相机模型来捕获镜头眩光图像可以进一步提高训练图像的信息多样性。
124.在一些实施例中,可以(i)通过机器学习模型或(ii)基于经修改的图像和相应训练图像之间的差,来为多个训练图像中的每个相应训练图像确定恢复的镜头眩光图像。例如,恢复的镜头眩光图像可以包括包含在相应训练图像中的镜头眩光表示,并且可以表示很少或没有由相应训练图像表示的场景的其他方面。在一些情况下,经训练的机器学习模型可以被配置为产生基本上不包含任何镜头眩光表示的经修改的图像,从而得到基本上仅包括镜头眩光表示而基本上不表示场景的任何其他部分的恢复的镜头眩光图像。在其他情况下,经训练的机器学习模型可以被配置为产生基本上仅包含镜头眩光表示而基本上不表示场景的任何其他部分的恢复的镜头眩光图像。可以进一步基于第二损失函数来为每个相应训练图像确定损失值,该第二损失函数被配置为将恢复的镜头眩光图像与用于生成相应训练图像的相应的镜头眩光图像进行比较。
125.因此,损失值可以表示机器学习模型确定/识别训练图像中的镜头眩光表示的准
确度,以及这些镜头眩光表示与用于生成训练图像的原始镜头眩光表示匹配的准确度。通过提供机器学习模型相对于真实数据的输出质量的附加度量,使用第二损失函数可以提高训练的机器学习模型的准确度。
126.在一些实施例中,确定损失值可以包括确定(i)第一加权值和损失函数的输出的乘积和(ii)第二加权值和第二损失函数的输出的乘积之和。例如,第一加权值和第二加权值中的每一个可以相等(例如,每个可以等于0.5),使得该损失函数和第二损失函数中的每一个对损失值的计算做出相等的贡献。其他加权值也是可能的,并且可以用于改善机器学习模型的各个方面,诸如准确度和/或训练率等。
127.在一些实施例中,机器学习模型可以包括卷积神经网络。例如,机器学习模型可以根据u-net架构或vgg-19架构以及其他可能的架构来布置。
128.在一些实施例中,多个基准图像可以包括多个单视场图像。因此,机器学习模型可以被训练为确定镜头眩光表示,而不依赖于存在于例如立体图像和/或多个顺序捕获的图像中的线索和/或信息等等。
129.在一些实施例中,多个基准图像的至少一个子集可以包括不包含镜头眩光表示的无眩光图像。因此,当这样的基准图像与镜头眩光图像相组合时,可以准确地知道所得图像中的镜头眩光表示,因为镜头眩光图像是这种镜头眩光表示的来源,并且基准图像不包含其他的镜头眩光表示。基准图像可以表示各种不同的场景/环境,使得机器学习模型可以被训练为泛化到各种可能的输入。
130.在一些实施例中,多个镜头眩光图像可以包含相对于单色调背景示出的相应镜头眩光表示。可以选择单色调背景,以允许镜头眩光表示容易地与背景分离。因此,例如,单色调背景可以是黑色的,以允许与镜头眩光表示形成高度对比。此外,可以在光学隔离的环境中捕获多个镜头眩光图像,使得基本上只有被拍摄的光源导致镜头眩光。当镜头眩光图像与相应的基准图像相组合时,镜头眩光表示可以被添加到基准图像,并且单色调背景可以被丢弃。
131.在一些实施例中,可以获得包含特定镜头眩光表示的输入图像。在调整机器学习模型的一个或多个参数之后,可以基于机器学习模型对输入图像的处理来生成去眩光图像。可以输出(例如,存储和/或显示)去眩光图像。去眩光图像可以包括其中移除了特定镜头眩光表示的至少一部分的输入图像。在一些情况下(例如,当机器学习模型被良好地训练时),机器学习模型的处理可以使得基本上所有的特定镜头眩光表示都被移除。
132.在一些实施例中,可以(i)由机器学习模型或者(ii)基于去眩光图像(其可以由机器学习模型生成)和输入图像之间的差来确定特定恢复的镜头眩光图像。特定恢复的镜头眩光图像可以构成已经从输入图像中移除的特定镜头眩光表示的部分。输入图像的第一修改版本可以通过基于特定恢复的镜头眩光图像调整输入图像中特定镜头眩光表示的视觉外观来生成。可以输出(例如,存储和/或显示)输入图像的第一修改版本。
133.在一些实施例中,调整输入图像中特定镜头眩光表示的视觉外观可以包括以下中的一个或多个:(i)增加视觉外观的强度、(ii)降低视觉外观的强度、或者(iii)调整视觉外观的颜色。因此,特定恢复的镜头眩光图像可以用于将各种视觉效果应用于输入图像中的特定镜头眩光表示。
134.在一些实施例中,可以通过将输入图像从第一分辨率下采样到第二分辨率来生成
输入图像的下采样版本。去眩光图像可以基于输入图像的下采样版本来生成。去眩光图像可以具有第二分辨率。可以(i)由机器学习模型或者(ii)通过从输入图像的下采样版本中减去去眩光图像来确定特定恢复的镜头眩光图像。特定恢复的镜头眩光图像可以具有第二分辨率。特定恢复的镜头眩光图像的上采样版本可以通过将特定恢复的镜头眩光图像从第二分辨率上采样到第一分辨率来生成。输入图像的第一修改版本可以通过基于特定恢复的镜头眩光图像的上采样版本来调整输入图像中特定镜头眩光表示的视觉外观来生成。因此,计算密集型操作可以以第二分辨率来执行,而得到的视觉效果可以以第一分辨率来应用,从而允许在降低计算成本的同时实现益处。
135.在一些实施例中,可以基于输入图像来确定光源掩模。光源掩模可以被配置为掩蔽(i)在输入图像中表示的且(ii)导致特定镜头眩光表示的一个或多个光源。输入图像的第二修改版本可以通过将(i)输入图像和光源掩模之间的逐像素乘法的第一乘积与(ii)去眩光图像和光源掩模的逆之间的逐像素乘法的第二乘积相组合来生成。可以输出(例如,存储和/或显示)输入图像的第二修改版本。
136.在一些情况下,机器学习模型可以被配置为确定/识别光源表示以及镜头眩光表示,从而移除光源表示。因此,光源掩模可以用于将光源表示重新引入到去眩光图像中,从而产生更逼真的图像。
137.在一些实施例中,光源掩模可以包括多个像素,并且可以具有与输入图像相同的分辨率。确定光源掩模可以包括在输入图像内识别与超过阈值亮度的相应亮度值相关联的一个或多个像素,并且通过(i)将第一值分配给多个像素中的一个或多个像素,它们在空间上对应于所述一个或多个像素的相应位置并且(ii)将第二值分配给多个像素中的一个或多个其他像素来确定光源掩模。例如,与光源相对应的像素每个可以被设置为1或255的值,而不与光源相对应的其他像素每个可以被设置为零的值。
138.转到图7,框700可以包括获得包含特定镜头眩光表示的输入图像。
139.框702可以包括通过由机器学习模型处理输入图像来生成去眩光图像,该去眩光图像包括其中移除了特定镜头眩光表示的至少一部分的输入图像。机器学习模型可能已经被训练为确定/识别图像中的镜头眩光表示。
140.框704可以包括输出去眩光图像。
141.在一些实施例中,可以(i)由机器学习模型或者(ii)基于去眩光图像和输入图像之间的差来确定特定恢复的镜头眩光图像。输入图像的第一修改版本可以通过基于特定恢复的镜头眩光图像调整输入图像中特定镜头眩光表示的视觉外观来生成。可以输出(例如,存储和/或显示)输入图像的第一修改版本。
142.在一些实施例中,调整输入图像中特定镜头眩光表示的视觉外观可以包括以下中的一个或多个:(i)增加视觉外观的强度、(ii)降低视觉外观的强度、或者(iii)调整视觉外观的颜色。
143.在一些实施例中,可以通过将输入图像从第一分辨率下采样到第二分辨率来生成输入图像的下采样版本。去眩光图像可以基于输入图像的下采样版本来生成。去眩光图像可以具有第二分辨率。可以(i)由机器学习模型或者(ii)通过从输入图像的下采样版本中减去去眩光图像来确定特定恢复的镜头眩光图像。特定恢复的镜头眩光图像可以具有第二分辨率。特定恢复的镜头眩光图像的上采样版本可以通过将特定恢复的镜头眩光图像从第
二分辨率上采样到第一分辨率来生成。输入图像的第一修改版本可以通过基于特定恢复的镜头眩光图像的上采样版本调整输入图像中特定镜头眩光表示的视觉外观来生成。
144.在一些实施例中,可以基于输入图像来确定光源掩模。光源掩模可以被配置为掩蔽(i)在输入图像中表示的且(ii)导致特定镜头眩光表示的一个或多个光源。输入图像的第二修改版本可以通过将(i)输入图像和光源掩模之间的逐像素乘法的第一乘积与(ii)去眩光图像和光源掩模的逆之间的逐像素乘法的第二乘积相组合来生成。可以输出(例如,存储和/或显示)输入图像的第二修改版本。
145.在一些实施例中,光源掩模可以包括多个像素,并且可以具有与输入图像相同的分辨率。确定光源掩模可以包括在输入图像内识别与超过阈值亮度的相应亮度值相关联的一个或多个像素,并且通过(i)将第一值分配给多个像素中的一个或多个像素,它们在空间上对应于一个或多个像素的相应位置以及(ii)将第二值分配给多个像素中的一个或多个其他像素来确定光源掩模。
146.在一些实施例中,可以基于多个训练图像来训练机器学习模型,该多个训练图像是通过将多个基准图像的每个相应基准图像与多个镜头眩光图像中相应的镜头眩光图像相组合而生成的。
147.在一些实施例中,机器学习模型可能已经被训练为通过获得(i)多个基准图像和(ii)多个镜头眩光图像来确定/识别图像中的镜头眩光表示。多个训练图像可以通过将多个基准图像中的每个相应基准图像与多个镜头眩光图像中相应的镜头眩光图像相组合来生成。通过由机器学习模型处理相应训练图像,可以为多个训练图像中的每个相应训练图像确定经修改的图像。经修改的图像可以包括其中移除了相应的镜头眩光表示的至少一部分的相应训练图像。可以基于损失函数来为多个训练图像中的每个相应训练图像确定损失值,该损失函数被配置为将经修改的图像与用于生成相应训练图像的相应的基准图像进行比较。可以基于(i)为每个相应训练图像确定的损失值和(ii)损失函数来调整机器学习模型的一个或多个参数。
148.在一些实施例中,可以(i)由机器学习模型或(ii)基于经修改的图像和相应训练图像之间的差,来为多个训练图像中的每个相应训练图像确定恢复的镜头眩光图像。可以进一步基于第二损失函数来为多个训练图像中的每个相应训练图像确定损失值,该第二损失函数被配置为将恢复的镜头眩光图像与用于生成相应训练图像的相应的镜头眩光图像进行比较。可以基于第二损失函数进一步调整一个或多个参数。
149.在一些实施例中,确定损失值可以包括确定(i)第一加权值和损失函数的输出的乘积和(ii)第二加权值和第二损失函数的输出的乘积之和。
150.在一些实施例中,多个镜头眩光图像可以包括一个或多个模拟镜头眩光图像,该一个或多个模拟镜头眩光图像通过计算地模拟相机设备的光学系统以生成一个或多个第一镜头眩光图案的表示来生成。
151.在一些实施例中,一个或多个第一镜头眩光图案的表示的至少一部分可以表示由相机设备的镜头上存在的一个或多个缺陷引起的光的散射。
152.在一些实施例中,计算地模拟相机设备的光学系统可以包括确定相机设备的光圈函数。光圈函数可以表示相机设备的镜头上存在的一个或多个缺陷。线性相移可以基于相机设备相对于模拟光源的角度位置来确定。散焦的程度可以基于相机设备相对于模拟光源
的深度来确定。可以基于(i)光圈函数和(ii)线性相移和散焦的程度之和的指数函数的乘积的傅立叶变换来确定相机设备的点扩散函数。表示非相干光源的多通道点扩散函数可以通过以多个不同的波长对点扩散函数进行采样来生成。一个或多个模拟镜头眩光图像的特定模拟镜头眩光图像可以通过将多通道点扩散函数乘以被配置为将多通道点扩散函数变换到图像空间的颜色矩阵来生成。一个或多个模拟镜头眩光图像的附加模拟镜头眩光图像可以通过调整以下中的一个或多个来生成:(i)光圈函数、(ii)相机设备相对于模拟光源的位置、或者(iii)颜色矩阵。
153.在一些实施例中,多个镜头眩光图像可以包括使用相机设备捕获的一个或多个实验镜头眩光图像。一个或多个实验镜头眩光图像可以包含由一个或多个光源向相机设备发射光而导致的一个或多个第二镜头眩光图案的表示。可以用相对于一个或多个光源以一个或多个不同姿态设置的相机设备来捕获一个或多个实验镜头眩光图像。
154.在一些实施例中,一个或多个实验镜头眩光图像可以包括用相对于一个或多个光源以多个不同姿态设置的相机设备捕获的多个实验镜头眩光图像。
155.在一些实施例中,一个或多个第二镜头眩光图案的表示的至少一部分可以表示来自相机设备的镜头的一个或多个表面的光的反射。
156.在一些实施例中,机器学习模型可以包括卷积神经网络。
157.在一些实施例中,多个基准图像可以包括多个单视场图像。
158.在一些实施例中,多个基准图像的至少一个子集可以包括不包含镜头眩光表示的无眩光图像。
159.在一些实施例中,多个镜头眩光图像可以包含相对于单色调背景示出的相应镜头眩光表示。
160.在一些实施例中,输出去眩光图像可以包括存储去眩光图像和/或显示去眩光图像。
161.七.结论
162.本公开不限于本技术中描述的特定实施例,这些实施例旨在作为各个方面的说明。可以在不脱离本公开范围的情况下进行多种修改和变化,这对于本领域技术人员来说是清楚的。除了本文所描述的那些方法和装置之外,根据前文的描述,本公开范围内功能等同的方法和装置对于本领域技术人员是清楚的。这样的修改和变化旨在落入所附权利要求的范围内。
163.以上详细描述参考附图描述了所公开的系统、设备和方法的各种特征和操作。在附图中,相似的符号通常标识相似的组件,除非上下文另有说明。本文和附图中描述的示例实施例并不意味着是限制性的。在不脱离本文所呈现的主题的范围的情况下,可以利用其他实施例,并且可以进行其他改变。将容易理解的是,如本文一般描述的和附图中示出的,本公开的方面可以以多种不同的配置来布置、替换、组合、分离和设计。
164.关于图中以及如本文所讨论的任何或所有消息流图、场景和流程图,每个步骤、框和/或通信可以表示根据示例实施例的信息处理和/或信息传输。替代实施例包括在这些示例实施例的范围内。在这些替代实施例中,例如,取决于所涉及的功能,被描述为步骤、框、传输、通信、请求、响应和/或消息的操作可以不按所示或所讨论的顺序来执行,包括基本上同时或相反的顺序。此外,更多或更少的框和/或操作可以与本文所讨论的任何消息流图、
场景和流程图一起使用,并且这些消息流图、场景和流程图可以彼此部分或全部地组合。
165.表示信息处理的步骤或框可以对应于可以被配置为执行本文所描述的方法或技术的特定逻辑功能的电路。可替代地或附加地,表示信息处理的框可以对应于模块、程序代码段或程序代码部分(包括相关数据)。程序代码可以包括可由处理器执行、以用于实现方法或技术中的特定逻辑操作或动作的一个或多个指令。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,诸如包括随机访问存储器(ram)、磁盘驱动、固态驱动或其他存储介质的存储设备。
166.计算机可读介质还可以包括非暂时性计算机可读介质,诸如短时间存储数据的计算机可读介质,如寄存器存储器、处理器高速缓存和ram。计算机可读介质还可以包括长时间存储程序代码和/或数据的非暂时性计算机可读介质。因此,计算机可读介质可以包括辅助或永久长期存储,例如,如只读存储器(rom)、光盘或磁盘、固态驱动、紧凑盘只读存储器(cd-rom)。计算机可读介质也可以是任何其他易失性或非易失性存储系统。计算机可读介质可以被认为是例如计算机可读存储介质或有形存储设备。
167.此外,表示一个或多个信息传输的步骤或框可以对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间进行。
168.图中所示的特定布置不应被视为限制。应当理解,其他实施例可以包括给定附图中所示的或多或少的每个元件。此外,所示元件中的一些可以被组合或省略。此外,示例实施例可以包括未在附图中示出的元件。
169.尽管本文已经公开了各个方面和实施例,但是其他方面和实施例对于本领域技术人员来说是清楚的。本文所公开的各个方面和实施例是为了说明的目的,而不是为了限制,真正的范围由所附权利要求来指示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1