基于HSI色彩空间和分水岭算法的冰雹特征参数测量
2023-05-08张思炜
张 思 炜
(南京信息工程大学江苏省气象探测与信息处理重点实验室 江苏 南京 210044) (南京信息工程大学滨江学院 江苏 无锡 214105) (南京信息工程大学江苏省大气环境与设备技术协同创新中心 江苏 南京 210044)
0 引 言
冰雹是一种不规则的固态降水物,它是一种严重的自然灾害。冰雹灾害具有局地性显著、突发性强和持续时间短等特征。冰雹灾害的发生不仅给人民生命财产造成了巨大的损失,也给该地区的农业、建筑财产、通信设备、电力设施、交通设施等带来极大的危害[1]。目前冰雹灾害等级可以通过人工测量冰雹颗粒的特征参数来评估,但是在实际测量当中,过多的冰雹势必会相互接触粘连,为了完成测量,手动分散费时费力而且冰雹多为类圆形或不规则图形,在测量时势必会造成精度误差。为了提高测量的效率,实现冰雹灾害等级评估的自动化,通过计算机智能来获取自然环境中冰雹颗粒的特征参数成为一个值得研究的课题。
现有冰雹灾害的研究大多通过对冰雹云的多普勒雷达回波特征分析,来实现冰雹灾害的预警与识别[2-4],但是在自然环境下对冰雹特征参数测量的研究尚属空白。文献[5-9]为测量物体特征参数的一些方法。董尧培等[5]结合HSV颜色空间和Hough变换来测量铝锭的厚度。李秋洁等[6]通过分析MLS测量系统分辨率建立变尺度格网来测量靶标叶面积,效果好、精准度高。冯青春等[7]采用光度体视觉技术对蔬菜秧苗叶片曲面形态进行测量,测量结果与人工测量结果相比,差异较小。孙玉婷等[8]将叶子的几何特征参数的线性回归值作为输入,构建了SVM回归模型,对叶面几何特征参数进行了估计,结果均方根误差以及平均相对误差都比较低。李文勇等[9]运用凸包理论结合分水岭算法对自然场景下未成熟苹果进行直径的测量,测量误差较小。
为了能够从自然环境下获得冰雹颗粒的特征参数,分析了冰雹和背景的颜色特征,本文研究并且提出HSI模型分割方法将冰雹与背景完全分离开来,针对粘连情况运用基于分水岭算法将其分割,之后提取冰雹特征参数。该方法可以客观地反映灾害的发生程度并且能有效地提高冰雹灾害等级划分的自动化水平。
1 冰雹目标提取算法
1.1 颜色空间介绍
HSI颜色空间来源于人类的视觉系统,分别通过色调(H)、饱和度(S)和亮度(I)对色彩进行描述。相比于RGB颜色空间,HSI各个分量相互独立能将色彩变化描述更为清楚,因此HSI颜色空间是处理彩色图像理想的颜色空间。RGB颜色空间转换到HSI颜色空间可由如下转换公式实现[10]:
(1)
(2)
(3)
(4)
式中:R、G、B、H、S、I表示冰雹图片中的像素值。通过以上的转换公式,可以将RGB颜色空间转换成HSI颜色空间。
1.2 HSI模型分割
为了精准地获得冰雹颗粒的颜色范围,这里准备了50幅冰雹图片,这50幅冰雹的图片仅仅包含了冰雹和单一颜色的背景。本实验考虑为测量结果提供较为准确的测量标准,通过圆形的模具来模拟冰雹,通过圆形模具可获得测量参数的真实值。冰雹的颜色通过控制白色颜料浓度的大小来实现,统计50幅二值化冰雹图片的像素值,计算得到单位像素面积比例尺0.006 59 cm2、单位像素周长比例尺为0.007 73 cm,单位像素长度比例尺为0.007 64 cm。通过分析冰雹图片中的像素分布并且统计颜色直方图,可以得出冰雹的颜色范围。图1为待提取的冰雹图片,图2为冰雹图片S分量的直方图。
图1 待提取冰雹图片
图2 统计S分量的直方图
之后再分别统计H、S、I三个分量的范围。经过实验发现冰雹图片中的H分量无法对冰雹的分割做出贡献,所以这里分别统计S分量和I分量的颜色范围从而将冰雹图片二值化。
1.3 分水岭算法
分水岭算法[11]是一种经典的区域分割方法,在分离粘连物体上有着广泛的应用。基本思想是将整幅图像看成一片崎岖不平的山地模型。其中各个像素点的灰度值代表着该点的海拔高度,图像中局部极小值区域对应地貌中的汇水盆地。在模拟注水的过程中,水面慢慢地从山底向山顶扩展,随着水位的上升,汇水盆地将会被水淹没合并成同一个区域。为了阻止区域的合并,在各个汇水盆地之间修建“堤坝”形成分水岭,从而将整个拓扑地貌分割成若干区域。分水岭算法分割的具体步骤:令M1,M2,…,Mi为梯度图像h(x,y)的局部极小值,C1,C2,…,Cj为相对应汇水盆地中所有坐标集合。Cj[N]为n阶段Cj的集合,C[N]表示所有Cj[N]的集合。hmin和hmax代表着图像h(x,y)中灰度值的最小值与最大值。则有:
(5)
令Cj[N]为所有汇水盆地的集合,则有:
(6)
随着水位以整数从n=hmin+1到n=hmax+1递增,若设g[n]为位于平面h(x,y)=n以下点的集合,根据算法g[n]中的坐标点将会被标记成黑色,其他的坐标点将标记成白色形成一幅二值图片。算法设定选取C[hmax+1]=g[hmin+1],然后进入递归调用的阶段,根据n阶段的C[n-1]来求解C[n]。设M为g[n]连通分量,则对于连通分量M,有三种情况:
(1)M∩C[n-1]=∅。
(2)M∩C[n-1]包含C[n-1]中的一个连通分量。
(3)M∩C[n-1]包含C[n-1]中多个连通分量。
当新的极小值产生并满足(1)时将C[n]与C[n-1]合并;若满足(2)则将C[n]与C[n-1]相应的部分合并;若满足(3),则在C[n]中构建分水岭,阻止汇水盆地的结合。
1.4 改进的分水岭算法
传统的分水岭算法对噪声相当敏感,若直接将其应用到冰雹图像上面则会产生严重的过分割现象,分割结果如图3(a)所示。为了能够分离粘连的冰雹,本文提出一种改进的分水岭算法。传统的算法是对形态学重建后的灰度图直接进行二值化,分割结果往往会保留大量不规则区域同时形成虚假边缘,为了保证分割效果,本文直接对冰雹原图运用HSI模型分割来滤除复杂的背景并运用数字形态学除去分割后多余的噪声,保证了冰雹图像边缘的完整性,分割结果如图3(b)所示。
图3 改进分水岭分割过程
接着再对二值化图像进行欧氏距离变换[12],距离变换是对图像中每个像素点到最近非零像素点之间距离的运算。欧氏距离计算公式为:
(7)
式中:p(x1,y1)和q(x1,y2)分别为前后景像素点的坐标。将图像中每个连通域的内部像素点到非内部像素点最短距离构成的集合定义为S(x,y),Min、Max为集合S(x,y)中的最大值与最小值,G(x,y)为连通域中每个内部像素点经过距离变换所对应的灰度值,则欧氏距离变换的公式为:
(8)
将二值图像中每个相应的像素点按照式(7)式(8)计算,便可以把二值图转换成距离变换图,变换结果如图3(c)所示。在距离图中连通域内的像素点距离连通域边界越远,像素点所在位置的灰度值就越高,亮度也就更强。
对于距离变换图而言依然可能会存在由暗噪声导致的伪局部极小值点。若此时进行分水岭变换仍会导致过分割现象。为了得到满意的分割效果,本文采用形态学扩展极小值变换来抑制多余的伪极小值点。扩展极小值变换的技术原理是通过人为设定一个阈值将汇水盆地深度低于该阈值的局部极小值除去。汇水盆地深度h定义为图像中某一连通域边界处的梯度值与连通域内部最小梯度值之差,抑制极小值深度h小于所选阈值的过程如下:
(9)
(10)
2 冰雹的特征参数提取
经过上述算法处理,可以发现存在粘连的冰雹被分成一个个连通的区域。通过对这些连通区域的测量即可得到冰雹的特征参数。
(1) 冰雹的面积测量。采用统计像素的方法来计算冰雹的面积。通过计算每个连通域冰雹的像素个数就可以较为精准地计算每个连通域的面积。
(11)
式中:S0为实际冰雹的面积;S1为参照物的实际面积;P0为冰雹图像所包含的像素点;P1为参照物图像所包含的像素点。
(3) 冰雹的直径测量。最小外接矩形(MER)[14]可以用来对一个不规则物体进行矩形计算。一个冰雹颗粒可以有许多个不同的外接矩形,其中外接矩形面积最小的被称作是最小外接矩形。考虑到冰雹颗粒的形状多为类圆形或者不规则多边形,不能直接将最小外接矩形的长和宽作为冰雹的直径。在实际测量中需要对冰雹从多个方向上进行直径的测量从而获得较为精准的等效直径。为了符合现实冰雹直径的测量要求,这里提出一种改进的最小外接矩形测量方法。测量原理如图4所示。
图4 冰雹直径测量原理
(12)
(13)
(14)
式中:Nn、Em、Sg、Wh分别为最小外接矩形与冰雹上下左右四个边界交点的集合;(xupi,yupi)和(xdownj,ydownj)为上下边界交点的像素坐标;(xlefti,ylefti)和(xrightj,yrightj)为左右边界交点的像素坐标;n、m分别代表上下边界顶点的个数;g、h分别代表左右边界顶点的个数。图4中每个类型的线型表示边界上不同的点,由点引出的线段代表着两点之间的距离。按照式(12)从N1到Nn依次计算到S1,S2,…,Sm的距离取平均可得上下边界冰雹等效直径d1,左右边界按照式(13)从W1到Wn依次计算到E1,E2,…,Em的距离取平均即可得左右边界冰雹等效直径d2,最后再按照式(14)计算即为最终的冰雹直径d。冰雹特征参数提取整体算法的具体流程如图5所示。
3 实验与结果分析
实验运行环境:Windows 10操作系统,处理器为Intel®CoreTMi5 CPU 8400@2.8 GHz,内存为8 GB。图像处理软件MATLAB 2018b。
本实验一共准备了100组冰雹图片,因为篇幅有限选择三幅不同背景的冰雹图片作为实验对象展现实验过程。冰雹图片如图6(a)所示。从左到右的背景分别为沙地、草地和操场。首先将三幅冰雹图片从RGB颜色空间转换到HSI颜色空间,然后通过先验的颜色范围将冰雹颗粒从背景中分割出来,其效果如图6(b)所示。从三幅图片的分割结果可以看出大部分冰雹颗粒已经被分割出来,但还是存在少量噪声,需要进行进一步的处理。第一幅图片整体效果较好,仅存在少数多余的连通域以及噪声;第二幅图虽然冰雹颗粒整体已经被分割出来但是一些青草也被分割出来且存在青草的遮挡问题,使右下方的冰雹无法完整地分割出来;第三幅图的背景存在一些细小的噪声并且有一部分的冰雹颗粒因为过于透明而被滤除,针对以上出现的问题首先滤除一定阈值的连通域,之后构建圆形结构元素运用形态学开闭的操作将这些噪声滤除。去除噪声后的效果如图6(c)所示。通过滤除噪声,虽然有极个别的冰雹颗粒的形状受到影响,但是大部分冰雹的轮廓清晰,外形结构无缺失。从滤除噪音的冰雹二值图像中可以看出部分从背景中分割出来的冰雹之间相互接触,相互接触的冰雹会形成一大片连通区域,若不进行处理测量时冰雹特征参数的测量值会偏大,从而影响测量的精准性。因此在进行冰雹特征参数测量时需要将相接触颗粒分离。下面使用1.4节提到的分水岭算法对滤波后的冰雹图片进行分割。图6(d)为分割结果,相互接触的冰雹颗粒已经被分水岭线分隔开,每一个冰雹对应一个连通区域。
图6 冰雹分离过程
选取其中一幅冰雹二值图像,首先对每个连通域进行标记并且做出最小外接矩形,结果如图7(a)和图7(b)所示。可以看出共有26个冰雹而且每一个分离的冰雹都具有一个最小外接矩形。通过统计像素法计算冰雹颗粒的面积,为了实现计算单个冰雹的面积首先将每个标记的冰雹分离,部分冰雹如图7(c)和图7(d)所示。可以看出分离的冰雹形状完整、边缘清晰。对分离后的冰雹颗粒使用统计像素法来计算其面积,并将其测量结果与真实值相比较,结果如图8(a)所示。图8(c)中的横坐标为每个冰雹的编号,纵坐标为本文方法的计算值,中间的直线为人工测量值,当测量值的散点离直线越远,偏差越大;当测量值的散点离直线越近,偏差越小。可以看出一部分测量值位于直线下方,说明测量结果略微偏小。
图7 实验结果
图8 冰雹特征参数的测量值与计算值
对分离的冰雹运用最小外接矩形法同时提取边缘像素坐标,结果如图7(e)和图7(f)所示,可以看出单个冰雹的边界被完整地提取出来,找出冰雹在上、下、左、右四个方向上与最小外接矩形交点的像素坐标来计算冰雹的直径,但在实际测量中最小外接矩形与冰雹图像边缘的交点可能存在多个,针对这种情况运用式(12)-式(14)来计算冰雹的等效直径。计算结束后,将计算值与真实值进行比较,其结果如图8(c)示。表示测量值的散点围绕直线均匀上下分布,说明测量值与真实值接近。
4 结果评价
本实验共准备100组冰雹图片进行测量,分别计算出冰雹样本的平均测量值、平均误差、均方根误差RMSE、决定系数R2[15]来衡量测量值的精准度。同时将本文算法与相关的算法进行精准度的对比。
(1) 均方根误差RMSE(Root Mean Square Error):测量值与真实值误差的平方与观测次数n比值的平方根,计算公式为:
(15)
式中:xi为本实验算法取得的样本i的测量值;yi为样本i的测量值;n为样本数。
(2) 决定系数R2:相关系数的平方,能够直观地反映测量值与真实值的拟合程度。计算公式为:
(16)
冰雹特征参数的测量结果如表1所示。测量结果的RMSE越小,表明测量值与真实值越接近,拟合得越好。R2的值越接近1表明数据相关性越好、误差越小。在冰雹面积的测量上,分别采用坐标纸法和长宽系数法与本实验所用的统计像素法进行精准度的比较。从表1可以看出三种方法的平均误差分别为0.184 9、0.677 3和0.615 7,且从RMSE和R2的值上来看统计像素法的测量结果更加精准。坐标纸法需要人为地将冰雹的轮廓投映到坐标纸上,其过程难免会产生误差;长宽系数法对形状规则的物体测量效果较好但对冰雹这类形状多为类圆形或不规则物体测量精度较差。
表1 不同冰雹特征参数测量方法的比较分析
在冰雹周长的测量过程中分别应用Freeman链码和Canny算子追踪冰雹边缘,通过统计像素之间距离来计算周长。两种方法的RMSE为0.208 1和0.301 6,R2为0.881 4和0.754 5。Canny算子运算时间较长同时提取图像的边缘为多层像素,冗余的像素会导致测量结果存在误差;Freeman链码检测到的图像边缘均为单一像素同时考虑到了像素之间倾斜方向的距离问题,测量效果更好。
最后在冰雹直径的测量上分别采用改进的最小外接矩形法与游标卡尺法来进行实验对比,直径平均测量值分别为2.895 5和2.951 7,平均误差分别为0.084 3和0.140 5。游标卡尺法测量较为精准但是逐个测量费时费力而且在读数时容易导致测量误差,相比之下改进的最小外接矩形法测量效率更高,测量结果更为精准。本文方法的测量值误差均在2%到6%之间,可精准地提取冰雹的特征参数。
5 结 语
本文以自然环境下冰雹的分割和特征参数的测量作为研究对象,选用基于HSI颜色空间的阈值法将冰雹从背景中分割,运用改进的分水岭方法分割粘连冰雹边界,提取的冰雹轮廓清晰、完整性好,避免了过分割的情况。冰雹面积的计算选用统计像素法,该方法计算过程简单、可靠性好;周长算法使用Freeman链码,根据链码值累加得到冰雹的周长;冰雹的直径通过改进的最小外接矩形来测量,改进后的算法适用性广,可用于类圆形或不规则图形的测量。从冰雹特征参数的测量结果来看本文算法精准度较高,RMSE和R2的值分别趋近于0与1,平均误差在2%到6%之间。下一步将研究在冰雹大量堆叠的情况下如何测量冰雹的特征参数,进一步提高算法的适用范围。