5ch4um1/lfm2.5-vrsbench-EUROSAT-terrain-lora-450m
0148
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:
- VRSBench Training: Base training on VRSBench dataset
- 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)
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
Model Sources
- Base Model: LiquidAI/LFM2.5-VL-450M
- EuroSAT Dataset: EuroSAT Paper
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
