不依赖任何第三方工具箱,用分块、流式与增量统计把“装不下”的多时相影像拆成可计算的小块,同时保住非监督变化检测的统计严谨性。
摘要
多时相遥感变化检测的工程瓶颈,往往不在算法本身,而在“两期或 N 期影像同时驻留内存”这一朴素假设上。一幅 3 万 × 3 万像元、6 波段的 16 位影像,原始体量约 10.8 GB;若在 MATLAB 中转为 double 参与运算,单期即膨胀至约 43 GB,两期并行几乎不可行。本文以“分块—流式—增量”为贯穿主线,讨论在纯 MATLAB 原生函数(matfile、blockproc、memmapfile、tall、gather 等)支撑下,如何构建一条可落地的非监督变化检测流水线:变化向量分析(CVA)的流式距离图、PCA/MAD 变换的协方差增量估计、IR-MAD 的迭代加权、KMeans/GMM 的分块聚类与全局合并,以及阈值选取与精度验证。文章给出每一步的内存账本、参数边界与失效条件,并对“分块是否破坏统计一致性”“增量协方差是否等价于全局协方差”等关键疑问给出可验证的推理与模拟数据支撑。本文评述:纯原生栈路线的价值不在于替代成熟工具箱,而在于把内存约束显式化,使算法在大数据场景下的近似误差可控、可解释。
关键词:多时相遥感;变化检测;非监督;内存治理;分块处理;增量统计;MATLAB 原生实现
目录
1. 问题的真实形态:内存账本与“装不下”的定义
讨论“大数据集”之前,需要先把“大”量化。遥感变化检测的输入通常是两期或多期配准后的影像,其内存压力来自三个乘数:像元数、波段数、数据类型位宽。以常见的 Landsat 8/9 OLI 场景为例,单景约 7600 × 7700 像元、7 个常用波段、16 位无符号整型,原始体量约 0.82 GB;而一景 Sentinel-2 L2A 在 10 m 分辨率下的 10980 × 10980 像元、10 个 10/20 m 波段,原始体量约 2.4 GB。若把研究区扩展到省域或流域尺度,拼接后达到 3 万 × 3 万像元并不罕见,此时单期原始数据约 10.8 GB(6 波段、16 位)。
真正的膨胀发生在运算阶段。MATLAB 的多数数值函数在 double 下工作,16 位转 double 是 4 倍膨胀;两期并行做差值或比值,再乘 2;若再构造 N × P 的特征矩阵(N 为像元数、P 为波段数)参与 PCA,还会额外产生一份连续内存副本。于是“10.8 GB 原始数据”很容易演化为“80 GB 以上的工作集”。
表 1 内存账本(按 16 位原始数据与 double 运算估算;工作集含差值图、特征矩阵与中间副本,为量级估计,非实测)。数据规模依据 Landsat 8/9 与 Sentinel-2 公开产品规格推算。
这里需要区分两个概念:容量不足(物理内存装不下)与带宽不足(能装下但反复读写导致效率崩塌)。前者靠分块解决,后者靠流式与缓存友好布局解决。许多工程实践只关注前者,结果在“勉强装下”的机器上跑出比预期慢一个数量级的流程。
本文评述:把“大数据”当作一个模糊形容词是工程失误的起点。变化检测的内存需求可被显式建模为 O(N·P·B) 与 O(N) 两类项——前者是特征矩阵,后者是距离图/掩膜。只要把 O(N·P) 项压缩为分块内的 O(n·P),把 O(N) 项压缩为可流式写出的磁盘数组,纯 MATLAB 就能在 16 GB 内存的普通工作站上处理 3 万 × 3 万级别的场景。关键在于承认“近似”,并把近似误差纳入验证闭环。
2. 背景与方法谱系:非监督变化检测的三条技术路线
2.1 定义与任务边界
非监督变化检测指在不依赖标注样本的条件下,从多时相影像中识别发生变化的位置,并可选择性地对变化类型聚类。它与监督方法的根本差异在于:阈值与类别数由数据自身的统计结构决定,而非由训练集给出。这一特性使其在标注稀缺的场景(如应急响应、历史影像回溯)中不可替代,但也使其对分布假设与预处理质量高度敏感。
2.2 三条路线
路线一:代数差异类。包括影像差值、比值、变化向量分析(CVA,Change Vector Analysis)。CVA 将两期影像同一像元的光谱向量之差视为变化向量,以其欧氏范数或马氏范数作为变化强度。其优点是物理意义清晰、计算可完全流式化;缺点是对辐射归一化极度敏感。
路线二:变换分解类。包括主成分分析(PCA)、多元变化检测(MAD,Multivariate Alteration Detection)与迭代重加权 MAD(IR-MAD)。MAD 通过典型相关分析寻找两期影像间相关性最低的线性组合,理论上对仿射辐射差异具有不变性,这是它相对 CVA 的核心优势。
路线三:聚类分割类。包括 KMeans、高斯混合模型(GMM)、模糊 C 均值等,直接对差异特征或联合特征聚类。其内存代价主要来自迭代过程中的距离矩阵与中心更新。
三条路线并非互斥:工程上常见“CVA 生成差异特征 → 聚类划分变化强度等级 → 阈值二值化”的组合。本文的贯穿主线正是:无论哪条路线,其内存瓶颈都可归约为“全局统计量估计”与“逐像元判定”两类操作的分离。前者需要一遍或少数几遍全量扫描,后者可完全分块。把这两类操作解耦,就是纯原生栈可行性的根基。
笔者认为,MAD/IR-MAD 在文献中常被描述为“对辐射差异不变”,这一表述需要精确化:其不变性针对的是两期影像间的仿射变换(增益与偏移),而非非线性大气校正残差或地形阴影差异。工程上若未做相对辐射归一化,MAD 的优势会被显著削弱。这一边界条件在分块实现中同样成立,且分块会引入额外的块间统计不一致,需要专门处理。
3. 主线确立:分块—流式—增量的三级内存治理框架
本文提出的框架分三级,逐级降低峰值内存:
第一级 · 分块(Blocking):把影像划分为互不重叠的瓦片(tile),每块独立完成逐像元运算。峰值内存从 O(N·P) 降为 O(n·P),n 为瓦片像元数。适用于 CVA 距离图、逐像元阈值判定、分块聚类。
第二级 · 流式(Streaming):对需要全量扫描才能得到的统计量(均值、协方差、直方图、分位数),用单遍或双遍流式算法累积,不保留全量中间结果。峰值内存降为 O(P²) 或 O(直方图箱数)。适用于 PCA/MAD 的协方差估计、阈值分位数估计。
第三级 · 增量(Incremental):对需要迭代的算法(IR-MAD 的加权、KMeans 的中心更新),把每轮迭代拆成“扫描—累积—更新”的循环,中间状态只保留 O(P²) 的矩阵与 O(K·P) 的中心。适用于迭代类非监督方法。
三级框架的组合关系可用一个简单的决策流程描述:先判断算法是否需要全局统计量;若不需要,直接分块;若需要,判断统计量是否可增量累积;若可,流式;若迭代,增量。绝大多数非监督变化检测算法都能落入这一决策树。
% 三级框架的伪代码骨架(纯原生函数)
info = matfile('t1.mat'); % 不加载,仅索引
[H,W,P]= size(info,'A'); % 影像尺寸
tile = 1024; % 瓦片边长(像元)
% ---- 第一遍:流式累积全局统计量 ----
acc = struct('n',0,'sum',zeros(1,P),'sumsq',zeros(P,P));
for r = 1:tile:H
for c = 1:tile:W
blk = readBlock(info,r,c,tile); % 自定义读取,见第4章
acc = accumulate(acc,blk); % 增量更新,见第6章
end
end
mu = acc.sum/acc.n; C = acc.sumsq/acc.n - mu'*mu;
% ---- 第二遍:分块逐像元判定,结果流式写盘 ----
out = matfile('dist.mat','Writable',true);
for r = 1:tile:H
for c = 1:tile:W
d = cvaBlock(info,r,c,tile,mu,C); % 见第5章
out.d(r:min(r+tile-1,H), c:min(c+tile-1,W)) = d;
end
end
代码 1 三级框架骨架。注意 matfile 的索引读取与分块写回,是纯原生栈避免全量加载的关键。
本文评述:三级框架的代价是“两遍扫描”。对磁盘 I/O 而言,两遍全量读取的成本可能超过内存节省带来的收益,尤其在机械硬盘或网络存储上。因此工程上需要做 I/O 预算:若单遍扫描耗时 T,则两遍为 2T,而全量加载可能因交换(swap)导致 10T 以上。判断依据应是“工作集是否超过物理内存的 60%”,而非绝对大小。这一经验阈值来自对内存分配碎片与操作系统缓存的保守估计,属于工程经验而非严格定理。
4. 数据接入层:matfile、memmapfile 与 tall 的取舍
4.1 三种原生机制的能力边界
matfile 用于访问 MATLAB 的 .mat 文件(v7.3 格式基于 HDF5),支持按索引读写子数组,是分块流程最直接的选择。memmapfile 把二进制文件映射为内存视图,适合 GeoTIFF 转出的裸二进制(BSQ/BIL/BIP 布局),读取开销最低,但需要自行处理头信息与字节序。tall 数组提供惰性求值与自动分块,语法接近普通数组,但其支持的操作集合有限,且对自定义算法的嵌入不够灵活。
表 2 三种原生数据接入机制的对比。结论:算法自定义程度高时优先 memmapfile 或 matfile,tall 适合快速原型而非复杂流水线。
4.2 从 GeoTIFF 到可分块格式的预处理
MATLAB 原生读取 GeoTIFF 的能力有限(geotiffread 在较新版本中已被调整,且对大文件不友好)。工程上更稳妥的做法是:用 GDAL 命令行或 Python 一次性把研究区影像转为 BSQ 裸二进制 + 元数据文本,再由 memmapfile 接入。这一步虽然“借助了外部工具”,但属于数据准备而非算法依赖,不违背“不依赖第三方工具箱”的约束——后者针对的是 MATLAB 运行时的算法库。
% 用 memmapfile 读取 BSQ 布局的裸二进制
% 元数据:H=30000, W=30000, P=6, 数据类型 uint16
H = 30000; W = 30000; P = 6;
m = memmapfile('scene_t1.bsq', ...
'Format', {'uint16', [H W], 'band'}, ...
'Repeat', P); % 每个 band 一个结构体
% 读取第 3 波段、第 1000:2023 行、第 1:1024 列
blk = m.Data(3).band(1000:2023, 1:1024);
代码 2 memmapfile 的 BSQ 读取。注意 Repeat 参数让多波段共享同一映射,避免重复打开文件。
笔者认为,数据接入层的选择应服从“一次转换、多次实验”的原则。变化检测的参数调优往往需要反复运行,若每次都在格式转换上耗时,实验效率会被严重拖累。把原始影像一次性转为 BSQ + 元数据,后续所有分块实验都基于同一份裸数据,是最务实的工程折中。这一建议不涉及算法正确性,但对可复现性有实质影响。
5. 流式 CVA:距离图的逐块生成与阈值传播
5.1 原理与公式
CVA 的核心是把两期影像同一像元的光谱向量之差作为变化向量:
Δx(i,j) = x2(i,j) − x1(i,j), ‖Δx‖2 = √(Σp Δxp²)
变化强度即该范数。若考虑波段间相关性,可用马氏距离 ‖Δx‖Σ = √(ΔxT Σ−1 Δx),其中 Σ 为变化向量的协方差矩阵。马氏版本对波段量纲与相关性更稳健,但需要全局 Σ,正好落入第 6 章的增量估计范畴。
5.2 分块实现与内存账本
逐块计算距离图时,每块只需读入两期对应瓦片,计算差值向量与范数,写出结果。峰值内存为 2·n·P(两期瓦片)+ n(距离瓦片)。以 n = 1024² ≈ 1.05 M 像元、P = 6 计,double 下约 100 MB,完全可控。
function d = cvaBlock(m1, m2, r, c, tile, H, W, P)
r2 = min(r+tile-1, H); c2 = min(c+tile-1, W);
d = zeros(r2-r+1, c2-c+1);
for p = 1:P
a = double(m1.Data(p).band(r:r2, c:c2));
b = double(m2.Data(p).band(r:r2, c:c2));
d = d + (b - a).^2; % 累加平方差
end
d = sqrt(d); % 欧氏范数
end
代码 3 分块 CVA。逐波段累加平方差,避免一次性构造 n×P 的差值矩阵,进一步压低峰值内存。
5.3 阈值传播:从全局分位数到分块判定
非监督 CVA 的阈值通常取距离图的某个高分位数(如 95%、97.5%)或基于统计假设(如卡方分布)。分位数是全局量,无法在单块内确定。解决路径有两条:其一,第一遍扫描时用流式直方图累积距离分布,第二遍按分位数阈值逐块二值化;其二,用两遍法先算均值与标准差,按 μ + kσ 设阈。前者更稳健,后者更快但受分布偏斜影响。
流式直方图的实现要点是:预先确定分箱范围与箱数,逐块把距离值映射到箱索引并累加计数。箱数取 4096 时,分位数误差约为值域的 1/4096,对 16 位距离图通常足够。若需更高精度,可在粗分位附近做二次细化。
本文评述:CVA 的“简单”常被误读为“粗糙”。实际上,CVA 的精度上限由辐射归一化质量决定,而非由距离度量决定。在未做相对辐射归一化的两期影像上,即使改用马氏距离,也无法消除系统性增益差异带来的伪变化。因此分块 CVA 流程中,辐射归一化应作为独立的前置步骤,且其统计量(如暗目标回归系数)同样可用流式方法估计。这一点在工程上比阈值选择更关键。
6. 增量统计:PCA/MAD 变换的协方差在线估计
6.1 为什么协方差是内存瓶颈
PCA 需要对特征矩阵 X(N × P)做中心化后求协方差 C = XTX / (N−1)。若 X 全量驻留,内存为 N·P·8 字节;N = 9×10⁸、P = 6 时约 43 GB。MAD 更复杂,需要两期联合协方差与互协方差,涉及 2P × 2P 的矩阵,但同样可分解为若干 P × P 块的累积。
6.2 单遍增量公式
设已处理 n 个样本,均值为 μn,平方和矩阵为 Sn = Σ xixiT。新到一块含 m 个样本、块均值 μb、块平方和 Sb,则:
μn+m = (n·μn + m·μb)/(n+m), Sn+m = Sn + Sb
协方差由 C = S/(n) − μμT 得到。这一公式的数值稳定性在样本量极大时需注意:S 的元素量级可达 10¹⁵ 以上,与 μμT 相减时可能损失有效位。工程上可改用 Welford 型更新或对数据先做粗略中心化(减去首块均值)再累积。
function acc = accumulate(acc, blk)
% blk: n x P 的 double 块(已转为列向量组)
m = size(blk,1);
mb = mean(blk,1);
Sb = blk' * blk; % P x P,块内平方和
n = acc.n + m;
acc.mu = (acc.n*acc.mu + m*mb) / n;
acc.S = acc.S + Sb;
acc.n = n;
end
% 最终:C = acc.S/acc.n - acc.mu'*acc.mu
代码 4 增量协方差累积。峰值内存为块大小 n·P 加 P²,与总像元数无关。
6.3 增量估计与全局估计的等价性
从代数上看,上述公式是精确的:S 的累加与均值的加权平均都不引入近似。因此协方差矩阵本身与全量计算完全一致(在浮点误差范围内)。真正引入近似的是后续步骤:PCA 的特征向量对协方差的微小扰动敏感,尤其当特征值接近时。工程上应检查特征值谱的间隔,若相邻特征值比值接近 1,则主成分的物理含义不稳定,此时不宜强行解释。
笔者认为,“分块破坏统计一致性”是一个需要分情况讨论的命题。对于可加性统计量(和、平方和、直方图计数),分块累积是精确的;对于非线性统计量(中位数、众数、某些稳健估计),分块会引入偏差。因此判断标准应是“统计量是否可分解”,而非“是否分块”。把这一区分讲清楚,比笼统地宣称“分块无损”或“分块有损”都更有工程价值。
7. IR-MAD 的迭代加权与内存代价
7.1 算法结构
IR-MAD 在 MAD 的基础上引入迭代重加权:每轮计算各像元的“无变化概率”权重,用加权协方差重新求解典型变量,直至权重收敛。其内存代价来自两方面:一是每轮需要全量扫描计算权重,二是加权协方差需要累积。前者可流式,后者可增量,因此 IR-MAD 完全可以在纯原生栈下实现,代价是每轮一遍全量 I/O。
设迭代轮数为 T,则总 I/O 为 T 遍。工程上 T 通常取 10–20 轮即可收敛(依据文献中 IR-MAD 的收敛经验,具体轮数依数据而定)。对 3 万 × 3 万场景,若单遍读取耗时 3 分钟,则 15 轮约 45 分钟,属于可接受范围。
7.2 权重计算的数值细节
权重通常取卡方分布尾概率的函数,涉及不完全 Gamma 函数。MATLAB 原生提供 gammainc,可直接使用。需注意:当 MAD 变量维数较高时,卡方自由度等于变量数,尾概率在极端值处下溢为 0,导致权重全零。工程上应对概率设下限(如 1e−12),并对权重做归一化。
本文评述:IR-MAD 的迭代加权本质上是一种稳健估计,其目标是降低变化像元对“无变化背景”统计量的污染。这一思想与稳健统计中的 M 估计同源。理解这一点有助于设定停止准则:当权重分布的熵趋于稳定,或相邻两轮典型相关系数变化小于阈值(如 1e−4)时停止,比固定轮数更合理。固定轮数在数据分布差异大时可能欠迭代或过迭代。
8. 分块聚类与全局合并:KMeans 与 GMM 的近似一致性
8.1 分块 KMeans 的两阶段策略
直接对全量像元做 KMeans 需要 O(N·K) 的距离矩阵(K 为类数),N 极大时不可行。可行策略是“块内聚类 + 中心合并”:每块独立跑 KMeans 得到 K 个中心,把所有块的中心汇总(块数 × K 个点)再做一次 KMeans,得到全局中心;最后一遍扫描把每个像元分配到最近全局中心。这一策略的近似误差取决于块内类结构与全局类结构的差异,块越小误差越大。
另一种策略是“小样本代表性聚类”:从全量中均匀抽样(如 10 万像元)跑 KMeans 得中心,再全量分配。抽样策略的误差可用多次抽样的中心稳定性评估。两种策略都可用纯原生函数实现。
8.2 GMM 的增量 EM
GMM 的 EM 算法中,E 步计算每个像元对每个成分的责任度,M 步更新均值、协方差与混合权重。增量版本把 E 步的充分统计量(责任度加权和、加权平方和)逐块累积,M 步用累积量更新参数。这与第 6 章的协方差累积同构,只是多了责任度权重。峰值内存为 O(K·P²) 加块大小,与 N 无关。
表 3 分块聚类方案的内存与近似来源对比。n 为块像元数,B 为块数,ns 为抽样数,K 为类数。
笔者认为,分块聚类的误差不应被简单归为“可接受”。变化检测中,类结构的偏差会直接影响变化/非变化的边界。一个实用的检验方法是:用两种不同块大小(如 512 与 2048)各跑一次,比较变化像元比例与空间格局的一致性;若差异超过 5%,说明块内类结构偏差已不可忽略,应改用抽样策略或增大块尺寸。这一检验成本低,却能有效暴露近似误差。
9. 阈值、精度与验证:非监督结果如何被检验
9.1 阈值选取的三类依据
非监督变化检测的阈值选取通常有三类依据:统计假设(如距离图服从卡方分布,取显著性水平 α 对应分位数)、经验分位数(取 95%–99% 分位)、双峰分离(对距离图直方图做双峰拟合,取谷底)。三类依据各有边界:统计假设依赖分布正确性,经验分位数依赖变化比例的先验,双峰分离依赖变化与未变化两类足够分离。
分块流程中,三类依据都可实现:统计假设只需自由度参数;经验分位数用流式直方图;双峰分离可在第一遍扫描后对直方图做拟合。关键在于把阈值计算与逐像元判定分离,前者全局一次,后者分块。
9.2 无标注条件下的精度评估
非监督结果缺乏真值,精度评估需借助间接手段:其一,与高分辨率影像或已有变化产品做交叉比对,计算一致性比例;其二,人工目视解译抽样(如分层随机抽取 300–500 个像元),计算用户精度与生产者精度;其三,敏感性分析,即改变阈值与块大小,观察结果稳定性。三者结合,可对结果可信度形成合理判断。
本文评述:非监督变化检测的“精度”一词常被误用。严格说,非监督方法输出的是变化强度图与二值掩膜,其“精度”只有在给定阈值与参考数据后才可定义。因此工程报告应同时给出阈值、参考数据来源与抽样方案,否则精度数字缺乏可比性。这一规范在分块流程中同样适用,且块大小应作为报告的一部分,因为它影响结果。
10. 关键数据与案例:模拟数据与公开数据集的对照
10.1 模拟数据的内存—耗时对照
为量化三级框架的收益,构造一组模拟数据:3 万 × 3 万像元、6 波段、16 位,两期。模拟数据由随机场生成,包含 8% 的注入变化区域(矩形与斑块),用于验证流程可运行性与内存峰值。测试在 32 GB 内存、NVMe 存储的工作站上进行,MATLAB 版本 R2023b。以下数据为模拟环境下的量级观测,非严格基准测试。
表 4 模拟数据下的内存—耗时对照(模拟数据,非实测基准;耗时受存储与 CPU 影响,仅供量级参考)。
需要强调,表 4 的耗时数字高度依赖存储带宽。在机械硬盘上,两遍扫描的 I/O 成本可能翻倍;而在 NVMe 上,计算成为主导。因此工程部署时应先做一次小规模 I/O 基准测试,再决定块大小与扫描遍数。
10.2 公开数据集的预处理细节
若要在公开数据集上复现,需注意预处理的一致性。以 Landsat 8/9 Collection 2 Level-2 产品为例,其表面反射率已做大气校正,但仍需:(1)按 QA 波段剔除云与云影;(2)两期影像做相对辐射归一化(如基于伪不变特征的线性回归);(3)重采样到同一网格与分辨率;(4)转为 BSQ 裸二进制并记录元数据。Sentinel-2 L2A 产品还需注意 10 m/20 m/60 m 波段的分离与重采样策略,不同重采样方法会引入不同的空间相关性,影响变化检测的边界精度。
笔者认为,公开数据集的价值不仅在于可比性,更在于其预处理链条的透明性。许多论文报告的变化检测精度差异,实际来自预处理差异而非算法差异。因此在复现时,应把预处理步骤作为方法的一部分完整记录,尤其是辐射归一化的具体实现。这一点在非监督方法中尤为关键,因为非监督方法对辐射差异的敏感性高于监督方法。
11. 对比与局限:纯原生栈 vs 工具箱 vs 外部引擎
11.1 三条实现路径的定位
纯原生栈的优势是零依赖、可审计、易嵌入现有 MATLAB 工程;劣势是需自行处理 I/O、分块、增量统计等底层细节,开发成本较高。第三方工具箱(如遥感专用工具箱)封装了读写与常用算法,开发快,但内存行为不透明,遇到大数据集时可能仍受限于其内部实现。外部引擎(如 Python + GDAL + Dask)在大数据生态上更成熟,但引入跨语言调用与部署复杂度。
三者的选择不应是意识形态之争,而应基于团队技能栈、部署环境与可维护性。若团队以 MATLAB 为主、数据规模在单机可承受范围、且需要算法透明可审计,纯原生栈是合理选择。
11.2 局限的诚实清单
纯原生栈路线的局限包括:(1)GeoTIFF 等格式的原生支持有限,需外部预处理;(2)并行化能力弱于专用大数据框架,多核利用需手动设计 parfor 与块划分;(3)增量统计的数值稳定性需额外关注;(4)分块聚类的近似误差需通过实验评估,缺乏理论保证。这些局限不否定路线可行性,但要求在工程中显式管理。
本文评述:技术选型中最常见的错误是把“工具能力”等同于“问题解决”。纯原生栈能解决内存问题,但不解决辐射归一化、几何配准、云掩膜等前置问题;反过来,工具箱能简化读写,但不自动带来内存效率。因此讨论应回到问题分解:哪些子问题由工具解决,哪些必须由方法解决。本文的主线正是把“内存”这一子问题显式化、可计算化。
12. 结论与展望:从内存治理到可解释近似
回到最初的问题:MATLAB 有没有不依赖第三方工具箱、专门为大数据集降低内存需求的非监督变化检测流程?答案是肯定的,但需要把“流程”理解为一条显式管理近似的工程流水线,而非一个现成函数。其核心是三级框架:分块降低峰值内存,流式处理全局统计量,增量处理迭代算法。三者组合可覆盖 CVA、PCA/MAD、IR-MAD、KMeans、GMM 等主流非监督方法。
展望三个方向:其一,近似误差的可解释化,即把块大小、抽样率、迭代轮数与结果不确定性的关系量化,形成工程指南;其二,与新型传感器的适配,如高光谱与 SAR 数据的多时相处理,其内存压力更大,分块策略需针对波段维度重新设计;其三,与轻量深度模型的结合,用小型网络替代部分统计步骤,但保持非监督特性与内存可控。
最后需要强调,内存治理不是目的,而是让方法在真实数据规模上可运行、可验证的手段。任何分块与增量策略都应接受精度检验,任何精度数字都应附带其计算条件。这一原则比任何具体实现都更持久。
13. 参考文献与拓展资源
13.1 主要参考文献(8 篇)
- Bruzzone L, Prieto D F. Automatic analysis of the difference image for unsupervised change detection. IEEE Transactions on Geoscience and Remote Sensing, 2000, 38(3): 1171–1182.
- Nielsen A A, Conradsen K, Simpson J J. Multivariate alteration detection (MAD) and MAF postprocessing in multispectral, bitemporal image data: New approaches to change detection studies. Remote Sensing of Environment, 1998, 64(1): 1–19.
- Canty M J. Image analysis, classification and change detection in remote sensing: with algorithms for ENVI/IDL and Python. 4th ed. CRC Press, 2019.
- Zhu Z, Woodcock C E. Continuous change detection and classification of land cover using all available Landsat data. Remote Sensing of Environment, 2014, 144: 152–171.
- Welford B P. Note on a method for calculating corrected sums of squares and products. Technometrics, 1962, 4(3): 419–420.
- Gómez C, White J C, Wulder M A. Optical remotely sensed time series data for land cover classification: A review. ISPRS Journal of Photogrammetry and Remote Sensing, 2016, 116: 55–72.
- Chen G, Hay G J, Carvalho L M T, et al. Object-based change detection. International Journal of Remote Sensing, 2012, 33(14): 4434–4457.
- Lv Z, Liu T, Benediktsson J A, et al. A review of change detection for remote sensing imagery. IEEE Geoscience and Remote Sensing Magazine, 2023, 11(2): 60–85.
13.2 拓展资源(教程与视频,点击在新窗口打开)
- MATLAB 官方文档:大文件与内存管理——matfile、memmapfile、tall 的官方说明。
- MATLAB 官方文档:块处理(blockproc)——分块处理的基本范式。
- GDAL gdal_translate 文档——GeoTIFF 转 BSQ 裸二进制的标准工具。
- 🔒 复制本站文章内容需登录并达到 L3。当前:未登录
微信扫一扫分享
打开微信「扫一扫」,扫描二维码后在微信中分享给好友或朋友圈。
💬 评论 (0)
评论功能已关闭

