掌桥专利:专业的专利平台
掌桥专利
首页

用于量化图像中光耀斑的系统和方法

文献发布时间:2023-06-19 19:32:07


用于量化图像中光耀斑的系统和方法

背景技术

当强光源在成像设备(例如,相机)的视场内或稍微在成像设备透镜的视场之外时,成像设备中可能会出现光耀斑伪影(light flare artifact)。由成像设备所接收的光可能在成像设备内的光学器件周围反弹,并且可能与成像设备中的缺陷相互作用。这些相互作用可能导致相机或成像设备检测到环境中实际不存在的伪影。伪影通常被视为从光源径向向外延伸的光条纹(然而,径向条纹可能只是一种耀斑伪影类型的一个示例,并且还可能存在多种其他类型的耀斑伪影,诸如圆形耀斑)。这些伪影可能对机器视觉系统特别有害,因为机器视觉系统的底层算法可能检测到图像捕获中的伪影,并错误地认为伪影实际存在于环境中。此外,这种耀斑可以以多种不同的方式表现出来,并且常规系统可能无法确定用于确定由一个成像设备产生的光耀斑相对于另一个成像设备有多明显的定量度量。

附图说明

详细描述参照附图进行阐述。附图仅出于说明的目的而提供,并且仅描绘了本公开的示例实施例。提供附图是为了便于理解本公开,不应被视为限制本公开的广度、范围或适用性。在附图中,附图标记最左边的数字可以标识该附图标记首次出现的附图。使用相同的附图标记表示相似但不一定是相同或相同的组件。然而,不同的附图标记也可以用于标识类似的组件。各种实施例可以利用不同于附图中所示的元件或组件,并且一些元件和/或组件可以不存在于各种实施例中。根据上下文,使用单数术语来描述组件或元件可以包括多个这样的组件或元件,反之亦然。

图1A-图1C描绘了根据本公开的一个或多个示例实施例的示例耀斑伪影识别过程。

图2描绘了根据本公开的一个或多个示例性实施例的各种成像设备的示例性绘制图(plot)耀斑伪影分数。

图3描绘了根据本公开的一个或多个示例实施例的示例方法。

图4描绘了根据本公开的一个或多个示例实施例的示例系统架构。

具体实施方式

本公开除了其他尤其涉及用于识别图像中光耀斑伪影的系统和方法。更具体地,本文描述的系统和方法可以用于开发用于确定由一个成像设备产生的光耀斑伪影相对于由另一个成像设备产生的光耀斑伪影有多明显的度量(应当注意,术语“成像设备”和“多个成像设备”在本文可以互换使用)。成像设备可以是例如相机或能够捕获图像的任何其他系统或设备。在一个具体实施方式中,本文描述的系统和方法可以与结合自主车辆系统使用的相机相关联,然而,本文描述的系统和方法可以类似地应用于也可以使用成像设备的任何其他环境中。通过这些系统和方法开发的度量可以允许由各个成像设备产生的耀斑伪影相对于彼此被量化。这可能是有益的,因为可以对利用一个或多个这样的成像设备的系统(例如,如上所述的自主车辆系统)进行质量测试,以确保每个单独的成像设备都执行特定的标准,例如,质量测试以确保成像设备满足预定的度量阈值。在一些情况下,度量阈值可以涉及由成像设备产生的耀斑伪影的量和/或幅度的指示。度量还可以提供关于耀斑伪影的其他信息,诸如耀斑伪影的对称性和/或不对称性,以及耀斑伪影的强度和/或对比度。该测试也可以用于更个体的水平,而不是系统水平。也就是说,该系统和方法可以被应用于测试由单个成像设备产生的耀斑伪影的水平,其中可以将得到的度量与预定的阈值度量值进行比较。例如,如果所得到的度量分数被确定为在阈值以上(例如,如果该度量定义了所产生的耀斑的量),则可以确定成像设备的性能不足,并且产生了太明显的不可用的耀斑伪影。然而,在某些情况下,根据度量,可以确定结果分数是否也在阈值以下。

在一些实施例中,本文所描述的系统和方法也可能是有益的,因为针对不同成像设备产生的关于耀斑伪影的信息可实时用于任何目的。例如,在自主车辆环境中,该信息可以用于向自主车辆机器视觉系统提供指示,以忽略图像中的耀斑伪影,使得耀斑伪影不被视为实际存在于环境中。作为另一个示例,该信息可以用于确定成像设备的透镜的清洁度。镜头上的诸如污垢、污迹和/或水等污染物可能会在场景中存在强光源的情况下导致某种形式的“条纹”伪影(例如,这可以与人将智能手机相机对准太阳的情况相比较,如果相机窗口上有指纹,条纹可能是可见的)。在这种情况下,采用本文描述的方法的实时算法可以提示用户清洁他们的镜头。如果镜头在车辆上(诸如自动车辆),实时算法可以触发车辆上的清洁机制。

