首页> 中国专利> 图像中雾的空间变化的减少

图像中雾的空间变化的减少

摘要

提供了用于雾减少的方法、系统、设备和有形的非暂时性计算机可读介质。所公开的技术可以包括基于包括点的输入图像生成特征向量。特征向量可以对应于与点的不同部分的特征相关联的特征窗口。基于特征向量和机器学习模型,可以生成雾厚度图。雾厚度图可以与对每个点处的雾厚度的估计相关联。此外,机器学习模型可以估计与特征相关联的雾厚度。可以基于雾厚度图和引导过滤器生成细化的雾厚度图。可以基于对输入图像的细化的雾厚度图的应用生成去雾化图像。此外,可以基于对去雾化图像的颜色校正操作的执行来生成经颜色校正的去雾化图像。

著录项

  • 公开/公告号CN113287146A

    专利类型发明专利

  • 公开/公告日2021-08-20

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN201980023003.8

  • 发明设计人 朱翔;Y.胡;M.A.杜谢诺;

    申请日2019-12-20

  • 分类号G06T5/00(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人金玉洁

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:16:29

说明书

技术领域

本公开一般地涉及雾(haze)减少,并且具体地涉及一种使用机器学习模型来减少图像中雾的系统。

背景技术

可以在各种计算设备上实现与机器学习模型相关联的操作。这些操作可以包括处理各种输入以生成输出,以供用户或另一计算系统访问和使用。此外,操作可以包括评估由各种计算系统执行的操作。然而,输入的类型和执行操作的方式会随着时间的推移而改变,实现操作的底层硬件也会改变。因此,有不同的方式来利用与机器学习模型相关联的计算资源。

发明内容

本公开的实施例的方面和优点将在下面的描述中部分阐述,或者可以从描述中学习,或者可以通过实施例的实践来学习。

本公开的一个示例方面涉及一种雾减少的计算机实现的方法。所述计算机实现的方法可以包括由包括一个或多个处理器的计算系统至少部分地基于包含多个点的输入图像生成与至少部分地基于多个点的不同部分的一个或多个特征的多个特征窗口相关联的多个特征向量。此外,计算机实现的方法可以包括由计算系统至少部分地基于多个特征向量和一个或多个机器学习模型,生成与对多个点中的每个点处的雾厚度的估计相关联的雾厚度图。一个或多个机器学习模型可以被配置为执行包括估计与一个或多个特征相关联的雾厚度的操作。计算机实现的方法还可以包括由计算系统至少部分地基于雾厚度图和引导过滤器生成细化的雾厚度图。计算机实现的方法可以包括由计算系统至少部分地基于对输入图像应用细化的雾厚度图生成去雾化图像(dehazed image)。此外,计算机实现的方法可以包括由计算系统至少部分地基于对去雾化图像执行一个或多个颜色校正操作来生成经颜色校正的去雾化图像。

本公开的另一个示例方面涉及存储计算机可读指令的一个或多个有形的非暂时性计算机可读介质,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行操作。所述操作可以包括至少部分地基于包含多个点的输入图像生成与至少部分地基于多个点的不同部分的一个或多个特征的多个特征窗口相关联的多个特征向量。此外,所述操作可以包括至少部分地基于多个特征向量和一个或多个机器学习模型生成与对多个点中的每个点处的雾厚度的估计相关联的雾厚度图。一个或多个机器学习模型可以被配置为执行包括估计与一个或多个特征相关联的雾厚度的操作。操作还可以包括至少部分地基于雾厚度图和引导过滤器生成细化的雾厚度图。操作可以包括至少部分地基于对输入图像应用细化的雾厚度图生成去雾化图像。此外,操作可以包括至少部分地基于对去雾化图像执行一个或多个颜色校正操作来生成经颜色校正的去雾化图像。

本公开的另一个示例方面涉及一种计算系统,该计算系统可以包括:一个或多个处理器;以及存储指令的一个或多个有形的非暂时性计算机可读介质,当由一个或多个处理器执行时,所述指令使得一个或多个处理器执行操作。所述操作可以包括至少部分地基于包含多个点的输入图像生成与至少部分地基于多个点的不同部分的一个或多个特征的多个特征窗口相关联的多个特征向量。此外,所述操作可以包括至少部分地基于多个特征向量和一个或多个机器学习模型生成与对多个点中的每个点处的雾厚度的估计相关联的雾厚度图。一个或多个机器学习模型可以被配置为执行包括估计与一个或多个特征相关联的雾厚度的操作。操作还可以包括至少部分地基于雾厚度图和引导过滤器生成细化的雾厚度图。操作可以包括至少部分地基于对输入图像应用细化的雾厚度图生成去雾化图像。此外,操作可以包括至少部分地基于对去雾化图像执行一个或多个颜色校正操作来生成经颜色校正的去雾化图像。

本公开的其他示例方面涉及用于雾减少的其他方法、系统、设备、装置或有形的非暂时性计算机可读介质。

参考以下描述和所附权利要求,将更好地理解各种实施例的这些和其他特征、方面和优点。并入本说明书并构成本说明书的一部分的附图说明了本公开的实施例,并且与描述一起用于说明相关原理。

附图说明

参考附图在说明书中阐述了指向本领域普通技术人员的实施例的详细讨论,在附图中:

图1描绘了根据本公开的示例实施例的示例系统的图;

图2描绘了根据本公开的示例实施例的示例设备的图;

图3描绘了根据本公开的示例实施例的作为雾减少技术的一部分的特征提取的示例;

图4描绘了根据本公开的示例实施例的训练机器学习模型以执行雾减少技术的示例;

图5描绘了根据本公开的示例实施例的包括生成雾图的雾减少技术的示例;

图6描绘了根据本公开的示例实施例的包括颜色校正的雾减少技术的示例;

图7描绘了根据本公开的示例实施例执行雾减少操作的流程图;

图8描绘了根据本公开的示例实施例执行雾减少操作的流程图;

图9描绘了根据本公开的示例实施例执行雾减少操作的流程图;以及

图10描绘了根据本公开的示例实施例执行雾减少操作的流程图。

具体实施方式

现在将详细参考实施例,其一个或多个示例在附图中示出。通过对实施例的说明而不是本公开的限制来提供每个示例。事实上,对于本领域技术人员来说将显而易见的是,可以在不脱离本公开的范围或精神的情况下对实施例进行各种修改和变化。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生更进一步的实施例。因此,本公开的各方面旨在涵盖这些修改和变化。

本公开的示例方面涉及一种计算系统,该计算系统可以用于各种目的,包括从图像中去除雾(例如,云或其他大气粒子)或其他噪声,从而通过图像的去噪来提供图像增强。具体地,所公开的技术可以对有雾的图像执行操作,包括使用机器学习模型和诸如过滤的其他技术来从图像中去除雾。此外,所公开的技术可以使用暗通道信息和雾之间的关系来确定包括卫星图像的各种图像中的雾厚度的某些方面。因此,可以通过使用不同技术的组合来减少或去除图像中的雾或其他噪声。

所公开的技术可以在计算系统(例如,雾减少计算系统)中实现,所述计算系统被配置为访问包括与有雾的图像相关联的信息的数据,并对数据执行操作以减少图像中的雾量。该计算系统可以包括已经过训练以减少图像中的雾的机器学习模型,并且可以是可以用于将雾减少的图像作为最终产品输出的图像处理管道的一部分。

举例来说,所公开的技术可以被配置为访问输入图像(例如,由高空卫星捕获的地理区域的图像)并生成对应于图像的相应部分的特征窗口(例如,像素的方形分组)的特征向量。然后,雾减少计算系统可以生成指示与图像中的每个像素相关联的雾的估计厚度的雾厚度图。在一些实现方式中,雾厚度图部分地基于与每个特征窗口中最暗像素相关联的暗通道信息。

作为生成雾厚度图的一部分,与低强度像素相关联的暗通道信息可以用于生成更准确的雾厚度图。一旦生成了雾厚度图,就可以使用引导过滤器来细化雾厚度图。例如,引导过滤器可以将输入图像用作引导图像,然后可以将其应用于输入图像以生成保留边缘和平滑噪声的雾厚度图的细化版本。然后,可以将细化的雾厚度图应用于输入图像,以产生去雾化图像。此外,为了抵消在生成特征向量之前对输入图像执行的任何校正,可以将颜色校正技术应用于去雾化图像以产生经颜色校正的去雾化图像。可以输出去雾化图像或经颜色校正的去雾化图像以供进一步使用。例如,去雾化图像或经颜色校正的去雾化图像可以被输出到显示装置以被显示,或者可以被输出到用于对图像进行分类和/或分析的计算系统。

因此,所公开的技术可以改进减少图像中的雾的有效性,从而允许雾减少管道的性能的改进。此外,使用暗通道信息和被训练以分析特定类型的图像(例如卫星图像)的机器学习模型,可以导致更好质量的雾减少。

雾减少计算系统可以被配置为生成多个特征向量。所述多个特征向量可以至少部分地基于包括多个点(例如,多个像素)的输入图像。例如,输入图像可以包括由安装在飞越地理区域的飞机上的相机捕获的该地理区域的高空图像。此外,输入图像可以是有雾的和/或有噪声的。如本文所述,雾可以包括减少和/或降低图像的视觉质量的任何事物和/或与减少和/或降低图像的视觉质量的任何事物相关联。此外,雾可以包括噪声或使图像的一个或多个部分模糊和/或失真的任何其他事物。例如,雾可以包括悬浮在空气中的烟雾、云、灰尘和/或其他粒子,这些粒子减少空气的透明度,从而使同一区域中的一个或多个对象模糊。作为进一步的示例,雾可以包括云和/或烟雾,其覆盖由位于卫星上的面向地面的相机捕获的地面的图像的一个或多个部分。

此外,多个特征向量可以与至少部分地基于多个点的不同部分的一个或多个特征或与多个点的不同部分的一个或多个特征相关联的多个特征窗口相关联或相对应。例如,多个特征向量可以与每个特征窗口中的点的一个或多个特征(例如,视觉特征)相关联。

在一些实施例中,一个或多个特征可以包括暗通道、点的色调(hue)、点的饱和度和/或点的强度(例如,亮度)。暗通道或暗通道信息可以与在颜色空间的至少一个颜色通道(例如,RGB颜色空间的R通道)中具有低(例如,低于确定为低的某个阈值)或最低强度的点相关联。在一些实施例中,暗通道可以与图像中的雾厚度相关。此外,可以至少部分地基于以下函数来确定暗通道:d(x)=min_{x’in window(x)}(min_{c in R,G,B}(Y(x’,c))。在前面的暗通道函数中,d(x)可以表示来自图像Y的点x的暗通道;window(x)可以表示特征窗口;Y可以表示输入图像;c可以表示包括R通道、G通道或B通道的通道;以及Y(x’,c)可以表示图像Y在c通道中x'点处的强度(或像素值)其中x'可以是window(x)中的任意点。暗通道函数可以用于评估图像(例如,输入图像)中的多个点中的每一个。

此外,一个或多个特征可以与颜色空间相关联。例如,点的色调和饱和度可以分别表达为HSV颜色空间的H和S通道,并且点的强度或亮度可以表达为HSV颜色空间的V(值)通道。在其他实施例中,一个或多个特征可以与包括RGB颜色空间或YUV颜色空间的其他颜色空间相关联。

在一些实施例中,多个特征向量的生成可以包括为多个点中的每个点确定多个特征窗口。多个特征窗口中的每一个可以包括围绕每个点的多个点的一部分。例如,多个特征窗口中的每一个可以包括中心点(例如,距特征窗口的边缘中的每一个相等距离的点)和围绕中心点聚集的多个点。在一些实施例中,多个特征窗口可以是包括任何多边形形状(例如,正方形或矩形)的不同形状。此外,多个特征窗口中的每一个可以包括不同大小的多尺度特征窗口,其中每个特征窗口包括不同数量的点。例如,特征窗口的大小可以是三十一乘以三十(31x31)个点、二十一乘以二十一(21x21)个点和十一乘以十一(11x11)个点。在一些实施例中,多尺度特征窗口可以嵌套在一个或多个其他特征窗口内。例如,二十一乘以二十一(21x21)个点特征窗口可以嵌套在三十一乘以三十(31x31)个点特征窗口内。

在一些实施例中,多个特征向量的生成可以包括确定与多个特征窗口中的每一个中的最暗点相关联的一个或多个特征。多个特征窗口中的每一个中的最暗点可以至少部分地基于与点相关联的最低强度或亮度值。例如,可以确定特征窗口中最暗像素的色调、饱和度和强度。

此外,在一些实施例中,多个特征向量的生成可以包括至少部分地基于与多个特征窗口中的每一个中的最暗点相关联的一个或多个特征来生成多个特征向量。例如,特征向量中的每一个可以包括与多个特征窗口中的每一个中的最暗点相关联的色调、饱和度和强度。

在一些实施例中,多个特征向量的生成可以包括至少部分地基于与输入图像相关联的图像类型来调节多个特征窗口的大小。调节特征窗口的大小可以包括各种操作,包括确定与输入图像相关联的图像类型。图像类型可以至少部分地基于输入图像来确定。此外,图像类型可以至少部分地基于输入图像中描绘的内容。在一些实施例中,输入图像中描绘的内容可以与输入图像中多个点的颜色值相关联。例如,某些图像具有某些颜色通道的更大的优势,诸如RGB颜色空间图像的R(红色)通道在沙漠的图像中比在大部分由与RGB颜色空间的B(蓝色)通道相关联的点组成的海洋的图像中具有更大的表示。结果,较小的特征窗口大小可以用于从一种类型的特征(例如海洋)到另一种类型的特征(例如,海洋边缘处的陆地)急剧改变的图像的部分。

然后可以至少部分地基于图像类型来调节多个特征窗口的大小。特征窗口的大小可以与雾厚度图的偏差和方差相关联。较大的特征窗口可以与以较大偏差为代价的估计方差的减少相关联,而较小的特征窗口可以与具有较低偏差的增加的估计方差相关联。

在一些实施例中,输入图像可以描述由卫星的一个或多个传感器捕获的环境。此外,一个或多个传感器可以包括一个或多个相机或任何其他类型的图像捕获设备。例如,输入图像可以至少部分地基于卫星影像(imagery)或从飞机捕获的影像。

在一些实施例中,输入图像可以至少部分地基于已经对其执行了一个或多个颜色校正操作的非颜色校正的原始图像。例如,对输入图像执行的一个或多个颜色校正操作可以包括调节图像的白平衡。

雾减少计算系统可以生成雾厚度图。雾厚度图可以至少部分地基于多个特征向量和/或一个或多个机器学习模型。此外,雾厚度图可以与对多个点中的每个点处的雾厚度(例如,雾的幅值或量)的估计相关联。

可以配置和/或训练一个或多个机器学习模型来执行一个或多个操作,可以包括估计与一个或多个特征相关联的雾厚度。例如,可以配置和/或训练一个或多个机器学习模型以至少部分地基于与输入图像相关联的输入(例如,多个特征向量)来生成包括图像的多个点的估计雾厚度的输出(例如,雾厚度图)。

在一些实施例中,可以至少部分地基于训练数据来配置和/或训练一个或多个机器学习模型。训练数据可以包括图像,所述图像可以包括与对应的多个雾厚度标签相关联的多个模拟有雾的图像。雾厚度标签可以指示多个模拟有雾的图像中每个点处的雾的厚度。例如,多个模拟有雾的图像可以至少部分地基于已经向其添加了不同量的模拟雾的地理区域的实际图像(例如卫星图像)。

训练一个或多个机器学习模型可以包括提供多个模拟有雾的图像中的每一个作为对一个或多个机器学习模型的输入(例如,输入图像)。然后,一个或多个机器学习模型可以对输入执行一个或多个操作,并生成与相应的模拟有雾的图像相关联的输出(例如,雾厚度图)。然后,可以将输出应用于输入图像以生成雾减少的图像。一个或多个机器学习模型的输出可以至少部分地基于雾减少的图像和与每个模拟有雾的图像相关联的相应的地面真实图像(例如,没有模拟雾的同一图像)的一个或多个比较来评估。在一些实施例中,雾减少的图像和与每个模拟有雾的图像相关联的相应的地面真实图像的一个或多个比较可以包括雾减少的图像和与每个模拟有雾的图像相关联的相应的地面真实图像的一个或多个对应部分的一个或多个比较。

至少部分地基于一个或多个比较(例如,将雾减少的图像与相应的地面真实图像的比较),可以至少部分地基于对与由一个或多个机器学习模型生成的输出的准确度相关联的损失函数的评估来确定相关联的损失。一个或多个机器学习模型可以包括可以与输入的一个或多个特征(例如,与输入图像相关联的多个特征向量)的分析、处理、确定、生成和/或提取相关联的一个或多个参数。然后,可以至少部分地基于一个或多个参数中的每一个关于损失最小化所做的贡献来调节一个或多个机器学习模型的一个或多个参数。这样,一个或多个机器学习模型的一个或多个参数可以通过多个迭代被调节,从而减少损失,并且改进由一个或多个机器学习模型生成的雾图和相关联的雾减少的图像的准确度。

举例来说,一个或多个机器学习模型的不改变损失(或不会导致损失改变超过阈值量)的一个或多个参数可以保持相同;可以更重地加权减少损失的一个或多个参数(例如,调节以增加其对损失的贡献);和/或可以使增加损失的一个或多个参数的加权减少(例如,调节与相应的参数相关联的值以减少参数对损失的贡献)。

在一些实施例中,一个或多个机器学习模型可以包括具有至少两层的多层感知器,该多层感知器可以被配置为生成雾厚度图。在其它实施例中,可以使用不同类型的机器学习模型(例如,卷积神经网络、循环神经网络和/或递归神经网络)。此外,一个或多个机器学习模型可以包含包括一个层或多个层的不同数量的层。

由一个或多个机器学习模型生成的输出可能会受到在一个或多个机器学习模型的训练期间提供给一个或多个机器学习模型的数据集的影响。因此,不同的训练数据可以导致一个或多个机器学习模型的不同输出。一个或多个机器学习模型的性能可以与输入与在一个或多个机器学习模型的训练期间使用的输入的相似性正相关。

在一些实施例中,可以至少部分地基于和/或使用训练数据来训练一个或多个机器学习模型,所述训练数据包括至少部分地基于地理区域的一个或多个视觉特征的出现频率加权的地理区域的图像的采样。例如,被训练成去雾化主要包括森林的地理区域的一个或多个机器学习模型可以使用包括更大比例的描绘森林的图像的图像的样本来训练。此外,一个或多个视觉特征可以与水体、森林、山脉、农田、建筑物、道路、沙漠和/或平原的一个或多个图像的一个或多个部分的暗通道、色调、饱和度和/或强度相关联。

雾减少计算系统可以生成细化的雾厚度图。细化的雾厚度图可以至少部分地基于雾厚度图和/或引导过滤器。引导过滤器的使用可以在细化雾厚度图的同时保留边缘。此外,与其他过滤技术相比,引导过滤器可以导致较少的梯度失真(例如,没有梯度反转(gradient reversal))。此外,引导过滤器是非迭代的,这可以导致以其生成细化的厚度图的速度的改进,因为引导过滤器不必在雾厚度图上多次通过。在一些实施例中,细化的雾厚度图的生成可以包括使用输入图像作为引导过滤器的引导图像。

雾减少计算系统可以生成去雾化图像。所述去雾化图像可以至少部分地基于对输入图像的细化的雾厚度图的应用。例如,细化的雾厚度图可以包括和与输入图像中多个点中的每个点相关联的雾厚度相关联的信息。可以将雾厚度图应用于输入图像,以至少部分地基于雾厚度图中相应点的对应的雾厚度来对输入图像中的多个点中的每个点进行去雾化。

输入图像的去雾化可以表达为去雾化函数:J(x)=(Y(x)–A *t(x))/(1-t(x))。在前面的去雾化函数中,J(x)可以与去雾化图像相关联;Y(x)可以与输入图像(例如,有雾的输入图像)相关联;A可以和与输入图像相关联的全局大气光或空气光相关联;并且t(x)可以与雾厚度图(例如,细化的雾厚度图)的厚度相关联。

雾减少计算系统可以生成经颜色校正的去雾化图像。经颜色校正的去雾化图像可以至少部分地基于对去雾化图像的一个或多个颜色校正操作的执行。例如,雾减少计算系统可以执行一个或多个颜色校正操作,包括调节去雾化图像的白平衡。

在一些实施例中,生成经颜色校正的去雾化图像可以包括由于使用应用于输入图像的一个或多个颜色校正操作而导致的减少去雾化图像中的颜色偏移。例如,可以在生成多个特征向量之前对输入图像进行颜色校正。结果,输入图像的颜色可能偏移,然后可以通过在生成去雾化图像之后执行一个或多个颜色校正操作来减少偏移。

在一些实施例中,生成经颜色校正的去雾化图像可以包括用输入图像的低频颜色空间分量替换去雾化图像的低频颜色空间分量。例如,首先可以将输入图像和去雾化图像从RGB颜色空间转换到YUV颜色空间。接下来,可以通过输入图像的UV通道的低频分量替换去雾化图像的UV通道的低频分量。然后,可以将去雾化图像的YUV颜色空间转换回RGB颜色空间。

在一些实施例中,生成经颜色校正的去雾化图像可以包括至少部分地基于去雾化图像的颜色空间到不同颜色空间的转换来调节去雾化图像的一个或多个颜色。举例来说,输入图像可以与RGB颜色空间相关联和/或去雾化图像可以与YUV颜色空间相关联。此外,去雾化图像的颜色空间到不同颜色空间的转换可以包括将去雾化图像从YUV颜色空间转换到RGB颜色空间。

所公开的技术可以包括计算系统(例如,雾减少计算系统),其被配置为执行与减少图像中的雾相关的各种操作。在一些实施例中,雾减少计算系统可以与基于有雾的输入图像使用、发送、接收和/或生成去雾化图像的各种计算系统和/或设备相关联。雾减少计算系统可以包括专用硬件和/或软件,其使能特定于所公开的技术的一个或多个操作的执行。

此外,雾减少计算系统可以包括一个或多个特定于应用的集成电路,其被配置为执行与基于输入图像生成特征向量,使用机器学习模型来生成雾厚度图,利用引导过滤器对雾厚度图进行细化,并基于输入图像生成去雾化图像相关联的操作。举例来说,雾减少计算系统可以被配置为控制其中由传感器生成的图像被处理以供用户使用的图像管道的一个或多个部分。

所公开的技术中的系统、方法、设备、装置和有形的非暂时性计算机可读介质可以提供各种技术效果和益处(例如,在图像增强领域的技术效果和益处),包括改进图像中的雾减少的有效性。所公开的技术还可以通过生成在其原始状态下可能原本具有有限价值的雾减少的图像来改进图像处理管道的输出的准确度和整体质量。此外,可以通过减少需要重新捕获区域的图像的次数来更有效地使用计算资源和网络使用,因为具有使地理区域的实际状态模糊的雾的图像可以使雾减少。此外,可以通过使用机器学习模型来实现计算资源使用效率的进一步改进,这些机器学习模型一旦经过训练,与需要大量人工输入和准备的效率较低的技术相比,可以实现生成雾厚度图的更高准确度。

所公开的技术可以使用各种技术,包括使用机器学习模型、暗通道信息、引导过滤器和颜色校正的组合,以实现在去除雾的同时保留图像的细化细节的改进的雾减少的图像。这种新颖的技术组合在减少用于各种制图应用以及诸如气候研究和天气预报的领域(其中准确和无雾影像至关重要)的卫星图像中的雾时特别有用。

此外,所公开的技术中所采用的技术可以减少由于模糊地理区域的基本特征的过多量的雾而需要重新捕获该区域的图像的次数。特别是在捕获图像是昂贵的情况下,减少原本不太可用的图像中的雾的能力可以减少必须重新捕获相同区域的图像的次数,这可以导致减少网络使用,从而增加可用于其他任务的网络资源量。

所公开的技术可以通过使用机器学习模型来更有效地生成降噪图像,这可以允许减少生成可用图像需要执行的操作的数量。操作数量的减少可以导致用于生成降噪图像的能量量的减少,这可以导致更有效地使用计算资源。

因此,所公开的技术可以允许计算系统的用户更有效地执行减少图像中的雾的技术任务。因此,为用户提供了更高性能和更有效地使用系统资源的特定益处。此外,提供给用户的任何特定益处可以用于改进包括使用机器学习系统的设备的各种设备和服务的有效性。因此,由所公开的技术提供的改进可以对各种设备和/或系统(包括与雾减少相关联的机械、电子和计算系统)产生有形益处。

现在参考图1-10,将进一步详细讨论本公开的示例实施例。图1描绘了根据本公开的示例实施例的示例系统的图。系统100包括通过网络180通信地连接和/或耦合的计算设备102、计算系统130、训练计算系统150和一个或多个远程计算系统170。

计算设备102可以包括一个或多个处理器112和存储器114。一个或多个处理器112可以包括任何合适的处理设备(例如,处理器核心、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、控制器和/或微控制器),并且可以是一个处理器或操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,包括RAM、NVRAM、ROM、EEPROM、EPROM、闪存设备、磁盘及其组合。存储器114可以存储由处理器112执行以使计算设备102执行一个或多个操作的指令118和数据116。在一些实施例中,数据116可以包括:与可以包括多个点(例如,多个像素)的图像(例如,输入图像)相关联的数据;与可以对应于与输入图像中的多个点的不同部分的特征相关联的多个特征窗口的多个特征向量相关联的数据;和与对输入图像的多个点中的每个点处的雾厚度的估计相关联的雾厚度图相关联的数据;与包括多个点中的每个点处的雾厚度的细化的估计的细化的雾厚度图相关联的数据;以及与基于输入图像的经颜色校正的去雾化图像相关联的数据。在一些实施例中,计算设备102可以包括计算系统130的任何属性和/或能力,并且可以执行包括由计算系统130执行的任何操作的一个或多个操作。

计算设备102可以在任何类型的计算设备中实现和/或包括任何类型的计算设备,包括例如,雾减少设备(例如,一种计算设备,被配置为执行本文描述的任何操作,包括与确定输入图像的各个部分中的雾量和生成输入图像的颜色校正和/或去雾化版本相关联的一个或多个操作)、个人计算设备(例如,笔记本电脑计算设备或台式计算设备)、移动计算设备(例如,智能手机或平板电脑)、控制器、可穿戴计算设备(例如,智能手表)和/或嵌入式计算设备。

此外,计算设备102可以被配置为执行一个或多个操作,包括:至少部分地基于包括多个点的输入图像生成对应于与多个点的不同部分的一个或多个特征相关联的多个特征窗口的多个特征向量;至少部分地基于多个特征向量和一个或多个机器学习模型生成与对多个点中的每个点处的雾厚度的估计相关联的雾厚度图;至少部分地基于雾厚度图和引导过滤器生成细化的雾厚度图(在一些实施例中,输入图像用作引导过滤器的引导图像);至少部分地基于将细化的雾厚度图应用于输入图像生成去雾化图像;以及至少部分地基于对去雾化图像的一个或多个颜色校正操作的执行来生成经颜色校正的去雾化图像。

在一些实施例中,计算设备102可以执行与生成多个特征向量相关联的一个或多个操作,包括针对多个点中的每个点确定包括围绕每个点的多个点的一部分的多个特征窗口;确定与多个特征窗口中的每一个中的最暗点相关联的一个或多个特征;以及至少部分地基于与多个特征窗口中的每一个中的最暗点相关联的一个或多个特征来生成多个特征向量。此外,计算设备102可以执行与生成多个特征向量相关联的一个或多个操作,包括:确定与输入图像相关联的图像类型;以及至少部分地基于与输入图像相关联的图像类型来调节多个特征窗口的大小。

此外,计算设备102可以执行与生成经颜色校正的去雾化图像相关联的一个或多个操作,包括:由于使用应用于输入图像的一个或多个颜色校正操作而导致的减少去雾化图像中的颜色偏移;用输入图像的低频颜色空间分量替换去雾化图像的低频颜色空间分量;调节去雾化图像的白平衡;和/或至少部分地基于去雾化图像的颜色空间到不同颜色空间的转换来调节去雾化图像的一个或多个颜色。

在一些实现中,计算设备102可以实现和/或包括一个或多个机器学习模型120。例如,一个或多个机器学习模型120可以包括包含神经网络(例如,深度神经网络)的各种机器学习模型或其他类型的机器模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、循环神经网络(例如,长短期记忆循环神经网络)、卷积神经网络和/或其他形式的神经网络。参考图1-10讨论一个或多个机器学习模型120的示例。

在一些实现方式中,一个或多个机器学习模型120可以通过网络180从计算系统130(例如,服务器计算系统)接收,存储在计算设备存储器114中,然后由一个或多个处理器112使用或以其他方式实现。在一些实现方式中,计算设备102可以实现一个或多个机器学习模型120的单个机器学习模型的多个并行实例(例如,以跨机器学习模型120的多个实例生成和/或确定输入图像的雾厚度图)。更具体地,一个或多个机器学习模型120可以被配置和/或训练以执行由计算系统130执行的任何操作。

另外,或者可选地,一个或多个机器学习模型140可以包括在计算系统130中,或者以其他方式由计算系统130存储和实现,计算系统130例如根据客户端-服务器关系与计算设备102通信。例如,机器学习模型140可以由计算系统130实现为web服务(例如,图像去雾化服务)的一部分。因此,一个或多个机器学习模型120可以在计算设备102处存储和实现,和/或一个或多个机器学习模型140可以在计算系统130处存储和实现。

计算设备102还可以包括可以接收用户输入的用户输入组件122中的一个或多个。例如,用户输入组件122可以是对用户输入(例如,手指和/或手写笔)的触摸敏感的触摸敏感组件(例如,触摸敏感显示屏或触摸板)。触摸敏感元件可以用来实现虚拟键盘。其他示例用户输入部件包括麦克风、机械键盘、机电键盘和/或用户可以通过其提供用户输入的其他手段。

计算系统130可以包括一个或多个处理器132和存储器134。一个或多个处理器132可以包括任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器和/或微控制器),并且可以包括一个处理器或操作地连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,包括RAM、ROM、EEPROM、EPROM、闪存设备、磁盘及其组合。存储器134可以存储由处理器132执行以使计算系统130执行操作的指令138和数据136。在一些实施例中,数据136可以包括:与可以包括多个点(例如,多个像素)的图像(例如,输入图像)相关联的数据;与可以对应于与输入图像中的多个点的不同部分的特征相关联的多个特征窗口的多个特征向量相关联的数据;和与对输入图像的多个点中的每个点处的雾厚度的估计相关联的雾厚度图相关联的数据;与包括多个点中的每个点处的雾厚度的细化的估计的细化的雾厚度图相关联的数据;以及与基于输入图像的经颜色校正的去雾化图像相关联的数据。

此外,在一些实施例中,计算系统130可以被配置为执行服务器计算设备的操作,包括向和/或从一个或多个计算设备和/或计算系统(包括计算设备102、训练计算系统150和/或远程计算系统170)发送和/或接收包括与一个或多个图像(例如,输入图像)、一个或多个雾厚度图、一个或多个细化的雾厚度图、一个或多个去雾化图像和/或一个或多个经颜色校正的去雾化图像相关联的数据的数据。在一些实施例中,计算系统130可以包括计算设备102的任何属性和/或能力,并且可以执行包括由计算设备102执行的任何操作的一个或多个操作。

此外,计算系统130可以在任何类型的计算系统中实现和/或包括任何类型的计算系统,包括例如,雾减少计算系统(例如,被配置为执行本文描述的任何操作的计算系统,包括与生成雾厚度图;生成去雾化图像;和/或生成经颜色校正的去雾化图像相关联的一个或多个操作)、个人计算设备(例如,笔记本电脑计算设备或台式计算设备)、移动计算设备(例如,智能手机或平板电脑)、服务器计算系统(例如,被配置为提供包括雾厚度图、去雾化图像和/或经颜色校正的去雾化图像的数据的计算系统)和/或控制器。

在一些实现方式中,计算系统130包括一个或多个服务器计算设备和/或以其他方式由一个或多个服务器计算设备实现。在计算系统130包括多个服务器计算设备的实例中,这种服务器计算设备可以根据顺序计算架构、并行计算架构或其某种组合来操作。

如上所述,计算系统130可以存储或以其他方式包括一个或多个机器学习模型140。例如,一个或多个机器学习模型140可以包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、循环神经网络和卷积神经网络。参考图1-10讨论一个或多个机器学习模型140的示例。

计算设备102和/或计算系统130可以经由与通过网络180通信地连接和/或耦合的训练计算系统150交互来训练一个或多个机器学习模型120和/或140。训练计算系统150可以与计算系统130分离,或者可以是计算系统130的一部分。

训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器和/或微控制器),并且可以是一个处理器或操作地连接的多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,包括RAM、ROM、EEPROM、EPROM、闪存设备、磁盘及其组合。存储器154可以存储由处理器152执行以使训练计算系统150执行操作的指令158和数据156。在一些实施例中,数据156可以包括:与可以包括多个点(例如,多个像素)的图像(例如,输入图像)相关联的数据;与可以对应于与输入图像中的多个点的不同部分的特征相关联的多个特征窗口的多个特征向量相关联的数据;和与对输入图像的多个点中的每个点处的雾厚度的估计相关联的雾厚度图相关联的数据;与包括多个点中的每个点处的雾厚度的细化的估计的细化的雾厚度图相关联的数据;以及与基于输入图像的经颜色校正的去雾化图像相关联的数据。在一些实现方式中,训练计算系统150包括一个或多个服务器计算设备,或者以其他方式由一个或多个服务器计算设备实现。

