使用图像数据进行信息提取的制作方法

文档序号:15104737发布日期:2018-08-04 16:36阅读:189来源:国知局

传统的气象预报员具有各种各样的工具来获得气象信息,诸如气象站和气象卫星。气象站可以收集风速、气温、气压等数值数据。气象卫星可以显示云的形成和大规模的气象事件,诸如飓风。尽管如此,气象站相距几英里远,且通常限于采集数值数据。气象卫星置于地球上方几千英里,且限于观察大规模的气象事件。受制于各种限制,现有气象预报的准确度无法满足人们的需求。例如,户外运动爱好者或狂热旅行者需要特定区域的准确且实时的气象信息来安排他们的户外或旅行计划。同样地,商务人员需要精确的气象预测来优化流程并减小与气象有关的经济风险。

附图说明

下面的详细描述将在结合附图阅读时得到更好的理解。出于说明的目的,图中示出了本公开的各方面的示例性实施例;然而,本发明不限于所公开的具体方法和手段。

图1是示出根据本公开可使用的用于收集和处理气象数据的示例性系统的示意图。

图2是示出根据本公开可使用的示例性基于云的服务器的示意图。

图3是示出根据本公开可使用的气象数据库的示例性数据矩阵的简化图。

图4是示出根据本公开可使用的示例性计算设备的示意图。

图5是示出根据本公开可使用的用于使用图像数据进行云覆盖确定的示例性过程的流程图。

图6A和图6B分别示出确定云覆盖所使用的图像和图像的代表(representative)。

图7是示出根据本公开可使用的云覆盖数据库的示例性数据矩阵的简化图。

图8是示出根据本公开可使用的用于使用图像数据进行太阳检测的示例性过程的流程图。

图9是示出根据本公开可使用的用于使用图像流进行天空区域提取的示例性过程的流程图。

图10A示出天空区域提取所使用的示例性图像流。

图10B示出从使用图像流进行天空区域提取所生成的示例性掩膜图像(mask image)。

图10C示出从使用图像流进行天空区域提取所生成的示例性经修改的掩膜图像。

图11是示出根据本公开可使用的用于使用图像流进行太阳轨迹提取的示例性过程的流程图。

图12A-12B示出太阳轨迹提取所使用的示例性图像流。

图12C示出从使用图像流进行太阳轨迹提取所生成的示例性太阳轨迹。

具体实施方式

本文描述了使用图像数据进行气象信息提取的技术。根据本公开,可将经济的气象数据收集设备安装在地球上的任何地方,并形成气象数据收集设备的密集网络。优选地,这些气象数据收集设备包括可从任何特定位置随时间捕获一系列的序列图像(即图像流)的图像捕获组件。所公开的技术包括从一系列的时间序列图像提取天空区域。所提取的天空区域可用于确定云层覆盖范围、太阳轨迹等,从而能够提供准确的气象预报以及其他气象数据挖掘能力。

在一些示例中,可接收一系列的时间序列图像以用于提取给定位置的天空区域。这一系列的时间序列图像之中的每个图像包括多个相应数据元素。天空区域的提取可进一步包括:基于颜色值来识别每个图像的多个相应数据元素中的第一类型数据元素。响应于确定相应数据元素在小于某数目的图像中被识别为第一类型数据元素,从第一类型数据元素中移除该相应数据元素,该小于某数目的图像为一系列的时间序列图像之中的图像。生成一个代表,所述代表包括由相邻第一类型数据元素组成的至少一个集合所表示的至少一个天空组分。

天空区域的提取可进一步包括:由边缘检测器来识别在一系列的图像的每个图像的多个相应数据元素之中的第二类型数据元素,其中第二类型数据元素表示非边缘部分。响应于确定相应数据元素在小于预定数目的图像中被识别为第二类型数据元素,从第一类型数据元素中移除该相应数据元素,该小于预定数目的图像为一系列的图像之中的图像。

在一些情况下,所生成的代表可以包括多个天空组分,并且然后所生成的代表可能需要附加的修改。响应于确定一个天空组分具有小于某值的区域面积,从多个天空组分中移除该天空组分。在多个天空组分之中识别具有最大区域面积的第一天空组分。一旦确定第二天空组分相对于最大天空组分的关联系数小于阈值,则从多个天空组分中移除该第二天空组分。可生成经修改的代表,其中经修改的代表包括剩余的天空组分,剩余的天空组分表示天空区域。

