360 Secure SkillHub
360 安全技能中心

geoskill-generative-adversarial-rs

基于 U-Net 生成器和 PatchGAN 判别器的遥感影像处理工具,支持本地单波段 GeoTIFF 或合成数据,执行云去除与影像增强,输出重建 GeoTIFF、云掩膜及指标和运行清单 JSON。

ruiduobao
ruiduobao
热度 13.58
最近更新 2026-08-04 20:11:37
分类:数据依赖:代码执行 / 读写文件应用场景:图像生成 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add geoskill-generative-adversarial-rs
Metadata
name
geoskill-generative-adversarial-rs
description
GAN (U-Net + PatchGAN) 云去除 / 影像增强,torch+CUDA GPU 训练与推理

生成对抗遥感应用 | Generative Adversarial Remote Sensing

Repairs and enhances imagery with a "generative" approach: in cloud removal mode, a cloud mask is detected and the contaminated pixels are reconstructed with a U-Net Generator; in enhancement mode, the same generator acts as a denoising autoencoder to improve contrast/quality.

This skill is a true deep-learning implementation of GAN-based cloud inpainting / image enhancement (pix2pix style, Isola et al. 2017):

  • Generator: U-Net encoder-decoder with 3 levels of downsampling + corresponding upsampling + skip connections;
  • Discriminator: PatchGAN (a small CNN with a 70×70 receptive field) judging real/fake at the pixel-patch level;
  • Loss: BCE (adversarial) + L1 (reconstruction, weight 100); BCEWithLogitsLoss for numerical stability;
  • Training and inference both run on CUDA GPUs (torch >= 2.x, cuDNN 9.x).

Pretrained weights gan_cloudremoval_weights.pt ship with the skill (synthetic cloud-removal pairs, 1.5 MB, Generator 329K + Discriminator 42K parameters); if the weights are missing, they are automatically trained on the GPU and saved at first run. The original numpy operators (detect_cloud_mask / inpaint_masked / histogram_match / contrast_stretch / remove_clouds) are kept as a baseline reference and unit-test entry points.

Dependencies / 依赖

pip install numpy rasterio scipy torch

Usage / 使用方法

Example 1 (synthetic data, offline)

python geoskill-generative-adversarial-rs.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out

Example 2: synthetic cloud removal (with PSNR comparison)

python geoskill-generative-adversarial-rs.py --bbox 116.0 39.0 117.0 40.0 --synthetic --mode cloud-removal --output-dir ./out

Example 3: cloud removal on real imagery

python geoskill-generative-adversarial-rs.py --input cloudy.tif --percentile 88 --output-dir ./out

Example 4: image enhancement

python geoskill-generative-adversarial-rs.py --input dim.tif --mode enhance --plow 2 --phigh 98 --output-dir ./out

Output / 输出

File Format Description
cloud_removed.tif / enhanced.tif GeoTIFF Reconstructed or enhanced image (depending on mode)
cloud_mask.tif GeoTIFF Cloud mask (cloud-removal mode)
metrics.json JSON Metrics: cloud fraction, PSNR before/after, std before/after, backend/device/weights, etc.
output-manifest.json JSON Run manifest (inputs/outputs/QA/exit code)

Data Source / 数据源 / Source

Local single-band GeoTIFF, or --synthetic (ground-truth scene + Gaussian cloud patches, with ground truth retained for evaluation).

Limitations / 局限

  • The model weights are trained only on synthetic spectral pairs (gradient + 4 land-cover classes + Gaussian cloud patches) and have not been field-accuracy calibrated on real satellite imagery; intended for screening-level rather than quantitative use.
  • Bboxes crossing the 180° meridian are not supported (explicit error: split across the two sides).
  • NoData imagery is automatically converted to NaN before the GAN, but scenarios with extremely small/narrow valid pixels are not fully tested.

Privacy / 隐私声明 / Privacy

  • Runs offline by default; --synthetic mode requires no network at all.
  • All processing is performed locally; no user data is uploaded.

License / License

MIT



name: geoskill-generative-adversarial-rs description: 'GAN (U-Net + PatchGAN) 云去除 / 影像增强,torch+CUDA GPU 训练与推理'

生成对抗遥感应用 | Generative Adversarial Remote Sensing

用"生成式"思想修复与增强影像:云去除模式检测云掩膜并用 U-Net Generator 重建被污染像元;增强模式用同一个 Generator 作 denoising autoencoder 做对比度/质量提升。

本 skill 是 GAN 云修复/影像增强(pix2pix 风格,Isola et al. 2017) 的真 DL 实现:

  • Generator:U-Net 编码器-解码器,3 级下采样 + 对应上采样 + skip connection;
  • Discriminator:PatchGAN(70×70 receptive field 的小型 CNN),像元块级真/伪判别;
  • 损失:BCE(对抗)+ L1(重建,权重 100);BCEWithLogitsLoss 数值稳定;
  • 训练/推理均在 CUDA GPU(torch >= 2.x,cuDNN 9.x)。

随 skill 附带预训练权重 gan_cloudremoval_weights.pt(合成云去除对,1.5MB,Generator 329K + Discriminator 42K 参数);若权重缺失则在首次运行时自动用 GPU 训练并落盘。原始 numpy 算子(detect_cloud_mask / inpaint_masked / histogram_match / contrast_stretch / remove_clouds)保留为对照基线与单元测试入口。

依赖

pip install numpy rasterio scipy torch

使用方法

示例 1(合成数据,离线)

python geoskill-generative-adversarial-rs.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out

示例 2:合成云去除(含 PSNR 对比)

python geoskill-generative-adversarial-rs.py --bbox 116.0 39.0 117.0 40.0 --synthetic --mode cloud-removal --output-dir ./out

示例 3:真实影像云去除

python geoskill-generative-adversarial-rs.py --input cloudy.tif --percentile 88 --output-dir ./out

示例 4:影像增强

python geoskill-generative-adversarial-rs.py --input dim.tif --mode enhance --plow 2 --phigh 98 --output-dir ./out

输出

文件 格式 说明
cloud_removed.tif / enhanced.tif GeoTIFF 重建或增强后的影像(按模式)
cloud_mask.tif GeoTIFF 云掩膜(云去除模式)
metrics.json JSON 云占比、PSNR 前后、std 前后、backend/device/weights 等指标
output-manifest.json JSON 运行清单(输入/输出/QA/退出码)

数据源 / Source

本地单波段 GeoTIFF,或 --synthetic(真值场景 + 高斯云斑块,真值留存评估)。

局限

  • 模型权重仅在合成光谱对(渐变 + 4 类地物 + 高斯云斑块)上训练,真实卫星影像上未做外场精度标定;用于筛查级而非定量化。
  • 跨 180° 经线 bbox 不支持(明确报错:拆分到两侧)。
  • NoData 影像自动 NaN 化后再走 GAN,但极小/极窄有效像元场景未充分测试。

隐私声明 / Privacy

  • 默认离线运行,--synthetic 模式完全无网络。
  • 所有处理在本地完成,不上传任何用户数据。

License

MIT