训练计算系统150可以包括模型训练器160,该模型训练器160使用各种训练或学习技术(包括例如误差的反向传播),训练分别存储在计算设备102和/或计算系统130处的一个或多个机器学习模型120和/或一个或多个机器学习模型140。在一些实现方式中,执行误差的反向传播可以包括执行通过时间的截断反向传播(truncated backpropagationthrough time)。模型训练器160可以执行一些泛化技术(例如,权重衰减和/或丢弃),以改进所训练模型的泛化能力。

具体地,模型训练器160可以基于一组训练数据162训练一个或多个机器学习模型120和/或一个或多个机器学习模型140。训练数据162可以包括:与可以包括多个点(例如,多个像素)的图像(例如,输入图像)相关联的数据;与可以对应于与输入图像中的多个点的不同部分的特征相关联的多个特征窗口的多个特征向量相关联的数据;和与对输入图像的多个点中的每个点处的雾厚度的估计相关联的雾厚度图相关联的数据;与包括多个点中的每个点处的雾厚度的细化的估计的细化的雾厚度图相关联的数据;以及与基于输入图像的经颜色校正的去雾化图像相关联的数据。一个或多个机器学习模型120和/或一个或多个机器学习模型140可以被配置和/或训练以执行由计算设备102和/或计算系统130执行的一个或多个操作中的任何一个。例如,一个或多个机器学习模型120可以被配置和/或训练以执行各种操作,包括:至少部分地基于包括多个点的输入图像生成对应于与多个点的不同部分的一个或多个特征相关联的多个特征窗口的多个特征向量;至少部分地基于多个特征向量和一个或多个机器学习模型生成与对多个点中的每个点处的雾厚度的估计相关联的雾厚度图;至少部分地基于雾厚度图和引导过滤器生成细化的雾厚度图(在一些实施例中,输入图像用作引导过滤器的引导图像);至少部分地基于将细化的雾厚度图应用于输入图像生成去雾化图像;以及至少部分地基于对去雾化图像的一个或多个颜色校正操作的执行来生成经颜色校正的去雾化图像。