如本文所描述的,所提取的天空区域尤其可用于确定云层覆盖范围(即云量)。在一些示例中,所提取的天空区域可用来遮罩(mask)从同一位置捕获的图像,以便获得图像的天空区域。图像的天空区域包括多个数据元素。多个数据元素可基于它们的颜色值被分为其他类型的数据元素,例如第三类型数据元素和第四类型数据元素。可由太阳检测器在第三类型数据元素之中识别由相邻数据元素集合形成的太阳部分。可从第三类型数据元素中移除该相邻数据元素集合。然后,可基于第三类型数据元素占多个数据元素中的比例确定图像的天空区域的云量。

如本文所述的,所提取的天空区域还可以用于确定太阳轨迹。在一些示例中,可接收在至少连续两天期间捕获的至少两个图像流以用于确定太阳轨迹。所提取的天空区域可用来遮罩至少两个图像流中的图像以确定该图像的天空区域。可基于图像捕获时间识别至少两个图像流中的至少一对相应图像。一旦检测到至少一对相应图像包括各自的太阳部分,则可确定太阳部分相互重叠。可将至少一对重叠的太阳部分的形心识别为样本。可基于在至少两个图像流中所识别的形心样本生成太阳轨迹。

所公开的技术还可以包括太阳检测器。在一些示例中,太阳检测器可包括基于色调值识别相邻数据元素的至少一个集合。在一些情况下,可以存在由相邻数据元素的至少一个集合形成的多个部分。可在多个部分之中识别最大区域面积Cs,然后Cs可由最小几何形状Cir包围。一旦确定的Cs与Cir的面积之比大于阈值且Cir的半径落入预定范围,则可将具有最大区域面积Cs的部分检测为太阳部分。在一些示例中,所公开的技术可进一步包括接收与太阳轨迹相对应的数据,以及响应于确定所检测的太阳部分与太阳轨迹相交,验证所检测的太阳部分是真实的太阳部分。

图1是示出根据本公开可使用的用于收集和处理气象数据的示例性系统100的示意图。如所示的,系统100包括多个数据收集设备110a……110n(统称为110)、至少一个服务器120以及多个计算设备130a……130n(统称为130)。数据收集设备110和计算设备130可经由一个或更多个网络150与服务器120通信。

数据收集设备110用来捕获天空图像和其他气象数据,诸如温度、湿度、气压、UV照射、降水等。数据收集设备110可安装在地球上的任何地方,从而形成气象数据收集设备110的密集网络。例如,数据收集设备110可安装在地面上或安装在任何合适的结构上。优选地,数据收集设备110安装在具有清晰的天空视野以及尽可能远离高大障碍物的位置,所述高大障碍物诸如树木、建筑和栅栏。

数据收集设备110包括用于捕获天空图像的摄像机112。摄像机112可以是任何合适的摄像机,诸如超广角HD摄像机。作为示例而非限制性地,摄像机112可以被编程为在日出前30分钟打开和在日落后30分钟关闭。摄像机112还可被编程为每隔一定的时间间隔(诸如每隔三分钟)拍摄图片。在一些示例中,可以朝向特定天空视野固定摄像机112的每一个,且每个摄像机可以每一天采集特定视野的一系列的时间序列天空图像(即图像流)。在每天结束时,可将从特定位置捕获的一系列的天空图像组合成壮观的延时视频供用户观察和共享。数据收集设备110可从环绕世界的各种位置捕获大量系列的时间序列天空图像。

可从由数据收集设备110所捕获的时间序列天空图像中准确提取气象信息。在一些示例中,这些图像可用来确定不同时间和位置的云层覆盖范围、云层暗度以及云型或云纹图,以便获得关于气象系统或事件(诸如雷雨系统或降水)在给定位置随时间演变或在大片区域随时间演变的综合信息,从而例如能够实现准确的气象预报。

数据收集设备110还可包括用于采集温度、湿度、气压、UV照射、降水的传感器116以及其他数据收集传感器。传感器可以是用于测量相应大气参数的任何合适的传感器。例如,雨水传感器可以用来测量降水。优选地,雨水传感器能够区分降水与其他水分。作为示例而非限制性地,光度传感器可以用来测量日光亮度和照射。数据收集设备110可以包括存储器118,用于存储用于缓冲的和通过可具有间歇连通性的网络连接发送的图像和数值数据。

典型地,数据收集设备110可经由网络150将数据传送到服务器120以进行存储和处理。服务器120可以托管(host)配置为管理服务的一个或更多个应用程序。例如,服务器120可以被配置为在授权计算设备130访问所存储的数据之前验证这些计算设备。服务器120可维持与用户账户相关的信息,包括账户明细和其他。服务器120可操作包括由数据收集设备110所捕获的图像的一个或更多个图像库,其可由计算设备130来访问。另外,服务器120可托管配置为与存储在计算设备130上的应用程序交互的一个或更多个应用程序。

