--- base_model: LiquidAI/LFM2.5-VL-450M datasets: - munish0838/crop-burn-detection-labeled tags: - satellite - remote-sensing - sentinel-2 - stubble-burning - fine-tuned - vision-language-model license: cc-by-4.0 --- # crop-burn-detector-v2 Fine-tuned **LFM2.5-VL-450M** (Liquid AI) on the [crop-burn-detection-labeled](https://huggingface.co/datasets/munish0838/crop-burn-detection-labeled) dataset. Given a pair of Sentinel-2 satellite images (RGB + SWIR), the model outputs a structured JSON burn assessment for a 5 km × 5 km agricultural tile. ## Inference ```python from transformers import AutoProcessor, AutoModelForImageTextToText from PIL import Image model = AutoModelForImageTextToText.from_pretrained("munish0838/crop-burn-detector-v2", torch_dtype="bfloat16", device_map="auto") processor = AutoProcessor.from_pretrained("munish0838/crop-burn-detector-v2") rgb_image = Image.open("tile_rgb.png") swir_image = Image.open("tile_swir.png") messages = [ {"role": "system", "content": "You are an expert in analyzing Sentinel-2 satellite imagery for crop residue burning detection in northern India."}, {"role": "user", "content": [ {"type": "image", "image": rgb_image}, {"type": "image", "image": swir_image}, {"type": "text", "text": "Analyze this RGB + SWIR satellite tile and return a JSON burn assessment."}, ]}, ] inputs = processor.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt", return_dict=True).to(model.device) out = model.generate(**inputs, max_new_tokens=256, do_sample=False) print(processor.batch_decode(out, skip_special_tokens=True)[0]) ``` ## Output Schema ```json { "burn_detected": true, "burn_severity": "moderate", "burn_fraction_estimate": 0.25, "burn_freshness": "recent", "active_smoke_visible": false, "vegetation_phase": "post_harvest", "image_quality_limited": false, "notes": "Dark brownish-red burn scars with rectangular field boundaries visible in SWIR." } ``` ## Training Details | | | |---|---| | Base model | LiquidAI/LFM2.5-VL-450M | | Training data | munish0838/crop-burn-detection-labeled | | Train samples | 1,098 | | Epochs | 5 | | Learning rate | 0.0001 | | LoRA rank | 32 | | Effective batch | 16 |