在一些实现方式中,如果用户提供了准许,则可以由计算设备102提供训练示例。因此,在这种实现方式中,提供给计算设备102的一个或多个机器学习模型120可以由训练计算系统150至少部分地基于从计算设备102接收到的用户特定数据进行训练,这些数据包括:使用与计算设备102相关联的图像捕获设备捕获的图像,包括与相应图像相关联的相关联的纬度、经度和/或海拔。

模型训练器160可以包括用于提供期望功能的计算机逻辑。模型训练器160可以在控制通用处理器的硬件、固件和/或软件中实现。例如,在一些实现方式中,模型训练器160包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其它实现方式中,模型训练器160包括一组或多组计算机可执行指令,这些指令存储在包括RAM硬盘或光学或磁性介质的有形计算机可读存储介质中。

一个或多个远程计算系统170中的每一个可以包括一个或多个处理器172和存储器174。一个或多个处理器172可以包括任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器和/或微控制器),并且可以包括一个处理器或操作地连接的多个处理器。存储器174可以包括一个或多个非暂时性计算机可读存储介质,包括RAM、ROM、EEPROM、EPROM、闪存设备、磁盘及其组合。存储器174可以存储由处理器172执行以使远程计算系统170执行操作的指令178和数据176。

在一些实现方式中,一个或多个远程计算系统170包括一个或多个计算设备或以其他方式由一个或多个计算设备实现。在其中一个或多个远程计算系统170包括多个计算设备的实例中,这些计算设备可以根据顺序计算架构、并行计算架构和/或其某种组合来操作。此外,一个或多个远程计算系统170可以用于收集、生成、发送和或接收一个或多个信号和/或包括可以用作一个或多个输入图像的基础的图像数据的数据。一个或多个远程计算系统170可以包括智能电话设备,智能电话设备的用户可以使用该智能电话设备来捕获与一个或多个远程计算系统170相关联的用户行进通过的定位的图像。