服务器120可以包括总线122,总线122将服务器120的主要组件互连,服务器120的主要组件诸如一个或更多个处理器124、一个或更多个存储设备126以及通信电路128。处理器122可以是任何合适的可编程控制设备。处理器122可以处理由数据收集设备110所捕获的数据,并从图像数据中提取各种气象/气候信息。存储设备126可以与服务器120构成一体或各自分离,通过接口访问存储设备126。存储设备126可以存储由数据收集设备110所捕获的图像流、用于实现服务器120上各种功能的软件以及其他数据。通信电路128可以包括一个或更多个接口,以允许服务器120经由一个或更多个网络150与数据收集设备110、计算设备130、其他服务器和/或数据库通信。服务器120可以是基于云的服务器。

图2是示出根据本公开可使用的示例性基于云的服务器200的示意图。基于云的服务器200可以提供基础设施服务、平台服务以及软件应用程序服务。基础设施服务可以包括虚拟化资源,诸如虚拟机、虚拟存储等。基础设施服务还可以包括虚拟化服务,诸如数据库服务以及其他。这些基础设施服务中的每一个都可以部署在基础设施服务层220中。

可以由管理员用户来配置基础设施服务部署的规模和各个方面,诸如服务组件内部及服务组件之间的数据、连通性以及依赖关系。例如,管理员用户可以经由前端接口250和服务管理器260向基于云的服务器200提交配置规范。配置规范可以转换为基础设施和内核级API调用,其创建、重新创建、移动或删除诸如虚拟机和服务之类的组件,并指派或改变组件的属性。

除了基础设施服务,基于云的服务器200还可以提供平台服务,诸如用于运行虚拟机的环境或用于开发和启动特定类型软件应用程序的架构。可以在基础设施服务层220之上的平台服务层230中实现平台服务,并且可以采用以特定方式配置的一个或更多个基础设施服务。可以通过根据平台服务的API所编写的程序代码以及可选地根据在使能平台服务中所采用的基础设施服务的API所编写的程序代码来完成平台服务的配置。

在一些示例中,基于云的服务器200还可以提供应用程序服务层240中的软件应用程序服务。软件应用程序可以安装在一个或更多个虚拟机上,或部署在平台服务层230中的应用程序架构中。软件应用程序还可以与基础设施层220中的一个或多个基础设施服务组件(诸如数据库)通信。应用程序服务层240中的软件应用程序的安装和配置可以通过软件本身的API和底层平台与基础设施服务组件的API来完成。

根据服务的类型,在配置服务时可授予云服务用户不同级别的控制权。例如,如果使用软件应用程序服务,则让管理员用户能控制如何配置软件应用程序。如果使用平台服务,则让管理员用户能控制如何配置平台和/或应用程序架构。类似地,如果使用基础设施服务,则让管理员用户能控制所使用的特定基础设施服务。

如上所述,由数据收集设备110所传送的数据可被存储在服务器120中,诸如基于云的服务器200。数据还可存储在单独的云存储服务器中。每个数据收集设备110可与用户标识符(即用户ID)和设备标识符(即设备ID)相关联。除了所捕获的图像和其他气象数据以外,由数据收集设备110所传送的数据可以包括它们各自的用户ID、设备ID以及位置信息。在一些示例中,每个数据收集设备110可与相应的计算设备相关联;用户ID、设备ID以及位置信息可以由相应的计算设备传送到服务器120或其他单独的云存储服务器。可创建一个或更多个气象数据,以包含由数据收集设备110和/或相应计算设备130所传送的数据。

图3是示出根据本公开可使用的气象数据库的示例性数据矩阵300的简化图。如所示的,数据矩阵300可以包括用户ID、设备ID、图像数据、温度、湿度、气压、UV照射、降水、位置、时间、日期等。可以按支持数据处理和信息提取的任何合适的方式组织一个或更多个气象数据库,诸如基于图像数据进行云量确定,这将在下面更详细地描述。可以定期更新气象数据库以反映新的数据。气象数据库可分成数据子集,并可由分开的系统(诸如服务器120和计算设备130)并行处理。

图4是示出可用作计算设备130之一的示例性计算设备400的示意图。计算设备400可以是智能手机、平板计算机、膝上型计算机、台式计算机或任何其他种类的设备。计算设备400包括处理器406,其通过总线402耦合到系统存储器408、永久存储器410、输入/输出(I/O)接口412以及网络接口416。处理器406可以是能够执行指令的任何合适的可编程处理单元。例如,在各种实施例中,处理器406可以是实现任何各种指令集架构的嵌入式处理器。系统存储器408可以是易失性读和写存储器,诸如随机存取存储器。

