基于差异图与比值图融合的SAR图像变化检测系统
项目简介
本项目实现了一套完整的多时相合成孔径雷达(SAR)图像变化检测算法流程。针对SAR图像特有的乘性相干斑噪声,系统采用“预处理-差异图构造-数据融合-二值化分割”的处理框架。不仅实现了仿真SAR数据的生成,还通过融合对数比值图(Log-Ratio)与均值比值图(Mean-Ratio),并利用主成分分析(PCA)自适应确定融合权重,有效克服了单一差异图在抗噪性与边缘保持上的局限性。最终通过Otsu阈值法和形态学优选实现了高精度的变化区域提取。
功能特性
- 仿真数据生成:内置SAR图像模拟模块,可生成包含地面真值(Ground Truth)、背景纹理、变化区域以及Gamma分布乘性噪声的多时相仿真数据。
- 专用降噪处理:实现了经典的Lee滤波器,通过局部统计特性自适应平滑图像,在抑制相干斑噪声的同时保留纹理细节。
- 互补差异图构造:
*
对数比值图:将乘性噪声转换为加性噪声,对高强度变化区域敏感。
*
均值比值图:利用局部邻域均值信息,有效抑制孤立噪点,反映背景的细微变化。
- PCA自适应融合:基于主成分分析提取两个差异图的主要特征,自动计算最优融合权重,生成高信噪比的增强差异图。
- 自动分割与后处理:采用Otsu最大类间方差法自动确定阈值,结合形态学开闭运算去除虚假噪点并填补孔洞。
- 全方位精度评价:自动计算总体精度(OA)、Kappa系数、虚警率(FAR)和漏检率(MR)。
系统要求
- MATLAB R2016a 或更高版本
- Image Processing Toolbox(图像处理工具箱)
- Statistics and Machine Learning Toolbox(统计与机器学习工具箱,用于生成Gamma噪声)
使用方法
直接在MATLAB环境中运行主程序即可。程序将自动按顺序执行以下步骤:
- 清理工作区并初始化参数。
- 生成带有Gamma噪声的仿真SAR图像对及对应的真值图。
- 执行Lee滤波预处理。
- 计算并展示差异图、融合图及最终分割结果。
- 在命令行窗口输出精度评价指标,并生成可视化对比图表。
详细实现逻辑
以下是代码的具体处理流程与核心逻辑解析:
1. 模拟数据生成
代码首先定义了256x256的图像尺寸。
- 地面真值 (GT):构建了一个圆形区域作为变化参考。
- 时相T1与T2:T1作为背景图像(包含一个固定的矩形特征),T2在T1的基础上叠加了上述圆形变化区域及强度差异。
- 噪声模拟:使用
gamrnd函数生成服从Gamma分布的随机噪声矩阵,并以乘性方式叠加到主要图像上,模拟SAR图像的相干斑(Speckle)特性。 - 归一化:将数据拉伸至[0, 255]灰度空间以便处理。
2. 图像预处理 (Lee滤波)
调用自定义函数
lee_filter对T1和T2图像进行去噪。
- 使用5x5的滑动窗口。
- 计算窗口内的局部均值和局部方差。
- 原理:根据局部方差与估计噪声方差的比率计算权重系数K。在平坦区域(低方差)K值较小,输出趋向于局部均值(强滤波);在边缘区域(高方差)K值较大,输出保留原始像素值。
3. 差异图构造
构建两种互补的差异图(DI):
- 对数比值图 (Log-Ratio):计算公式为
|log(T2) - log(T1)|。通过对数变换将SAR图像的乘性噪声模型转化为加性噪声模型,便于后续线性处理。 - 均值比值图 (Mean-Ratio):利用
local_mean函数计算3x3邻域均值。计算公式基于 1 - min(μ1/μ2, μ2/μ1)。该指标被归一化到[0, 1]区间,能够抑制单像素噪声对变化检测的影响。
4. PCA图像融合
利用主成分分析(PCA)技术融合上述两个差异图:
- 向量化:将Log-Ratio和Mean-Ratio图像重塑为列向量,构建数据矩阵。
- 特征分析:计算协方差矩阵及其特征值与特征向量。
- 权重计算:选取最大特征值对应的特征向量,将其分量归一化后作为两个差异图的加权系数(w1, w2)。
- 加权求和:根据计算出的权重生成最终的融合差异图(Fused Map),该图结合了对数比值的强度敏感性和均值比值的抗噪性。
5. 图像分割与后处理
- Otsu阈值:使用
graythresh函数计算融合图的全局最佳阈值,通过imbinarize生成二值化掩膜(Binary Mask)。 - 形态学处理:使用3x3方形结构元素,先进行开运算(消除背景中的微小噪点),再进行闭运算(平滑边界并填补目标内部孔洞)。
6. 精度评价
代码通过对比检测结果与地面真值(Ground Truth),计算混淆矩阵的四个分量(TP, TN, FP, FN),并输出以下指标:
- 总体精度 (OA):正确分类的像素比例。
- Kappa系数:一致性检验指标,排除偶然一致性的影响。
- 虚警率 (FAR):未变化像素被错误检测为变化的比例。
- 漏检率 (MR):变化像素未被检测出来的比例。
关键算法与函数解析
lee_filter (自定义函数)
实现了Lee滤波算法的核心逻辑。它利用卷积操作(
conv2)快速计算局部均值和局部平方均值,进而推导出局部方差。算法假设全图中局部方差最小的区域代表背景噪声方差,以此自适应调节滤波强度。
local_mean (自定义函数)
辅助函数,利用均值卷积核快速计算图像的局部邻域平均值,是构造均值比值图和Lee滤波的基础组件。
PCA融合逻辑
在主程序第4节中实现。不同于简单的平均融合,PCA方法根据数据的统计分布特性分配权重。如果一种差异图的信息量(方差)更大或与主成分方向更一致,它将获得更高的融合权重,从而最大化保留有用信息。