Skip to content
ModelListedExternal
Browse files

Eo VAE

EO-VAE is a multi-sensor variational autoencoder designed to serve as a foundational tokenizer for the Earth Observation (EO) domain. Unlike traditional approaches that require separate models for different sensors,...

KindOtherVersionDecoder dconv weight generator init 0.01 er50kBgrade

Model source

Kind
Other
File size
3.03 MB–1.07 GB
Version
vDecoder dconv weight generator init 0.01 er50k
Updated
Oct 9, 2026
Source
Hugging Face

Source description

EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation

EO-VAE is a multi-sensor variational autoencoder designed to serve as a foundational tokenizer for the Earth Observation (EO) domain. Unlike traditional approaches that require separate models for different sensors, EO-VAE utilizes a single model to encode and reconstruct flexible channel combinations through dynamic hypernetworks.

Model Summary

Usage

import torch
from eo_vae.models.new_autoencoder import EOFluxVAE

model = EOFluxVAE.from_pretrained(
    repo_id="nilsleh/eo-vae", 
    ckpt_filename="eo-vae.ckpt",
    config_filename="model_config.yaml",
    device="cpu",
)

# Run reconstruction / latent extraction
x = torch.randn(1, 3, 256, 256)
# Example wavelengths for Sentinel-2 RGB
wvs = torch.tensor([0.665, 0.56, 0.49], dtype=torch.float32) 

with torch.no_grad():
    recon = model.reconstruct(x, wvs)                # [B, 3, 256, 256]
    z = model.encode_spatial_normalized(x, wvs)      # [B, 32, 32, 32] for 256x256 input

These are the wavelengths used across modalities:

WAVELENGTHS = {
    'S2RGB': [0.665, 0.56, 0.49],
    'S1RTC': [5.4, 5.6],
    'S2L2A': [
        0.443, 0.490, 0.560, 0.665, 0.705, 0.740,
        0.783, 0.842, 0.865, 1.610, 2.190, 0.945,
    ],
    'S2L1C': [
        0.443, 0.490, 0.560, 0.665, 0.705, 0.740,
        0.783, 0.842, 0.865, 0.945, 1.375, 1.610, 2.190,
    ],
}

If you use this model in your work, please cite:

EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation Data

@article{eo-vae,
  title={EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation Data},
  author={Lehmann, Nils and Wang, Yi and Xiong, Zhitong and Zhu, Xiaoxiang},
  journal={arXiv preprint arXiv:2602.12177},
  year={2026}
}

Sources

1 source
Hugging FacePrimaryVersion 7f675ab7d242a34a63a03e6fd2d19f28bb73cdd2
huggingface.co/nilsleh/eo-vae/tree/7f675ab7d242a34a63a03e6fd2d19f28bb73cdd2

Verified Oct 9

Download files

Model artifacts

3 artifacts

decoder_dconv_weight_generator_init_0.01_er50k.pt

pt · 3.03 MB · SHA-256 e452546f85d7…3323 · Hugging Face

Download file

encoder_dconv_weight_generator_init_0.01_er50k.pt

pt · 3.09 MB · SHA-256 9ae67a11dc71…f651 · Hugging Face

Download file

eo-vae.ckpt

ckpt · 1.07 GB · SHA-256 38497a54bea0…871d · Hugging Face

Download file

Source excerpts

2 excerpts

--- license: apache-2.0 language: - en pipeline_tag: image-to-image tags: - remote-sensing - earth-observation - vae - tokenizer --- # EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation EO-VAE is a multi-sensor variational autoencoder designed to serve as a foundational tokenizer for the Earth Observation (EO) domain. Unlike traditional approaches that require separate models for different sensors, EO-VAE utilizes a single model to encode and reconstruct flexible channel combinations through dynamic hypernetworks. ## Model Summary - **Model Name:** EO-VAE - **Paper:** [EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation Data](https://arxiv.org/abs/2602.12177) - **License:** Apache-2.0 - **Task:** Image-to-Image / Tokenization (Remote Sensing) ## Usage ```python import torch from eo_vae.models.new_autoencoder import EOFluxVAE model = EOFluxVAE.from_pretrained( repo_id="nilsleh/eo-vae", ckpt_filename="eo-vae.ckpt", config_filename="model_config.yaml", device="cpu", ) # Run reconstruction / latent extraction x = torch.randn(1, 3, 256, 256) # Example wavelengths for Sentinel-2 RGB wvs = torch.tensor([0.665, 0.56, 0.49], dtype=torch.float32) with torch.no_grad(): recon = model.reconstruct(x, wvs) # [B, 3, 256, 256] z = model.encode_spatial_normalized(x, wvs) # [B, 32, 32, 32] for 256x256 input ``` These are the wavelengths used across modalities: ```python WAVELENGTHS = { 'S2RGB': [0.665, 0.56, 0.49], 'S1RTC': [5.4, 5.6], 'S2L2A': [ 0.443, 0.490, 0.560, 0.665, 0.705, 0.740, 0.783, 0.842, 0.865, 1.610, 2.190, 0.945, ], 'S2L1C': [ 0.443, 0.490, 0.560, 0.665, 0.705, 0.740, 0.783, 0.842, 0.865, 0.945, 1.375, 1.610, 2.190, ], } ``` If you use this model in your work, please cite: [**EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation Data**](https://arxiv.org/abs/2602.12177) ```bibtex @article{eo-vae, title={EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation Data}, author={Lehmann, Nils and Wang, Yi and Xiong, Zhitong and Zhu, Xiaoxiang}, journal={arXiv preprint arXiv:2602.12177}, year={2026} } ```

Source context: 0 downloads · 1 likes · Pipeline image-to-image · Repo nilsleh/eo-vae