在一些实施例中,该过程可从系统接收由特定成像设备捕获的一个或多个图像开始(在一些情况下,一个或多个图像也可为视频或实时数据流的形式)。一个或多个图像可以包括环境中特定区域的一个或多个图像,并且该区域可以包括光源(例如,太阳)或能够在由成像设备捕获的图像中产生耀斑伪影的其他物体。在一些情况下,一个或多个图像可以包括环境中相对于该区域处于不同定向的该区域的多个图像。例如,系统可以从入射角在-20度、0度和20度的定向捕获三个图像。通过一个或多个图像可以捕获多于一个定向,因为耀斑伪影可能根据光源的位置而改变。例如,如果本文描述的方法被应用于不同定向的多个图像,则每个定向的结果度量可以按顺序排序。然后,具有最高结果值(或最低结果值,取决于所使用的度量)的图像可以被用作该特定成像设备的结果分数。同样,耀斑伪影可能是定向相关的,因此在多个定向获取多个图像并在这些定向确定不同的度量以确定成像设备在最坏情况下产生的耀斑伪影的水平可能是有益的。尽管可以以下面将要描述的方式捕获和处理多于一个定向,但是为了简单起见,下面的描述可能仅仅举例说明可以对图像之一执行的处理。下面描述的过程也可以类似地应用于任何给定定向上的任何数量的附加图像,并且可以相对于感兴趣区域仅使用一个定向处的一个图像来应用。在一些实施例中,一旦从成像设备接收到图像,该过程的下一步可以涉及对图像进行阈值处理以创建图像的二进制图。然而,在某些情况下,在执行过程的这一步骤之前,如果图像是彩色图像,则可能希望将其转换成灰度图像。这可以简化下面描述的二进制图的创建。对图像进行阈值处理可以涉及用满足特定阈值的相关联的值来识别图像中的每个像素。在常规成像中,像素可以存储为8位整数,这可以提供从0到255的可能像素值范围。在灰度图像中,0可以表示纯黑像素,255可以表示纯白像素。鉴于此,可以使用的示例阈值可以是240。在某些情况下,满足像素阈值可能需要具有240及以上的值的像素,而不满足阈值可能需要具有240以下的值的像素。阈值不一定限于240,也可以是任何其他预定的像素值。此外,阈值可以是实时自适应的,并且可以从第一时间到第二时间改变。此外,满足阈值不一定限于阈值处或低于阈值以下的像素值,而是也可以涉及阈值以下的像素值或相对于阈值的任何其他可能性(阈值以上等)。这同样适用于未能满足阈值条件的情况。一旦阈值处理完成,图像可以被转换成二进制图。二进制图可以是图像的表示,其中每个像素可以与值1或0相关联。满足上述阈值的像素可以被提供二进制值1。不满足阈值的像素可以被提供二进制值0。对图像进行阈值处理和创建二进制图可以用来定位图像内的光源。一旦建立了二进制图,就可以用它来确定图像中光源的质心。识别质心的目的可以是确定光源的中心。可以通过首先确定图像的二进制图的哪些像素与像素值1相关联来识别光源的质心。这些像素可以是与从成像设备接收的原始图像的光源相关联的二进制图的像素。然后可以确定由像素形成的形状的质心。由像素形成的形状的质心可以通过多种不同的方法来确定。例如,可以使用用于圆形检测的霍夫变换(Hough transform)。然而,也可以类似地使用用于确定形状质心的任何其他方法。

在一些实施例中,确定质心后执行的步骤可在像素值为0至255的原始灰度图像上执行,而不是在用于确定质心的像素值为0和1的二进制图像上执行。一旦确定了光源的质心,就可以对图像的二进制图进行零填充。对图像进行零填充可以包括向图像添加具有零值的附加像素,以在特定方向上放大图像。在这种情况下,可以执行零填充以确保光源位于图像的中心。例如,如果光源最初更靠近图像的右手侧,则可以将零值像素添加到图像的右手侧,以匹配图像中光源左手侧零值像素的数量。更具体地,质心确定可以为图像的光源提供行和列坐标。这些坐标可以用于确定需要在图像中填充多少行和列,使得光源位于图像的中心。可以执行这种零填充以简化后续的处理步骤。例如,后续步骤可以渐进地旋转图像,并在每次旋转时计算度量。知道光源在每次旋转后将保持在图像的中心对于简化后面描述的度量的计算可能是重要的。在光源处于偏移位置的情况下旋转图像–可能会导致光源的中心在每次旋转后移动位置,这可能会使跟随变得复杂。

