← 文章 / AI技术
HuggingFace博客 5小时前 · 2026-08-29 15:25:22 · 2 阅读

推出 OlmoEarth 嵌入向量:从 OlmoEarth Studio 导出自定义嵌入用于下游分析

📄 技术报告:https://allenai.org/papers/olmoearth | 📊 文档:https://docs.olmoearth.allenai.org/embeddings | 💻 详细了解 OlmoEarth:https://allenai.org/olmoearth

OlmoEarth embeddings concept illustration: a grid of numeric embedding values connected by lines to points on a globe

OlmoEarth Studio 是我们用于构建地球观测模型的平台。现在,用户可以通过它计算并导出嵌入向量——这是一种紧凑的数值表示,由开源 OlmoEarth 基础模型从地球观测数据中生成。相关源代码模型权重研究论文均已公开,社区可以准确了解这些嵌入向量的生成方式。

嵌入向量是使用 OlmoEarth 的快速、经济的切入点,可支持从相似性搜索、图像分割到无监督探索等多种下游任务。地表特征相似的位置,其向量也会彼此接近;差异越大的位置,向量距离则越远。OlmoEarth 嵌入向量已在我们的基准测试和独立评估中展现出优异性能。导出的 Cloud-Optimized GeoTIFF(COG)文件体积小、易于共享。你可以通过 Studio 界面或 API 选择感兴趣区域、时间范围、编码器变体、分辨率和影像来源,然后获取一个可自由使用的 COG 文件。如果应用对性能有更高要求,Studio 还支持有监督微调(SFT)

OlmoEarth Studio 现已支持为用户计算自定义嵌入向量。如果你有兴趣获得使用权限,欢迎联系我们。如需使用公开的 OlmoEarth 模型计算自己的嵌入向量,请参阅使用说明

在 Studio 中计算嵌入向量

World map of OlmoEarth embeddings with each land pixel colored by its k-means cluster, revealing coherent biome and land-cover structure across continents

基于覆盖 110 万个样本的季节性 Sentinel-2 影像生成的 OlmoEarth 嵌入向量,展示了全球空间结构。颜色表示在经过 PCA 降维的嵌入空间中划分出的 15 个 k-means 聚类。

计算嵌入向量的流程与 Studio 中的其他预测任务相同:先配置并运行模型,再下载结果。你还可以通过以下参数定制输出:

  • 感兴趣区域:绘制或上传任意多边形,Studio 会自动获取影像并完成切片。
  • 时间范围:1 到 12 个月。
  • 编码器版本:Nano(128 维、140 万参数)、Tiny(192 维、620 万参数)或 Base(768 维、8900 万参数)。
  • 空间分辨率:每像素 10 米、20 米、40 米或 80 米。
  • 影像来源:Sentinel-2 L2A、Sentinel-1 RTC,或两者同时使用。

Four false-color renderings of the same embedding raster side by side, each mapping the embedding bands to color differently

同一嵌入栅格的不同可视化方式。

Studio 会生成一个 COG,每个嵌入维度对应一个波段。向量以有符号 8 位整数(int8)存储,取值范围为 -127 到 +127,-128 保留作 nodata。要还原为浮点向量,请参阅 olmoearth_pretrain 中的 dequantize_embeddings

所有数据都是按需计算,而不是从预先计算好的全局存档中提取,因此生成的嵌入能准确反映你关心的条件。你还可以按月生成嵌入,以捕捉季节变化,而不只是获取年度快照。

OlmoEarth 嵌入可以做什么

下面的示例均使用 OlmoEarth-v1-Tiny(192 维)嵌入,分辨率为 40 米,输入数据为 Sentinel-2 L2A 合成影像(大多数示例使用年度合成影像,变化检测则使用月度合成影像)。Tiny 是一款轻量级编码器,但性能依然出色;在实际应用中,也可以换用更大的模型,不过需要承担更高的计算和存储成本。

相似度搜索:寻找“与此相似”的区域

选定一个查询像元,提取其嵌入向量,再与其他所有像元计算余弦相似度。最终得到一张热力图,展示哪些区域与查询像元最相似,以及哪些区域差异最大。

Sentinel-2 imagery of farmland around Merced, California with the query pixel boxed in blue, beside the matching cosine-similarity heatmap in which the urban core and road corridors glow yellow against dark cropland

这个查询点位于加利福尼亚州默塞德市中心附近。城市建成区和道路走廊呈现出连贯的高亮,而农田地块则保持暗色。无需任何标注,模型就能区分建成区与农田。

如果将查询范围切换为一小块农田,我们会先计算该范围内所有嵌入向量的均值,将其作为查询向量;然后提取相似度最高和最低位置的 Sentinel-2 影像,观察模型认定哪些区域相似、哪些区域不同。

Embedding cosine similarity, query versus highest and lowest: an overview tile and the blue query patch above three high-similarity agricultural patches at 0.91, 0.89, and 0.89, and three low-similarity patches at -0.05 (airport), 0.03 (reservoir), and 0.08 (arid rangeland)

相似度最高的区域块(0.89 及以上)都是带有灌溉田地的农业地块。相似度最低的区域块(接近 0)分别是周围有裸地的机场、地表干燥的水库,以及干旱牧场。无需训练数据,也无需标签,只需在嵌入空间中计算点积。

小样本分割:为地表覆盖类型打标签

相似度搜索可以回答“哪里和这里相似?”,但有时你需要为整个区域生成离散标签。由于这些表征本身已经包含丰富信息,只需少量标注像素,通过简单的线性分类器,就能生成覆盖整幅区域的土地覆盖图。