在一些实施例中,任何用户提供的数据都可以被强加密、匿名化(例如,与用户身份相关联的任何个人信息或其他信息或者不被收集,或者在接收后被删除),并且以安全和隐私增强的方式被维护以供一个或多个远程计算系统170使用,该一个或多个远程计算系统170可以提供该数据以供包括本文所述的那些的其他计算设备和/或系统使用。

网络180可以包括任何类型的通信网络,包括局域网(例如,内联网)、广域网(例如,因特网)或它们的某种组合,并且可以包括任意数量的有线或无线链路。一般而言,通过网络180的通信可以经由任何类型的有线和/或无线连接,使用多种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如HTML、XML)和/或保护方案(例如VPN、安全HTTP、SSL)携带。

图1示出了可以用于实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实现方式中,计算设备102和/或计算系统130可以包括模型训练器160和训练数据162。在这种实现方式中,可以在计算设备102和/或计算系统130两者处训练和在计算设备102处本地地使用一个或多个机器学习模型120。在一些这样的实现方式中,计算设备102和/或计算系统130可以实现模型训练器160,以基于用户特定的数据使一个或多个机器学习模型120个性化。

图2描绘了根据本公开的示例实施例的示例设备的图。计算设备200可以包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。此外,计算设备200可以执行一个或多个动作和/或操作,包括由图1描绘的计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170执行的一个或多个动作和/或操作。

