本发明属于图像处理技术领域,特别涉及一种图多光谱图像变化检测方法,可用于模式识别或目标检测。
背景技术:
图像变化检测是一项可以识别出同一地区不同时间的图像之间的变化区域的技术。随着遥感技术的快速发展,具有高分辨率的多光谱图像变得容易获得。高分辨率多光谱图像的变化检测被给予更多的关注。
目前,被广泛应用于灾害评估,视频检测等领域的多光谱图像变化检测方法是基于图像差异图的方法,其可以分为三个步骤:1.对不同时相的多光谱图像进行预处理,主要包括去除噪声和配准;2.产生不同时间对应的多光谱图像的差异图,常用的方法包括变化矢量分析方法cva,主成分分析方法pca,迭代加权多元变化检测ir-mad方法,基于目标的变化检测方法obcd等;3.对差异图进行处理获得二值变化检测图,常用的方法包括最大类间方差法otsu,ki等阈值方法和flicm,rflicm等聚类方法。这些方法容易受到噪声的影响,鲁棒性低。
为了解决上述这些问题,研究人员探索了基于深度神经网络的图像变化检测方法。首先进行初始变化检测,然后利用初始变化检测结果训练神经网络,利用训练好的神经网络进行变化检测。但是这些方法的处理对象大多数为sar图像,而高分辨率多光谱图像具有更多的光谱通道,将这种方法应用于高分辨率多光谱图像时,则存在检测精度低,检测结果含有许多噪声的问题。
技术实现要素:
本发明的目的在于针对上述已有的多光谱图像变化检测方法的不足,提出一种基于生成对抗网络的高分辨率多光谱图像变化检测方法,以减小检测结果中的噪声,提高检测精度
为实现上述目的,本发明的技术方案包括如下:
(1)分别设定判别分类网络d,生成网络g的结构及它们对应的目标函数fd和fg,并设定生成网络g生成的图像与真实图像之间距离l1的系数λ;
(2)运用变化矢量分析方法cva获得两幅不同时相的图像i1和i2的差异图;
(3)运用最大类间方差法otsu将差异图划分为变化和未变化两类,获得初始变化检测结果;
(4)根据初始的变化检测结果,将不同时相的图像i1和i2均划分为标记数据和未标记数据,组成训练集合;
(5)使用判别分类网络d和生成网络g组成分类网络w,运用训练集合对分类网络w进行训练,直到判别分类网络d的目标函数fd收敛,获得训练完成后的判别分类网络d';
(6)将两幅不同时相的图像i1和i2输入到训练完成后的判别分类网络d'中,以对这两幅图像进行变化和未变化的类别划分,获得最终的变化检测结果图。
本发明与现有的技术相比具有以下优点:
1、本发明不需要人为干预和先验信息,是一种完全无监督的方法,能够自动高效的进行图像变化检测;
2、本发明在训练分类网络w时不仅采用了标记数据,而且使用了未标记数据,这样能够通过训练使得判别分类网络d更好的学习到像素变化和未变化的概念,训练完成后的判别分类网络d'具有更好的分类性能和更高的变化检测精度。
附图说明
图1是本发明的实现流程图;
图2是用于仿真实验的第一组高分辨率多光谱图像和变化参考图;
图3是使用现有方法和本发明对图2的变化检测仿真图;
图4是用于仿真实验的第二组高分辨率多光谱图像和变化参考图;
图5是使用现有方法和本发明对图4的变化检测仿真图。
具体实施方式
本发明实例是基于生成对抗网络的分类网络w,它由判别分类网络d和生成网络g组成,生成对抗网络的具体内容可以参见i.goodfellow,j.pouget-abadie,m.mirza,b.xu,d.warde-farley,s.ozair,a.courville,andy.bengio,“generativeadversarialnets,”inadvancesinneuralinformationprocessingsystems,2014,pp.2672–2680。判别分类网络d有两个作用:一是判断判别分类网络d输入图像的真假,即判断输入图像是真实的图像还是生成网络g生成的图像;二是将真实的图像划分为变化和未变化两个类别。生成网络g的作用是将输入的随机噪声转化为与真实图像相似的图像。对不同时相的图像进行初始变化检测,根据初始变化检测结果选择标记数据和未标记数据,组成训练集合以训练分类网络w并获得训练完成后的判别分类网络d'。将不同时相的图像输入到训练完成后的判别分类网络d'中,根据训练完成后的判别分类网络d'输出的前两维的值获得最终的变化检测结果图。
参照图1,本发明的具体实现步骤如下:
步骤1、设定两个不同作用的网络及目标函数。
两个不同作用的网络分别为判别分类网络d和生成网络g,其中判别分类网络d用于判断判别分类网络d输入图像的真假,并将真实的图像划分为变化和未变化两个类别;生成网络g用于将输入的随机噪声转化为与真实图像相似的图像。判别分类网络d和生成网络g的目标函数分别为fd和fg。
(1a)设定的判别分类网络d的结构:
设定的判别分类网络d包括有7层结构,每一层都是全连接层,各层的神经元个数不同,其中第一层的神经元个数为150,第二层的神经元个数为100,第三层的神经元个数为200,第四层的神经元个数为100,第五层的神经元个数为50,第六层的神经元个数为25,第七层的神经元个数为3;该判别分类网络d的输入维数为150,输出维数为3,且输出的前两维表示变化和未变化两个类别,最后一维用于判断输入图像的真假,该判别分类网络d的中间层使用relu(x1)函数作为激活函数,最后一层使用tanh(x2)函数作为激活函数:
其中,x1是判别分类网络d中间层的输出矩阵,x2是判别分类网络d最后一层的输出矩阵。
(1b)设定的判别分类网络d的目标函数fd:
其中,x表示判别分类网络d输入的真实的图像,
其中,ei表示第i个像素在初始变化检测结果中的类别,
(1c)设定的生成网络g的结构:
设定的生成网络g包括有6层结构,每一层都是全连接层,各层的神经元个数不同,其中第一层的神经元个数为100,第二层的神经元个数为50,第三层的神经元个数为25,第四层的神经元个数为50,第五层的神经元个数为100,第六层的神经元个数为150;该生成网络g的输入噪声维数为100,且输出维数为150,与判别分类网络d的输入维数相同。该生成网络g的中间层和最后一层均使用relu(x3)函数作为激活函数:
其中,x3是生成网络g中间层或最后一层的输出矩阵;
(1d)设定生成网络g的目标函数fg表示如下:
其中,z表示生成网络g输入的噪声,z~pz(z)表示噪声z服从的分布,为高斯分布,g(z)表示生成网络g生成的图像,
l1(g(z))=||x-g(z)||1<7>
其中,x表示判别分类网络d输入的真实的图像,g(z)表示生成网络g生成的图像。
步骤2、运用变化矢量分析方法cva获得两幅不同时相的图像i1和i2的差异图。
变化矢量分析方法是一种广泛使用的产生不同时相图像差异图的方法,对于两幅不同时相的图像i1和i2,其差异图id为:
其中,i1i表示第一幅图像i1在第i个光谱通道的像素,i2i表示第二幅图像i2在第i个光谱通道的像素,n表示第一幅图像i1和第二幅图像i2对应的光谱通道数量。
步骤3、对差异图id进行变化和未变化类别的划分。
现有对差异图id进行划分的方法包括:最大类间方差法otsu、ki阈值方法、flicm和rflicm等聚类方法。本发明使用但不限于最大类间方差法otsu对差异图id进行划分,其步骤如下:
(3a)计算差异图id的灰度直方图并进行归一化,将差异图的灰度直方图的平均值作为划分阈值t;
(3b)将差异图id中的像素值与划分阈值t相比较,如果像素值大于划分阈值t,则像素属于初始变化类,否则,像素属于初始未变化类;
(3c)计算初始变化类和初始未变化类之间的方差;
(3d)根据初始变化类和初始未变化类,计算差异图id的全局平均灰度值作为新的划分阈值t',并设划分阈值t的值与新的划分阈值t'相等;
(3e)重复(3b)-(3d),寻找使初始变化类和初始未变化类之间的方差最大的划分阈值,即为最佳阈值t″;
(3f)将差异图id中的像素值与最佳阈值t″相比较,如果像素值大于最佳阈值t″,则像素属于变化类,否则,像素属于未变化类,从而获得初始变化检测结果。
步骤4、根据初始的变化检测结果,选择标记数据和未标记数据组成训练集合。
(4a)利用基于像素邻域的准则选择标记数据,计算图像像素的邻域比率k:
其中,mij表示第i行,第j列的像素的邻域,i的范围为1≤i≤a,a表示图像的行数,j的范围为1≤j≤b,b表示图像的列数;mij邻域的大小为n×n,n取值为5,lij表示第i行,第j列的像素的初始变化检测结果;p表示邻域mij中的像素,l表示其初始变化检测结果;q(p∈mijλl=lij)表示在邻域mij中,初始变化检测结果为lij的像素的数量;
(4b)根据基于像素邻域的准则和图像像素的邻域比率值,选择标记数据和未标记数据以组成训练集合:如果像素邻域比率k的值为1,则用像素和其对应的类别组成标记数据;否则,用像素组成未标记数据;再标记数据和未标记数据组成训练集合。
步骤5、运用训练集合训练分类网络w,获得训练完成后的判别分类网络d'。
(5a)将服从高斯分布的噪声z输入到生成网络g中,获得该生成网络g生成的图像g(z),计算该图像g(z)与真实图像x之间的距离l1(g(z));
(5b)利用标记数据和未标记数据计算判别分类网络d的目标函数fd和生成网络g的目标函数fg;
(5c)根据得到的判别分类网络d的目标函数fd的值和生成网络g的目标函数fg的值,利用随机梯度下降方法更新判别分类网络d和生成网络g的权重;
(5d)重复步骤5(a)-5(c),直到判别分类网络d的目标函数fd收敛,获得训练完成后的判别分类网络d'。
步骤6、进行变化和未变化类别的划分。
将两幅不同时相的图像i1和i2输入到训练完成后的判别分类网络d'中,根据训练完成后的判别分类网络d'输出的前两维的值进行变化和未变化类别的划分:
如果训练完成后的判别分类网络d'输出的前两维的值分别为0和1,则像素属于变化类;
如果训练完成后的判别分类网络d'输出的前两维的值分别为1和0,则像素属于未变化类。
本发明的效果可通过以下仿真进一步说明:
1.仿真条件
本实例在intel(r)core(tm)i5-6300hqcpu2.30ghzwindows10,python3.5.5,tensorflow1.3.0环境中进行仿真实验。
2.评价指标
对于仿真实验,使用定性和定量分析对算法性能进行评价,定量分析使用的主要评价指标有:
①错误检测数fp:将使用不同方法得到的变化检测结果和变化参考图相比较,变化参考图中属于未变化类但在仿真实验结果图中属于变化类的像素数量,称为错误检测数;
②漏检测数fn:将使用不同方法得到的变化检测结果和变化参考图相比较,变化检测参考图中属于变化类但在仿真实验结果图中属于未变化类的像素数量,称为漏检测数;
③错误数oe:错误检测数和漏检测数的和;
④衡量仿真实验结果图与变化参考图一致性的kc系数:
其中,pcc表示将像素正确分类的概率,pre表示期望一致性比率。
⑤f1指数:
其中,tp表示在仿真实验结果图和变化参考图中都属于变化类的像素的数量。
3.仿真实验内容
运用现有方法对不同的多光谱图像数据集进行仿真实验,主要包括主成分分析方法pca,ir-mad方法和基于目标的变化检测方法obcd。运用本发明方法对不同的多光谱图像数据集进行仿真实验。
仿真使用的第一组图像如图2,其中图2(a)是拍摄于2012年的西安市宴渡村地区的高分辨率多光谱图像,图像的尺寸为322×266;图2(b)是拍摄于2015年的西安市宴渡村地区的高分辨率多光谱图像,图像的尺寸为322×266;图2(c)是图2(a)和图2(b)的变化参考图,白色区域表示变化区域,黑色区域表示未变化区域。
仿真使用的第二组图像如图4,其中图4(a)是拍摄于2013年的山东省东营市垦利县民丰湖公园地区的高分辨率多光谱图像,图像的尺寸为651×461;图4(b)是拍摄于2015年的山东省东营市垦利县民丰湖公园地区的高分辨率多光谱图像,图像的尺寸为651×461;图4(c)是图4(a)和图4(b)的变化参考图,白色区域表示变化区域,黑色区域表示未变化区域。
仿真1.使用本发明和现有方法对图2所示的第一组图像进行变化检测仿真,结果如图3所示。其中,图3(a)为用本发明仿真得到的结果图,图3(b)为用pca方法仿真得到的结果图,图3(c)为用ir-mad方法仿真得到的结果图,图3(d)为用obcd方法仿真得到的结果图。
从图3(a)可以看出,本发明可以检测出图像的大部分变化区域,并且检测结果中含有较少的噪声点;从图3(b)可以看出,通过pca方法得到的变化检测图中含有许多白色的噪声点,并且在变化参考图中的一些变化区域被错误的检测为未变化区域,例如,在图3(b)中右侧的道路;从图3(c)可以看出,ir-mad方法可以检测出主要的变化区域,但是它不能检测出一些小的变化区域,例如,在图3(c)的右下角的道路为变化区域并未全部检测为变化区域,并且检测结果图中也包含许多白色的噪声点;从图3(d)可以看出,obcd方法获得的检测结果中含有较少的噪声点,并且能够检测出主要的变化区域,但是,这种方法会丢失一些具体的细节信息。
对图2所示的第一组的多光谱图像的变化检测仿真实验数据进行分析,得到的定量评价分析如表1所示。
表1西安市宴渡村地区多光谱图像变化检测结果定量评价
从表1可以看出,对于pca方法,虽然fn指标较好,但是kc指标和f1指标都是最差;ir-mad方法和obcd方法的kc和f1指标好于pca方法;对于本发明kc的值为0.7855,f1的值为0.8150,均高于其他方法。因此,本发明能够获得更好的变化检测结果,具有更高的变化检测精度。
仿真2.使用现有方法和本发明对图4所示的第二组图像进行变化检测,结果如图5所示。其中,图5(a)为用本发明仿真得到的结果图,图5(b)为用pca方法仿真得到的结果图,图5(c)为用ir-mad方法仿真得到的结果图,图5(d)为用obcd方法仿真得到的结果图。
从图5(a)可以看出,本发明能够正确检测出主要的变化区域,并且检测结果含有的较少的噪声;从图5(b)中可以看出,pca方法不能检测出主要的变化区域,并且得到的变化检测图包含许多白色噪声点;从图5(c)中可以看出,ir-mad能够检测出大部分的变化区域。但是,该方法将一些住宅区域错误的检测为变化区域,例如图5(c)中的左上角;从图5(d)中可以看出,obcd方法能够检测出主要的变化区域,但是,对于一些变化的物体,obcd仅仅检测出物体的部分变化而不是全部的变化。
对于图4所示的第二组的多光谱图像的变化检测仿真实验数据进行分析,得到的定量评价分析如表2所示。
表2山东省东营市垦利县民丰湖公园地区多光谱图像变化检测结果定量评价
从表2可以看出,对于pca方法,fn指标好于其他方法,但是kc指标和f1指标均小于0.50;ir-mad方法和obcd方法的kc和f1指标好于pca方法,但是kc和f1的值均小于0.60;对于本发明kc的值为0.6028,f1的值为0.6350,均高于其他方法,具有更高的变化检测精度,说明了本发明具有更好的变化检测性能。
通过以上的仿真实验分析可以看出,对于多光谱图像变化检测问题,本发明具有更好的分类性能和更高的变化检测精度,优于现在广泛使用的方法。