Downloads · 30 days
8
20% of all-time downloads
ni-eminen/savi-pretrained-30slots
savi-pretrained-30slots is a feature extraction model from ni-eminen. Use it when you need embeddings to search or compare text. It is set up for pytorch. The card lists the license as cc-by-nc-4.0.
Stochastic Slot Attention from Video (SAVi) encoder with 30 slots, pretrained on LMDrive BEV rasterizations. Stage 1a of the object-centric LMDrive pipeline.
Downloads · 30 days
8
20% of all-time downloads
All-time downloads
40
Public
Repo size
61.9 MB
Likes
0
Public
Click a slice to open those files.
.pth61.9 MB · 100%
From the Hugging Face model README
Stochastic Slot Attention from Video (SAVi) encoder with 30 slots, pretrained on LMDrive BEV rasterizations. Stage 1a of the object-centric LMDrive pipeline.
This is one of four model artefacts released alongside a thesis on replacing the multimodal sensor-fusion encoder in LMDrive with an object-centric encoder based on Stochastic Slot Attention from Video (SAVi), evaluated on the CARLA LangAuto benchmark. The four artefacts are:
ni-eminen/savi-pretrained-30slots -- Stage 1a encoderni-eminen/savi-finetuned-30slots -- Stage 1b encoderni-eminen/object-centric-lmdrive-4qt -- Q-Former + LLM (4 query tokens)ni-eminen/object-centric-lmdrive-8qt -- Q-Former + LLM (8 query tokens)StoSAVi30256[192, 192]26var-0.01192x192 RGB BEV images normalized to [0, 1] via torchvision.transforms.ToTensor(),
arranged as temporal clips of 6 frames.
Trained from scratch on LMDrive BEV rasterizations using the SlotFormer training framework. Optimizer Adam with LR 1e-4 and cosine annealing (2.5% warmup), gradient clipping 0.05, batch size 16 per GPU across 4 A100-40GB GPUs. Training ran for 11 epochs (approximately 108 hours).
Evaluated on 72 held-out BEV frames (12 videos x 6 frames) from
test_town of the LMDrive dataset.
| Metric | Value |
|---|---|
| Reconstruction MSE (per-pixel, [0, 1] scale) | 0.00116 ± 0.00027 |
| Reconstruction SSIM | 0.9079 ± 0.014 |
| FG-ARI (%) | 39.94 ± 21.08 |
| mIoU (%) | 6.30 ± 2.80 |
import torch
# Model class defined in slotformer/bev_slots/models
# (see https://github.com/ni-eminen/SAVi-for-LMDrive-BEV)
from slotformer.bev_slots.models import build_model
from slotformer.bev_slots.configs.savi_bev_params import SlotFormerParams
params = SlotFormerParams()
model = build_model(params)
ckpt = torch.load("model.pth", map_location="cpu")
model.load_state_dict(ckpt["state_dict"], strict=False)
model.eval()
# Input: [B, T=6, 3, 192, 192] float tensor in [0, 1]
out = model({"img": video})
# out['post_slots']: [B, T, 30, 256] slot representations
# out['post_recon_combined']: [B, T, 3, 192, 192] reconstructed image
# out['post_masks']: [B, T, 30, 1, 192, 192] slot masks
@mastersthesis{nieminen2026objcentric,
title = {Object-centric world models for language-instructed autonomous driving},
author = {Nieminen, Matias},
year = {2026},
school = {Aalto University}
}