基于改进OTSU算法的多时相立体卫星图像分割
2022-08-22谢旻旻钟小莉
谢旻旻,钟小莉
(青海民族大学计算机学院,青海 西宁 810007)
1 引言
卫星图像在空间和时间分辨率上都发生了革命性的改进变化,高分辨率的立体卫星影像具有清晰、无限制、范围广、重复监测等优点,能够快速收集高精度的地形、地质和环境信息。卫星影像的获取方式有单景与立体影像两种,应用也不尽相同,单景主要应用于定性分析,而立体影像则多用来定量监测。多时相一般情况下常用于表示一组遥感影像在时间上具有的部分特征,任何情况下在不同时间内获取的同一地域一组影像都可视为“多时相”的数据。卫星遥感图像也具有根据固定周期,完成对地面目标观测的能力,并且能提供不同时间分辨率的多时相遥感影像,满足动态分析的所有要求。
但图像内会包含冗余噪声,需要通过分割手段去除。常用的OTSU已经不能满足现阶段社会需求,容易导致处理好的图像边缘模糊不清,信息保留不完整,后续无法进行有效识别或特征提取。针对分割效果并不理想的问题,曾有相关研究OTSU阈值的一维性质,提出一种快速阈值算法,用于OTSU准则搜索,与传统的OTSU阈值相比,该算法得到的阈值能够更准确地利用梯度图像分割出小目标,但图像的低阈值依旧会使部分边缘信息丢失。
基于此,黄冬梅[1]等人在OTSU算法的基础上,针对不同遥感信息,提出了一种非线性、最优的OTSU分割算法PCA算法,以减小遥感图像多波段数据的维数和遥感信息的冗余度,将分割算法的终止条件加入到最小部分,以提高不同遥感信息分割的计算效率。但是该方法获取到的图像边缘信息不完整,导致图像分割效果较差;钟忺[2]等人提出了一种基于平均变化的贝叶斯区域组合的MS-BRM图像分割算法,根据非参数巴伐利亚分组模型,融合超像素空间信息,提出区域合并的策略,得到了最终的分割结果。但是该方法在对图像进行分割时,分割效果较差,分割效率较低。
针对上述方法存在的问题,本文提出基于改进OTSU算法的多时相立体卫星图像分割方法。由于一维OTSU算法受到噪声、光照不均匀等因素的影响,导致分割效果不满意,利用像素邻域灰度平均值提出二维OTSU算法,根据均值计算获取出最优阈值,但是其计算也相对复杂,将二维划分为两个一维,获取出两个最优阈值取值,实现简便且精准的多时相立体卫星图像分割的最终目的,与传统方法相比具有一定优势。
2 OTSU算法分析
2.1 传统OTSU算法分析
OTSU算法是一种基于阈值计算的自动无监督图像分割算法,具有操作理论简单、物理意义明确等特点。该算法基本思想为动态确定图像分割阈值,利用目标图像和背景变化的灰度直方图不同且存在较大差异,得到与其对应的二值图像[3]。
假设将数字图像的灰度级别描述为L(G=0,1,…,L-1),并令灰度级i的像素数表示为ni,这样即可得知图像所有的像素数N,并且得出下述计算式
(1)
设定p(i)表示图像中灰度级为i的像素出现的概率。将直方图归一化,则
(2)
根据上述计算结果,将图像中的像素划分为C0和C1,具体将C0描述为图中像素灰度级别从0到t,而C1则为t+1到L-1,这样即可进一步得知这两个分类出现的可能性
(3)
(4)
经过计算便有
w0+w1=1
(5)
则整幅图像的灰度均值为
(6)
整幅图像的灰度均方差为
(7)
为了评估阈值的优劣,引入阈值评判函数
(8)
根据图像一维直方图统计特性,提出一维OTSU算法,如果目标与背景之间的差异较大,则相应灰度值是图像的最佳分割阈值。虽然一维OTSU算法的图像处理效率较快,但是在噪声、光照不均等因素影响下,很难达到满意的分割效果。为了能够有效防止这种情况的出现,本文提出二维直方图OTSU算法,将像素邻域的平均灰度值与原始一维灰度值相结合[4]。
2.2 基于二维直方图的OTSU算法
利用一维OTSU算法对遥感图像进行分割时,由于只考虑图像像素的灰度信息而忽略了图像像素的空间信息,导致待分割的遥感图像受到噪声干扰,降低了图像分割质量。因此,本文基于上述一维OTSU算法存在的问题,对一维OTSU算法进行改进,将像素邻域的平均灰度值与原始一维灰度值相结合,引入像素邻域的平均灰度信息,提出基于二维直方图的OTSU算法[5]。
如果设定图像f的灰度级别为L=(G=0,1,…,L-1),尺寸为M×N,那么根据在图像中随机的一个像素点取值f(m,n),就会得到相对应的灰度值取值。
对预处理后的图像做对应的扫描处理,根据计算图中全部像素点取值f(m,n),获取出相比之下较为平滑的图像g,那么相关图像点g(m,n)的灰度值应计算如下:
(9)
假设将nij描述为图中f对应像素点的灰度取值i,并将其表示为邻域平均灰度值为j像素点出现的频率,这样即可进一步获取出邻域灰度取值的二维直方图,如下图1、图2所示。
图1 图像二维直方图
图2 二维直方图平面投影图
图像中呈现出来的点灰度值和其邻域灰度值差距并不是很大,导致图像中像素灰度都堆积在对角线处,这样远离对角线的灰度值可视为图像的边缘噪声[6]。
假设把所有的像素都划分为两部分,分别是目标部分以及背景区域,标记为C0和C1,(s,t)则表示为需要分割处理的二维阈值向量,那么通过计算结果即可得到灰度阈值、邻域灰度阈值[7]。则将二维直方图分为四部分,计算目标和背景区域出现的可能性的表达式为
(10)
(11)
两类所对应的均值矢量分别为
(12)
(13)
整幅图像的均值矢量为
(14)
根据均值矢量计算离散度矩阵σB
σB=w0[(μ0(s,t)-μ)(μ0(s,t)-μ)T]
+w1[(μ1(s,t)-μ)(μ1(s,t)-μ)T]
(15)
用该离散度矩阵的值作为目标和背景类间离散度的测度
Tr(σB)=w0[(μ00-μ0)2+(μ01-μ0)2]
+w1[(μ10-μ1)+(μ11-μ1)2]
(16)
最优阈值向量(s,t)满足
(17)
与基于一维直方图的OTSU算法相比,基于二维直方图的OTSU算法能够有效地克服了噪声和非均匀光照的影响,考虑了像素的平均灰度信息,提高了分割性能[8]。
3 改进OTSU算法下多时相立体卫星图像分割
由于二维直方图的OTSU算法在实际应用中,依旧有待改进和提高,对算法的性能、计算和实时性能进行研究。虽然分割性能优于一维OTSU算法,但计算量却成倍增加。因此本文针对二维OTS算法复杂度高的问题,将传统的二维OTS算法用于二维OTA算法。一维直方图是从灰度到阈值提取的对象,而一维直方图从邻域中的平均灰度值即可得到滤波阈值。
与一维OTS算法相比,原二维OTS算法不仅考虑了图像本身的灰度信息,而且考虑了相邻像素的信息,具有很好的表现力[9]。
根据上述计算,即可进一步获取出与像素灰度值i对应的目标与背景比列,并令ωo和ωb表示为
(18)
(19)
式中,ωo和ωb描述为目标和背景的比例。由以上各式可以推导出像素灰度值i所对应的一维类间方差为:
σBi(s)=ωo(μoi-μi)2+ωb(μbi-μi)2φs(s*,t*)
(20)
同理,可以得到邻域灰度值j对应的一维类间方差为:
σBj(t)=ωo(μoi-μj)2+ωb(μbi-μj)2φs(s*,t*)
(21)
式中,μoj、μbi和μj则分别代表这两类的平均矢量和总体均值矢量[10-12]。
由于传统OTSU算法阈值分割时没有考虑每个类内自身的离散性,不能准确分类,导致分割效果较差,为了实现较高的分类精度和准确分割,使用类间离散化方法,它不仅能得到类间方差,而且能得到类间一致性,根据像素灰度值的离散分类尺度,定义如下
τdi=ωodoi+ωbdbi
(22)
根据上式即可构建一个新的阈值识别函数,如式(27)所示
ψi=ωo(1-ωo)×σBi/τdi
(23)
同样,以一维直方图构造阈值识别函数,由邻域的平均阶数组成
ψj=ωo(1-ωo)×σBj/τdj
(24)
为了能够获取出最优分割效果的图像,需要让类内离散度取值达到最小,并对ψi和ψj进行最大值计算,让类间进行最优分离,从而呈现出完美的分割效果。
当图像灰度取值为L时,最初的二维OTSU算法的时间复杂度表示为O(L4),则本文算法通过计算得出复杂度为O(L+L)=O(L),即可得知本文算法具有时间复杂度低的优点。
从式(23)和式(24)可以看出,图像阈值分割的阈值解是一个优化问题。根据遗传算法式(23)和式(24)的性质,通过选择、交叉和变异来优化图像分割的阈值向量(s*,t*)。
4 仿真研究
为了检验基于改进OTSU算法的多时相立体卫星图像分割方法的性能,进行一次仿真,实验运行内存为512MB,运行环境为Matlab7.0。图3为多时相立体卫星图像分割演示系统运行界面。
图3 图像分割演示系统运行界面
通过多时相立体卫星图像分割演示系统运行界面,设置实验参数,实际仿真环境中,本文所选取的实验参数为:窗口接近度3、种群规模10、迭代次数150、编码长度16、最大越界概率0.85、最小越界概率0.25、最大变异概率0.1、最小变异概率0.02。选取400*400大小的建筑区影像,如图4所示。
图4 建筑区原始图像
由于建筑区原始图像存在噪声,严重影响图像的分割处理效果,因此提取图像噪声,如图5所示。
图5 图像噪声提取结果
对提取的图像噪声进行处理,采用文献[1]方法、文献[2]方法和本文方法,对建筑区图像进行分割,分割结果如图6所示。
图6 三种方法的分割结果
根据图6可知,从分割的效果来看,本文提出的基于改进OTSU算法的多时相立体卫星图像分割方法,将建筑区分割成一个完整的区域,并且边界比较准确,建筑区图像分割效果最好,能够用最少的区域表达最完整的信息。
为了进一步验证本文方法的有效性,对文献[1]方法、文献[2]方法和本文方法的建筑区图像分割时间进行对比分析,对比结果如图7所示。
图7 分割时间对比结果
根据图7可知,本文方法的建筑区图像分割时间在8s内,而文献[1]方法和文献[2]方法的建筑区图像分割时间均在30s以内,说明本文方法的建筑区图像分割效率快。
5 结论
在生成多时相卫星图像的过程中,由于噪声和环境因素,很容易存在冗余信息,因此本文在改进OTSU算法的基础上提出了一种多阶段分割算法。在一维OTSU算法的基础上提供了二维OTSU算法,将二维分为两个一维,通过计算获取出两个适用的阈值,实现灰度图像的二维边界分割。但由于在满足多相位动态的基础上完全分割出图像中的多余信息需要反复计算,虽然相对运算速度得到提升,但占用系统空间内存大,硬件要求较高,经济实用性还有待加强。为此应在下一步研究中,将尝试把生成式对抗网络融入算法中,来减少OTSU算法空间占用率,并在分割图像的尺寸、分辨率、以及像素灰度值等多方面综合优化。