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

Hugging Face Blog 产品

摘要

OlmoEarth Studio 现支持从 OlmoEarth 基础模型计算并导出自定义嵌入向量,支持相似性搜索、分割和变化检测等下游任务。这些嵌入向量可通过 Studio 界面或 API 以云优化 GeoTIFF 格式获取。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/12 20:20

OlmoEarth 嵌入介绍:从 OlmoEarth Studio 导出自定义嵌入以进行下游分析

来源:https://huggingface.co/blog/allenai/olmoearth-embeddings 返回文章列表 (https://huggingface.co/blog)

Kyle Wiggers 的头像 (https://huggingface.co/Ai2Comms)

  • 在 Studio 中计算嵌入 (https://huggingface.co/blog/allenai/olmoearth-embeddings#computing-embeddings-in-studio)
  • 你可以用 OlmoEarth 嵌入做什么 (https://huggingface.co/blog/allenai/olmoearth-embeddings#what-you-can-do-with-olmoearth-embeddings)
    • 相似性搜索:查找“更像这样” (https://huggingface.co/blog/allenai/olmoearth-embeddings#similarity-search-finding-more-like-this)
    • 少样本分割:标注地貌 (https://huggingface.co/blog/allenai/olmoearth-embeddings#few-shot-segmentation-labeling-the-landscape)
    • 变化检测:发现变化 (https://huggingface.co/blog/allenai/olmoearth-embeddings#change-detection-spotting-what-shifted)
    • 无监督探索:查看模型所见的 (https://huggingface.co/blog/allenai/olmoearth-embeddings#unsupervised-exploration-seeing-what-the-model-sees)
    • 从导出到洞察 (https://huggingface.co/blog/allenai/olmoearth-embeddings#from-export-to-insight)
  • 更进一步:微调 (https://huggingface.co/blog/allenai/olmoearth-embeddings#going-further-fine-tuning)
  • 局限 (https://huggingface.co/blog/allenai/olmoearth-embeddings#limitations)

📄 技术报告:https://allenai.org/papers/olmoearth | 📊 文档:https://docs.olmoearth.allenai.org/embeddings | 💻 了解 OlmoEarth 的更多信息:https://allenai.org/olmoearth

OlmoEarth 嵌入概念示意图:连接全球各点的数值嵌入网格

OlmoEarth Studio (https://olmoearth.allenai.org/) 是我们用于构建地球观测模型的平台,现在支持计算和导出嵌入向量——由我们开源的基础模型 OlmoEarth 生成的地球观测数据的紧凑数值表示。源代码 (https://github.com/allenai/olmoearth_pretrain) 和模型权重 (https://huggingface.co/collections/allenai/olmoearth) 与研究论文 (https://allenai.org/papers/olmoearth) 一起公开提供,因此社区可以确切地检查这些嵌入是如何生成的。

嵌入是利用 OlmoEarth 的快速且经济高效的切入点:它们支持从相似性搜索到分割再到无监督探索的各种下游任务。地表特征相似的区域最终会得到相似的向量;不同的区域则相距甚远。OlmoEarth 嵌入在我们自己的基准测试和独立评估 (https://arxiv.org/abs/2603.02080) 中都表现出色。导出的云优化 GeoTIFF(COG)轻量且易于共享。通过 Studio UI 或 API 选择感兴趣区域、时间范围、编码器变体、分辨率和影像源,即可获得一个可随意使用的 COG。如果你的应用需要更高性能,Studio 还支持监督微调(SFT) (https://docs.olmoearth.allenai.org/model-fine-tuning)。

现在,OlmoEarth Studio 用户可以使用自定义计算的嵌入。如果你有兴趣获得访问权限,请联系我们 (https://allenai.org/olmoearth)。关于使用公开的 OlmoEarth 模型自行计算嵌入的说明可在此处获取 (https://github.com/allenai/rslearn/blob/master/docs/examples/OlmoEarthEmbeddings.md)。

https://huggingface.co/blog/allenai/olmoearth-embeddings#computing-embeddings-in-studio在 Studio 中计算嵌入

OlmoEarth 嵌入的世界地图,每个陆地像素按其 k-means 聚类着色,显示出跨大洲一致的生物群系和土地覆盖结构

来自 110 万个样本的季节性 Sentinel-2 影像中 OlmoEarth 嵌入的全局结构。颜色表示 PCA 降维嵌入空间中的 15 个 k-means 聚类。

计算嵌入的流程与 Studio 中的任何其他预测相同。首先配置模型并运行,然后下载结果。以下几个参数可定制输出:

  • 感兴趣区域: 绘制或上传任意多边形;Studio 会自动获取影像并进行分块。
  • 时间范围: 1-12 个自然月周期。
  • 编码器变体: Nano(128 维,1.4M 参数)、Tiny(192 维,6.2M 参数)或 Base(768 维,89M 参数)。
  • 空间分辨率: 每像素 10 米、20 米、40 米或 80 米。
  • 影像源: Sentinel-2 L2A、Sentinel-1 RTC 或两者。

同一嵌入栅格的四种假彩色渲染并排显示,每种渲染将嵌入波段映射为不同的颜色

应用于同一嵌入栅格的不同可视化选项。

Studio 提供一个 COG,每个嵌入维度对应一个波段。向量以有符号 8 位整数(int8)存储。值范围为 -127 到 +127,其中 -128 保留用于无数据。要恢复浮点向量,请使用 olmoearth_pretrain 中的 quantize_embeddings (https://github.com/allenai/olmoearth_pretrain/blob/main/olmoearth_pretrain/evals/embedding_transforms.py)。

由于所有内容都是按需计算,而不是从预先计算的全球存档中提取,你的嵌入将精确反映你所关心的条件。你可以生成月度嵌入以捕获季节动态,而不仅仅是年度快照。

https://huggingface.co/blog/allenai/olmoearth-embeddings#what-you-can-do-with-olmoearth-embeddings你可以用 OlmoEarth 嵌入做什么

以下示例均使用 OlmoEarth-v1-Tiny(192 维)嵌入,分辨率为 40 米,使用 Sentinel-2 L2A 合成影像(大多数示例为年度合成,变化检测为月度合成)。Tiny 是一种轻量级编码器,但性能仍然很高;对于你自己的应用,你可以将其替换为更大的变体,代价是更高的计算和存储量。

https://huggingface.co/blog/allenai/olmoearth-embeddings#similarity-search-finding-more-like-this相似性搜索:查找“更像这样”

选择一个查询像素,提取其嵌入,并计算与每个其他像素的余弦相似度。结果是一个热力图,显示景观与你的查询像素最相似和最不相似的位置。

加利福尼亚州默塞德附近农田的 Sentinel-2 影像,查询像素用蓝色框标记,旁边是匹配的余弦相似度热力图,其中城市核心和道路走廊在暗色农田上发出黄色光

该查询点位于加利福尼亚州默塞德市中心附近。城市建筑和道路走廊连贯地亮起,而农业地块保持黑暗。该模型在没有任何标签的情况下区分建成区和农田。

将查询切换到一个小型农业窗口,我们将查询向量定义为该窗口内嵌入向量的平均值,然后提取最高和最低相似度位置的 Sentinel-2 影像,以查看模型认为相似和不相似的区域。

嵌入余弦相似度,查询与最高和最低:一个概览图块和蓝色查询块,上面是三个高相似度农业地块(0.91、0.89、0.89),以及三个低相似度地块(-0.05 机场、0.03 水库、0.08 干旱牧场)

最相似的斑块(0.89 及以上)都是具有灌溉农田的农业地块。最不相似的(接近 0)是带有周围裸地的机场、干涸地形的水库和干旱牧场。没有训练数据,没有标签,只是在嵌入空间中计算点积。

https://huggingface.co/blog/allenai/olmoearth-embeddings#few-shot-segmentation-labeling-the-landscape少样本分割:标注地貌

相似性搜索告诉你“哪里像这样?”,但有时你需要在一个区域内得到离散的标签。由于表示已经非常丰富,一个简单的线性分类器就可以从极少的标记像素生成全覆盖的土地覆盖图。

为了测试这一点,我们在越南金瓯(一个沿海红树林区域)仅标记了60 个像素(每类 20 个)。使用 ESA WorldCover 2021 (https://esa-worldcover.org/en) 作为三个类别(红树林、水体、其他)的标签来源,我们每类随机采样 20 个像素,训练一个具有逐特征标准化的逻辑回归,并预测该区域的每个像素。

越南金瓯地区 60 个标记像素的少样本分类:Sentinel-2 RGB、ESA WorldCover 参考图以及预测的红树林/水体/其他地图,F1 为 0.84

从 60 个标记像素,分类器生成了一幅连贯的地图,加权 F1 = 0.84。红树林、潮汐水道和开阔水域在整个区域被描绘出来。分类器快速饱和:从 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

# Load the 192-band embedding COG exported from Studio
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)

# Train on labeled pixels, predict everywhere
clf = make_pipeline(StandardScaler(), LogisticRegression(max_iter=2000))
clf.fit(X[train_idx], labels[train_idx])
prediction = clf.predict(X).reshape(H, W)

这是一种线性探针,是基础模型的标准评估方法。事实表明,一个 192 维的逻辑回归能够从如此少的标签中恢复土地覆盖边界,意味着 Tiny 编码器在预训练期间已经组织了这些生态区分。更大的变体(Base,768 维)编码了更丰富的表示。

如果你有地面真值多边形、实地调查点或粗略的现有地图,你可以训练类似的分类器,为你自己的感兴趣区域生成全覆盖地图。

https://huggingface.co/blog/allenai/olmoearth-embeddings#change-detection-spotting-what-shifted变化检测:发现变化

由于 Studio 可以按任意时间分辨率(从月度到年度)生成嵌入,你可以直接比较两个时间段,以识别地表条件发生变化的位置。下面,我们计算了同一区域 2023 年 9 月和 2024 年 9 月的月度 Sentinel-2 嵌入,并测量了逐像素的余弦距离。加利福尼亚州比尤特县 Park Fire(2024 年 7 月至 9 月)的过火痕迹立即显现。

基于 OlmoEarth 嵌入的野火变化检测:2023 年 9 月和 2024 年 9 月加利福尼亚州比尤特县的 Sentinel-2 影像,旁边是余弦距离图,其中 Park Fire 过火痕迹呈橙黄色

无需标签或训练——只需两个嵌入 COG 和几行 Python 代码。

https://huggingface.co/blog/allenai/olmoearth-embeddings#unsupervised-exploration-seeing-what-the-model-sees无监督探索:查看模型所见的

有时你没有查询位置或参考标签。你只是想了解嵌入中存在什么结构。主成分分析(PCA)是一种简洁的方法:将其降维到三个维度,映射到 R/G/B,并显示为假彩色图像。相似的嵌入会自动获得相似的颜色。

荷兰弗莱福兰省的 OlmoEarth 嵌入结构:Sentinel-2 RGB 旁边是 PCA 假彩色图像,将 PC1、PC2 和 PC3 映射为红、绿、蓝,再现了圩田地块网格

荷兰弗莱福兰省是一片围海造田的圩田地貌,拥有规则的农业地块网格。PCA 假彩色图像高保真地再现了这些边界。不同的作物类型、水体和城市区域都获得不同的色调。该嵌入已经在没有任何地块或作物概念告知的情况下内化了景观结构。

这种无监督视图是一种快速查看模型在你的感兴趣区域内捕获到了什么结构的方法。

https://huggingface.co/blog/allenai/olmoearth-embeddings#from-export-to-insight从导出到洞察

相似性搜索、少样本分割、变化检测和 PCA 探索都是在标准栅格数据上的简单操作,几秒钟即可运行。力量来自于嵌入:学习的表示将地球观测数据压缩成向量,从多个传感器和数百万个训练样本中捕获关于每个位置的丰富信息。

自定义嵌入导出现已可用。创建一个项目,配置一个嵌入模型,然后计算你的嵌入 (https://docs.olmoearth.allenai.org/embeddings)。导出的 GeoTIFF 可与任何地理空间工具配合使用:QGIS、GDAL、rasterio 或你自己的脚本。有关复现本文中示例的端到端代码,请参阅嵌入教程 (https://github.com/allenai/olmoearth_projects/tree/main/tutorials/embeddings),其中包含相似性搜索 (https://github.com/allenai/olmoearth_projects/tree/main/tutorials/embeddings/src/olmoearth_embeddings_tutorial/similarity)、少样本分割 (https://github.com/allenai/olmoearth_projects/tree/main/tutorials/emb

相似文章

OlmoEarth v1.1:更高效的模型系列

Hugging Face Blog

OlmoEarth v1.1 是 Allen AI 推出的一系列新型卫星图像分析模型,通过减少基于 Transformer 的模型中的令牌序列长度,在保持性能的同时将计算成本降低高达 3 倍。

OSMGraphCLIP:从OpenStreetMap图学习全局位置表示

arXiv cs.AI

OSMGraphCLIP是一种模型,它使用基于图的编码器和与球谐位置编码器的对比对齐,从OpenStreetMap数据中学习全局位置嵌入。该模型在多种地理空间任务中表现出色,通常能够达到甚至超越基于卫星的方法。