在一些实施例中,一旦在图像上执行零填充,可创建图像的耀斑轮廓阵列(flareprofile array)。耀斑轮廓阵列可以是另一个图像(例如,原始捕获图像的变换),其可以是由成像设备接收的图像的表示,其中从光源径向向外延伸的所有像素被转换成耀斑轮廓阵列中彼此堆叠的水平像素行。例如,如果图像可以表示从光源径向向外延伸超过360度的一组像素阵列,则第一像素阵列可以表示耀斑轮廓阵列上的单行,与第一像素阵列处于相同位置且图像旋转了1度的第二像素阵列可以表示耀斑轮廓阵列上的另一行,等等。参照下面描述的图1A-图1B可以更好地说明这种耀斑轮廓阵列。耀斑轮廓阵列的结果可以是这样的表示,其中光源可以位于图像的一侧,并且耀斑伪影可以在一个方向上从光源水平向外延伸(例如,如图1A-图1B所示水平向右),而不是像原始图像中那样从光源径向向外延伸。这可以允许更容易地处理耀斑伪影,以确定图像中最大耀斑伪影的峰值。该峰值可以随后用于确定量化由捕获原始图像的成像设备产生的耀斑伪影的水平的度量。

在一些实施例中,为了从图像创建耀斑轮廓阵列,可单独提取从光源径向向外延伸的每个像素阵列。从像素阵列从图像的中心处的光源的质心向外水平延伸到图像的边缘开始(例如,如图1A所示),在提取每个后续的像素阵列之后,可以通过逆时针或顺时针方向递增地旋转图像一定的旋转角度来提取每个像素阵列。这可以被执行,直到图像的所有像素已经被提取并被添加到耀斑轮廓阵列。例如,从图像的中心处的光源的质心向外延伸的像素阵列可以被提取并作为第一行添加到耀斑轮廓阵列。然后,零填充图像可以旋转单个角度,使得与在图像的中心从光源一侧向外延伸的原始像素阵列相邻的像素阵列可以取代在图像的中心从光源一侧向外延伸的像素阵列。该像素阵列然后可以被提取并添加到耀斑轮廓阵列,作为耀斑轮廓阵列上第一像素行下面的第二像素行。这个过程可以继续,直到图像上的所有像素已经被转换成耀斑轮廓阵列上的像素行。同样,这个过程可以通过下面描述的图1A更好地可视化。这种提取像素阵列的过程可以是将原始图像从笛卡尔(x,y)坐标重新映射到极坐标(半径,θ(theta))的一种形式。

在一些实施例中,一旦为图像创建了耀斑轮廓阵列,可执行耀斑轮廓阵列的处理。耀斑轮廓阵列的处理可以首先涉及,对于耀斑轮廓阵列中的每列像素(一列像素可以是例如一个像素宽,或者可以是多个像素宽),提取中值像素亮度。中值像素亮度可以是列中的中值像素值。例如,中值像素值可以是0到255之间的值,因为潜在像素值的范围可以从0到255。然后可以从耀斑轮廓阵列的列中减去该中值亮度。减去中值亮度可以涉及从图像中的每个像素值中减去中值亮度值。取每一列的中值可以等同于取原始图像中围绕光源的同心圆的中值。从每列中减去中值亮度可以用来消除任何背景改变的影响。消除背景改变的影响可以指将较高频率的“条纹状(streaky)”耀斑与较低频率的背景眩光(通常称为“杂眩光(veiling glare)”)分开。该步骤可用于去除背景或偏差,仅允许“条纹”保留。

在一些实施例中,一旦从耀斑轮廓阵列的每列(例如,每列的每个像素)中减去中值,可为捕获包括光源的原始接收图像(或多个定向的多个图像)的成像设备确定耀斑伪影分数。确定耀斑伪影分数可以涉及首先确定要分析的耀斑轮廓阵列的区域(如下所述,这种区域的示例可以被描绘为图1B中的有界框)。可以选择耀斑轮廓阵列的区域,使得表示光源的像素所在的耀斑轮廓阵列的左手侧可以不包括在该区域内。这可能是因为耀斑伪影确定的焦点应该集中在耀斑伪影本身上。在由任何成像设备捕获的任何图像中,光源应该是相对一致的,并且只有由成像设备中的光源产生的耀斑伪影可能是受关注的。也可以选择耀斑轮廓阵列的区域的右手侧,使得原始图像中的耀斑伪影的绘制图(如下所述,这种绘制图的示例可以在图1C中示出)被适当地缩放,使得可以相对于图像中的外来噪声来识别耀斑伪影。例如,如果该区域的右手侧向外延伸得太远,那么最大耀斑伪影的峰值可能看起来在幅度上更接近该绘制图的其余部分。然而,如果该区域的右手侧没有捕获所有的耀斑伪影,则峰值可能不能被确定。该区域也可以垂直延伸以覆盖整个耀斑轮廓阵列,诸如图1B所示。一旦确定了该区域,就可以为在该区域内发现的耀斑轮廓阵列的每一行确定平均亮度(像素值)。然后可以绘制该信息以确定成像设备的耀斑伪影分数。该绘制图可以包括表示旋转角度(其可以对应于耀斑轮廓阵列的后续行)的x轴和表示耀斑轮廓阵列的每一行中的平均亮度值的y轴。也就是说,可以绘制耀斑轮廓阵列中每行的平均像素亮度。耀斑轮廓阵列中的每一行可以表示原始图像中的度数(例如,0到360度),因此对应行的平均亮度值在绘制图上的位置可以取决于该行的相关联的度数值。根据该绘制图,可以通过找到该绘制图的峰值(例如,在该绘制图上找到的最大像素亮度值)来确定耀斑伪影分数。绘制图的峰值可以表示图像中最大耀斑伪影的幅度。此外,因为耀斑伪影可以表现出相对于光源的对称性(例如,一个耀斑伪影可以从光源垂直向上延伸,而对应的耀斑伪影可以从光源垂直向下延伸,相隔180度),所以从0度到180度和从180度到360度的绘制图可以相似或相同。考虑到这一点,可以通过将从0度到180度和从180度到360度的绘制图包括在彼此之上来合并绘制图,而不是从0度一直绘制到360度。例如,0至180度和180至360度绘制图可以彼此重叠,或者可以确定这两个绘制图的分数之和,并且也可以绘制结果。

