一种基于解混预处理的高光谱目标检测方法与流程

文档序号:14519525阅读:315来源:国知局
一种基于解混预处理的高光谱目标检测方法与流程

本发明属于高光谱目标检测技术领域,具体涉及一种基于解混预处理的高光谱目标检测方法。



背景技术:

高光谱目标探测技术是高光谱遥感技术应用的一个重要方向,已广泛应用于军用和民用领域。一幅高光谱图像有三个维度,其中包括两个空间维度和一个光谱维度。在高光谱图像中,每一个像元有着连续的数以百计的光谱波段,这些波段的宽度往往10nm左右,高光谱图像中相同波段的像元组成了2维图像,因此高光谱图像具备了“图谱合一”这一特性。

在过去的几十年中,数种高光谱目标探测算法被提出。其中包括光谱夹角填图(sam)、约束能量最小算法(cem)、自适应一致估计(ace)等,sam算法在目标探测中是最常见的一种目标探测算法,其利用对比目标光谱和影像中像元的相似度来判断影像中的像元是否为目标。sam算法有着原理简单探测速度快等优点。cem算法源于数字信号处理领域中的线性约束最小方差波束形成器,是一种有限长单位冲激响应滤波器,在仅知道目标光谱的情况下,cem算法可以有效的对目标进行探测。

以上介绍的经典目标探测算法有一个共同点,在进行目标探测的过程中,仅利用目标光谱这一先验信息,没有充分利用高光谱图像中隐藏的端元信息。chang首次提出利用ncls(nonnegativeconstrainedleastsquares)算法来进行目标探测,文献验证了利用解混进行目标探测的可行性,并得出在目标能被当做端元提取时,利用解混的目标探测算法的探测效果优于传统的目标探测算法。而ncls算法存在的问题是:如果目标不能作为端元被成功提取,就存在探测效果差的问题。



技术实现要素:

本发明在ncls算法的基础上提出了一种基于解混预处理的高光谱目标检测方法,改进现有ncls算法,解决了现有ncls算法中如果目标不能作为端元被成功提取,探测效果差这一问题,并利用粒子群算法优化了丰度反演的阈值。

本发明采取如下技术方案:

一种基于解混预处理的高光谱目标检测方法,其步骤为:

1)获得需要探测的高光谱图像,获得需要探测的目标光谱t,对高光谱图像和目标光谱进行单位化处理;

2)对高光谱图像进行端元提取,可采用n-finde算法,得到图像的端元集合;

3)根据步骤2已经得到的端元集合和目标光谱t进行光谱夹角计算,得到端元集合中与目标光谱最为近似的目标端元如果在设定的阈值内找不到目标端元,则将高光谱影像投影至其主成分的正交子空间,再重复步骤2和步骤3,直到匹配出目标端元

4)对步骤3所得目标端元进行丰度反演,如采用无约束最小2乘算法,得到目标端元的丰度图;

5)对步骤4中得到的丰度图可利用粒子群算法求得丰度图的最佳分割阈值;

6)根据步骤5得到的阈值,对丰度图进行分割,分割后图像中白色区域代表目标区域,黑色区域代表背景区域。

优选的,步骤1)、对高光谱图像进行单位化处理,具体如下:对高光谱图像x中的每个像元分别进行单位化处理,对每个像元进行如下处理:

其中,xi代表高光谱图像中每个像元中第i个波段的dn值,min表示该像元中所有波段dn值的最小值,max表示该像元中所有波段dn值的最大值,xi*表示单位化处理后像元中第i个波段的dn值。

优选的,步骤2)、高光谱图像中端元的提取:利用n-finder算法找出图像中组成最大体积的p个像元,体积的计算公式如式2,

其中,(·)!表示对括号中的p-1求阶乘,v(a1,a2,…ap)表示p个端元组成的体积,p表示高光谱图像中端元的个数,a1,a2,…ap表示p个端元,a,表示端元向量的转置,具体如下:首先估计出高光谱图像中端元个数,将高光谱图像降维到1维,高光谱图像中第一个端元就为降维后数据最大的那个像元;其次利用体积公式找出高光谱图像中和第一个端元组成最大体积的像元;然后依次找出影像中和已确定端元所组成最大体积的像元,直到找出p个像元,则找出的p个像元即为该高光谱图像的端元集合。

优选的,步骤3)、目标端元的匹配过程:根据步骤2)所得到的端元集,利用光谱夹角计算目标光谱和各端元的相似度,光谱夹角计算公式如下:

其中,y代表光谱夹角的余弦,θ表示光谱夹角,a表示端元向量,t表示目标光谱,at表示端元向量的转置;光谱匹配度超过0.9,则认定端元为目标端元,正常情况下能从端元集合中仅有一个端元与目标光谱匹配,但存在提取出多个端元和没有一个端元和目标光谱匹配,在提取到多个端元时,对匹配到的端元进行求均值然后作为目标端元;在匹配不到目标端元的情况下,需要对高光谱图像进行投影,投影方向如下:

