ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

change_detection.pytorch:11种架构、100+预训练编码器的PyTorch遥感变化检测工具箱

change_detection.pytorch:11种架构、100+预训练编码器的PyTorch遥感变化检测工具箱 change_detection.pytorch11种架构、100预训练编码器的PyTorch遥感变化检测工具箱【免费下载链接】change_detection.pytorchDeep learning models for change detection of remote sensing images项目地址: https://gitcode.com/gh_mirrors/ch/change_detection.pytorch遥感监测里有一类反复出现的任务给定同一场景两个时相的影像找出哪些建筑是新建的、哪些道路拓宽了。人工逐幅对比太慢从零写模型又要自己处理孪生结构、特征融合和损失函数。change_detection.pytorch 把这套问题封装成了一个 PyTorch 库一行代码初始化模型编码器、解码器、损失函数均可替换。安装只需一行git clone https://gitcode.com/gh_mirrors/ch/change_detection.pytorch cd change_detection.pytorch pip install -r requirements.txt核心设计是双编码器单解码器架构两个编码器分别处理双时相影像t1、t2解码器融合两支特征后输出变化图全程可端到端训练。遥感影像变化检测模型双编码器单解码器架构项目的组织方式与 segmentation_models.pytorch 一脉相承初始化模型、加载数据集、训练循环的写法都与语义分割接近。PRCV2021遥感影像变化检测竞赛的季军方案即基于该库实现记录见仓库根目录的 COMPETITIONS.md 文件。用resnet34搭一个孪生Unet模型初始化只需要确定编码器与融合方式两件事import change_detection_pytorch as cdp from change_detection_pytorch.datasets import LEVIR_CD_Dataset model cdp.Unet(encoder_nameresnet34, encoder_weightsimagenet, in_channels3, classes2, siam_encoderTrue, fusion_formconcat) ds LEVIR_CD_Dataset(../LEVIR-CD/train, sub_dir_1A, sub_dir_2B, ann_dir../LEVIR-CD/train/label)siam_encoderTrue表示两支共享同一组权重真正意义的孪生结构fusion_form有 concat、sum、diff、abs_diff 四种取值控制解码器如何融合两支特征。数据按三个目录组织A/ 放第一期影像B/ 放第二期label/ 放变化掩膜项目内置 LEVIR-CD 与 SVCD 支持换成自己的数据时change_detection_pytorch/datasets/里的CustomDataset要求同样的 A/B/label 三级结构再指定图片后缀即可。完整的训练流程——优化器、学习率调度、F-score 验证、最优模型保存、推理可视化——可参考仓库根目录的local_test.py训练与验证由 utils 模块里的 TrainEpoch / ValidEpoch 类封装完成。LEVIR-CD建筑物变化检测流程怎么跑通LEVIR-CD 是建筑物变化检测最常用的基准637 对 1024×1024 的双时相影像时相差 5-14 年覆盖新建、拆除、改建三类场景。仓库根目录的示例脚本在该数据集上跑通了完整流程配置值得作为基线Unet resnet34孪生结构concat 融合Adam 优化器初始学习率 0.0001第 50 个 epoch 起按 0.1 衰减训练 60 个 epochbatch size 8验证指标为 F-score、Precision、Recall按 F-score 保存最优模型如果数据不是 LEVIR-CD 而是 SVCD 或自定义数据只需更换数据集加载部分SVCD_Dataset 与 CustomDataset 的参数接口一致。训练结束后用 infer_vis 方法直接输出变化掩膜可视化面对大范围场景影像时建议滑动窗口推理传入 slideTrue 并配合 ChunkImage 变换即可自动切块推断再拼接。组件矩阵解码器、编码器、损失函数怎么选库里所有可替换部件归为三个槽位解码器网络骨架、编码器特征提取器、损失函数优化目标。11 种解码器各自占据一个子目录unet/、linknet/、stanet/ 等编码器注册表位于change_detection_pytorch/encoders/9 种损失函数在 losses/ 目录。槽位代表选项选择建议解码器11种Unet、Linknet、UnetPlusPlus、MAnet、PAN、FPN、PSPNet、DeepLabV3/V3、UPerNet、STANet快速迭代选 Unet显存紧张选 Linknet注意力增强选 MAnet / PAN面向变化检测的时空注意力选 STANet编码器17族100变体resnet3421M、resnext50_32x4d22M、timm-regnetx_0022M、efficientnet-b763M、mobilenet_v22M、swin_transformer通用首选 imagenet 预训练的 resnet34显存紧张选 mobilenet_v2 / regnetx_002追求精度选 efficientnet-b7 / swin_transformer损失函数9种CrossEntropy、Dice、Jaccard、Focal、Tversky、Lovasz、BCL、Hybrid稳定收敛选 CrossEntropy变化区域样本不平衡选 Dice / Jaccard难例主导选 Focal边界毛糙选 BCL两个细节会影响结果。其一编码器名带 tu- 前缀时可以加载 timm 库中的任意模型预训练池不止上表列出的 100 个。其二若双时相影像存在明显光照或辐射差异abs_diff / diff 融合形式对变化量的响应通常比 concat 更直接。落地与排错速查上线前注意这几件事大图推理infer_visslideTrue配合 ChunkImage 变换做滑动窗口数据增强基于 albumentations库内提供 Mosaic、ExchangeTime 等面向变化检测的自定义变换学习率预热可搭配内置的 GradualWarmupScheduler参数量与模型尺寸对比表可用 misc 目录下的 generate_table.py 脚本批量生成显存紧张时先换轻量编码器mobilenet 系、regnetx_002再考虑混合精度与减小 batch size排错速查现象可能原因操作loss 不下降学习率过小或双时相影像预处理不一致尝试 1e-4~1e-3 区间学习率核对 A/B 影像是否同区域、尺寸一致显存不足中断batch 过大或编码器偏重减小 batch size换 mobilenet_v2 / regnetx_002启用混合精度推理速度慢整幅大图一次入网滑动窗口推理infer_visslideTrue ChunkImage过拟合训练/验证差距拉大增强强度不足追加 Mosaic / RandomChoice 等增强下一步看哪里想跑通完整流程从仓库根目录的 local_test.py 文件顺次阅读想替换自己的网络骨架参照 unet/ 子目录复制一个新目录并在包根目录init.py 的 archs 列表中注册想核对模型前向输出约定运行 tests 目录下的 test_models.py 测试【免费下载链接】change_detection.pytorchDeep learning models for change detection of remote sensing images项目地址: https://gitcode.com/gh_mirrors/ch/change_detection.pytorch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表