在一些实施例中,耀斑伪影分数可用于多种目的。例如,耀斑伪影分数可以用于识别各个成像设备在图像中产生耀斑伪影方面相对于彼此表现如何。该数据可以被提供给成像设备的制造商或供应商,使得他们可以对成像设备进行适当的改变,以便减少由成像设备产生的耀斑伪影。例如,制造商或供应商可能需要清洁光学表面,如传感器盖玻片或透镜。如果这些方法不能解决问题,他们可能需要挖掘更深层次的根本原因。例如,这些耀斑可能是由未经批准的制造工艺导致的光学涂层上的微观磨损引起的。这在具有精确成像信息可能是至关重要的系统中尤其有益。例如,用于自动车辆系统,其中自动车辆需要接收表示环境中存在的实际元素的准确信息,以便正确地导航环境。依赖于产生耀斑伪影的成像设备的系统也可以实时使用耀斑伪影分数和本文描述的确定耀斑伪影分数的任何处理。例如,通过该处理,系统能够识别耀斑伪影的位置和强度,并使用该信息来过滤由成像设备收集的数据。此外,如上所述,分数可以用于确定成像设备的透镜的清洁度。镜头上的诸如污垢、污迹和/或水等污染物可能会在场景中存在强光源的情况下导致某种形式的“条纹”伪影(例如,这可以与人将智能手机相机对准太阳的情况相比较,如果相机窗口上有指纹,条纹可能是可见的)。在这种情况下,采用本文描述的方法的实时算法可以提示用户清洁他们的镜头。如果镜头在车辆上(诸如自动车辆),实时算法可以触发车辆上的清洁机制。

参考附图,图1A-图1C描绘了耀斑伪影识别过程的示例,其可与例如上面描述用于识别图像中的光耀斑伪影的方法相同或相似。特别地,图1A可以描绘过程的一部分,其中从成像设备(图中未示出)接收的第一图像102可以被转换成耀斑轮廓阵列114。在一些实施例中,第一图像102可以是由成像设备捕获的图像,并且可以用作确定由成像设备捕获的图像中产生的耀斑伪影的水平的基础。第一图像102可以包括光源104,其可以用作一个或多个耀斑伪影(例如,耀斑伪影106a和耀斑伪影106b,或者任何其他数量的耀斑伪影)的起源点。当由成像设备接收的光在成像设备内的光学器件周围反弹并且可能与成像设备的光学器件内的缺陷相互作用时,可能会产生耀斑伪影(在本文中可以被称为“透镜耀斑”、“光耀斑伪影”、“耀斑伪影”等)。这些相互作用可能导致相机或成像设备检测到环境中实际不存在的伪影。此外,光源可以是由成像设备拍摄的图像102中捕获的环境中能够产生光的任何元素。一些可能的示例可以包括太阳、街灯、车辆前灯以及能够产生可以被成像设备捕获的光的许多其他元素。

在一些实施例中,如上面描述的,该过程可涉及将第一图像102转换成耀斑轮廓阵列114,从而可确定峰值耀斑伪影值。耀斑峰值可以允许随后为成像设备确定耀斑伪影分数。为了将第一图像102转换成耀斑轮廓阵列114,从光源104径向向外延伸的每个像素行可以被转换成耀斑轮廓阵列114中所示的水平行。在这发生之前,可以执行如上所述的第一图像102的预处理。也就是说,可以执行阈值处理、二进制图创建和零填充,以及任何其他预处理步骤。一旦预处理完成,第一图像102可以被转换成耀斑轮廓阵列114。将第一图像102转换成耀斑轮廓阵列114可以通过选择从第一图像102的光源104(例如,光源104的中心)延伸到第一图像102的边缘的第一像素行108开始,光源104在第一图像102的预处理之后应该在第一102图像的中心。第一像素行108可以以如图1A所示的水平方式延伸,然而,第一像素行也可以选择为从第一图像102的光源104径向向外延伸的任何其他像素行或多个像素行。可以从第一图像102中提取第一像素行108,并将其添加到耀斑轮廓阵列114上的第一水平像素行118。一旦第一像素行108从第一图像102中被提取并被添加到耀斑轮廓阵列114,第一图像102然后可以被旋转(例如被旋转到第二图像110中所描绘的定向),使得第二像素行112可以从第一图像102中被提取并作为第二水平像素行120被添加到耀斑轮廓阵列114。为了更好地帮助旋转的可视化,虚轴115可以表示第一像素行108可能位于的第一图像102的位置。也就是说,第二图像110可以是沿顺时针方向旋转了90度的第一图像102(然而,第一图像102和第二图像110之间的这种90度旋转可能仅仅是示例性的,以有助于正在执行的旋转的可视化。像素行实际上可以通过小得多的旋转角度来提取,诸如本文描述的每像素行提取旋转一度)。在一些情况下,根据需要,在从第一图像102提取每个连续像素行之后执行的旋转可以是一个旋转度,或者两个或更多个旋转度。这可以允许提取第一图像102上的相邻像素行,直到已经从第一图像102中提取了所有期望的像素行并且作为水平像素行添加到耀斑轮廓阵列114。也就是说,耀斑轮廓阵列114可以是从第一图像102的中心径向向外延伸的像素行的水平排列。例如,耀斑轮廓阵列114的整个左手边116可以表示第一图像102的光源104,并且第一图像102中的耀斑伪影106a和耀斑伪影106b可以分别被视为耀斑轮廓阵列114中的耀斑伪影122和耀斑伪影124。这意味着若干像素行可能已经被添加到第一像素行108和第二像素行112之间的耀斑轮廓阵列114。