永久存储器410可以是本地或远程的,并且永久存储器410可以存储指令和数据,诸如由数据收集设备110所捕获的数据。I/O接口412可以为计算设备400提供与不同外围设备(诸如显示器、键盘、鼠标等)的通信。I/O接口412可以被配置为协调处理器406、系统存储器408、永久存储器410、网络接口413以及任何其他外围设备之间的I/O流量。网络接口416可被配置为支持经由任何合适的有线或无线通用数据网络或电信/电话网络的通信,这允许计算设备400和其他设备之间的数据交换,所述其他设备诸如数据收集设备110和服务器120,包括基于云的服务器200。

网络150可以是本地网络、广域网(包括互联网)、电信/电话网络、任何其他合适的通信网络。网络150可以实现在任何合适的平台上,包括有线和/或无线网络。网络150可以是公用网络和/或私有网络的一部分,还可以包括一个或更多个网关,其使用不同的协议促进设备之间的数据传输。

如上所述,由数据收集设备110所捕获的图像可以用来准确提取气象/气候信息。例如,由数据收集设备110所采集的图像可以用来确定云覆盖。云覆盖是指当从特定位置观测时天空被云层所遮盖的部分。云覆盖还称为云量、云的量或云数量。

图5是示出根据本公开可使用的用于使用图像数据进行云量确定的示例性过程500的流程图。可以单独或组合地使用服务器120(诸如基于云的服务器200)、计算设备130或其他计算设备,以实现云量确定过程500。虽然描绘为操作序列,但本领域普通技术人员将理解,各种实施例可以添加、移除、重新排序、或修改所描绘的操作。

在操作502,接收与一个视野的图像相对应的图像数据。图像数据采用预定的图像格式,诸如RGB(红、绿、蓝)格式。在一些实施例中,图像数据可由数据收集设备110之一或其他图像捕获设备来提供。在其他实施例中,图像数据可以由诸如基于云的服务器200的服务器120或图像数据存储于其中的其他单独的云存储服务器来提供。应该理解,根据图像的捕获时间和位置,云量确定过程500可以用来确定不同时间给定位置的云量或同一时间不同位置的云量。

在操作504,可以接收由天空区域提取算法520所生成的同一视野的掩膜图像以及该掩膜图像可以覆盖图像以确定图像的天空区域。在一个示例中,天空区域提取算法520可以由实施云量确定过程500的同一计算设备来执行。在其他示例中,天空区域提取算法520可以由单独的计算设备来执行。由天空区域提取算法520所生成的掩膜图像可以由执行云量确定过程500的计算设备经由网络150获得。在一些示例中,由天空区域提取算法520所生成的掩膜图像预先保存在任何合适的存储设备中。天空区域提取算法520的实施例将在下文中参照图9和10A-10C进行更详细的描述。

图像的天空区域包括多个数据元素,诸如像素。数据元素的RGB颜色值可以用来将它们分类成“云”类型数据元素和“晴空”类型数据元素。例如,如果数据元素的颜色值满足|R-B|<30并且|B-G|<30的标准,则该数据元素将被分类为“云”类型数据元素。另一方面,如果数据元素的颜色值不满足|R-B|<30并且|B-G|<30的标准,则该数据元素将被分类为“晴空”类型数据元素。

然而,仅基于颜色值标准来对数据元素进行分类可能导致将图像的太阳部分中的数据元素误分类为“云”类型元素。为了消除潜在的误差,在操作506,可以使用太阳检测算法来确定图像数据是否包括太阳部分。太阳检测算法的实施例将在下文中参照图8进行更详细的描述。

在操作508,可以接收并使用由太阳轨迹提取算法530所估计的太阳轨迹,以验证在操作506所检测到的太阳部分是否是真实的太阳部分。太阳轨迹提取算法530的实施例将在下文中参照图11和12A-12B进行更详细的描述。在一些示例中,太阳轨迹提取算法530可以由实施云量确定过程500的同一计算设备来执行。在其他示例中,太阳轨迹提取算法530可以由单独的计算设备来执行。由太阳轨迹提取算法530所估计的太阳轨迹可以由执行云量确定过程500的计算设备经由网络150获得。在一些示例中,由太阳轨迹提取算法530所估计的太阳轨迹可以预先保存在任何合适的存储设备中。

可以确定所检测到的太阳部分是否与由太阳轨迹提取算法530所估计的太阳轨迹相交。如果所检测到的太阳部分与太阳轨迹相交,则其将被验证为真实的太阳部分,且形成太阳部分的数据元素将从“云”类型被改变为“晴空”类型数据元素。另一方面,确定所检测到的太阳部分与太阳轨迹不相交表示其不是真实的太阳部分,且形成所检测到的太阳部分的数据元素将保持作为“云”类型数据元素。