如图2所示,计算设备200可以包括一个或多个存储器设备202、图像数据204、雾厚度数据206、一个或多个互连210、一个或多个处理器220、网络接口222、一个或多个大容量存储设备224、一个或多个输出设备226、一个或多个传感器228、一个或多个输入设备230和/或定位设备232。

一个或多个存储器设备202可以存储信息和/或数据(例如,图像数据204、雾厚度图数据206和/或聚合的行进数据208)。此外,一个或多个存储器设备202可以包括一个或多个非暂时性计算机可读存储介质,包括RAM、ROM、EEPROM、EPROM、闪存设备、磁盘及其组合。由一个或多个存储器设备202存储的信息和/或数据可以由一个或多个处理器220执行,以使计算设备200执行操作。

图像数据204可以包括分别存储在存储器114、存储器134、存储器154和/或存储器174中的数据(例如,图1中描绘的数据116、数据136、数据156和/或数据176)和/或指令(例如,图1中描绘的指令118、指令138、指令158和/或指令178)的一个或多个部分。此外,图像数据204可以包括与一个或多个图像(例如,输入图像)相关联的信息;与一个或多个图像相关联的特征向量;和/或与一个或多个图像相关联的特征窗口。

雾厚度数据206可以包括分别存储在存储器114、存储器134、存储器154和/或存储器174中的图1中描绘的数据116、数据136、数据156和/或数据176和/或指令(例如,图1中描绘的指令118、指令138、指令158和/或指令178)的一个或多个部分。此外,雾厚度数据206可以包括与一个或多个机器学习模型相关联的信息,该一个或多个机器学习模型被配置和/或训练为执行与估计一个或多个图像中的雾厚度相关联的一个或多个操作。