在一些实施例中,一旦产生从成像设备接收的第一图像102到耀斑轮廓阵列114的转换,可使用耀斑轮廓阵列114确定任何峰值耀斑伪影值。这可以在图1B中描述。然而,在确定峰值耀斑伪影值之前,可以执行耀斑轮廓阵列114的附加处理。在一些情况下,耀斑轮廓阵列114的附加处理可以首先涉及,对于耀斑轮廓阵列中的每一列,提取中值像素亮度(例如,中值像素值)。列的示例可以被示为图1B中的列125。一列可以表示耀斑轮廓阵列114中的单个垂直定向的像素阵列(然而,该列也可以包括多个相邻像素阵列)。然后可以从耀斑轮廓阵列的列中减去该中值亮度。取列中的每一列的中值可以等同于取原始图像中围绕光源的同心圆的中值。从耀斑轮廓阵列114中的每一列减去中值亮度可以用来去除任何背景改变的影响。在一些实施例中,一旦从耀斑轮廓阵列的每一列中减去了中值,就可以为包括光源104(例如,如图1B中的116所示)的捕获第一图像102(如图1A所示)的成像设备确定峰值耀斑伪影值。计算峰值耀斑伪影值可以涉及首先确定要分析的耀斑轮廓阵列114的区域126。可以选择耀斑轮廓阵列的区域126,使得耀斑轮廓阵列114的左手侧128不包括在区域126内,其中可以找到表示光源的像素(例如如116所示)。也可以选择耀斑轮廓阵列114的区域的右手侧130,使得原始图像中的耀斑伪影的绘制图136(其示例在图1C中示出)被适当地缩放,使得可以相对于外来噪声或图像的其他部分(例如,非零值的图像像素,但是可能不与耀斑伪影相关联)来识别耀斑伪影。

在一些实施例中,图1C可描绘与不包含在区域126内的耀斑轮廓阵列114的部分分离的区域126。图1C描绘了区域126的两个独立部分。第一部分132可以表示从0度到180度的第一图像102的像素行(第一图像102旋转了180度),第二部分134可以表示从181度到360度的第一图像102的像素行。如上所述,因为耀斑伪影可以表现出相对于光源的对称性(例如,一个耀斑伪影可以从光源垂直向上延伸,并且对应的耀斑伪影可以从光源垂直向下延伸),所以从0度到180度和从180度到360度的绘制图可以是相似的或相同的(这是图1C中描绘的第一部分132和第二部分134的情况)。鉴于此,可以通过将从0度到180度和从180度到360度的绘制图包括在彼此之上来合并耀斑伪影的绘制图136,而不是从0度一直绘制到360度。根据该绘制图,可以确定峰值耀斑伪影值138。例如,在图1C中描绘的绘制图136中,峰值耀斑伪影值138可以约为22。该峰值耀斑伪影值138值22可以表示捕获第一图像102的成像设备的耀斑伪影分数。耀斑伪影分数然后可以用作在产生具有不同程度的耀斑伪影的图像方面去比较各种成像设备相对于彼此的性能的度量。

