王强辉,华文深*,黄富瑜,严 阳,2,张 炎,索文凯,3
(1.中国人民解放军陆军工程大学 石家庄校区 电子与光学工程系, 石家庄 050003;2.中国人民解放军31681部队, 天水 741000; 3.中国人民解放军68129部队, 兰州 730000)
高光谱图像(hyperspectral image,HSI)是一种包含空间和光谱信息的的3维图像。近年来,国内外研究人员通过不懈努力,在光谱解混[1]、图像分类[2]、目标检测[3]等方面取得了大量的研究成果。高光谱图像光谱分辨率极高,光谱信息近似连续,利用光谱信息进行目标检测具有广泛的应用。根据是否提前掌握目标光谱的先验信息,目标检测分为光谱匹配检测和异常检测[4]。由于光谱库的构造较为困难,不需要先验信息的异常检测成为研究的热点[5]。
异常检测是指在目标先验信息未知情况下,通过获取图像中的光谱和空间信息将存在的异常像元检测出来。RX算法[6-7]是一种由REED和YU提出的经典异常检测算法,其假设背景服从多元高斯分布,而异常像元偏离这种分布,通过计算待测像元与背景的马氏距离实现异常检测。由于该算法背景的获取源于整幅图像,不可避免地将异常像元混入背景中,造成检测精度较低、虚警率较高。DU等人[8]分析了背景不确定性对异常目标检测的影响。SMETEK等人[9]指出仅仅0.5%的数据污染就会造成背景协方差失真,严重影响RX算法的检测精度。为了更为准确地获取背景数据、提高检测效果,ZHAO等人[10]提出了基于密度背景纯化的异常检测(density background refinement anomaly detection,DBRAD)算法,通过构造超球体将异常像元从背景中筛选出来,得到纯化后的背景进行RX检测。参考文献[11]中提出一种核加权RX(kernel RX,KRX)算法, 根据背景像元到质心的欧氏距离来赋予背景像元权值,从而削减异常信息在协方差矩阵中的影响,取得了较好的检测效果。DU等人[12]提出了基于随机选择的异常检测(random selection anomaly detection,RSAD)方法,随机选择像元构建初始背景,根据检测结果降低初始背景中异常信息所占比例,提高了检测精度。TAITANO等人提出了局部RX(local RX,LRX)算法[13],该算法通过建立滑动双窗口模型,使背景的提取更为准确,提高了检测精度[14]。ZHAO等人[15]从投影、加权等角度出发加强了目标和背景的差异性,提高了检测精度。MEI等人[16]先对高光谱数据进行中值滤波,而后进行检测,提高了检测性能。
精确地获取背景信息在异常检测过程中尤为重要,LRX算法利用双窗口模型使背景信息的获取更为科学,但是异常信息的分布具有随机性和复杂性,仍不可避免地混入背景像元中,影响检测精度。为此本文中提出了一种基于光谱角背景纯化的异常检测(spectral angle background purification anomaly detection,SABPAD)算法,根据光谱角距离纯化LRX算法中内外窗口间的背景信息,降低了虚警率,提高了检测精度。
LRX算法是一种基于滑动双窗口模型建立背景统计模型的异常检测算法,能够有效地提高检测精度,是高光谱异常目标检测算法中常用的方法,滑动双窗口模型如图1所示。
从图1可以看出,滑动双窗口模型包括内外窗两个同心窗口,被检测像元为中心像元,内外窗口之间的像元假定全为背景像元,且服从局部多维高斯分布,内外窗均表示直径为奇数大小的正方形,外窗口的尺寸大于内窗口的尺寸。另外,内外窗口尺寸大小的选择与异常目标的大小也息息相关,同时对检测结果也有很大的影响,如果内外窗口尺寸的设置使背景模型中包含大量异常目标像元则会很大程度上影响检测的精度,由于异常目标的尺寸一般都大于1个像元,为避免异常目标腐蚀背景模型,内窗口的尺寸一般大于1个像元,并使其尽可能地包含整个异常目标。基于滑动双窗口模型对图像中的像元逐个进行检测,则可得到检测结果。
Fig.1 Sliding double window model
LRX算法的具体实现过程如下:定义高光谱图像矩阵为X∈RD×N,其中D为光谱维数,N为总像元数,其列向量可表示像元的光谱向量,被检测xi的像元的光谱向量可表示为:
xi=[xi1,xi2,xi3,…,xiD]
(1)
根据广义似然比检测原理,建立LRX算法的二元假设,其表达式为:
(2)
式中,n为背景像元的光谱信息,a为信号丰度,s为目标像元的光谱信息。当a=0时,即假设H0成立,被检测像元为背景像元;当a>0时,即假设H1成立,被检测像元为目标像元。根据广义似然比检测(generalized likelihood ratio test,GLRT)得到LRX算法的判别式为:
LRX(xi)=
(3)
式中,η为判别阈值,设置值的大小与虚警率和信噪比相关;μ代表背景光谱向量的均值;K为背景的协方差矩阵。μ和K的表达式为:
(4)
(5)
不同物质的光谱曲线不同,因此可以通过物质间光谱曲线的相似度来判定物质归属。光谱角制图法(spectral angle mapping,SAM)[17]是一种经典的衡量光谱特征差异性的算法,也称光谱角距离法。该算法通过计算像元光谱间的光谱夹角来表示其相似程度,光谱夹角越大,说明其差别越大,反之则越小。光谱角表示如下:
(6)
式中,〈x·y〉为两个向量的内积,‖·‖为向量的范数。
利用LRX算法进行异常检测时,将内外窗口之间的像元视为背景像元。内外窗口的选择对检测结果有较大的影响,一个合适的内外窗口尺寸对检测结果尤为重要。内窗半径通常为目标尺寸,外窗半径通常为两异常目标的距离,尽可能避免内外窗口之间的背景像元中混入异常像元。但是由于异常目标分布的随机性与不确定性,背景像元中不可避免地混入少量异常像元,对检测精度有较大地影响,为了降低背景像元中的异常成分,本文中提出了基于光谱角背景纯化的异常检测算法,具体实现过程如下:(1)选择合适的内外窗口尺寸建立双窗口模型,提取出内外窗口间的像元作为初始背景像元;(2)求出初始背景像元的均值光谱作为参考像元光谱;(3)计算所有初始背景像元与参考像元光谱的光谱角距离,提取出光谱角距离较大的像元,纯化初始背景像元;(4)将纯化后的初始背景像元作为背景,运用LRX算法进行异常检测。
为验证本算法的有效性和可靠性,本文中采用两组机载可见光/红外光成像光谱仪(airborne visible infrared imaging spectrometer,AVIRIS)真实高光谱数据进行仿真实验。仿真环境:CPU处理器为Intel Core i7-7700HQ,主频为2.80GHz,内存为8.00GB,软件为MATLAB R2017a。
数据1选取的是AVIRIS传感器拍摄的美国SanDiege海军机场的部分数据,波长范围为0.37μm~2.51μm,去除低信噪比和水蒸气吸收比较严重的波段,保留波段为189个。空间分辨率为3.5m,截取的区域大小为100pixel×100pixel,存在38个异常目标。数据2选取的是AVIRIS传感器拍摄的美国洛杉矶机场的数据,波长范围为0.37μm~2.51μm,去除低信噪比和水蒸气吸收比较严重的波段,保留波段为205个。空间分辨率为7.1m,截取的区域大小为100pixel×100pixel,存在2个异常目标。图2和图3分别为两组数据的目标分布图。
Fig.2 Target distribution map of data 1
Fig.3 Target distribution map of data 2
为验证本算法的可靠性与适用性,分别采用RX算法、LRX算法与SABPAD算法对两组数据进行仿真实验。图4为3种算法对数据1的检测结果及对应的3维图像。图5为3种算法对数据2的检测结果及对应的3维图像。
从以上两组数据的检测结果可以看出,3种算法都能识别出大部分异常目标,但RX算法检测出的异常目标大部分为背景,虚警率较高,LRX算法较大程度上降低了虚警率,检测结果与RX算法相比有较大的提升。SABPAD算法与LRX算法相比检测结果有所提升,降低了虚警率,提高了检测精度。
图4和图5中从定性的角度分析了检测结果,下面从定量的角度进行分析。算法检测到的异常目标数、目标像元数和虚警数是衡量算法性能的3个重要指标。对于数据1,设检测到的总的像元数为400, RX算法能检测到38个异常目标中的10个,检测到的目标像元数为25个,虚警数为375个。LRX算法能检测到32个异常目标,目标像元数为163个,虚警数为237个。SABPAD算法能检测到36个异常目标,目标像元数为188个,虚警数为212个。对于数据2,设检测到的总的像元数为100,RX算法能检测到2个异常目标,检测到的目标像元数为4个,虚警数为96个。LRX算法能检测到2个异常目标,目标像元数为6个,虚警数为94。SABPAD算法能检测到2个异常目标,目标像元数为7个,虚警数为93个。检测结果如表1所示。
Fig.4 Detection results of data 1 by the three algorithms and the corresponding 3-D image
Fig.5 Detection results of data 2 by the three algorithms for and the corresponding 3-D image
Table 1 Quantitative comparison of two groups of data detection results
通过表1不难发现:当目标数较多时,RX算法和LRX算法容易造成目标漏检,而SABPAD算法几乎可以将所有异常目标都检测出来。并且SABPAD算法虚警率更低,检测精度更高。采用接收机工作特性(receiver operating characteristic,ROC)曲线和曲线下面积(area under the curve,AUC)值衡量检测结果。ROC曲线反映了检测率随虚警率的变化关系,横坐标表示虚警率,纵坐标表示检测率,向左上方弯曲越多,则AUC值越大,算法检测结果越好,精度越高。ROC曲线越直,AUC值越小,算法检测结果越差,精度越低。图6为3种算法在两组数据上的ROC曲线图。3种算法AUC值和运行时间如表2所示。
Fig.6 ROC curve of two sets of data
Table 2 AUC values and running time of three anomaly detection algorithms
根据ROC曲线图和AUC值可以发现:SABPAD算法在两组数据的检测性能优于其它两种算法,具有更好的适用性。从ROC曲线图可以看出,SABPAD算法在虚警率较低的情况下仍然具有很好的检测性能,背景抑制能力较强。与RX算法相比,LRX算法通过使用双窗口模型选择背景模型时,尽可能减少了异常像元的干扰,得到更精确的检测结果,但受限于窗口尺寸及异常像元分布随机性的影响,内外窗口间的背景像元仍不可避免地混入了异常像元。SABPAD算法在LRX算法的基础上对背景像元的选择进行了优化,将背景像元中异常程度较大的像元剔除,进一步确保了背景像元中不包含异常像元,提高了检测精度,与LRX算法相比,该算法在两组数据检测结果中的AUC值分别提高了0.0317和0.0053。SABPAD算法取得了很好的效果。
针对利用LRX算法进行异常检测时双窗口选择的背景像元不可避免地混入异常像元的问题,本文中提出了基于光谱角纯化的异常检测算法,根据背景像元光谱与背景均值光谱的光谱角距离的大小纯化背景像元,即将光谱角距离较大的像元从背景像元中剔除,优化了背景像元,降低了混入异常像元的概率。与其它算法相比,具有更好的检测性能。实验表明,该算法能有效地提高检测精度,降低虚警率。