一个或多个互连210可以包括一个或多个互连或总线,其可以用于在计算设备200的组件之间发送和/或接收一个或多个信号(例如,电子信号)和/或数据(例如,图像数据204和/或雾厚度数据206),所述计算设备200的组件包括一个或多个存储器设备202、一个或多个处理器220、网络接口222、一个或多个大容量存储设备224、一个或多个输出设备226、一个或多个传感器228(例如,传感器阵列)和/或一个或多个输入设备230。一个或多个互连210可以以包括并行或串行连接的不同方式布置或配置。此外,一个或多个互连210可以包括用于连接计算设备200的内部组件的一个或多个内部总线;以及用于将计算设备200的内部组件连接到一个或多个外部设备的一个或多个外部总线。举例来说,一个或多个互连210可以包括不同的接口,包括工业标准体系结构(ISA)、扩展ISA、外围组件互连(PCI)、PCI Express、串行AT Attachment(SATA)、HyperTransport(HT)、USB(通用串行总线)、Thunderbolt、IEEE 1394接口(FireWare)和/或可以用来连接组件的其他接口。

一个或多个处理器220可以包括一个或多个计算机处理器,其被配置为执行存储在一个或多个存储器设备202中的一个或多个指令。例如,一个或多个处理器220可以例如包括一个或多个通用中央处理单元(CPU)、专用集成电路(ASIC)和/或一个或多个图形处理单元(GPU)。此外,一个或多个处理器220可以执行包括与图像数据204和/或雾厚度数据206相关联的一个或多个动作和/或操作的一个或多个动作和/或操作。一个或多个处理器220可以包括单个或多个核心设备,包括微处理器、微控制器、集成电路和/或逻辑设备。

网络接口222可以支持网络通信。例如,网络接口222可以支持经由包括局域网和/或广域网(例如,因特网)的网络的通信。一个或多个大容量存储设备224(例如,硬盘驱动器和/或固态驱动器)可以用于存储包括图像数据204和/或雾厚度数据206的数据。一个或多个输出设备226可以包括一个或多个显示设备(例如,LCD显示器、OLED显示器和/或CRT显示器)、一个或多个光源(例如LED)、一个或多个扬声器和/或一个或多个触觉输出设备。

一个或多个输入设备230可以包括一个或多个键盘、一个或多个触摸敏感设备(例如,触摸屏显示器)、一个或多个按钮(例如,开/关按钮和/或是/否按钮)、一个或多个麦克风和/或一个或多个相机。

分别示出一个或多个存储器设备202和一个或多个大容量存储设备224,然而,一个或多个存储器设备202和一个或多个大容量存储设备224可以是同一存储器模块内的区域。计算设备200可以包括一个或多个附加处理器、存储器设备、网络接口,这些可以单独地或在同一芯片或板上提供。一个或多个存储器设备202和一个或多个大容量存储设备224可以包括一个或多个计算机可读介质,包括但不限于非暂时性计算机可读介质、RAM、ROM、硬盘驱动器、闪存驱动器和/或其他存储器设备。

一个或多个存储器设备202可以存储用于包括可以与各种软件应用相关联的操作系统的应用的多组指令或数据。一个或多个存储器设备202可以用于操作各种应用,包括专门为移动设备开发的移动操作系统。这样,一个或多个存储器设备202可以存储允许软件应用访问包括无线网络参数(例如,无线网络的标识、服务质量)的数据,并调用包括电话、定位确定(例如,经由全球定位系统(GPS)或WLAN)和/或无线网络数据呼叫发起服务的各种服务的指令。在其他实施例中,例如,一个或多个存储器设备202可以用于操作或执行在移动和固定设备(诸如智能手机和台式计算机)两者上操作的通用操作系统。

可以由计算设备200操作或执行的软件应用可以包括与图1所示的系统100相关联的应用。此外,可以由计算设备200操作和/或执行的软件应用可以包括本机应用和/或基于web的应用。

定位设备232可以包括用于确定计算设备200的位置的一个或多个设备或电路。例如,定位设备232可以基于IP地址,通过使用卫星导航定位系统(例如GPS系统、伽利略定位系统、全球导航卫星系统(GLONASS)、北斗卫星导航和定位系统)、惯性导航系统、航位推算系统,通过使用三角测量和/或蜂窝塔或Wi-Fi热点、信标等的接近度和/或其他用于确定位置的合适的技术来确定计算设备200的实际和/或相对位置。

图3描绘了根据本公开的示例实施例的作为雾减少技术的一部分的特征提取的示例。作为技术300的一部分执行的任何操作和/或动作可以由计算设备和/或计算系统执行,该计算设备和/或计算系统包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。如图3所示,技术300包括多个特征窗口302、特征窗口304、特征窗口306、特征窗口308和特征310。

在本示例中,多个特征窗口302包括特征窗口304、特征窗口306和特征窗口308。多个特征窗口302中的每一个可以包括表示相关联图像(例如,输入图像)的一部分的多个点(例如,多个像素)。作为技术300的一部分,多个特征窗口302中的每一个的大小可以是不同的大小。此外,一个特征窗口可以嵌套在另一个特征窗口内,和/或在其中嵌套另一个特征。

在一些实施例中,可以在可以与特征窗口的大小相关联的雾估计的偏差和方差之间进行权衡。例如,较大的特征窗口可以导致较低的估计方差和较大的偏差,其可能归因于在由特征窗口包围的区域上雾厚度显著不同。通过进一步的示例,较小的特征窗口可以导致较大的估计方差和较小的偏差,其可能归因于在由特征窗口包围的较小区域上的雾厚度的较小差异。

在一些实施例中,特征窗口的大小可以至少部分地基于图像内容(例如,输入图像中的图像内容)而自适应。例如,特征窗口的大小可以至少部分地基于指示图像内的内容的类型的信息(例如,与输入图像相关联的元数据)。某些特征窗口大小可以与某些类型的内容相关联,其然后当确定特定类型的内容与输入图像相关联时可以被使用。此外,在一些实施例中,特征窗口大小可以是在未指定内容的类型或期望的特征窗口大小时默认的默认大小。

技术300可以包括使用包括多个像素的输入图像,并且对于多个像素中的每一个,使用具有多个不同大小的多个特征窗口(例如,多个特征窗口302)。例如,特征窗口304(最小特征窗口)可以是方形的并且具有七(7)个像素的宽度,特征窗口306(中间大小的特征窗口)可以是方形的并且具有二十一(21)个像素的宽度,并且特征窗口308(最大大小的特征窗口)可以是方形的并且具有三十一(31)个像素的宽度。此外,在一些实施例中,与像素相关联的多个特征窗口中的每一个可以以该同一给定像素为中心。另外,对于多个特征窗口中的每一个,可以确定特征窗口中的暗像素的特征(例如,特征310)。暗像素的特征可以包括色调、饱和度、亮度强度和暗像素的最小通道值。此外,与多个特征窗口中的每一个相关联的特征值可以形成作为中心像素的特征向量的单个向量。可以针对图像中的每个像素重复技术300的操作,直到为整个图像生成多个特征向量为止。

图4描绘了根据本公开的示例实施例的训练机器学习模型以执行雾减少技术的示例。作为技术400的一部分执行的任何操作和/或动作可以由计算设备和/或计算系统执行,该计算设备和/或计算系统包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。如图4所示,技术400包括输入图像402、雾厚度图404和模拟有雾的图像404。

输入图像402可以包括可以用作对机器学习模型的输入的图像(例如,RGB图像)。举例来说,输入图像402可以是无雾的卫星图像。雾厚度图404可以是模拟雾厚度图,该模拟雾厚度图可以是基于可以用于产生空间变化的雾图的任何技术生成的。此外,雾厚度图404可以是多个不同的雾厚度图中的一个。然后,可以将雾厚度图404应用于输入图像402以生成模拟有雾的图像406。

此外,模拟有雾的图像406可以用于生成与模拟有雾的图像406的一个或多个特征相关联的多个特征向量。然后,基于模拟有雾的图像406生成的多个特征向量可以被提供为一个或多个机器学习模型(未示出)的输入,所述一个或多个机器学习模型已被配置和/或训练以生成输出,所述输出包括可与雾厚度图404比较以作为可以包括梯度下降法的训练过程的一部分训练一个或多个机器学习模型。例如,训练过程可以包括与包括一个或多个参数的损失函数相关联的损失的最小化。调节一个或多个参数的权重可以减小作为输出生成的雾厚度图与用于生成作为输入提供的模拟有雾的图像的地面真实雾厚度图之间的差异。这样,模拟有雾的图像406和雾厚度图404可以分别用作训练输入和地面真实输出,以训练一个或多个机器学习模型。

