高光谱图像中的目标检测(二)| 稀疏表示与学习字典

本文介绍一种利用学习字典稀疏表示HSI(Hyperspectral Imagery)数据进行高光谱图像目标检测的算法。主要应用于对full-pixel target的检测。

1.稀疏表示

稀疏表示(Sparse Representation/Sparse approximation)的数学表达为 y=Dx , 其中y表示待表示的信号,D是字典,x是一个稀疏向量。
在高光谱图像中,可以将y理解为一个像素点的光谱维数据组成的向量(K*1维),D是一个矩阵(K*M维),每个列向量可以理解为端元,x(M*1维)表示每个端元的丰度。x是稀疏的(大多数元素为0),这意味着信号y可以由D中若干个少数列向量的线性组合表示出来。x中非0元素的个数为x的稀疏度(sparsity)。
字典有时也会被叫为过完备基(overcomplete basis),从线性代数基的角度很好理解,有 KM 。但在HSI中有时不需要这么多数量的基,所以可能不满足过完备基的定义。

2. 字典学习

字典D的获得主要有两种方式:
(1)无学习过程的方法:直接将训练样本作为字典中的基(一个列向量),适用于所处理的数据集中训练样本较少的情况,比如HSI中目标字典的获取,由于整幅图像中目标像素点往往很少,所以直接用目标像素点形成目标字典。
(2)有学习过程的方法:一般过程为从训练数据中提取若干样本,再在稀疏约束下依据样本迭代求解一组过完备基。
稀疏约束的表示如下:
这里写图片描述
稀疏度的x表示本来为0范数,但是L0范数很难求解,是一个NPhard问题,所以往往使用L1范数来对其进行凸近似。(详细解释移步http://blog.csdn.net/zouxy09/article/details/24971995/)

3.目标检测的 STD与SRBBH模型

x是观测的一个高光谱像素,B维。如果x是一个背景像素,那么它的光谱位于背景训练样本扩展的B维的子空间中,数学表示为:

xα1ab1+α2ab2++αNabN=[ab1+ab2++abN]
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用训练好的背景字典进行高光谱目标检测时,可以使用稀疏表示的方法来对新的高光谱数据进行表示和检测。以下是一个简单的示例代码: ```python import numpy as np from sklearn.decomposition import sparse_encode def sparse_representation(data, dictionary): # 对输入数据进行稀疏表示 sparse_codes = sparse_encode(data, dictionary) return sparse_codes def anomaly_detection(data, dictionary, threshold): # 对输入数据进行稀疏表示 sparse_codes = sparse_representation(data, dictionary) # 计算残差作为异常检测度量 residual = np.linalg.norm(data - np.dot(dictionary, sparse_codes), axis=1) # 根据设定的阈值进行异常检测 targets = residual > threshold return targets ``` 在上述代码,`sparse_representation`函数使用`sklearn.decomposition`模块的`sparse_encode`函数来对输入数据进行稀疏表示。传入的参数包括待表示的数据`data`和训练好的背景字典`dictionary`。该函数返回稀疏表示系数`sparse_codes`。 `anomaly_detection`函数接收待检测的高光谱数据`data`、训练好的背景字典`dictionary`以及设定的阈值`threshold`作为输入。首先,调用`sparse_representation`函数获取输入数据的稀疏表示系数`sparse_codes`。然后,计算数据与字典乘积的残差,使用NumPy的`linalg.norm`函数计算2范数。最后,根据阈值将残差值与阈值进行比较,得到目标检测的结果`targets`。 需要注意的是,具体的使用方法和参数设置可能需要根据你的数据和需求进行适当的修改和调整。此外,稀疏表示方法在实际应用可能需要进行正则化、降噪等处理,以提高目标检测的准确性和鲁棒性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值