异常检测算法目的在于从影像中将目标信息(异常信息)从影响背景和噪声中分离出来。RX异常检测算法为一种局部目标检测算法,算法的监测窗口包括目标窗口和背景窗口,且后者远大于前者。RX算法假设数据空间白化且服从高斯分布,在此基础上通过分析窗口的统计量(均值和方差),并与设定的阈值比较判断是否为异常值。
设高光谱图像数据波段数为P,则包含N个像素点的背景数据可以表示为一个P*M的矩阵Xb=[x1,x2,…,xM],其中
Xi=[x1i,x2i,…,xpi]T,表示每一个像素点的光谱,设H0为目标不存在,H1为目标存在:
上式中x为待检测点的向量,n表示背景噪声向量,s为目标光谱向量。RX算法的表达式为:
其中r为待检测像素的光谱,为背景窗口的均值,
为背景窗口协方差矩阵,λ为判决阈值。可以看到出,RX算子实际上计算待检测点光谱与背景窗口均值向量之间的马氏距离。
from:https://blog.csdn.net/chenyi0818/article/details/79750551
from:http://blog.sina.com.cn/s/blog_a29eae2b0102uxcb.html
马氏距离
用来度量一个样本点P与数据分布为D的集合的距离。 假设N维样本点为:
数据集分布的均值为:
协方差矩阵为S。则这个样本点P与数据集合的马氏距离为:
马氏距离也可以衡量两个来自同一分布的样本x和y的相似性:
当样本集合的协方差矩阵是单位矩阵时,即样本的各个维度上的方差均为1.马氏距离就等于欧式距离相等。 当协方差矩阵是对角矩阵时,即样本数据在各个维度上的方差可能不为1,此时,
可以看做是标准化了的欧氏距离。其中,si为样本数据在第i个维度上的标准差。 标准差为方差的算术平方根
在RX检测中,假定内外框是服从统一分布,内框的均值作为待检测量x,外框的均值作为该分布的均值,方差通过外框的数据进行求得
1.为什么马氏距离是尺度无关的?
假设一个样本集合的维度是N,数据在各个维度上的方差已知(方差较大的方向是数据主要的变化方向),可以把方差看做各个方向上的轴长,方差越大,轴越长,数据点在这个方向上就越不容易掉下悬崖,也就越安全。如果待测样本在各个维度上与集合中心的距离都远远小于这个维度上的轴长,那么这个样本属于集合的概率就越大。协方差矩阵的对角线元素就代表了各个维度上的方差。
再次看上式,可以认为,对每一个待测样本,都计算一下其与集合中心的距离,接着,在各个方向上均除以轴长(协方差矩阵求逆),最后再乘起来,整个结果越小则说明样本越靠近集合的中心。
from :https://blog.csdn.net/panglinzhuo/article/details/77801869