双层协同结构改进的高光谱异常检测算法
作者: 李欢 赵嘉豪 刘广涵 石锦辉 宋江鲁奇 周慧鑫
摘 要:在高光谱目标检测领域, 基于协同表示的算法展现出优异的性能, 但其一直存在异常点对背景字典的污染问题, 这一定程度上影响了算法的检测性能。 本文提出了一种改进的协同表示高光谱异常检测算法, 设计了双层协同表示结构, 首先利用第一层协同表示算法将大部分异常点检出, 并用其邻域进行背景纯化, 剔除已检出的异常点对背景字典的污染, 然后用纯化的背景字典来预测背景, 进而在第二层采用协同表示进行异常检测。 仿真试验表明, 通过简单的双层协同表示结构可以有效地减轻异常点对背景污染的问题。 该算法的检测性能相对基础的协同表示算法有显著的提升, 与现有的算法对比, 具有相对较好的检测效果。
关键词:高光谱; 异常检测; 目标检测; 背景污染; 协同表示; 双层结构
中图分类号:TJ760; V448.25
文献标识码: A
文章编号:1673-5048(2024)04-0121-07
DOI: 10.12132/ISSN.1673-5048.2023.0229
0 引 言
随着高光谱图像技术的发展, 其技术的应用也得到了快速推广, 目前基于高光谱图像的目标检测技术已经在农业、 军事领域展现出广阔的应用前景, 受到了各国科研工作者的广泛关注[1-2]。 基于高光谱的目标检测可分为监督目标检测和异常目标检测, 其中异常检测算法由于不需要先验知识, 具有更好的实用性, 成为检测领域新的研究热点。
近年来, 基于高光谱的异常检测算法被提出, 其中, 最为经典的算法是RX(Reed-Xiaoli Detection)算法[3], 该算法假设高光谱图像背景部分服从多元高斯分布, 利用高光谱图像的光谱向量均值估计参考背景均值向量和协方差矩阵参数, 最后, 以计算的单个像素与参考背景统计特征之间的马尔可夫距离作为最终判断依据。 RX算法在背景相对简单的高光谱图像中显示出良好的检测性能。 然而, 对于复杂的高光谱数据集和噪声干扰, 很难正确描述各种地面特征。 针对RX算法的不足, 相关研究人员也从不同方面提出了相应的改进方法[4-8]。
2015年, Li等人首次将协同表示方法应用于超光谱图像异常检测领域[9]。 与RX算法相比, 该算法没有对背景进行高斯假设。 该算法提出背景像素可以由周围像素近似表示, 而异常像素不能, 因此, 可以通过使用相邻像素来重新构造中心像素, 背景字典就由围绕中心像素的一些代表性背景像素组成。 该算法使用滑动双窗口来获得背景字典, 中心像素的近似值可以通过背景字典原子的线性组合来获得, 中心像素与其近似值之间的距离用于确定中心像素是否异常。 在较多数据集上, CRD (Collaborative-Representation-based Detector)算法通常能够表现出优异的异常检测性能, 然而在CRD算法中一直存在背景字典的异常像素污染问题, 这一定程度上限制了算法的检测性能[10]。 因此, 基于协同表示及其他方法在后来的工作中也得到一定程度的优化及改进[10-18]。
综上可以看出, 基础的CRD算法可以取得较好的性能, 但由于异常点对背景字典存在污染的问题, 一定程度上影响了算法性能。 因此, 如果能够对异常点进行预检测, 得到异常点的分布, 对背景字典进行纯化, 则可以剔除其对重构背景字典的影响, 再使用CRD算法进行异常点检测时, 可以降低异常点对算法性能的影响, 从而提升算法的性能[10, 18]。 基于此, 本文提出了一种改进的协同表示的高光谱异常检测算法, 设计了双层CRD架构(Twice CRD, TCRD), 首先利用协同表示算法将大部分异常点检出, 再用异常点邻域进行背景纯化, 剔除已检出异常点对背景字典的污染, 进而采用协同表示来进行异常检测。 仿真试验表明, 通过简单的双层协同表示算法可以有效减轻异常点对背景的污染问题, 算法的检测性能相对基础的协同表示算法有显著提升。
1 基于协同表示的高光谱异常检测算法
基于协同表示的异常检测算法通过背景字典重构背景, 并通过重构与原始图像之间的误差进行判断。 基于协同表示的异常检测时, 在高光谱图像中局部背景具有一定的相似性, 背景可由周围背景成分近似代替, 并通过引入双窗口结构, 将双窗口之间的像元组成背景字典去重构中心像素。 在高光谱数据中, 定义一个中心像素y, 周围存在双窗结构, 如图1所示, 其中内窗大小为Win, 外窗大小为Wout, 内外窗之间像素个数为num_b=Wout×Wout-Win×Win。 假设内外窗之间像素属于背景元素, 并组成用于重构中心像素的背景字典Ab, 字典对应权重系数为x, 则基于字典Ab的中心像素可表示为Abx。
重构误差定义为
E(y)=y-Abx2(1)
式中: E(y)为中心像素与基于字典表示的近似值之间的误差, 当误差小于阈值时可以判定中心待测点为背景, 否则为异常点。
在基于协同表示的异常检测方法中, 需要解决的关键问题就是寻找最佳权重系数x, 满足在x22最小的约束条件下使得误差E(y)最小, 数学描述为
argminxy-Abx22+λx22(2)
式中: λ是拉格朗日乘子, 进一步有
argminx[xT((Ab)TAb+λI)x-2xT(Ab)Ty](3)
对权重系数x求导, 且令导数为0, 有
x=((Ab)TAb+λI)(Ab)Ty(4)
式中: I为单位矩阵。
在利用背景字典表示中心像素点时, 为尽可能接近中心待测点数值, 可以考虑给予背景字典各原子不同的权值。 当字典中原子和待测点更为相近时, 则可以在字典中给予更大的权重比例, 而当字典中原子和待测点有较大差异时, 应给予其原子更小的权重。 根据上述规律对字典做如式(5)所示的调整。
Γy=y-a120
0y-anum_b2(5)
式中:
a1, a2, …, anum_b为字典Ab的列向量, y-ai2为待测点和字典原子之间的欧式距离。 不妨令y=[y; 1], Ab=[Ab; 1], “1”是长为num_b的横向量, 且向量元素全为1, 可使x和为1, 增强算法稳定性, 则有
argminx1y-Abx122+λΓyx122(6)
对式(6)进一步求解, 得
x1=((Ab)TAb + λΓ TyΓ y)-1(Ab)Ty(7)
在得到上述解之后便可以根据式(7)完成重构误差的计算, 与设定的阈值th比较, 完成基于协同表示的异常检测, 其判断过程为
E(y)=y-Abx12 E(y)≥th 异常目标E(y)<th 背景 (8)
2 背景纯化
一般地, 利用第一层协同表示已经可以得到初步异常信息的分布情况。 为降低异常点对背景字典的污染, 在原始高光谱图像中, 对可能异常点对应坐标处光谱曲线置零清除, 对清除后的可能异常点像元用邻域内所有可能背景点的均值向量代替。 为保证填充向量的有效性, 在进行填充时, 利用以可能异常点为中心的窗口大小为w的范围内可能背景像素的均值向量对中心可能异常点进行填充, 完成背景的纯化。 设某一像素经第一层协同表示算法确定为异常点l, 以l为中心的窗口大小为w的范围内所有背景像素构成集合B, 则l像素纯化对应的计算方法为
l=∑imiN(9)
式中: mi为集合B中的第i个元素; N为集合B中的背景元素的个数。
3 第二层协同表示算法
在完成背景纯化后, 使用第二层协同表示算法完成纯化后高光谱图像的重构, 其基本方法和原理与公式(1)~(8)一致, 输入第二层协同表示的参数包括λ以及内外窗口大小Win和Wout。 其权重系数的计算公式为
x2=((Ab)TAb +λΓTyΓ y)-1(Ab)Ty(10)
进而与设定的阈值th比较, 完成基于协同表示的异常检测, 其判断过程为
E(y)=y-Abx22 E(y)≥th 异常目标E(y)<th 背景 (11)
最终得到检测结果并分析算法性能效果。
4 本文算法流程
本文提出一种基于双层协同表示的高光谱异常检测算法, 首先利用第一层协同表示算法将大部分异常点检出, 并在构建背景字典时, 将所有已检测出的异常点剔除, 然后用纯化的背景字典来预测背景, 进而在第二层采用协同表示进行异常检测。
算法流程如下:
(1) 输入高光谱数据H、 参数λ以及内外窗口大小Win和Wout, 以及误差阈值th, 利用协同表示算法完成异常点的预检测;
(2) 对可能的异常点像元用内窗邻域内所有可能背景点的均值向量填充, 完成背景纯化;
(3) 使用第二层协同表示算法对纯化后的高光谱图像完成重构, 输入第二层协同表示的参数λ以及内外窗口大小Win和Wout, 得到重构高光谱图像Y, 并计算H与Y的重构误差, 得到检测结果。
5 试验结果与分析
为准确验证算法的性能好坏, 本文对两幅不同的高光谱图像进行仿真试验, 同时为了进行比较分析, 本文选择了4种经典的超光谱异常检测算法, 包括RX[3]、 局部RX算法(LRX)[19]、 基于协同表示的异常检测算法CRD[9]、 基于白化空间相关滤波的异常检测算法(WSCF)[20], 基于鲁棒性主成分分析的异常检测算法(RPCA-RX)[21]和基于核孤立森林的异常检测算法(KIFD)[22]。 通过比较不同算法的检测结果, 进一步分析了本文算法的优缺点。
(1) Beach_Plane数据集及分析
Beach_Plane数据集由机载可见光/红外光谱成像仪采集, 拍摄地点为Island海滩, 空间分辨率为17.2米/像素, 保留188个光谱波段, 空间部分截取后大小为140×140。 图中主要包含海面、 沙滩、 海岛等地物目标种类, 其中异常目标为海面上的飞机。 该数据伪彩色图像及其异常目标真实位置分布如图2所示。 这些数据集包括海面、 海滩、 岛屿、 飞机和其他物体。 海面上的一架飞机是异常物体, 其余的是背景。 对于本文的算法, 所涉及的主要参数包括可能的异常对象的阈值th、 协同表示正则化参数λ, 以及双层协同表示窗口的内窗Win和外窗Wout的相应大小。 试验证明, 正则化参数λ对最终结果的影响很小, 并且在协同表示中, 正则化参数λ一致设置为10-6。 第一层的协同表示窗口内窗Win和外窗Wout分别为17和19, 阈值th设置为0.3, 第二层协同表示窗口内窗Win和外窗Wout分别为3和5。
为分析一次CRD并进行背景纯化的效果, 做出了原始数据的伪彩图和一次CRD及背景纯化后数据的伪彩图, 如图3所示。 由图可以看出, 主观视觉上, 原始数据伪彩图和一次CRD背景纯化后数据的伪彩图差异较小, 仅从主观视觉上难以观察到其差异。 图4为这两幅伪彩图的差值。 由图4可以看出, 其差异主要体现在第一次CRD后检出的异常点处, 同时也可以看出, 除了异常点真值处表现出较大差异外, 在左下角沙滩处也表现出了较大的差异, 这主要是因为第一次CRD时, 沙滩的光谱信息和海面的光谱信息差异较大, 也被预检为异常点, 从而也被做了邻域均值替代, 表现出与原始数据的差异。
各个算法在Beach_Plane图像上的试验模拟结果如图5所示。 图5(a)显示了数据集对应的异常对象的真实值, 图5(b)~(h)显示了每个比较算法和本文算法的异常检测结果。 由图可以看出, 所有算法都可以检测到异常对象。 然而, 相对来说, RX算法和RPCA-RX算法的检测结果中异常物体的形状轮廓不如其他算法清晰; 在背景抑制方面, RX算法、 WSCF算法和KIFD算法对该数据集的背景抑制效果较差, 存在大量明显的背景残差, 而LRX算法的背景抑制效果较好, 但其异常物体的轮廓相对较差。 本文算法的异常物体整体保留较好, 同时通过双层协同表示的作用, 很大程度上降低了异常点对背景字典的污染, 表现出对背景良好的抑制效果, 其在左下角处留有极少的背景残留, 如图5(h)所示, 相对CRD算法(见图5(d))具有明显的提升。 这表明RX和KIFD算法将存在明显的虚警, 而本文所提出的算法则表现相对较好的性能。