在操作510,基于多个数据元素中的“云”类型数据元素的比例确定天空区域的云量。在一些示例中,可生成图像的代表以用于确定图像的天空区域的云量。图6A示出了可由数据收集设备110之一捕获的原始图像600的示例。图6B示出了图像600的代表610,在该示例中,天空区域的云量被确定为40.72%。所确定的云量值可以存储在任何合适的设备/系统中,诸如服务器120,包括基于云的服务器200,或其他单独的存储服务器或计算设备。

如上所述,数据收集设备110可以安装在世界各地的任何地方,它们可以捕获天空的各个视野的大量图像流。这些图像流以及它们相应的ID、位置、时间、日期信息可存储在服务器120(诸如基于云的服务器200)中,或其他单独的存储服务器或计算设备中。可以基于由例如云量确定过程500所确定的天空的相邻视野的云量值来计算多个数据收集设备110所覆盖的大片区域的总计云量。可以创建一个或更多个云量数据库,以包含所确定的各个视野的云量值,从而使得能够获得全世界任何感兴趣区域的任何总计云量。图7是示出根据本公开可使用的云量数据库的示例性数据矩阵700的简化图。

图8是示出根据本公开可使用的示例性太阳检测过程800的流程图。虽然图8描绘了操作序列,但本领域普通技术人员将理解,各种实施例可以添加、移除、重新排序或修改所描绘的操作。太阳检测过程800用来检测图像数据之中的太阳部分。在一些示例中,由根据本公开的天空区域提取算法(诸如下文将充分描述的天空区域提取过程900)所生成的掩膜图像可以用来遮罩图像,以便在执行太阳检测过程800之前确定图像的天空区域。

如上所述,太阳检测过程800可以用来实现云量确定过程500的操作506。太阳检测过程800还可以用作根据本公开的太阳轨迹提取算法(诸如下文将描述的太阳轨迹提取过程1100)的一部分。在操作802,获得例如HSV(色调、饱和度和亮度值)格式的图像数据。在一些示例中,其中图像数据以其他格式诸如RGB格式被接收,优选地,将图像数据转换为HSV格式。

在操作804,如果图像数据之中的数据元素(诸如像素)的色调值小于阈值,则将该数据元素标记为“亮区”部分的一个。已知色调值取值范围为从0到360。作为示例而非限制性地,可将色调阈值设置为10。如果数据元素的色调值小于10,则将数据元素标记为“亮区”部分的数据元素。重复操作804直到已经处理图像数据之中的所有数据元素。在已通过操作804处理所有数据元素后,可通过相邻数据元素的各集合形成多个“亮区”部分。

在操作806,可在所有“亮区”部分之中识别最大区域面积Cs。在一些示例中,可以画出“亮区”部分的区域以便确定各自的区域面积。选择具有最大区域面积Cs的“亮区”部分。在操作808,通过最小几何形状包围具有最大区域面积Cs的“亮区”部分。优选地,最小几何形状是最小圆形Cir。

操作810确定Cs与Cir的面积之比是否满足阈值要求。作为示例而非限制性地,可将阈值要求设置为“大于0.5”。如果面积比Cs/Cir满足阈值要求,则太阳检测过程800可以行进到操作812。另一方面,如果面积比Cs/Cir不满足阈值要求,则太阳检测过程800可以行进到操作814,在该操作确定图像数据之中不存在太阳部分。

操作812确定最小几何形状(诸如最小圆形Cir)的半径是否落入某个范围。作为示例而非限制性地,可将该某个范围设置为“大于大约15px且小于大约100px”。如果最小几何形状(诸如最小圆形Cir)的半径在该某个范围内,则太阳检测过程800可以行进到操作816,在该操作将具有最大区域面积Cs的“亮区”确定为太阳部分。另一方面,如果最小几何形状(诸如最小圆形Cir)的半径未落在该某个范围内,则太阳检测过程800可以行进到操作814,在该操作确定图像数据之中不存在太阳部分。

图9是示出根据本公开可使用的用于使用图像流进行天空区域提取的示例性过程900的流程图。天空区域提取过程900可由服务器120(诸如基于云的服务器200)、计算设备130之一或任何其他合适的计算设备来实施。虽然图9描绘了操作序列,但本领域普通技术人员将理解,各种实施例可以添加、移除、重新排序或修改所描绘的操作。如上所述,本公开所描述的天空区域提取算法(诸如天空区域提取过程900),使用针对一个视野而捕获的一系列图像(即图像流)来提取该视野所包含的天空区域。所使用的一系列图像可由至少一个数据收集设备110从早到晚在不同时间捕获而得到。

