具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
在水体识别技术中,可以通过设置像素阈值的方式来区分水体像素和非水体像素,基于图像所包括的水体像素来识别图像中的水体。通常情况下,水体表面相较于非水体表面更为平坦,以镜面反射为主,后向散射值较低。因此,可以将像素值小于或等于像素阈值的像素确定为水体像素,将像素值大于所述预设像素阈值的像素确定为非水体像素。从而能够根据像素阈值来区分图像中的水体像素和非水体像素。
相关技术中,水体识别方法采用单一像素阈值法,即对于每景影像采用固定的像素阈值来区分水体像素和非水体像素,实现水体识别。可以利用水体的后向散射值较低的特性,基于专家经验或者灰度直方图来确定像素阈值,并且判定低于像素阈值的像素为水体像素,高于像素阈值的像素为非水体像素。但是,由于不同水体的水质不同,水流情况不同等原因,使得不同水体的后向散射值不同,从而导致采用单一像素阈值法的水体识别方法存在像素阈值确定困难的问题。另外,采用单一像素阈值法的水体识别方法无法确保该像素阈值能适应不同地区的水体识别。
为解决上述技术问题,本公开提供一种水体识别方法,通过将包括至少一个水体的目标区域划分为多个子区域,并分别确定每一个子区域的预设像素阈值。从而能够基于相应的预设像素阈值确定包括目标区域的图像中每一个子区域所包括的水体像素,进而能够基于所有子区域所包括的水体像素识别目标图像中的水体。由此,通过对目标区域进行细化的划分,而细化后的每一个子区域中的水体部分基本相同,从而能够准确得确定每一子区域的预设像素阈值。由此,针对每一子区域,基于相应的预设像素阈值能够准确确定水体像素,从而能够准确识别目标图像中的不同水体,保证后续水体变化检测结果的准确度。
本公开中,目标区域划分为多个子区域,包括目标区域的图像中的子区域是指目标区域中相应的子区域的图像。
本公开中,一个水体即为一个连通水域,例如,河流、湖泊、湿地等。对于存在交汇的不同水体,可以通过先验知识来确定。
以下将结合附图对本公开的水体识别方法进行进一步描述。
图1是示出根据本公开示例性实施例的水体识别方法的流程图。如图1所示,所述水体识别方法可以包括:步骤S101、按照预设规则将包括至少一个水体的目标区域划分为多个子区域;步骤S102、确定所述多个子区域中的每一个的预设像素阈值;步骤S103、基于相应的预设像素阈值,确定包括所述目标区域的目标图像的每一个子区域所包括的水体像素,其中,所述目标图像中的每一个子区域中的像素值小于或等于相应的所述预设像素阈值的像素为水体像素,并且像素值大于相应的所述预设像素阈值的像素为非水体像素;以及步骤S104、基于所确定的多个所述水体像素,识别所述目标图像中的所述至少一个水体。由此,通过分别确定每一个子区域的预设像素阈值,从而能够准确确定每一个子区域的图像中所包括的水体像素,进而能够准确识别目标图像中的不同水体,保证后续水体变化检测结果的准确度。另外,基于不同的影像数据均可以采用上述方法分别确定目标区域的每一个子区域的预设像素阈值,因此,本公开的技术方案能够适应不同影像数据中的水体识别。
根据一些实施例,如图2所示,步骤S101可以将目标区域1000划分为网格状的多个子区域,即对目标区域1000进行网格划分。例如可以按照经度0.02度×纬度0.02度对目标区域进行网格划分。网格划分可以以更细或更粗的方式进行,以适用于具体的精度需求,在此不作限定。图2中示意的网格状的多个子区域为矩形,多个子区域例如也可以为梯形、圆形、正六边形等其它形状,多个子区域的形状也可以不完全相同,在此不作限定。可以理解的是,也可以按照其它规则对目标区域进行划分,并不局限于仅能通过网格划分的方式对目标区域进行划分。
在示例性实施例中,同一个目标区域所划分的所有子区域的大小和形状可以但不局限于为一致,以便于实现,简化计算方法。
根据一些实施例,步骤S102可以使用自适应阈值法来确定目标区域的多个子区域中的每一个的预设像素阈值,从而能够更为准确地识别目标图像中的水体。
以下将结合一个示例性实施例来具体说明如何利用自适应阈值法来确定所述多个子区域中的每一个的预设像素阈值。
根据一些实施例,如图3所示,步骤S102可以包括:步骤S201、从数据库中获取所述目标区域的地表图像,所述地表图像中标记有所包括的水体像素;步骤S202、针对地表图像,确定至少一部分所述子区域中的每一个的与所包括的水体像素相关的第一参数;步骤S203、获取所述目标区域的基准图像;步骤S204、设定所述至少一部分子区域中的每一个的候选像素阈值;步骤S205、针对基准图像,基于相应的所述候选像素阈值和所包括的所有像素的像素值,确定所述至少一部分子区域中的每一个的与所包括的水体像素相关的第二参数;步骤S206、比对所述至少一部分子区域中的每一个的所述第一参数和第二参数;以及步骤S207、响应于相应的比对结果均指示所述第一参数和第二参数之间的差值位于预设范围内,基于所述至少一部分子区域的候选像素阈值,确定所述多个子区域中的每一个的预设像素阈值。从而能够基于公开的地标图像数据作为先验知识,并结合包括目标区域的基准图像,来准确确定目标区域的每一个子区域的预设像素阈值。
地表图像可以为公开的地表数据。可以但不限于在地表图像中标记每一个像素的类别,像素的类别可以包括水体像素和非水体(植被、裸露地面、山体等)像素。例如,也可以在在所述地表图像中标记水体的边界,边界所包围的所有像素均为水体像素。从而能够基于地表图像准确确定目标区域的每一个子区域的与所包括的水体像素相关的参数,进而能够将地表图像作为先验知识,以确定用于区分每一子区域的图像中的水体像素和非水体像素的预设像素阈值。
根据一些实施例,基准图像的拍摄时间和地表图像的拍摄时间之间的差值可以位于预设时长内,保证在拍摄基准图像和地表图像时目标区域的水质基本相同,并且水体基本无变化,从而能够提高基于确定的每一个子区域的预设像素阈值的准确度。可以理解的是,基准图像的拍摄时间和地表图像的拍摄时间之间的差值并不局限于位于预设时长,只要能够保证在拍摄基准图像和地表图像时目标区域的水质基本相同,水体基本无变化即可。
根据一些实施例,目标图像和基准图像可以由同一设备拍摄得到,从而基于基准图像确定的预设像素阈值能够更好得适用于目标图像中水体的识别。
在示例性实施例中,目标图像和基准图像可以但不局限于均由合成孔径雷达拍摄得到。合成孔径雷达可以不受环境光、天气、云层等因素的影响,能够全天时、全天候工作,并且拍摄的图像中的像素值不受光线影响,从而基于预设像素阈值能够准确确定不同时刻拍摄的图像所包括的水体像素。优选地,目标图像和基准图像可以为合成孔径雷达影像中的VV极化影像数据。VV极化是雷达极化方式的一种,即垂直发射垂直接收。相比于其他极化影像数据,VV极化在水体识别上的表现更为优异。
目标图像和基准图像也可以为经过预处理后的合成孔径雷达影像。所述预处理可以但不限于包括热噪声去除、边界噪声去除、斑点滤波、辐射校正、距离多普勒地形改正等。
目标图像和基准图像例如也可以由光学雷达等其它设备拍摄得到,均适用于本公开的技术方案,在此不作限定。
在示例性实施例中,地表图像可以但不局限于由合成孔径雷达拍摄得到。优选地,地表图像和基准图像可以由同一合成孔径雷达在预设时差内分别拍摄得到的影像。
根据一些实施例,步骤S202、确定所述地表图像中的至少一部分所述子区域中的每一个的与所包括的水体像素相关的第一参数可以包括:基于所包括的水体像素,确定所述地表图像的所述多个子区域中的每一个的与所包括的水体像素相关的第一参数;以及获取所述多个子区域中相应的第一参数满足预设条件的所述至少一部分子区域。从而能够仅基于与所包括的水体像素相关的参数满足预设条件的子区域来确定预设像素阈值,提高确定的预设像素阈值的准确度。
在一些示例性实施例中,所述至少一部分子区域可以为多个子区域中的既包括水体部分又包括非水体部分的一部分子区域或所有子区域。为了便于描述和理解,将所述至少一部分子区域中的每一个子区域称为种子区域(例如图2中示意的多个种子区域1001,在图2示意的示例中,仅将多个子区域中的既包括水体部分又包括非水体部分的一部分子区域作为种子区域1001)。由于种子区域既包括水体部分又包括非水体部分,从而能够通过比对地表图像中的种子区域和基准图像中相应的种子区域来准确确定该种子区域的预设像素阈值,并且基于所确定的预设像素阈值能够区分该种子区域中的水体像素和非水体像素。
地表图像中的每一个种子区域的与所包括的水体像素相关的第一参数例如可以为第一水体占比,即,该种子区域所包括的水体像素的数量与所包括的所有像素的数量之间的比值。相应地,基准图像的每一个种子区域的与所包括的水体像素相关的第二参数为第二水体占比。可以理解的是,所述第一参数也可以为该种子区域所包括的水体像素的数量等其它与所包括的水体像素相关的参数。
根据一些实施例,在与所包括的水体像素相关为水体占比的情况下,可以设置地表图像中的每一个种子区域(如图2中示意的每一个种子区域1001)的第一水体占比位于预设范围内。预设范围例如可以设定为70%-80%,可以根据不同的目标区域来设置合理的预设范围,在此不作限定。
在确定每一个种子区域的所述第一参数(例如地表图像中该种子区域的第一水体占比)和第二参数(例如基准图像中该种子区域的第二水体占比)之后,可以执行步骤S206,比对每一个种子区域的的所述第一参数和第二参数。为了便于描述和理解,以下内容中将以所述第一参数和第二参数为水体占比为例来进行描述。可以理解的是,以水体占比为例仅是为了便于描述,并不限定所述第一参数和第二参数仅能为水体占比。
根据一些实施例,步骤S207、响应于相应的比对结果均指示所述第一参数和第二参数之间的差值位于预设范围内,基于所述至少一部分子区域的候选像素阈值,确定所述多个子区域中的每一个的预设像素阈值可以包括:将所述至少一部分子区域中的每一个(即每一个种子区域)的候选像素阈值确定为该子区域的预设像素阈值;以及针对所述多个子区域中的除所述至少一部分子区域以外的每一个,基于所述至少一部分子区域的预设像素阈值,确定该子区域的预设像素阈值。由于种子区域的预设像素阈值是基于先验的地表图像来直接确定,因此,种子区域的预设像素阈值具有很高的准确度。同时,由于相邻子区域的水体参数(例如水质、水的流速等)类似,因此,能够基于种子区域的预设像素阈值来确定剩余的子区域的预设像素阈值。
以下将结合两个具体的示例性实施例来说明如何基于种子区域的预设像素阈值来确定剩余的子区域的预设像素阈值。
在一个示例性实施例中,针对所述多个子区域中的除所述至少一部分子区域以外的每一个,基于所述至少一部分子区域的预设像素阈值,确定该子区域的预设像素阈值可以包括:将所述至少一部分子区域中的每一个确定为种子区域;以及将位于该子区域周边且与该子区域相邻的一个或多个种子区域的一个或多个预设像素阈值的均值确定为该子区域的预设像素阈值。该方法尤其适用于除种子区域以外的子区域周边具有与该子区域相邻的一个或多个种子区域的情况。该方法的计算相对简单,并且在目标图像中的种子区域数量较多且临近的子区域的像素值分布接近的情形下,表现相对优异。
在另一个示例性实施例中,针对所述多个子区域中的除所述至少一部分子区域以外的每一个,基于所述至少一部分子区域的预设像素阈值,确定该子区域的预设像素阈值可以包括:将所述至少一部分子区域中的每一个确定为种子区域;基于每一个所述种子区域与该子区域的距离,确定每一个所述种子区域的与该子区域相应的权重;以及基于每一个所述种子区域的预设像素阈值和每一个所述种子区域的与该子区域相应的权重,确定该子区域的预设像素阈值。该方法适用性更广,并且能够基于与子区域的距离来设置种子区域对该子区域的预设像素阈值的影响权重。从而可以降低由拍摄等因素引起的相距较远的子区域之间的预设像素阈值相差较大造成的误差。在目标图像中的种子区域数量较少的情形下,该方法表现相对优异。根据一些实施例,可以设置一种子区域的与一子区域相应的权重和该种子区域与该子区域之间的距离呈反比。
可以理解的是,基于种子区域的预设像素阈值来确定剩余的子区域的预设像素阈值的方法并不局限于上述两种,例如,也可以将上述两种方法结合使用。
根据一些实施例,如图3所示,步骤102还可以包括:步骤S208、响应于相应的比对结果指示所述第一参数和第二参数之间的差值不位于预设范围内,重新设定该子区域(即种子区域)的候选像素阈值。从而可以进行迭代,直至基于设定的候选像素值确定的每一种子区域的所述第一参数和第二参数的差值位于预设范围内。
在示例性实施例中,可以使用二分法来设定每一轮迭代过程中种子区域的候选像素阈值。以其中一个种子区域为例,使用二分法来设定每一轮迭代过程中该种子区域的候选像素阈值,以进行迭代,从而确定该种子区域的预设像素阈值,其具体过程可以如下:
计算地表图像中该种子区域的第一水体占比;
可以将该种子区域所包括的所有像素的取值范围设定为候选像素阈值的候选取值范围,即将所有像素的最小像素值设定为候选取值范围的下限,将所有像素的最大像素值设定为候选取值范围的上限;
执行第一轮迭代:
可以将候选取值范围的中间值设定为本轮的候选像素阈值,所述中间值可以为候选取值范围的上限和下限的均值;
基于本轮设定的候选像素阈值确定基准图像中该种子区域的第二水体占比;
比对地表图像中该种子区域的第一水体占比和基准图像中该种子区域的第二水体占比;
响应于比对结果指示第一水体占比和第二水体占比之间的差值位于预设范围内,将本轮设定的候选像素阈值确定为该种子区域的预设像素阈值,结束确定该种子区域的预设像素阈值的迭代过程。
响应于比对结果指示第一水体占比和第二水体占比之间的差值不位于预设范围内,执行第二轮迭代:
若上一轮迭代中确定的第一水体占比小于第二水体占比,则将候选取值范围的上限调整为上一轮的候选像素阈值;若第一水体占比大于第二水体占比,则将候选取值范围的下限调整为上一轮的候选像素阈值;
在调整候选取值范围之后,将新的候选取值范围的中间值设定为本轮的候选像素阈值;
基于本轮设定的候选像素阈值确定基准图像中该种子区域的第二水体占比;
比对地表图像中该种子区域的第一水体占比和基准图像中该种子区域的第二水体占比;
响应于比对结果指示第一水体占比和第二水体占比之间的差值位于预设范围内,将本轮设定的候选像素阈值确定为该种子区域的预设像素阈值,结束确定该种子区域的预设像素阈值的迭代过程。
响应于比对结果指示第一水体占比和第二水体占比之间的差值不位于预设范围内,执行第三轮迭代,重复进行迭代,直至比对结果指示第一水体占比和第二水体占比之间的差值位于预设范围内,将相应的候选像素阈值确定为该种子区域的预设像素阈值。
在确定目标区域的每一个子区域的预设像素阈值之后,可以执行步骤S103、基于相应的预设像素阈值,确定包括所述目标区域的目标图像的每一个子区域所包括的水体像素。
根据一些实施例,步骤S103可以包括:将包括目标区域的目标图像的每一个子区域内的每一个像素与相应的预设像素阈值作比较,将像素值小于或等于预设像素阈值的像素标记为水体像素,将像素值大于所述预设像素阈值的像素标记为非水体像素,从而能够得到目标图像所包括的所有水体像素,进而识别目标图像中的水体。
根据一些实施例,步骤S104、基于所确定的多个水体像素,识别所述目标图像中的所述至少一个水体可以包括:基于目标图像所包括的所有水体像素,确定多个相邻的水体像素所围成的水域,可以将连通的水域确定为一个水体。可以理解的是,在确定目标图像中的水体时,也可以根据先验知识,对连通的水域进行切割,以划分交汇的河流、交汇的河流和湖泊、交汇的湖泊和湿地等等。
在示例性实施例中,步骤S104还可以包括水体的误检消除。可以基于多个子区域的预设像素阈值,对目标图像进行二值化,得到二值化图像;然后利用数字高成模型(DEM,即Digital Elevation Model)数据,去除二值化图像中山体误检为水体的误检。还可以使用图像形态学对二值化图像进行处理,通过多次开运算和闭运算,去除二值化图像中由误差或其他因素引起的水体内部的微小孔洞和水体外部的微小水体。由此,通过误检消除处理能够获得更为准确的水体识别结果。
根据本公开的另一方面,如图4所示,还公开了一种水体变化检测方法,所述水体变化检测方法可以包括:步骤S301、在第一预设时间获取包括目标区域的第一目标图像,所述目标区域包括至少一个水体;步骤S302、在第二预设时间获取包括所述目标区域的第二目标图像;步骤S303、利用如上所述的水体识别方法,识别所述第一目标图像中的所述至少一个水体,以及所述第二目标图像中的所述至少一个水体;以及步骤S304、基于所识别的所述第一目标图像中的所述至少一个水体和所述第二目标图像中的所述至少一个水体,确定所述至少一个水体的变化类型。由此,通过上述的水体识别方法能够准确识别目标图像中的水体,从而能够基于不同时间拍摄的两个目标图像来确定目标区域的水体变化情况。
第一预设时间和第二预设时间之间的时间间隔可以根据实际需求来选择,例如可以为一个月、半年或一年等。
第一目标图像和第二目标图像可以由同一合成孔径雷达拍摄得到的雷达影像。第一目标图像和第二目标图像也可以为对合成孔径雷达拍摄的雷达影像进行预处理后的影像。
水体的变化类型包括以下中的至少其中之一:消减水体、新增水体和重合水体。也就是说,一个水体的变化类型可以为消减水体、新增水体或重合水体,也可以包括消减水体、新增水体和重合水体中至少两者的组合。
根据一些实施例,确定至少一个水体的变化类型可以包括:基于所确定的至少一个水体,分别对所述第一目标图像和第二目标图像进行二值化,得到所述第一目标图像相应的第一二值化图像和所述第二目标图像相应的第二二值化图像;对所述第一二值化图像和第二二值化图像进行融合;基于融合结果确定所述至少一个水体的变化类型。由此,基于融合结果可以得出第一二值化图像和第二二值化图像中重合的水体像素和/或不重合的水体像素,从而能够快速确定水体的变化类型。
对第一目标图像和第二目标图像进行二值化例如可以为将两个图像中的每一个水体像素的像素值设置为255,并且将每一个非水体像素的像素值设置为0。
根据一些实施例,在第二目标图像的拍摄时间晚于第一目标图像的拍摄时间的情况下,基于第一二值化图像和第二二值化图像中的一个水体具有重合的水体像素,可以确定该水体的变化类型包括重合水体。基于第二二值化图像中的一个水体具有第一二值化图像所不具有的不重合的水体像素,可以确定该水体的变化类型包括新增水体。基于第一二值化图像的一个水体中具有第二二值化图像所不具有的不重合的水体像素,可以确定该水体的变化类型包括消减水体。在示例中,可以基于重合的水体像素的数量以及图像拍摄比例,计算重合水体面积;可以基于第二二值化图像中具有第一二值化图像所不具有的不重合的水体像素的数量,以及图像拍摄比例,计算新增水体面积;可以基于第一二值化图像中具有第二二值化图像所不具有的不重合的水体像素数量,以及图像拍摄比例,计算消减水体面积。也可以基于第二二值化图像所包括的所有水体像素,以及图像拍摄比例,计算当前水体面积。
在示例性实施例中,可以对第一二值化图像和第二二值化图像融合得到的融合图像进行聚类分析,以实现对不同水体的编号。使用水体的编号和水体的变化类型,可以指示水体的每一个部分。
根据一些实施例,所述水体变化检测方法还可以包括:利用图像边缘检测算法从第一目标图像中提取至少一个水体中的每一个的第一边界;利用图像边缘检测算法从所述第二目标图像中提取所述至少一个水体中的每一个的第二边界;基于相应的第一边界和第二边界,确定所述至少一个水体的中心位置。
水体的边界例如可以包括边界的多个采样点的位置坐标。水体的中心位置例如可以为水体外接最小矩形的中心的位置坐标,在此不作限定。
在水体变化检测完成后,还可以基于水体的编号、水体的变化类型、重合水体面积、消减水体面积、新增水体面积、当前水体面积和水体的中心位置坐标生成检测报表。从而能够基于水体变化检测结果,实现对水域大小进行定量的监测,尤其是对内陆缺水地区,能监测水域面积变化趋势,提前做好防旱措施。对于洪水灾害,能准确分析洪水受灾地点、淹没面积、洪水蔓延趋势以及灾情分析等,辅助应急救援。
根据本公开的另一方面,还提供一种水体识别装置。如图5所示,水体识别装置100可以包括:划分单元101,被配置用于按照预设规则将包括至少一个水体的目标区域划分为多个子区域;第一确定单元102,被配置用于确定所述多个子区域中的每一个的预设像素阈值;第二确定单元103,被配置用于基于相应的预设像素阈值,确定包括所述目标区域的目标图像的每一个子区域所包括的水体像素,其中,所述目标图像中的每一个子区域中的像素值小于或等于相应的所述预设像素阈值的像素为水体像素,并且像素值大于相应的所述预设像素阈值的像素为非水体像素;以及识别单元104,被配置用于基于所确定的多个所述水体像素,识别所述目标图像中的所述至少一个水体。
这里,水体识别装置100的上述各单元101-104的操作分别与前面描述的步骤S101-S104的操作类似,在此不再赘述。
根据本公开的另一方面,还提供一种水体变化检测设备。如图5所示,水体变化检测装置300可以包括:第一获取单元301,被配置用于在第一预设时间获取包括目标区域的第一目标图像,所述目标区域包括至少一个水体;第二获取单元302,被配置用于在第二预设时间获取包括所述目标区域的第二目标图像;水体识别装置303,被配置用于识别所述第一目标图像中的所述至少一个水体,以及所述第二目标图像中的所述至少一个水体;以及第三确定单元304,被配置用于基于所识别的所述第一目标图像中的所述至少一个水体和所述第二目标图像中的所述至少一个水体,确定所述至少一个水体的变化类型。
第一获取单元和第二获取单元例如可以为同一合成孔径雷达。
这里,水体变化检测装置300的上述各单元301-304的操作分别与前面描述的步骤S301-S304的操作类似,在此不再赘述。
根据本公开的另一方面,还提供一种电子设备,可以包括:处理器;以及存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据上述的方法。
根据本公开的另一方面,还提供一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行根据上述的方法。
参见图7所示,现将描述计算设备2000,其是可以应用于本公开的各方面的硬件设备(电子设备)的示例。计算设备2000可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数字助理、机器人、智能电话、车载计算机或其任何组合。上述方法可以全部或至少部分地由计算设备2000或类似设备或系统实现。
计算设备2000可以包括(可能经由一个或多个接口)与总线2002连接或与总线2002通信的元件。例如,计算设备2000可以包括总线2002、一个或多个处理器2004、一个或多个输入设备2006以及一个或多个输出设备2008。一个或多个处理器2004可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。输入设备2006可以是能向计算设备2000输入信息的任何类型的设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备2008可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。计算设备2000还可以包括非暂时性存储设备2010或者与非暂时性存储设备2010连接,非暂时性存储设备可以是非暂时性的并且可以实现数据存储的任何存储设备,并且可以包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁介质,光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器和/或任何其他存储器芯片或盒、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备2010可以从接口拆卸。非暂时性存储设备2010可以具有用于实现上述方法和步骤的数据/程序(包括指令)/代码。计算设备2000还可以包括通信设备2012。通信设备2012可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算设备2000还可以包括工作存储器2014,其可以是可以存储对处理器2004的工作有用的程序(包括指令)和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器和/或只读存储器设备。
软件要素(程序)可以位于工作存储器2014中,包括但不限于操作系统2016、一个或多个应用程序2018、驱动程序和/或其他数据和代码。用于执行上述方法和步骤的指令可以被包括在一个或多个应用程序2018中,并且上述方法可以通过由处理器2004读取和执行一个或多个应用程序2018的指令来实现。更具体地,上述方法中,步骤S101-步骤S104可以例如通过处理器2004执行具有步骤S101-步骤S104的指令的应用程序2018而实现。此外,上述方法中的其它步骤可以例如通过处理器2004执行具有执行相应步骤中的指令的应用程序2018而实现。软件要素(程序)的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质(例如上述存储设备2010)中,并且在执行时可以被存入工作存储器2014中(可能被编译和/或安装)。软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现特定元件。例如,所公开的方法和设备中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
还应该理解,前述方法可以通过服务器-客户端模式来实现。例如,客户端可以接收用户输入的数据并将所述数据发送到服务器。客户端也可以接收用户输入的数据,进行前述方法中的一部分处理,并将处理所得到的数据发送到服务器。服务器可以接收来自客户端的数据,并且执行前述方法或前述方法中的另一部分,并将执行结果返回给客户端。客户端可以从服务器接收到方法的执行结果,并例如可以通过输出设备呈现给用户。
还应该理解,计算设备2000的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。计算系统2000的其他组件也可以类似地分布。这样,计算设备2000可以被解释为在多个位置执行处理的分布式计算系统。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。