为验证这一点,我们在越南金瓯省的一片沿海红树林区域中,仅标注了60 个像素(每类 20 个)。我们以 ESA WorldCover 2021 作为标签来源,设置红树林、水体和其他三类,随机抽取每类 20 个像素,使用按特征标准化的 logistic regression 进行训练,然后预测该区域中的每个像素。

Few-shot classification from 60 labeled pixels over Ca Mau, Vietnam: Sentinel-2 RGB, the ESA WorldCover reference map, and the predicted mangrove/water/other map at F1 0.84

仅凭 60 个标注像素,分类器就生成了一张连贯的地图,加权 F1 = 0.84。整片区域中的红树林、潮汐水道和开阔水面都得到了清晰 delineation。分类器很快就达到饱和:标签数从 30 增加到 300,准确率几乎没有变化,因为主要工作其实是由嵌入完成的。

整个分析的核心只需几行 Python 代码:

import rasterio
import numpy as np
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

# 加载从 Studio 导出的 192 维嵌入 COG
with rasterio.open("embeddings.tif") as ds:
    emb = ds.read().astype(np.float32)  # (192, H, W)

C, H, W = emb.shape
X = emb.reshape(C, -1).T  # (H*W, 192)

# 使用带标签的像素训练,并对所有像素进行预测
clf = make_pipeline(StandardScaler(), LogisticRegression(max_iter=2000))
clf.fit(X[train_idx], labels[train_idx])
prediction = clf.predict(X).reshape(H, W)

这是一种 线性探针(linear probe),也是评估基础模型的标准方法。只用少量标签,通过 192 维特征上的逻辑回归就能恢复土地覆盖边界,说明 Tiny 编码器在预训练过程中已经学会了组织这些生态差异。更大的 Base 版本拥有 768 维特征,能够编码更丰富的表示。

如果你有真实标注面、野外调查点,或一张较粗略的现有地图,就可以训练类似的分类器,为自己的目标区域生成完整覆盖地图。

变化检测:发现发生变化的区域

由于 Studio 支持按任意时间粒度生成嵌入(从月度到年度均可),你可以直接比较两个时间段,找出地表状况发生变化的位置。下面的示例计算了同一区域在 2023 年 9 月和 2024 年 9 月的月度 Sentinel-2 嵌入,并测量每个像素的余弦距离。加利福尼亚州比尤特县的 Park Fire(2024 年 7 月至 9 月)留下的火烧痕迹很快就显现出来。

Wildfire change detection from OlmoEarth embeddings: Sentinel-2 imagery of Butte County, California in September 2023 and September 2024, beside a cosine-distance map where the Park Fire burn scar glows orange and yellow

整个过程不需要标签或训练——只需两个嵌入 COG 和几行 Python 代码。

无监督探索:观察模型所看到的世界

有时你既没有查询位置,也没有参考标签,只是想了解嵌入向量中包含了哪些结构。主成分分析(PCA)正适合完成这项工作:将数据降至三维,映射到 R/G/B 三个通道,再生成伪彩色图像。相似的嵌入会自动呈现相近的颜色。

OlmoEarth embedding structure over Flevoland, the Netherlands: Sentinel-2 RGB beside a PCA false-color image mapping PC1, PC2, and PC3 to red, green, and blue, which reproduces the polder parcel grid

荷兰的弗莱福兰是通过围海造地形成的圩田景观,农业地块排列成规则网格。PCA 伪彩色图像高度还原了这些地块边界。不同作物类型、水体和城市区域分别呈现出不同色调。模型从未被告知什么是地块或作物,却已经从嵌入向量中学习到了景观结构。

这种无监督视图可以帮助你快速了解模型从感兴趣区域中提取了哪些结构。

从导出到洞察

相似性搜索、小样本分割、变化检测和 PCA 探索,都是针对标准栅格数据的简单操作,几秒钟即可完成。真正的力量来自嵌入向量:这些学习得到的表征将地球观测数据压缩为向量,并利用多种传感器和数百万个训练样本,捕捉每个位置的丰富信息。

现在已经支持导出自定义嵌入。创建项目、配置嵌入模型,然后计算嵌入即可。导出的 GeoTIFF 可与 QGIS、GDAL、rasterio 等各类地理空间工具配合使用,也可以接入你自己的脚本。本文示例的完整复现代码,请参阅嵌入教程。教程包含相似性搜索少样本分割变化检测PCA 可视化的可运行代码。无需在本地配置环境,直接试用Colab notebook即可。

进一步探索:微调

本文中的示例都使用冻结嵌入,不进行针对具体任务的训练。嵌入是使用 OlmoEarth 的理想起点:生成结果快速、成本低,在资源受限的环境中也能良好运行,并且便于共享。对于追求更高性能的应用,OlmoEarth Studio 还支持SFT:使用你自己的标注训练任务专用的模型头,通常比基于冻结特征的线性探针表现更好。

局限性

我们一直在改进预训练方法,但你仍应使用上文介绍的一些技术,检查嵌入是否适合自己的应用场景。模型表现也取决于输入影像的质量——持续的云层覆盖、大气伪影,或合成时间段内缺少观测数据,都可能影响最终生成的向量。

欧洲航天局(ESA)的 Sentinel-2 L2A 影像,来自 Microsoft Planetary Computer。红树林参考数据采用 ESA WorldCover 2021 v200。全球聚类可视化使用 OlmoEarth-v1-Base(768 维)生成,输入为 patch size 为 8 的季节性 Sentinel-2 合成影像,并基于 110 万个预训练样本提取实例级嵌入向量。

本文提及的数据集 1

原始来源: HuggingFace博客

评论 (0)