图2描绘了可用于比较各种成像设备的耀斑伪影分数的示例绘制图202。如上所述,这些耀斑伪影分数可以基于由成像设备捕获的图像204来确定。例如,图像204a-204f可以示出由六个不同的成像设备捕获的图像,其呈现不同数量的耀斑伪影,其中204a-204c包括具有更明显的耀斑伪影的图像,而204d-204f包括具有不太明显的耀斑伪影的图像。因此,图像204a-204c的耀斑伪影分数可能大于图像204d-204f的耀斑伪影分数。绘制图202可以并排描绘各个图像的这种耀斑伪影分数,使得成像设备的相对性能的比较可以被可视化。图2中描绘的特定绘制图202可以是直方图,但是也可以使用任何其他类型的绘制图。在绘制图202内,一些耀斑伪影分数可能大于其他分数。例如,耀斑伪影分数的第一分组206可以包括比分数的第二分组208更小的耀斑伪影分数。耀斑伪影分数的第二分组208可以表示一组成像设备,该一组成像设备比与耀斑伪影分数的第一分组206相关联的成像设备更倾向于捕获具有更明显的耀斑伪影的图像。例如,与图像204d-204f相比,耀斑伪影分数的第二分组208可能更有可能与捕获图像204a-204c的成像设备相关联,尽管与图像204a-204f相关联的耀斑伪影分数可能不一定对应于绘制图202中描绘的耀斑伪影分数。

说明性方法

图3是根据本公开的一个或多个示例实施例的示例方法300。

在图3中的方法300的块302处,该方法可包括从成像设备接收图像,该图像包括指示源自图像的区域的耀斑伪影的数据。在某些情况下,图像也可以是视频或实时数据流的形式。该图像可以包括环境中特定区域的图像,并且该区域可以包括光源(例如,太阳)或者能够在由成像设备捕获的图像中产生耀斑伪影的其他物体。在一些情况下,该图像可以包括该区域在环境中相对于该区域处于不同定向的多个图像。例如,系统可以从入射角在-20度、0度和20度的定向捕获三个图像。通过一个或多个图像可以捕获一个以上的定向,因为耀斑伪影可能根据光源的位置而改变。例如,如果在此描述的方法被应用于不同定向的多个图像,则每个定向的结果度量可以按顺序排序。然后,具有最高结果值(或最低结果值,取决于所使用的度量)的图像可以被用作该特定成像设备的结果分数。同样,耀斑伪影可能是定向相关的,因此在多个定向拍摄多个图像并在这些定向确定不同的度量以确定成像设备在最坏情况下产生的耀斑伪影的水平可能是有益的。尽管可以以下面将要描述的方式捕获和处理一个以上的定向,但是为了简单起见,下面的描述可能仅仅举例说明可以对图像之一执行的处理。下面描述的过程也可以类似地应用于任何给定定向上的任何数量的附加图像,并且可以相对于感兴趣区域仅使用一个定向上的一个图像来应用。

方法300的块304可包括基于图像数据确定从区域径向向外延伸的第一像素阵列和从区域径向向外延伸的第二像素阵列。方法300的块306可以包括基于图像数据创建耀斑阵列,该耀斑阵列包括第一像素阵列和第二像素阵列。也就是说,为了从图像创建耀斑轮廓阵列,可以单独提取从光源径向向外延伸的每个像素阵列。从像素阵列从图像的中心处的光源的质心向外水平延伸到图像的边缘开始(例如,如图1A所示),在提取每个后续的像素阵列之后,可以通过逆时针或顺时针方向递增地旋转图像一定的旋转角度来提取每个像素阵列。这可以被执行,直到图像的所有像素已经被提取并被添加到耀斑轮廓阵列。例如,从图像的中心处的光源的质心向外延伸的像素阵列可以被提取并作为第一行添加到耀斑轮廓阵列。然后,零填充图像可以旋转单个角度,使得与在图像的中心从光源一侧向外延伸的原始像素阵列相邻的像素阵列可以取代在图像的中心从光源一侧向外延伸的像素阵列。该像素阵列然后可以被提取并添加到耀斑轮廓阵列,作为耀斑轮廓阵列上第一像素行下面的第二像素行。这个过程可以继续,直到图像上的所有像素已经被转换成耀斑轮廓阵列上的像素行。同样,这个过程可以通过下面描述的图1A更好地可视化。这种提取像素阵列的过程可以是将原始图像从笛卡尔(x,y)坐标重新映射到极坐标(半径,θ)的一种形式。

方法300的块308可包括基于耀斑阵列确定指示耀斑伪影的大小的峰值耀斑伪影值。方法300的块310可以包括基于峰值耀斑伪影值确定成像设备的耀斑伪影分数。

图3的说明性工艺流程中描述和描绘的操作可根据本公开各种示例性实施例的需要以任何合适的顺序实施或执行。此外,在某些示例实施例中,至少一部分操作可以并行执行。此外,在某些示例实施例中,可以执行比图3所示的操作更少、更多或不同的操作。

尽管已对本公开的特定实施例进行了描述,但本领域普通技术人员将认识到,本公开的范围内还包括许多其他修改和替代实施例。例如,针对特定设备或组件描述的任何功能和/或处理能力可以由任何其他设备或组件来执行。此外,虽然已经根据本公开的实施例描述了各种说明性实施方式和架构,但是本领域普通技术人员将理解,对本文描述的说明性实施方式和架构的许多其他修改也在本公开的范围内。