当前的天空区域检测技术大多基于单个图像的颜色或边缘信息或使用机器学习方法来对天空区域和非天空区域进行分类。受制于复杂的气象条件、复杂的边缘条件以及不连接的天空组分的存在,当前的天空区域检测技术具有显而易见的缺点,且不能准确检测一个视野的天空区域。相比之下,本公开提供的技术可以精确识别一个视野的天空区域,不管复杂的气象条件(诸如晴朗、多云以及下雨)、光照变化(诸如黎明、中午以及晚上)以及不连接天空组分的存在。

在操作902,接收与一系列的时间序列图像(即图像流)相对应的图像数据。该一系列的时间序列图像(即图像流)可由例如数据收集设备110之一在一天中的不同时间捕获。作为示例而非限制性地,图10A示出包括可用于天空区域提取过程900的二十张图像的图像流。所接收的图像数据可以是RGB格式的。应理解,根据图像流的捕获时间和位置,可以使用天空区域提取过程900来更新给定位置的天空区域或提取不同位置的天空区域。

在操作904,可以基于单个图像的数据元素(诸如像素)的RGB颜色值来检测该单个图像相应的在图像数据之中的天空区域。例如,如果数据元素的RGB颜色值满足以下标准中的至少一个集合,则可将该数据元素分类为天空区域元素并标记为“1”,所述以下标准为:(a)R<100、B>100且(G-R)>20;(b)R<100、G<100、B<100、(B-G)>20且(G-R)>20;或者(c)R>100、G>100、B>100。另一方面,如果数据元素的RGB颜色值不满足上述标准中的任何一个集合,则可将该数据元素分类为非天空区域元素并标记为“0”。应理解,以上列出的颜色值标准仅是示例性的,也可以利用其他标准。

在操作906,可以由边缘检测算法检测单个图像相应的在图像数据之中的一个或更多个边缘部分。作为示例而非限制性地,可以使用已知的Canny边缘检测器来检测图像数据之中的边缘部分。在实现Canny边缘检测之前,可将单个图像相应的图像数据转换为灰度通道。然后,可以通过为非线性、边缘保留、降噪平滑滤波器的已知双边滤波器来处理图像数据。该双边滤波器可以由具有相似功能的任何其他合适的滤波器来代替。如果图像数据之中的数据元素(诸如像素)被检测为边缘部分数据元素,则可将该数据元素标记为“1”。另一方面,如果数据元素被检测为非边缘部分数据元素,则可将该数据元素标记为“0”。

重复操作904和906,直到图像流之中的每个图像的相应所有图像数据均已被处理过。如果所述图像流中的某个相应数据元素在大于第一阈值的数目的图像中被分类为天空区域元素,且在大于第二阈值的数目的图像中被检测为非边缘部分元素,则可将该相应数据元素验证为天空区域元素。例如,在用于天空区域提取过程900的二十张图像的示例中,如果一个相应数据元素在多于十五张图像中被分类为天空区域元素,即第一阈值为75%,且在多于十张图像中被检测为非边缘部分元素,即第二阈值为50%,则可将该相应数据元素验证为天空区域元素,其中十五张图像为二十张图像之中的图像,十张图像为二十张图像之中的图像。应理解,第一阈值为75%和第二阈值为50%仅是示例性的,它们可被设置为其他值,诸如第一阈值为60%或80%,而第二阈值为55%或60%。

另一方面,如果某个相应数据元素被分类为天空区域元素的图像数目和被检测为非边缘部分元素的图像数目没有同时满足第一阈值和第二阈值,则可将该相应数据元素改成非天空区域元素。可以基于操作904和操作906的结果生成图像流的二进制表示。在一些示例中,所生成的图像流的代表可以包括包含单个天空组分的天空区域。然后,天空检测过程900可以停止,且所生成的代表可以用作掩膜图像来确定相同视野的天空区域。

在其他示例中,所生成的图像流的代表可以包括多个天空组分。如图10B所示,在图10A中所示的图像流的代表包括多个不连接的天空组分。一些天空组分仅仅是噪声组分而非真实天空区域的一部分。在该情况下,天空检测过程900可以行进到操作908。

