1. 引言
高光谱遥感技术获得物质连续的光谱曲线,具有“光谱合一”的特点 [1] ,被列为遥感技术在20世纪三个最显著的进展之一 [2] [3] 。高光谱技术广泛应用于目标检测。根据先验经验是否可知,目标检测方法可分为有监督检测和无监督检测。无监督目标检测中经典算法为RX算法。文献 [4] 在RX中加入核函数提出一种非线性的异常目标检测算法:KRX (Kernel RX, KRX)算法。有监督目标检测中经典算法为CEM算法和自适应余弦一致性估计(Adaptive cosine Consistency Estimation, ACE)算法。文献 [5] 提出一种加权ACE算法。文献 [6] 提出一种基于双时间段检测的CEM算法。本文通过研究CEM算法,通过改善自相关矩阵及加入对数算子,提出一种不仅适用于大面积目标而且适用于小目标的改进的CEM (Modified Constrained Energy Minimization, MCEM)算法。
2. CEM算法
1993年Halsayi [7] 提出了CEM算法。它使用一个有限的脉冲响应(Finite impulse response, FIR)来限制目标光谱,同时保证滤波器的输出能量最小。对于一个高光谱数据集
,每个像元的光谱矢量为
,其中N为高光谱数据集中像元总数目,L为波段数。我们的目的是设计一个线性滤波器
,它保证目标光谱的输出为1,同时限制背景输出最小。
(1)
其中
表示目标先验光谱矢量,
表示每个像元通过滤波器后的输出,
。该最小值问题的解决方法即CEM算子:
(2)
3. 改进的CEM算法
分析CEM算子可知,影响检测结果的量只有两个:目标先验光谱适量
和自相关矩阵
,当给定
后,自相关矩阵
的准确度直接影响算法的精确度。研究CEM算子的推导过程的两个约束条件可知,
是为了限制背景的输出,它由背景像元光谱求出。然而CEM算子在计算
时把目标也计入其中,从而导致算子对目标的抑制。如果把疑似目标剥离
的计算,那么我们就能得到更加精确有效的检测结果。在确定疑似目标过程中,往往会把非目标当做目标,算子对这些像元就会有一定的增强。为了抑制这些像元,我们加入对数算子,对背景进行进一步抑制。至此,本文提出一种改进后的CEM算法:MCEM算法。步骤如下:
1) 光谱重排可以增加变化趋势相似的光谱曲线的差异性 [8] 。对给定目标光谱d进行单调递增(递减)进行排序,数据集中所有像元按照d的排序方式进行重新排序。目标光谱重排后变为
,其它像元重排后变为
。
2) 一阶微分可以反应光谱曲线的斜率及斜率变化情况,从而增强光谱曲线在坡度上的差异性 [9] 。一阶微分对大气效应也有一定的抑制作用。目标光谱和像元光谱一阶微分计算公式如(4) (5)所示。
(4)
(5)
3) 计算一阶微分处理后的目标光谱与各个像元光谱的相似度。此处使用余弦值度量光谱之间的相似性。目标与第i个像元之间余弦值计算公式如(6)所示。
(6)
4) 对计算后的相似度值进行由大到小排序,设置阈值th。在计算自相关矩阵
时,相似度值最大为
,相似度在
之间的像元点不计入计算之内。当
大于
时,分界相似度值
。从而求得改进后的自相关矩阵
。
5) 只有当目标在数据集中的量较大时,修正后的自相关矩阵
才能更好地对背景进行抑制,当目标在数据集中只占由少量像元,甚至仅有一个像元时,修正后的自相关矩阵
与
几乎没有差别,对背景没有显著抑制作用,结果与CEM算法没有什么差别。为进一步抑制背景,我们引入对数算子
。
此时改进的CEM算法MCEM算法如公式(7)所示:
(7)
根据上述算法步骤,算法流程图如图1所示。
4. 试验及结果分析
将提出的MCEM算法与CEM算法、ACE算法和RX算法进行比较,来验证提出算法的优越性。实验中所用高光谱数据来自美国RIT (Rochester Institute of Technology, RIT)大学的高光谱目标检测项目。高光谱图像大小为280 *800,包含126个波段,光谱范围为400~2500 nm。高光谱图像全景如图2所示。
4.1. 成高光谱试验
截取图2中右下角200 *200区域的绿色森林区作为背景,如图3所示。数据集中存在一白色色汽车标准光谱。白色汽车如图4所示。我们选取几处绿色区域的光谱求取平均值,作为绿色背景光谱。我们把背景光谱和汽车标准光谱按一定的比例线性混合,并加入噪声作为伪装目标。伪装目标光谱合成公式如下:
(8)
car为汽车的标准光谱,bac为背景光谱,sa为噪声,通常为高斯白噪声。此处我们取n = 6。目标植入坐标分别为(50, 50)、(50, 100)、(50, 150)、(100, 50)、(100, 100)、(100, 150)、(150, 50)、(150, 100)、(150, 150)。背景光谱、汽车标准光谱和伪装目标光谱如图5所示。