在这个示例中,一个或多个机器学习模型可以包括多层感知器,尽管其他类型的机器学习模型可以在其他实施例中使用。此外,模拟有雾的图像404可以用作多个模拟有雾的图像中的一个来训练一个或多个机器学习模型。可以使用更多的模拟有雾的图像和/或不同种类的模拟有雾的图像(例如,包括不同雾厚度和/或不同类型的输入图像的模拟有雾的图像)来进一步改进一个或多个机器学习模型的准确度。

图5描绘了根据本公开的示例实施例的包括生成雾图的雾减少技术的示例。作为技术500的一部分执行的任何操作和/或动作可以由计算设备和/或计算系统执行,该计算设备和/或计算系统包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。如图5所示,技术500包括输入图像502、雾厚度图504和细化的雾厚度图506。

输入图像502可以包括作为输入提供给一个或多个机器学习模型的图像,该一个或多个机器学习模型被配置和/或训练以接收与该图像相关联的多个特征向量,并生成与图像的多个点(例如像素)中的每一个点处估计的雾相关联的雾厚度图。雾厚度图504可以包括由一个或多个机器学习模型生成的雾厚度图。计算系统(例如,图1中所描绘的计算系统130)可以对雾厚度图执行一个或多个操作,包括应用引导过滤器来细化雾厚度图504。在一些实施例中,输入图像502可以用作引导过滤器的过滤器引导。例如,引导过滤器可以包括线性过滤器的组合,其中厚度图504的平滑至少部分地基于使用相邻点(例如像素)以及使用输入图像502(过滤器引导)的内容来执行过滤。

图6描绘了根据本公开的示例实施例的包括颜色校正的雾减少技术的示例。作为技术600的一部分执行的任何操作和/或动作(图6所描绘的)可以由计算设备和/或计算系统执行,该计算设备和/或计算系统包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。如图6所示,技术600包括有雾的图像602、去雾化图像604和经颜色校正的去雾化图像606。

可以对去雾化图像604执行技术600,该去雾化图像604是至少部分地基于对有雾的图像602的雾厚度图的应用而生成的。在一些实施例中,可以部分地基于由一个或多个机器学习模型(例如,图1中所描绘的一个或多个机器学习模型140)对包括模糊了有雾的图像602的一个或多个部分的雾的有雾的图像602执行的一个或多个操作来生成去雾化图像604。在对有雾的图像602进行去雾化之后,得到的去雾化图像604可以包括一个或多个颜色伪影(artifacts)。去雾化图像604中的颜色伪影可以是去雾化图像604的被浓雾(例如,厚度超过预定阈值厚度的雾)模糊的部分在去雾化之后变为蓝色的结果。由于有雾的图像602的去雾化而导致的颜色偏移可以归因于在有雾的图像602的RGB通道上的雾厚度相同的假设。光通过环境大气的散射比可以随光谱而变化,因此实际的雾厚度也可以在环境图像的RGB通道上变化。这种变化可以导致产生去雾化图像604的雾减少操作中的颜色偏移,并且可能在雾特别浓的区域的有雾的图像602的一个或多个部分中特别突出。因此,可以对去雾化图像604执行一个或多个颜色校正操作,以生成经颜色校正的去雾化图像606。

在一些实施例中,可以对有雾的图像602执行一个或多个颜色校正操作,包括将输入的有雾的图像602和去雾化图像604从RGB颜色空间转换到YUV颜色空间。此外,一个或多个颜色校正操作可以包括采用去雾化图像604的UV通道,并用来自有雾的图像602的UV通道的低频分量替换其在傅立叶(Fourier)域中的低频分量。此外,一个或多个颜色校正操作可以包括将去雾化图像604的更新后的YUV转换回RGB颜色空间。一个或多个颜色校正操作可以导致可能由于生成去雾化图像604而导致的颜色偏移的减少或去除。

图7描绘了根据本公开的示例实施例执行根据本公开的示例实施例的雾减少操作的流程图。方法700的一个或多个部分可以在包括例如计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实现。此外,方法700的一个或多个部分可以作为算法在本文公开的硬件设备或系统上执行或实现。图7为了说明和讨论的目的描绘了以特定顺序执行的步骤。使用本文提供的公开内容,本领域普通技术人员将理解,在不偏离本公开的范围的情况下,可以对本文公开的任何方法的各个步骤进行适应、修改、重新布置、省略和/或扩展。

在702处,方法700可以包括生成多个特征向量。多个特征向量的生成可以至少部分地基于包括多个点的输入图像。输入图像可以是有雾的和/或有噪声的图像(例如,卫星图像,其中地面的一部分视觉特征被云模糊)。此外,多个特征向量可以与多个特征窗口相关联和/或对应于多个特征窗口。多个特征窗口可以至少部分地基于多个点的不同部分的一个或多个特征或与其相关联。

例如,计算系统130可以接收、获得和/或检索与包括多个像素的输入图像相关联的数据和/或信息。与输入图像相关联的数据和/或信息可以包括与多个像素中的每一个相关联的颜色空间信息。然后,计算系统130可以对输入图像执行一个或多个操作以确定多个特征向量。具体地,计算系统130可以确定与多个像素中的每一个相关联的RGB颜色通道值。此外,计算系统130可以分析一些预定大小的多个特征窗口中的每一个中的像素,以确定每个特征窗口中的特征。然后,计算系统130可以使用多个特征窗口中的每一个的特征来生成可被格式化以供一个或多个机器学习模型使用的多个特征向量。

在一些实施例中,输入图像可以包括以光栅(例如比特图)、立体像素或向量图像格式编码的图像。此外,输入图像可以与定义输入图像中的颜色并且可以由颜色模型表示的颜色空间相关联。例如,与输入图像相关联的颜色模型或颜色空间可以包括RGB、CMYK和/或HSL/HSV。在一些实施例中,输入图像可以至少部分地基于包括输入图像的视频。例如,可以从视频的多个顺序输入图像中提取输入图像。

在704处,方法700可以包括生成雾厚度图。雾厚度图的生成可以至少部分地基于多个特征向量和/或一个或多个机器学习模型。例如,多个特征向量可以作为输入提供给一个或多个机器学习模型,该一个或多个机器学习模型已经被配置和/或训练为至少部分地基于所输入的多个特征向量来生成雾厚度图。雾厚度图可以与对多个点中的每个点处的雾厚度的估计相关联。此外,一个或多个机器学习模型可以被配置为执行一个或多个操作,所述一个或多个操作包括与一个或多个特征相关联的雾厚度的估计。举例来说,计算系统130的一个或多个机器学习模型140可以接收与包括多个特征向量的输入相关联的数据和/或信息。然后,所述一个或多个机器学习模型可以至少部分地基于包括所述多个特征向量的输入来生成雾厚度图。由一个或多个机器学习模型140生成的雾厚度图可以指示与多个特征向量相关联的输入图像中的多个点中的每一个的估计的雾厚度。

在706处,方法700可以包括生成细化的雾厚度图。细化的雾厚度图的生成可以至少部分地基于雾厚度图和/或引导过滤器。例如,计算系统130可以在雾厚度图上使用引导过滤器来生成细化的雾厚度图。在一些实施例中,计算系统130可以使用输入图像作为引导过滤器的引导图像,从而使用输入图像的内容来引导对细化的雾厚度图的过滤。此外,细化的雾厚度图可以指示与多个特征向量相关联的输入图像中的多个点中的每一个的估计的雾厚度。

在708处,方法700可以包括生成去雾化图像。去雾化图像的生成可以至少部分地基于对输入图像的细化的雾厚度图的应用。例如,计算系统130可以通过执行一个或多个操作来生成去雾化图像,在该操作中,通过对输入图像应用细化的雾厚度图来对输入图像进行去雾化。将细化的雾厚度图应用于输入图像可以包括将在细化的雾厚度图中表示的多个点中的每个点的估计的雾厚度应用于输入图像中的对应的多个点。去雾化图像可以包括将细化的雾厚度图应用于输入图像的结果。

