| --- |
| license: apache-2.0 |
| datasets: |
| - blanchon/FireRisk |
| language: |
| - en |
| base_model: |
| - google/siglip2-base-patch16-224 |
| pipeline_tag: image-classification |
| library_name: transformers |
| tags: |
| - fire-risk |
| - detection |
| - siglip2 |
| --- |
| |
|  |
|
|
|
|
| # **Fire-Risk-Detection** |
|
|
| > **Fire-Risk-Detection** is a multi-class image classification model based on `google/siglip2-base-patch16-224`, trained to detect **fire risk levels** in geographical or environmental imagery. This model can be used for **wildfire monitoring**, **forest management**, and **environmental safety**. |
|
|
| --- |
|
|
| ```py |
| Classification Report: |
| precision recall f1-score support |
| |
| high 0.4430 0.3382 0.3835 6296 |
| low 0.3666 0.2296 0.2824 10705 |
| moderate 0.3807 0.3757 0.3782 8617 |
| non-burnable 0.8429 0.8385 0.8407 17959 |
| very_high 0.3920 0.3400 0.3641 3268 |
| very_low 0.6068 0.7856 0.6847 21757 |
| water 0.9241 0.7744 0.8427 1729 |
| |
| accuracy 0.6032 70331 |
| macro avg 0.5652 0.5260 0.5395 70331 |
| weighted avg 0.5860 0.6032 0.5878 70331 |
| ``` |
|
|
|  |
|
|
| ## **Label Classes** |
|
|
| The model distinguishes between the following fire risk levels: |
|
|
| ``` |
| 0: high |
| 1: low |
| 2: moderate |
| 3: non-burnable |
| 4: very_high |
| 5: very_low |
| 6: water |
| ``` |
|
|
| --- |
|
|
| ## **Installation** |
|
|
| ```bash |
| pip install transformers torch pillow gradio |
| ``` |
|
|
| --- |
|
|
| ## **Example Inference Code** |
|
|
| ```python |
| import gradio as gr |
| from transformers import AutoImageProcessor, SiglipForImageClassification |
| from PIL import Image |
| import torch |
| |
| # Load model and processor |
| model_name = "prithivMLmods/Fire-Risk-Detection" |
| model = SiglipForImageClassification.from_pretrained(model_name) |
| processor = AutoImageProcessor.from_pretrained(model_name) |
| |
| # ID to label mapping |
| id2label = { |
| "0": "high", |
| "1": "low", |
| "2": "moderate", |
| "3": "non-burnable", |
| "4": "very_high", |
| "5": "very_low", |
| "6": "water" |
| } |
| |
| def detect_fire_risk(image): |
| image = Image.fromarray(image).convert("RGB") |
| inputs = processor(images=image, return_tensors="pt") |
| |
| with torch.no_grad(): |
| outputs = model(**inputs) |
| logits = outputs.logits |
| probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist() |
| |
| prediction = {id2label[str(i)]: round(probs[i], 3) for i in range(len(probs))} |
| return prediction |
| |
| # Gradio Interface |
| iface = gr.Interface( |
| fn=detect_fire_risk, |
| inputs=gr.Image(type="numpy"), |
| outputs=gr.Label(num_top_classes=7, label="Fire Risk Level"), |
| title="Fire-Risk-Detection", |
| description="Upload an image to classify the fire risk level: very_low, low, moderate, high, very_high, non-burnable, or water." |
| ) |
| |
| if __name__ == "__main__": |
| iface.launch() |
| ``` |
|
|
| --- |
|
|
| ## **Applications** |
|
|
| * **Wildfire Early Warning Systems** |
| * **Environmental Monitoring** |
| * **Land Use Assessment** |
| * **Disaster Preparedness and Mitigation** |