Figure 1. Flow chart of MCEM algorithm
图1. MCEM算法流程图

Figure 5. Target and background normalized spectra
图5. 目标、背景归一化后光谱
分别使用RX算法、ACE算法、CEM算法和MCEM算法对目标进行检测。检测结果如图6所示。从图6中我们可以看到,因为伪装目标光谱与背景光谱相似度极高,达到了0.99,以至于RX算法完全不能识别出目标;而ACE算法优于RX算法,但目标埋没于背景中,对于目标检测的作用不大。CEM算法对背景有着较好的抑制能力,目标光谱的输出结果均高于背景值,但是因为自相关矩阵的计算中涉及到目标光谱,因此目标也受到了抑制,而有些背景反而得到增强,一些背景的输出值甚至超过了0.2。提出的CEM算法对背景有很好的抑制效果,同时增强了目标。
(1) RX
(2) ACE
(3) CEM
(4) MCEM
Figure 6. Test results of four algorithms
图6. 四种算法的检测结果
相比接受器操作特性(Receiver Operating Characteristic, ROC)曲线来说,ROC曲线下面积(Area Under roc Curve, AUC)值能更好地衡量算法的性能。AUC值越大,表示算法检测效率越高。AUC值可以更好地定性显示算法检测能力大小。为更好地定量分析算法的优劣性,我们使用AUC值和算法运行时间来评判算法的优劣性。
表1为图6对应算法检测结果的AUC值和算法运行时间。算法的AUC值与图6检测结果一致,四种算法的检测效果由好到坏依次为:MCEM算法、CEM算法、ACE算法和RX算法。MCEM算法结果明显优于CEM算法,虽然MCEM算法需要更多时间,但MCEM算法能有效地抑制背景,消耗一定的时间从而提高检测精度是有意义的。

Table 1. Comparisons of algorithmic performance
表1. 算法性能对比图
4.2. 真实高光谱试验
在图2中,我们截取含有目标的区域,如图7所示。目标为一黄色织物,如图8所示。
为验证算法的有效性,分别使用ACE、CEM、未加对数算子的MCEM和MCEM算法对图像进行目标检测。目标检测结果如图9所示。
由图9可以看出,ACE算法可以对背景进行有效地抑制,但是目标附近的像元也被极大地增强,因此ACE算法识别出的目标点比实际的目标点面积大。CEM算法可以有效地识别目标,并有效地限制背景输出,但是有些背景像元点输出明显高于周围像元输出。而未加对数算子的MCEM算法检测结果与CEM算法检测结果,几乎一模一样。说明不增加对数算子的MCEM算法对单个目标的识别效果与CEM算法相比,没有得到有效地改善。而MCEM算法检测结果对CEM中的突出点也有较好地抑制。与传统算法相比,MCEM算法对单个目标的检测也有不错的性能。在该实验中,各算法的AUC值和运行时间如表2所示。




Figure 9. Target detection results of algorithms
图9. 各算法目标检测结果图

Table 2. Comparisons of algorithmic performance
表2. 算法性能对比图
由表2可知,CEM算法运行时间少于ACE算法,而CEM算法AUC值大于ACE算法的AUC值,可看出在该实验中,CEM算法优于ACE算法。未加对数算子的MCEM算法AUC值与CEM算法AUC值相同,但其运行时间明显高于CEM算法,故未加对数算子的MCEM算法对小目标的识别效果比CEM算法差。MCEM算法的运行时间大于CEM算法运行时间,但MCEM算法AUC值高于CEM算法的AUC值,即MCEM算法消耗更多的时间来保证算法的检出率,同时降低算法的虚警率,这对我们来说是可以接受的。
5. 结论
本文通过光谱重排、一阶微分增大光谱的差异性,寻找疑似目标,从而改善自相关矩阵,并通过加入对数算子抑制背景,极大提高了目标检测准确性,同时也保证了算法对大面积目标和小目标检测的实用性。但该算法还有一定的局限性:一、该算法需要以目标光谱为基准对数据进行重排,因此对目标光谱的要求较高,然而目标光谱有时很难得到。二、该算法通过光谱重排、一阶微分增大相似光谱的差异性,当通过上述步骤后,还是无法降低目标光谱和背景光谱的相似度时,该算法效果不明显。