LFM2.5-VL-450M VRSBench + EuroSAT Terrain Expert

Model Description

This is a fine-tuned version of LiquidAI's LFM2.5-VL-450M vision-language model, specialized for satellite terrain classification. The model was trained in two stages:

  1. VRSBench Training: Base training on VRSBench dataset
  2. EuroSAT Fine-tuning: Additional training on EuroSAT land cover classification dataset

The model can classify satellite images into 10 land cover classes: AnnualCrop, Forest, HerbaceousVegetation, Highway, Industrial, Pasture, PermanentCrop, Residential, River, SeaLake.

Training Details

Stage 1: VRSBench Pre-training

  • Base Model: LFM2.5-VL-450M
  • Dataset: VRSBench
  • Epochs: 1
  • Method: LoRA (r=16, alpha=32)

Stage 2: EuroSAT Fine-tuning

  • Base Model: VRSBench-trained model
  • Dataset: EuroSAT (27,000 satellite images, 64x64 RGB)
  • Training Samples: 21,600
  • Epochs: 2
  • Method: LoRA (r=16, alpha=32)
  • Hardware: Local training (no Ray/distributed)

Evaluation Results

EuroSAT Test Set (5,400 images)

Model Accuracy
Base VRSBench Model ~10% (random baseline)
VRSBench + EuroSAT (this model) 97.52%

The model achieves near-perfect classification accuracy on EuroSAT, demonstrating significant improvement over the base VRSBench model.

Usage

With llama.cpp

# Download Q4_K_M quantized version (recommended)
wget https://huggingface.co/5ch4um1/lfm2.5-vrsbench-EUROSAT-terrain-lora-450m/resolve/main/lfm2.5-vrsbench-terrain-expert-450m-q4_k_m.gguf

# Run inference
./llama-cli -m lfm2.5-vrsbench-terrain-expert-450m-q4_k_m.gguf \
  --image satellite_image.jpg \
  -p "What type of terrain is shown in this satellite image? Choose from: AnnualCrop, Forest, HerbaceousVegetation, Highway, Industrial, Pasture, PermanentCrop, Residential, River, SeaLake."

With Transformers

from transformers import AutoModelForVision2Seq, AutoProcessor
from PIL import Image

model = AutoModelForVision2Seq.from_pretrained(
    "5ch4um1/lfm2.5-vrsbench-EUROSAT-terrain-lora-450m",
    torch_dtype="auto",
    device_map="auto"
)
processor = AutoProcessor.from_pretrained("5ch4um1/lfm2.5-vrsbench-EUROSAT-terrain-lora-450m")

image = Image.open("satellite_image.jpg")
prompt = "What type of terrain is shown in this satellite image? Choose from: AnnualCrop, Forest, HerbaceousVegetation, Highway, Industrial, Pasture, PermanentCrop, Residential, River, SeaLake."

inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=20)
print(processor.decode(outputs[0], skip_special_tokens=True))

GGUF Quantizations

Version Size Description
F16 679 MB Full precision (16-bit)
Q8_0 362 MB 8-bit quantization
Q4_K_M 219 MB 4-bit quantization (recommended for most use cases)

Model Sources

Limitations

  • The model is specialized for EuroSAT land cover classes and may not generalize to other satellite image classification tasks without additional training.
  • Images should be similar to EuroSAT format (RGB, overhead satellite view).
  • The model works best with 64x64 pixel images as used in training.

Training Environment

  • Framework: Transformers + PEFT (LoRA)
  • Hardware: Local GPU (CUDA)
  • Training Scripts: Available in the cookbook repository
Downloads last month
61
Safetensors
Model size
0.4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for 5ch4um1/lfm2.5-vrsbench-EUROSAT-terrain-lora-450m

Quantized
(26)
this model