上文参考根据示例实施例的系统、方法、装置和/或计算机程序产品的块和流程图描述了本公开的某些方面。将会理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可以分别通过执行计算机可执行程序指令来实现。同样,根据一些实施例,框图和流程图中的一些块可能不一定需要按照所呈现的顺序来执行,或者可能根本不需要执行。此外,在某些实施例中,可以存在除了框图和/或流程图的块中所描绘的那些之外的附加组件和/或操作。

因此,方框图和流程图的块支持用于执行指定功能的装置件(mean)的组合、用于执行指定功能的元件或步骤组合以及用于执行指定功能的程序指令装置件。还应该理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由专用的、基于硬件的计算机系统来实现,该计算机系统执行指定的功能、元素或步骤,或者专用硬件和计算机指令的组合。

说明性系统架构

图4示出了根据本公开的一个或多个实施例的示例计算设备400。计算设备400可以是用于执行关于耀斑伪影分数确定的任何处理或本文描述的任何其他处理的设备。计算设备400可以包括至少一个处理器402,该处理器执行存储在一个或多个存储器设备(称为存储器404)中的指令。指令可以是例如用于实现被描述为由上面公开的一个或多个模块和系统执行的功能的指令,或者用于实现上面公开的一个或多个方法的指令。处理器402可以体现在例如CPU、多个CPU、GPU、多个GPU、TPU、多个TPU、多核处理器、其组合等中。在一些实施例中,处理器402可以布置在单个处理设备中。在其他实施例中,处理器402可以分布在两个或更多个处理设备(例如,多个CPU;多个GPU;多个CPU和多个GPU的组合;等)。处理器可以实现为处理电路或计算处理单元的组合(诸如CPU、GPU或两者的组合)。因此,为了便于说明,处理器可以指单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力多核处理器;采用硬件多线程技术的多核处理器;并行处理(或计算)平台;和具有分布式共享存储器的并行计算平台。此外,或者作为另一个示例,处理器可以指被设计或以其他方式配置(例如,制造)来执行本文所述功能的集成电路(IC)、ASIC、数字信号处理器(DSP)、FPGA、PLC、复杂可编程逻辑器件(CPLD)、分立门或晶体管逻辑、分立硬件组件或其任意组合。

处理器402可通过通信架构406(例如,系统总线)访问存储器404。通信架构406可以适用于处理器402的特定布置(集中式或分布式)和类型。在一些实施例中,通信架构406可以包括一个或多个总线架构,诸如存储器总线或存储器控制器;外围总线;加速图形端口;处理器或局部总线;它们的组合;等。作为示例,这样的架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA (EISA)总线、视频电子标准协会(VESA)本地总线、加速图形端口(AGP)总线、外围组件互连(PCI)总线、PCI-Express总线、个人计算机存储卡国际协会(PCMCIA)总线、通用串行总线(USB)等。

本文公开的存储器组件或存储器设备可在易失性存储器或非易失性存储器中实施,或可包括易失性存储器和非易失性存储器。此外,存储器组件或存储器设备可以是可移动的或不可移动的,和/或在计算设备或组件的内部或外部。各种类型的非暂时性存储介质的示例可以包括硬盘驱动器、zip驱动器、CD-ROM、数字多功能盘(DVD)或其他光存储设备、盒式磁带、磁带、磁盘存储设备或其他磁存储设备、闪存卡或其他类型的存储器卡、盒式磁带或任何其他适于保存所需信息并且可以由计算设备访问的非暂时性介质。

作为示例,非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可以包括随机存取存储器(RAM),其充当外部高速缓冲存储器。作为说明而非限制,RAM可以以多种形式获得,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)和直接Rambus RAM(DRRAM)。本文描述的操作或计算环境的所公开的存储器设备或存储器旨在包括这些和/或任何其他合适类型的存储器中的一个或多个。

除存储可执行指令外,存储器404还可保存数据,诸如任何分类账156信息及其他数据。

每个计算设备400还可包括可由处理器402通过通信架构406访问的大容量存储装置408。大容量存储装置408可以包括机器可访问指令(例如,计算机可读指令和/或计算机可执行指令)。在一些实施例中,机器可访问指令可以被编码在大容量存储装置408中,并且可以被布置在组件中,这些组件可以被构建(例如,被链接和编译)并且以计算机可执行的形式保留在大容量存储装置408中或者计算设备400中包括的一个或多个其他机器可访问的非暂时性存储介质中。这些组件可以体现或构成本文公开的各种模块中的一个或多个。这些模块被示为节点配置模块414。

由至少一个处理器402单独或组合执行节点配置模块414,可使计算设备400执行本文所述的任何操作(例如,关于图4所述的操作,以及任何其他操作)。