在操作908,选择某数目的最大天空组分,并基于它们的区域面积将它们中的一些改成非天空部分。可以画出所检测的边缘部分,以便确定每个天空组分的区域。作为示例而非限制性地,可基于区域面积选择三个最大天空组分。将其他未被选择的小天空组分改成非天空部分。如果所选择的天空组分的区域面积小于阈值,诸如图像大小除以十五(15)的商,则将所选择的天空组分也改成非天空部分。如果在这样的修改之后仅剩余一个天空组分,则天空检测过程900可以停止。另一方面,如果剩余多于一个天空组分,则天空检测过程900然后可以行进到操作910。

在操作910,确定每个剩余的天空组分与最大天空组分之间的关联系数。可将最大天空组分假设为真实的天空组分。在一些实施例中,可基于(B-R)值确定关联系数。如果剩余天空组分的(B-R)值与最大天空组分的(B-R)值高度关联,则将剩余天空组分验证为真实的天空组分。否则,将剩余天空组分改成非天空部分。作为示例而非限制性地,如果剩余天空组分相对于最大天空组分的颜色关联系数大于0.5,则可确定剩余天空组分与最大天空组分高度颜色关联。应理解,使用颜色值来确定关联系数仅是示例性的,根据本公开,任何其他合适的参数,诸如天空组分的形状和纹理,也可用来确定剩余天空组分与最大天空组分之间的关联系数。

在操作912,将一个或多个天空组分验证为构成该视野的天空区域的真实的天空组分。生成经修改的掩膜图像,经修改的掩膜图像包括天空区域,该天空区域包含经验证的天空组分。图10C示出经修改的掩膜图像,在该图像中天空区域包括两个不连接的天空组分。

可基于特定视野的新图像流在任何时间更新由天空区域提取过程900所生成的该特定视野的掩膜图像。如上所述,由天空区域提取过程900所生成的视野的掩膜图像可以用来确定该视野的任何图像的天空区域。可以在云量确定过程500中采用由天空区域提取过程900所生成的掩膜图像。还可以在下面将描述的太阳轨迹提取过程中利用由天空区域提取过程900所生成的掩膜图像。

图11是示出根据本公开可使用的用于使用图像流进行太阳轨迹提取的示例性过程1100的流程图。太阳轨迹提取过程1100可由任何计算系统或设备来实施,诸如服务器120,包括基于云的服务器200,以及计算设备130。在一些示例中,太阳轨迹提取过程1100可由与实施根据本公开的云量确定算法(诸如云量确定过程500)的计算系统分离的计算设备来执行。由太阳轨迹提取过程1100所估计的太阳轨迹可以由执行云量确定算法的计算系统经由网络150获得。虽然图11描绘了操作序列,但本领域普通技术人员将理解,各种实施例可添加、移除、重新排序或修改所描绘的操作。

在操作1102,太阳轨迹提取过程1100可开始于接收视野的图像流。可由数据收集设备110中的至少一个来捕获图像流。优选地,太阳轨迹提取过程1100使用先前几天期间捕获的视野的日间图像流来估计该视野一整天的太阳轨迹。

在图11所示的实施例中,太阳轨迹提取过程1100使用视野的前三天的图像流来估计该视野第四天的太阳轨迹。在本文中可将在连续三天中捕获的图像流分别称为第一天图像库、第二天图像库以及第三天图像库。图12A-12B示出第二天图像库的示例,在其中图像在2015年7月31日被捕获。在该实施例中,将理解,可以使用在2015年7月30日(第一天)、2015年7月31日(第二天)以及2015年8月1日(第三天)所捕获的同一视野的图像来估计2015年8月2日的太阳轨迹。

应理解,使用连续三天的图像流仅是示例性的,可以使用任意天数诸如连续两天或五天的图像流来进行根据本公开的太阳轨迹提取。在一些示例中,可以接收根据本公开的由天空区域提取算法(诸如天空区域提取过程900)所生成的掩膜图像,并使用该掩膜图像来确定图像流之中每个图像的天空区域。

在操作1104,可以从第二天图像库中选择在时间t处捕获的第一图像。在操作1106和1108,搜索第一天和第三天图像库以识别在接近时间t的某时间段内(诸如t+/-2分钟的时间段内)捕获的图像。如果在操作1106和1108识别到相应的图像,则过程1100可随后行进到操作1110、1112和1114。应理解,t+/-2分钟的时间段仅是示例性的,也可利用其他某时间段。

在操作1110、1112和1114,可以采用根据本公开的太阳检测算法(诸如太阳检测过程800)来确定第一图像和相应的图像是否包括各自的太阳部分。如果在从第二天图像库的第一图像中检测到太阳部分,同时在从第一天图像库的相应图像或在从第三天图像库的相应图像中同时检测到至少太阳部分,则过程1100可随后行进到确定第一图像的太阳部分是否与相应图像的至少一个太阳部分重叠。