u=pca(x)(5)

对高光谱图像投影后,投影公式如下:

其中,i是l×l维单位矩阵,l是高光谱图像波段数,t表示转置,u是主成分分析中的变换矩阵,pca(·)表示对高光谱图像进行主成分分析,代表投影方向,x表示高光谱图像,y表示高光谱图像投影后的图像;重新按照步骤3)操作,直到匹配到目标端元。

优选的,步骤4)、对目标端元进行丰度反演:将步骤3)得到的目标端元进行丰度反演,具体利用最小2乘法求解,最小2乘求解公式如下:

cucls=(mtm)-1mtr(6)

其中,cucls表示丰度,m表示端元矩阵,r表示高光谱图像中的像元;对目标端元进行丰度反演后将会得到高光谱图像中目标端元在各个像元中的比例,由于采用的是无约束最小2乘法,在求得的阈值中可能存在小于0和大于1的情况,在这种情况下,小于0的修改为0,大于1的修改为1。

优选的,步骤5)、利用粒子群算法对阈值进行优化:具体操作如下:从高光谱图像中标记处肉眼可见的目标像元,利用粒子群算法对这些像元进行训练;具体训练过程如下:

vit+1=ω·vit+c1·r1it·(ptipbest-pti)+c2·r2it·(ptgbest-pti)

其中,粒子i在t时刻的位置为pit=[pi1t,pi2t…,pint],速度为vit=[vi1t,vi2t…,vint],n代表n维空间;粒子在每次迭代中根据自身历史最优位置ptipbest和粒子群中全局最优位置所确定的速度更新方向来动态调整速度。式中右边第2项c1·r1it·(ptipbest-pti)为“认知部分”,量化粒子对自己历史经验的吸收;式中右边第三项c2·r2it·(ptgbest-pti)是“社会部分”,衡量整个粒子群对该粒子的影响;惯性权值ω用来控制之前速度对当前速度的影响,c1和c2是加速度系数。rt1i和rt2i是均匀抽取的随机数,对算法引入不确定性因素;粒子利用更新后的速度和历史位置来实现位置的更新pit+1=pit+vit+1

以roc曲线与坐标轴围城的最大面积作为粒子群算法的优化标准,经过粒子群算法的优化可以求取出一个最佳分割阈值。

优选的,步骤6)、根据步骤5)求取的阈值对丰度图进行分割:丰度图中大于等于阈值的像元为目标像元,丰度图中小于阈值的像元为背景,阈值分割后的丰度图即为目标探测的结果图。

本发明针对现有ncls在不能提取目标端元时探测效果差,同时对阈值的选取完全靠经验选取的问题,提出了一套完整的基于像元解混的目标探测处理流程,涉及一种基于解混预处理的高光谱目标检测方法。本发明可以有效的提高目标探测的探测率。

附图说明

图1为算法流程示意图;

图2为真实目标位置图;

图3为利用ncls算法进行目标探测的结果图;

图4为利用本发明进行目标探测的结果图;

图5为各目标探测算法的roc曲线图。

具体实施方式

下面结合附图对本发明优选实施例作详细说明。

步骤1、对高光谱图像进行单位化处理,具体操作如下:对高光谱图像x中的每个像元分别进行单位化处理,对每个像元进行如下处理:

其中,xi代表高光谱图像中每个像元中第i个波段的dn(像元亮度)值,min表示该像元中所有波段dn值的最小值,max表示该像元中所有波段dn值的最大值,xi*表示单位化处理后像元中第i个波段的dn值。这样的处理可以减少不同环境带来的探测误差。

步骤2、高光谱图像中端元的提取:利用n-finder算法找出图像中组成最大体积的p个像元,体积的计算公式如式2。

其中,(·)!表示对括号中的数求阶乘,v(a1,a2,…ap)表示p个端元组成的体积,p表示高光谱图像中端元的个数,a1,a2,…ap表示p个端元,a,表示端元向量的转置。具体操作如下:首先估计出高光谱图像中端元个数,将高光谱图像降维到1维,高光谱图像中第一个端元就为降维后数据最大的那个像元;其次利用体积公式找出高光谱图像中和第一个端元组成最大体积的像元;然后依次找出影像中和已确定端元所组成最大体积的像元,直到找出p个像元,则找出的p个像元即为该高光谱图像的端元集合。

步骤3、目标端元的匹配:根据步骤2所得到的端元集,利用光谱夹角计算目标光谱和各端元的相似度,光谱夹角计算公式如下:

其中,y代表光谱夹角的余弦,θ表示光谱夹角,a表示端元向量,t表示目标光谱,at表示端元向量的转置。光谱匹配度超过0.9,则认定端元为目标端元,正常情况下能从端元集合中仅有一个端元与目标光谱匹配,但存在提取出多个端元和没有一个端元和目标光谱匹配,在提取到多个端元时,对匹配到的端元进行求均值然后作为目标端元。在匹配不到目标端元的情况下,需要对高光谱图像进行投影,投影方向如下:

