认识 Prithvi:NASA × IBM 的遥感基础模型

HuggingFace 上最受欢迎的遥感 AI 模型。读完你会用 Prithvi 提取卫星图像特征,用于分类、分割、变化检测。


Prithvi 是什么?

Prithvi(梵语「地球」)是 NASA 和 IBM 联合训练的遥感基础模型(Foundation Model)。2023 年发布后迅速成为 HuggingFace 上最受欢迎的遥感模型——初代 100M 版本获 282 次点赞,2.0 300M 版本被下载 13,000+ 次。

核心思路:在海量卫星数据上预训练一个 Vision Transformer → 学到通用的「遥感视觉」→ 任何下游任务只需微调。


模型家族

模型参数下载量用途
Prithvi-EO-1.0-100M100M2,123 · ⭐282初代经典,社区最认可
Prithvi-EO-2.0-300M300M13,568 · ⭐40升级版,下载量最高
Prithvi-EO-2.0-600M600M2,707 · ⭐15大杯,精度最高
Prithvi-EO-2.0-300M-TL300M17,911Timm 格式,推荐用于微调
Prithvi-EO-2.0-300M-BurnScars300M2,962火灾烧伤检测
Prithvi-EO-2.0-tiny-TLTiny4,866轻量版,适合快速实验

TL 后缀 = Timm 库格式,社区推荐用于下游微调任务。


技术特点

训练方式

  • 数据:NASA HLS(Harmonized Landsat Sentinel-2),覆盖全球的多时相卫星图像
  • 方法:掩码自编码器(Masked Autoencoder, MAE)——随机遮挡图像中的 patch,训练模型从剩余部分重建被遮挡内容
  • 架构:Vision Transformer (ViT)

多光谱支持

Prithvi 不像普通 ViT 只能处理 RGB。它原生支持 HLS 的 6 个光谱波段

波段波长用途
Blue0.49 μm水体、大气
Green0.56 μm植被
Red0.66 μm植被健康
NIR0.83 μm植被核心指标
SWIR11.61 μm水分、矿物
SWIR22.20 μm地质、土壤

这比 RGB 多出整整一个数量级的信息——尤其是 NIR(近红外),是计算 NDVI 等植被指数的关键波段。

多时相

Prithvi 能处理不同时间拍摄的同一地点图像。这让它天然适合:

  • 变化检测(城市扩张、森林砍伐)
  • 灾害响应(火灾前后、洪水前后)
  • 作物物候分析(不同生长阶段)

快速上手

Prithvi 不是标准 HuggingFace 模型,不能用 AutoModel.from_pretrained() 直接加载。需下载快照后用自定义类加载。

import torch, sys

# 从 HF 下载模型快照: huggingface.co/ibm-nasa-geospatial/Prithvi-EO-2.0-300M
SNAP = "Prithvi-EO-2.0-300M"
sys.path.insert(0, SNAP)
from prithvi_mae import PrithviMAE

# 实测参数(img_size=448, patch_size=16, 不同于默认值)
model = PrithviMAE(
    img_size=448, patch_size=(1, 16, 16), num_frames=1, in_chans=6,
    embed_dim=1024, depth=24, num_heads=16,
    decoder_embed_dim=512, decoder_depth=8, decoder_num_heads=16,
    mlp_ratio=4., norm_pix_loss=False, mask_ratio=0.0
)

# 加载权重(需要丢弃不可插值的 pos_embed)
sd = torch.load(f"{SNAP}/Prithvi_EO_V2_300M.pt", map_location="cpu")
if "model_state" in sd: sd = sd["model_state"]
for k in list(sd.keys()):
    if "pos_embed" in k: del sd[k]
model.load_state_dict(sd, strict=False)

model = model.cuda().eval()
# 单图推理: ~31ms, 约32 fps (RTX 4060)

模型输出 (loss, pred, mask),mask_ratio=0 时不做掩码,pred 为 [B, N, C] 的重建图。


与 TorchGeo 互补使用

TorchGeo 负责数据加载,Prithvi 负责特征提取。由于 Prithvi 不是标准 HF 模型,需配合自定义加载流程——参考上方快速上手或 demo.py。

TorchGeo 提供标准化数据接口,Prithvi 提供预训练特征——配合使用效果最佳。


Prithvi 在技术栈中的位置

数据层 (TorchGeo)          → 加载 + 预处理
    ↓
特征层 (Prithvi)           → 通用遥感特征提取
    ↓
时空层 (DeepEarth)         → 加入时间/空间编码
    ↓
知识层 (EVE)               → RAG 检索相关文献
    ↓
写作层 (SciAssistant)      → 自动生成分析报告

参考


首次发布于 2026-05-24 · 掘金 / 知乎