Stable-Diffusion-for-Remote-Sensing-Image-Generation
基于Stable Diffusion微调的遥感卫星图像文本生成工具,用自然语言描述即可生成逼真的卫星
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于Stable Diffusion微调的遥感卫星图像文本生成工具,用自然语言描述即可生成逼真的卫星
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在遥感图像领域,研究人员长期面临一个困境:获取大规模、高质量的标注数据成本极高——卫星影像需要专业人士标注,且许多地理场景(如特定自然灾害、特定土地利用类型)的样本极为稀缺。传统的数据增强方法(如旋转、翻转)对遥感图像的效果有限,无法真正生成具有地理真实感的新场景。
由中国科学院空天信息创新研究院(AIR CAS)的研究人员 Zhiqiang Yuan 主导开发的 Stable Diffusion for Remote Sensing Image Generation 项目,正是为了解决这一痛点。该项目基于 Stability AI 开源的 Stable Diffusion 架构,使用遥感图像-文本配对数据集 RSITMD 进行微调,让 AI 能够根据文本描述"想象"出真实的卫星遥感场景——无论是"海上行驶的船只"还是"机场停放的车辆",均可一键生成。

图1:遥感卫星图像文本生成效果展示(MAIN.gif)
遥感图像自动解译是卫星应用的核心技术,从土地利用分类到目标检测,从城市规划到环境监测,几乎所有遥感应用都依赖大量标注数据。然而,遥感数据的获取和标注存在几个根本性困难:
样本稀缺且分布不均:某些地物类型(如特定植被、特殊建筑)在特定地区极为罕见,模型难以学到有效特征。标注成本高昂:遥感图像标注需要专业地理知识,一张精细标注的图像成本可达数百元。地理覆盖不完整:现有公开遥感数据集(如 UCMerced、RSSCN7)覆盖的场景类型有限,难以满足实际应用需求。
本项目的解决思路是:既然自然图像领域的文本生成技术已相当成熟(Stable Diffusion、DALL-E 等),是否可以将其迁移到遥感领域?作者使用 RSITMD 数据集(一个包含遥感图像-文本配对的大规模数据集)对 Stable Diffusion 进行微调,让模型学会"遥感图像的语言"——理解"船只""机场""森林"等概念在卫星视角下的视觉表现。
值得注意的是,同作者的相关工作 Controllable Fake Sample Generation for RS 已发表在 IEEE TGRS 2023(遥感领域顶级期刊),说明该项目的研究基础扎实,并非简单的 demo 级别代码。
本项目提供了完整的遥感图像生成工具链,涵盖从采样到训练的全流程。
用户通过自然语言描述即可生成对应遥感图像,支持高度定制化的场景控制:
python scripts/txt2img.py \
--prompt 'Some boats drived in the sea' \
--outdir 'outputs/RS' \
--H 512 --W 512 \
--n_samples 4 \
--config 'configs/stable-diffusion/RSITMD.yaml' \
--ckpt './last-pruned.ckpt'
支持的采样器包括 DDIM(高效采样)和 PLMS(更稳定的梯度估计),用户可调整步数、引导系数等超参数控制生成质量与速度的权衡。生成结果以网格形式保存,便于快速浏览对比不同 prompt 的效果。

图2:Prompt="Some boats drived in the sea" 生成效果
除了纯文本生成,项目还支持图生图模式:用户提供一张初始图像,模型在保持整体结构的同时根据文本描述进行风格或内容变换。这对于数据增强场景尤为有用——可以将已有的遥感图像"翻译"为新的变体,增加训练数据多样性。

图3:Prompt="A lot of cars parked in the airport" 生成效果
项目内置了 Gradio 界面,用户无需写代码即可交互式体验图像生成和变体生成功能。Gradio 界面支持实时参数调节(采样步数、引导系数、图像分辨率等),降低了使用门槛。
除了基础生成功能,项目还提供了超级分辨率(Super Resolution)Gradio 脚本和基于 CLIP 的图像区域混合(Image Mixer)功能,可进一步对生成结果进行精细化控制。
项目基于 Latent Diffusion Model(LDM,潜在扩散模型) 架构,这是 Stable Diffusion 的核心技术。与传统扩散模型直接在像素空间操作不同,LDM 先将图像压缩到低维潜在空间(latent space),在潜在空间中进行扩散过程,最后通过解码器恢复像素空间图像。这种设计大幅降低了计算成本,使得高分辨率图像生成成为可能。
项目代码库结构如下:
main.py:训练入口,基于 PyTorch Lightning 框架实现分布式训练支持scripts/txt2img.py、scripts/img2img.py:采样脚本scripts/gradio_*.py:Web 界面脚本ldm/models/diffusion/:扩散模型核心(DDIM、PLMS 采样器)ldm/modules/attention.py:Transformer 注意力机制实现ldm/modules/encoders/:CLIP 文本编码器和图像编码器configs/:分模块配置文件(autoencoder、latent-diffusion、stable-diffusion)CLIP 文本编码器:项目使用 OpenAI CLIP 作为文本编码器,将自然语言 prompt 映射到与图像共享的向量空间。CLIP 的预训练包含 4 亿图文对,具备强大的零样本泛化能力,微调后能准确理解遥感领域专业描述。
U-Net + Cross-Attention:扩散模型的骨干网络为 U-Net,通过 Cross-Attention 层将文本条件注入生成过程。注意力机制使模型能够在不同空间位置有针对性地响应文本描述中的不同概念。
变分自编码器(VAE):项目使用 VAE 将 512×512 原始图像压缩至 64×64 潜在表示(压缩比 8×),大幅降低扩散过程的计算复杂度。
EMB 权重管理:项目实现了 EMA(指数移动平均)权重管理,通过对模型权重做滑动平均提升生成稳定性。
训练基于 PyTorch Lightning 框架,支持单机多卡和多节点分布式训练。关键配置:

图4:Prompt="A large number of vehicles are parked in the parking lot, next to the bare desert" 生成效果
本项目并非"开箱即用"类型,需要解决以下依赖问题:
CUDA 环境:requirements.txt 指定 torch==1.12.1 搭配 cu113(CUDA 11.3),需要确保本地 CUDA 版本匹配。pytorch-lightning==1.4.2 和 transformers==4.22.2 等依赖版本较老,与最新版本可能存在兼容性问题。
第三方仓库依赖:requirements.txt 中包含多个 -e git+... 依赖——taming-transformers(GAN 图像重建)、OpenAI CLIP(图文编码)、nomi(Stable Diffusion 改进版)。这些通过 pip install -e . 方式安装,需要保证网络能访问 GitHub 且 Git LFS 正常。
权重下载:预训练模型 last-pruned.ckpt 托管在 Google Drive,需要手动下载并放置到项目根目录。Google Drive 在国内访问可能受限。
项目没有提供 Dockerfile 或 docker-compose.yml,无法通过容器化方式快速部署。对于没有 CUDA 环境或环境配置不熟悉的用户,部署门槛较高。
项目集成了 Gradio==3.1.4 和 Streamlit>=0.73.1,版本均较为老旧(当前 Gradio 已到 5.x)。虽然 Gradio 脚本可以直接运行,但界面美观度和交互体验可能不如最新版。

图5:Prompt="There is a church in a dark green forest with two table tennis courts next to it" 生成效果
项目采用标准的分层架构:数据处理(ldm/data/)、模型定义(ldm/models/)、训练逻辑(main.py)、推理脚本(scripts/)各司其职。PyTorch Lightning 的引入使训练代码简洁优雅,配置通过 OmegaConf YAML 文件管理,扩展新模块只需添加配置文件而无需修改核心代码。
代码中硬编码了 seed=23,训练结果具有一定可复现性。但依赖版本较老(torch==1.12.1),在不同 CUDA/PyTorch 版本组合下可能产生数值差异。
README 提供了安装、采样和训练的基本说明,但对于依赖冲突、CUDA 兼容性等常见问题缺乏解决方案。缺乏 API 文档和架构图,对新贡献者不够友好。
项目中没有测试文件(tests/),无法自动验证各模块的正确性。对于需要二次开发或修改网络结构的用户,存在一定风险。
本项目最适合以下场景:遥感数据增强——生成稀缺地物类型的训练样本,提升模型泛化能力;标注成本削减——在数据标注前先用 AI 生成大量候选图像供人工筛选和修正;数据集可视化探索——通过文本搜索快速找到特定场景的遥感图像参考。
分辨率受限:当前仅支持 512×512 生成,更高分辨率(如 1024×1024)需要额外的超分辨率模块。文本理解深度有限:模型对复杂空间关系的文本描述(如"在A物体南侧50米处有B物体")理解能力较弱。真实性验证:生成的遥感图像虽视觉效果逼真,但地理几何特征的真实性(如道路连通性、建筑物比例)需要人工校验。
Stable Diffusion for Remote Sensing Image Generation 是一个具有明确研究价值和实用意义的项目。它将大语言模型时代最成功的图像生成技术之一引入遥感领域,通过对 Stable Diffusion 的微调,使模型学会了卫星视角下各类地物的视觉表征。代码库结构清晰、功能完整(覆盖采样/训练/Web UI),但部署门槛较高、文档和测试覆盖不足,适合有一定深度学习经验的研究人员或开发者使用。
对于希望将 AI 图像生成技术应用于遥感数据的团队,该项目提供了良好的起点——可以基于此进一步开发数据增强工具、构建专属遥感图文模型,或与现有的遥感解译模型集成构建端到端 pipeline。