u=pca(x)(5)

对高光谱图像投影后,投影公式如下:

其中,i是l×l维单位矩阵,l是高光谱图像波段数,t表示转置,u是主成分分析中的变换矩阵,pca(·)表示对高光谱图像进行主成分分析,代表投影方向,x表示高光谱图像,y表示高光谱图像投影后的图像。重新按照步骤3操作,直到匹配到目标端元。

步骤4、对目标端元进行丰度反演:将步骤3得到的目标端元进行丰度反演,具体利用最小2乘法求解,最小2乘求解公式如下:

cucls=(mtm)-1mtr(6)

其中,cucls表示丰度,m表示端元矩阵,r表示高光谱图像中的像元。对目标端元进行丰度反演后将会得到高光谱图像中目标端元在各个像元中的比例,由于采用的是无约束最小2乘法,在求得的阈值中可能存在小于0和大于1的情况,在这种情况下,小于0的修改为0,大于1的修改为1。

步骤5、利用粒子群算法对阈值进行优化:具体操作如下:从高光谱图像中标记处肉眼可见的目标像元,利用粒子群算法对这些像元进行训练。具体训练过程如下:

vit+1=ω·vit+c1·r1it·(ptipbest-pti)+c2·r2it·(ptgbest-pti)

其中,粒子i在t时刻的位置为pit=[pi1t,pi2t…,pint],速度为vit=[vi1t,vi2t…,vint],n代表n维空间。粒子在每次迭代中根据自身历史最优位置ptipbest和粒子群中全局最优位置所确定的速度更新方向来动态调整速度式中右边第2项为“认知部分”,量化粒子对自己历史经验的吸收。ptgbest右边第三项是“社会部分”,衡量整个粒子群对该粒子的影响。惯性权值ω用来控制之前速度对当前速度的影响,c1和c2是加速度系数。rt1i和rt2i是均匀抽取的随机数,对算法引入不确定性因素。粒子利用更新后的速度和历史位置来实现位置的更新pit+1=pit+vit+1

以roc曲线与坐标轴围城的最大面积作为粒子群算法的优化标准,经过粒子群算法的优化可以求取出一个最佳分割阈值。

步骤6、根据步骤5求取的阈值对丰度图进行分割:丰度图中大于等于阈值的像元为目标像元,丰度图中小于阈值的像元为背景,阈值分割后的丰度图即为目标探测的结果图。

本发明首先需要将高光谱图像数据进行标准化处理,使样本都处在同一环境下,以消除不同光照下同种物质不同光谱曲线对探测造成的影响;将标准化后的高光谱图像数据做端元提取处理,提取出高光谱图像中的端元,在目标不能当做端元被端元提取算法提取时,需要将高光谱图像投影到其主成分的正交子空间,然后再做端元提取处理,这样做可以提高提取到目标端元的成功率;在得到高光谱图像端元集合的基础上,对目标端元利用最小2乘算法进行丰度反演的处理,这样可以准确的获得每个像元中目标端元的所占比例;在得到丰度图后,利用粒子群算法对阈值的选取进行优化;经过以上处理得到的探测结果探测率高,具有较高的可行性。

本发明实验采用aviris的indianpine数据进行验证,该数据为1992年拍摄印第安纳州西北的测试点影像。该影像对目标识别算法要求较高,这是因为各个像素之间光谱分辨率差异较小。该影像尺寸大小为145×145像素,包含16种物质。本实验中,选择编号为16的石塔作为被探测的目标。目标真实地物图参见图2。验证实验中,将本发明的方法简记为i-ncls并和传统的sad算法、cem算法、ncls算法的效果进行对比。在实验中,最大端元数p设为16,由于利用端元提取算法没能准确的提取出目标端元,在i-ncls算法中,将高光谱图像投影到前3个主成分构成的正交空间中,在对高光谱图像进行投影后,再进行端元提取。利用粒子群算法求出新算法丰度反演的阈值为0.183。对比算法的探测结果阈值设为0.20。

图3是ncls算法进行目标探测后得到的结果图像。

图4是本发明方法进行目标探测得到的结果图像。

图5为各目标探测算法的roc曲线图,从图5可以看到本发明的探测效果最好。

另外,实验使用的是真实的高光谱图像数据,具有足够的说明力。

本发明基于解混预处理的高光谱目标检测方法,首先利用端元提取算法提取出高光谱图像中的端元;其次,通过光谱夹角匹配到端元中与目标光谱最为接近的端元作为目标端元,在不能匹配到目标端元时,该方法将高光谱图像投影至其主成分的正交子空间,然后再进行端元提取和目标端元匹配操作。接着,对目标端元进行丰度反演操作,得到目标端元的丰度图。最后,利用粒子群算法优化丰度图的阈值。本发明方法相对于传统的高光谱目标探测算法,提高了目标探测的探测率。

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