在操作1116,识别重叠的太阳部分的形心。将所识别的形心标记为样本。重复操作1102到1116,直到已经选择第二天图像库中的所有图像。然后,多个形心样本可以是可用的。如果形心样本的数目大于某值,诸如十(10),则过程1100可行进到操作1118。操作1118可以使用通用抛物线拟合方法通过引入角旋转来拟合多个形心样本。作为示例而非限制性地,可使用已知的下山单纯形算法(Nelder-Mead Simplex algorithm)来最小化最小二乘法拟合的残差,并通过利用角旋转作为未知参数来优化功能。在操作1120,生成平滑曲线以表示基于形心样本的太阳轨迹。图12C示出由太阳轨迹提取过程1100所生成的太阳轨迹的示例。

如上所述的在不同实施例中的基于图像的信息提取算法可以在多个不同类型的计算设备中实现,例如计算机服务器、网络设备、存储设备等。各种计算设备可以单独使用或结合使用来执行基于图像的信息提取算法,诸如云量确定过程500、太阳检测过程800、天空区域提取过程900以及太阳轨迹提取过程1100。如上文所阐述的,用于提取信息的图像流可由数据收集器110或其他合适的数据捕获设备来捕获。

此外,在一些实现方案中,可以省略某些方法或过程块。本文所描述的方法和过程也不限于任何特定的顺序,与其相关的块或阶段可以以其他适当的顺序来实施。例如,所描述的块或阶段可以以不同于具体公开的顺序来实施,或者多个块或阶段可以组合在单个块或阶段中。示例性的块或阶段可以以串行、并行或以某其他方式来实施。可以在所公开的示例性实施例增加块或阶段或从所公开的示例性实施例移除块或阶段。

还将理解,诸如图像数据、相关联的ID和位置信息、以及所提取的信息的各项均被示出为当被使用时存储在存储器中或在存储设备中,且这些项或其部分出于存储器管理和数据完整性的目的可以在存储器和其他存储设备之间转移。可替代地,在其他实施例中,软件模块和/或系统中的一些或全部可在另一设备的存储器中执行,并可经由计算机间通信与所示出的计算系统通信。此外,在一些实施例中,系统和/或模块的一些或全部可以以其它方式来实现或提供,诸如至少部分地以固件和/或硬件方式,包括但不限于一个或更多个专用集合电路(ASIC)、标准集成电路、控制器(例如通过执行适当的指令,且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等。

模块、系统和数据结构中的一些或全部还可(例如作为软件指令或结构化数据)存储在非暂时性计算机可读介质上,诸如由适当驱动或经由适当连接来读取的硬盘、存储器、网络或便携媒体物品。系统、模块和数据结构还可以作为生成的数据信号(例如,作为载波或其他模拟或数字传播信号的部分)在各种计算机可读传输介质上传输,包括基于无线的和基于有线/电缆的介质,,并且可采用各种形式(例如,作为单个或复用模拟信号的部分,或作为多个离散数字数据包或帧)。在其他实施例中,这样的计算机程序产品还可采用其他的形式。因此,本发明可采用其他计算机系统配置来实践。

本文所使用的条件语言,诸如尤其是“能够”、“可以”、“可能”、“可”、“例如”等,除非另有明确说明或在所使用的上下文中以其它方式理解,一般旨在传达某些实施例包括某些特征、元素和/或步骤,而其他实施例不包括某些特征、元素和/或步骤。因此,这类条件语言一般不意味着暗示:特征、元素和/或步骤采用以一个或更多个实施例所需的任何方式,或者一个或更多个实施例必定包括逻辑以用于在具有或没有作者输入或提示的情况下决定这些特征、元素和/或步骤是否包括在任何特定实施例中或是否在任何特定实施例中要实施。术语“包括”、“包含”、“具有”等是同义的,以开放式包含性地使用这些术语,并且不排除附加的元素、特征、动作、操作等。另外,术语“或”以其包含的意义(而不以其排他的意义)使用,因此在使用术语“或”时,例如用来连接一系列元素时,术语“或”意味着该系列中元素的一个、一些或全部。

虽然已经描述某些示例性实施例,但这些实施例仅以示例的形式加以呈现,并不旨在限制本文所公开的发明的范围。因此,前述描述中的任何内容都不旨在暗示任何特定特征、特性、步骤、模块或块是必需或不可或缺的。事实上,本文所描述的新方法和系统可以以各种其他形式来实施;此外,在不脱离本文所描述发明的精神的情况下,可以对本文所描述的方法和系统的形式做出各种省略、替代和改变。附随的权利要求和其等同物旨在覆盖将落入本文所描述的某些发明的范围和精神之内的这类形式或修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1