Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| import cv2 | |
| import torch | |
| import torchvision.transforms as transforms | |
| from PIL import Image | |
| import matplotlib.pyplot as plt | |
| # Load Pretrained AI Model (You can replace this with your custom model) | |
| model = torch.hub.load("pytorch/vision:v0.10.0", "resnet18", pretrained=True) | |
| model.eval() | |
| # Function to analyze deforestation using AI model | |
| def analyze_deforestation(image): | |
| image = Image.fromarray(image).convert("RGB") | |
| transform = transforms.Compose([ | |
| transforms.Resize((224, 224)), | |
| transforms.ToTensor(), | |
| ]) | |
| img_tensor = transform(image).unsqueeze(0) | |
| # AI Prediction | |
| with torch.no_grad(): | |
| output = model(img_tensor) | |
| # Simulated deforestation risk (random value for demo) | |
| deforestation_risk = np.random.uniform(0.3, 0.9) | |
| # Identify locations for seed-dropping (For simplicity, we use random dots) | |
| h, w = image.size | |
| num_seeds = int(deforestation_risk * 20) # More risk = More seeds | |
| seed_locations = np.random.randint(0, min(h, w), (num_seeds, 2)) | |
| # Plot Results | |
| plt.figure(figsize=(6, 6)) | |
| plt.imshow(image) | |
| for loc in seed_locations: | |
| plt.scatter(loc[0], loc[1], color="red", s=20, marker="o") # Mark seed locations | |
| plt.title(f"Deforestation Risk: {deforestation_risk:.2f} | Seeds: {num_seeds}") | |
| plt.axis("off") | |
| plt.savefig("output.png") | |
| return "output.png", f"Risk Level: {deforestation_risk:.2f} | Seeds Dropped: {num_seeds}" | |
| # Create Gradio UI | |
| interface = gr.Interface( | |
| fn=analyze_deforestation, | |
| inputs=gr.Image(type="numpy"), | |
| outputs=["image", "text"], | |
| title="π± Plant Me AI - Drone Seed Dispersal π", | |
| description="Upload a satellite image of a forest area. The AI will analyze deforestation risks and predict seed-dropping locations for drone-based planting." | |
| ) | |
| # Launch the web app | |
| interface.launch(debug=True) | |