每个计算设备400还可包括一个或多个输入/输出接口设备410(称为I/O接口410),可允许或以其他方式促进外部设备与计算设备400进行通信。例如,I/O接口410可以用于从外部计算设备接收数据和/或指令以及向外部计算设备发送数据和/或指令。计算设备400还包括一个或多个网络接口设备412(称为网络接口412),其可以允许或以其他方式促进计算设备400与一个或多个外部设备的功能耦合。将计算设备400功能性地耦合到外部设备可以包括在计算设备400和外部设备之间建立有线连接或无线连接。网络接口设备412可以包括一个或多个天线和通信处理设备,其可以允许车辆和另一车辆或外部设备之间的无线通信。另一车辆可以是例如网络110中包括的车辆之一或者网络外的车辆。外部设备可以是例如网络110中包括的移动设备之一。这种通信处理设备可以根据一个或多个无线电技术的定义协议来处理数据。无线电技术可以包括例如3G、长期演进(LTE)、高级LTE、5G、IEEE 802.11、IEEE 802.16、蓝牙、ZigBee、近场通信(NFC)等。

在一些实施例中,计算设备400可与成像设备416通信(例如,通过图4所示的计算设备的I/O接口410)。成像设备416可以与在此描述的任何成像设备相同(例如,基于成像设备捕获的一个或多个图像确定耀斑伪影分数的成像设备)。

本申请中使用的术语“环境”、“系统”、“单元”、“模块”、“架构”、“接口”、“组件”等是指与计算机相关的实体或与具有一个或多个定义功能的操作装置相关的实体。术语“环境”、“系统”、“模块”、“组件”、“架构”、“接口”和“单元”可以互换使用,并且可以统称为功能元件。这些实体可以是硬件、硬件和软件的组合、软件或执行中的软件。作为示例,模块可以体现在运行在处理器上的进程、处理器、对象、软件的可执行部分、执行线程、程序和/或计算设备中。作为另一个示例,在计算设备上执行的软件应用和计算设备都可以包含模块。作为又一示例,一个或多个模块可以驻留在执行的进程和/或线程中。模块可以位于一个计算设备上,或者分布在两个或多个计算设备之间。如本文所公开的,模块可以从其上存储有各种数据结构的各种计算机可读非暂时性存储介质中执行。模块可以根据例如具有一个或多个数据分组的信号(模拟的或数字的)经由本地和/或远程过程进行通信(例如,来自一个组件的数据,该组件经由信号与本地系统、分布式系统中的另一个组件进行交互,和/或通过诸如广域网的网络与其他系统进行交互)。

作为另一个示例,模块可嵌入或可包括具有由电气或电子电路操作的机械部件提供的规定功能的装置,电气或电子电路由处理器执行的软件应用或固件应用控制。这种处理器可以在装置的内部或外部,并且可以执行至少部分软件或固件应用。在另一个示例中,模块可以包含在装置中,或者可以包括装置,该装置通过电子组件而没有机械部件来提供定义的功能。电子组件可以包括处理器,以执行软件或固件,该软件或固件至少部分地允许或以其他方式促进电子组件的功能。

在一些实施例中,模块可以按照例如具有一个或多个数据包的信号(模拟或数字)(例如,来自一个组件与本地系统、分布式系统中的另一个组件交互的数据,和/或通过网络,如通过信号与其他系统的广域网)通过本地和/或远程程序进行通信。此外,或在其他实施例中,模块可以经由热、机械、电和/或机电耦合机制(诸如导管、连接器、其组合等)通信或以其他方式耦合。接口可以包括输入/输出(I/O)组件以及相关联的处理器、应用和/或其他编程组件。

此外,在本说明书和附图中,术语,诸如“存储”、“存储装置”、“数据存储”、“数据存储装置”、“存储器”、“储存库”,以及与本公开组件的操作和功能相关的基本上任何其他信息存储组件,是指存储器组件、一个或多个存储器设备中包含的实体或形成存储器设备的组件。注意,本文描述的存储器组件或存储器设备包含或包括可由计算设备读取或以其他方式访问的非暂时性计算机存储介质。这种介质可以以用于存储信息的任何方法或技术来实现,诸如机器可访问指令(例如,计算机可读指令)、信息结构、程序模块或其他信息对象。

条件语言,除其他外,诸如“可能”或“可以”,除非另有特别说明,或在所使用的上下文中另有理解,通常旨在传达某些实施方式可包括,而其他实施方式不包括,某些特征、元件和/或操作。因此,这种条件语言通常不旨在暗示特征、元素和/或操作对于一个或多个实施方式是以任何方式需要的,或者一个或多个实施方式必须包括用于在有或没有用户输入或提示的情况下决定这些特征、元素和/或操作是否被包括在任何特定实施方式中或者将被执行的逻辑。

本说明书和附图中描述的内容包括系统、设备、技术和计算机程序产品的示例,其单独或组合允许自动提供车辆配置文件包的更新。当然,不可能为了描述本公开的各种元素而描述组件和/或方法的每一种可能的组合,但是可以认识到,所公开的元素的许多进一步的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下,可以对本公开进行各种修改。此外,或者作为替代,通过考虑说明书和附图,以及如本文所呈现的本公开的实践,本公开的其他实施例可以是显而易见的。说明书和附图中提出的示例在所有方面都应被认为是说明性的而非限制性的。尽管本文使用了特定的术语,但是它们仅用于一般的和描述性的意义,而不是为了限制的目的。

技术分类

06120115940230