在一些实施例中,由计算系统130执行的用于对输入图像进行去雾化的一个或多个操作可以包括对输入图像使用去雾化函数(例如,这里描述的J(x)=(Y(x)–A *t(x))/(1–t(x)))。

在710处,方法700可以包括生成经颜色校正的去雾化图像。经颜色校正的去雾化图像的生成可以至少部分地基于对去雾化图像的一个或多个颜色校正操作的执行。例如,计算系统130可以对与去雾化图像相关联的数据和/或信息执行一个或多个颜色校正操作。由计算系统130执行的一个或多个颜色校正操作可以包括对去雾化图像中的多个像素中的每一个的分析以及对去雾化图像中的多个像素中的每一个的色调、饱和度和/或亮度的调节。此外,由计算系统130执行的对去雾化图像中的多个像素的调节可以包括调节去雾化图像中的多个像素中的每一个的色调、饱和度和/或强度/亮度,以符合输入图像中的期望亮度范围。

图8描绘了根据本公开的示例实施例执行根据本公开的示例实施例的雾减少操作的流程图。方法800的一个或多个部分可以在包括例如计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实现。此外,方法800的一个或多个部分可以作为算法在本文公开的硬件设备或系统上执行或实现。在一些实施例中,方法800的一个或多个部分可以作为图7所描绘的方法700的一部分来执行。图8为了说明和讨论的目的描绘了以特定顺序执行的步骤。使用本文提供的公开内容,本领域普通技术人员将理解,在不偏离本公开的范围的情况下,可以对本文公开的任何方法的各个步骤进行适应、修改、重新布置、省略和/或扩展。

在802处,方法800可以包括为多个点中的每个点确定和/或生成多个特征窗口。多个特征窗口中的每个特征窗口可以包括围绕每个点的多个点的一部分。例如,计算系统130可以确定和/或生成多个特征窗口,这些特征窗口为具有每边二十一个点的边的正方形。由计算系统130确定和/或生成的多个特征窗口中的每个特征窗口可以包括与特征窗口内多个点的特征(例如,色调、饱和度和/或强度/亮度)相关联的数据和/或信息。

在804处,方法800可以包括确定与多个特征窗口中的每一个中的最暗点相关联的一个或多个特征。例如,计算系统130可以分析多个特征窗口中的每一个内的多个点中的每一个,以确定多个特征窗口中的每一个中的满足与是该特征窗口中的最暗点相关联的一些标准的点。例如,计算系统130可以将特征窗口中的多个点彼此比较以确定最暗的点。在一些实施例中,暗可以至少部分地基于每个点的强度/亮度,使得具有最低强度/亮度的点是最暗点。

在806处,方法800可以包括至少部分地基于与多个特征窗口中的每一个中的最暗点相关联的一个或多个特征来生成和/或确定多个特征向量。例如,计算系统130可以生成多个特征向量,所述多个特征向量包括与所述多个特征窗口中的每一个中的最暗点(例如像素)的特征(例如,色调、饱和度和/或强度/亮度)相关联的数据和/或信息。

图9描绘了根据本公开的示例实施例执行本公开的示例实施例的雾减少操作的流程图。方法900的一个或多个部分可以在包括例如计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实现。在一些实施例中,方法900的一个或多个部分可以作为图7中所描绘的方法700的一部分来执行。此外,方法900的一个或多个部分可以作为算法在本文公开的硬件设备或系统上执行或实现。图9为了说明和讨论的目的描绘了以特定顺序执行的步骤。使用本文提供的公开内容,本领域普通技术人员将理解,在不偏离本公开的范围的情况下,可以对本文公开的任何方法的各个步骤进行适应、修改、重新布置、省略和/或扩展。

在902处,方法900可以包括确定与输入图像相关联的图像类型和/或图像内容。图像类型可以至少部分地基于输入图像中描绘的内容。例如,计算系统130可以执行与确定输入图像中的一个或多个特征的分布(例如,统计分布)和/或类型相关联的一个或多个操作。输入图像中特征的分布和/或类型可以包括一个或多个空间和/或一个或多个颜色特征。

在904处,方法900可以包括至少部分地基于与输入图像相关联的图像类型来调节多个特征窗口的大小。特征的某些分布和/或类型可以与对应的图像类型相关联。此外,对应的图像类型中的每一个可以与一个或多个特征窗口大小和/或特征窗口大小的范围相关联。至少部分地基于与输入图像相关联的图像类型和/或图像内容,计算系统130可以执行一个或多个操作来改变特征窗口的大小(例如,在特征窗口中的点的量和/或特征窗口的维度方面的大小),以匹配对应的特征窗口大小。

在906处,方法900可以包括使用输入图像作为引导过滤器的引导图像。例如,计算系统130可以使用输入图像作为引导过滤操作的引导图像,在引导过滤操作中至少部分地基于雾厚度图和引导过滤器的使用来生成细化的雾厚度图。将输入图像作为用于引导过滤操作的引导图像的使用可以包括计算系统130使用与雾图中的点的部分相对应的输入图像的点的部分作为用于生成细化的雾厚度图的引导。

图10描绘了根据本公开的示例实施例执行根据本公开的示例实施例的雾减少操作的流程图。方法1000的一个或多个部分可以在包括例如计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实现。在一些实施例中,方法1000的一个或多个部分可以作为图7所描绘的方法700的一部分来执行。此外,方法1000的一个或多个部分可以作为算法在本文公开的硬件设备或系统上执行或实现。图10为了说明和讨论的目的描绘了以特定顺序执行的步骤。使用本文提供的公开内容,本领域普通技术人员将理解,在不偏离本公开的范围的情况下,可以对本文公开的任何方法的各个步骤进行适应、修改、重新布置、省略和/或扩展。

在1002处,方法1000可以包括由于使用应用于输入图像的一个或多个颜色校正操作而导致的减少去雾化图像中的颜色偏移。例如,计算系统130可以执行一个或多个颜色校正操作,包括确定输入图像的一个或多个部分与去雾化图像的一个或多个对应部分之间的颜色的差异。计算系统130可以通过至少部分地基于输入图像的一个或多个部分与去雾化图像的一个或多个对应部分之间的颜色的差异来调节多个点中的每个点中的颜色来减少去雾化图像中的颜色偏移。在一些实施例中,可以通过与输入图像中对应的多个点中的每个点的颜色的差异的量来调节去雾化图像中的多个点中的每个点的颜色。

在1004处,方法1000可以包括用输入图像的低频颜色空间分量替换去雾化图像的低频颜色空间分量。例如,计算系统130可以使用RGB去雾化图像的色度通道,并将其在傅立叶域中的低频分量替换为输入图像的低频色度通道。

在1006处,方法1000可以包括调节去雾化图像的白平衡和/或颜色平衡。例如,计算系统130可以执行一个或多个色度自适应操作来调节去雾化图像的白平衡和/或颜色平衡。在一些实施例中,可以至少部分地基于与去雾化图像中的多个点中的每一个的颜色信息(例如,色调、饱和度和/或强度/亮度)和/或颜色空间分量相关联的一个或多个标准来调节白平衡和/或颜色平衡。

在1008处,方法1000可以包括至少部分地基于去雾化图像的颜色空间到不同颜色空间的转换来调节去雾化图像的一个或多个颜色。例如,计算系统130可以执行一个或多个转换操作以将去雾化图像的颜色空间从RGB颜色空间改变为YUV颜色空间。

本文讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的行动和发送到这些系统和从其发送的信息。本领域普通技术人员将认识到,基于计算机的系统的固有灵活性允许在组件间和组件之中进行多种可能的配置、组合和任务和功能的划分。例如,这里讨论的服务器处理可以使用单个服务器或组合工作的多个服务器来实现。数据库和应用可以在单个系统上实现,或者可以跨多个系统分布。分布式组件可以顺序或并行操作。

虽然已经关于本主题的具体示例实施例详细地描述了本主题,但是本领域技术人员在获得上述内容的理解之后,可以容易地对这些实施例产生变更、变化和等同物。因此,本公开的范围是通过示例而不是限制的方式,并且主题公开不排除包括将对本领域普通技术人员容易显而易见的对本主题的修改、变化和/或添加。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号