Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from PIL import Image | |
| import numpy as np | |
| import random | |
| import json | |
| class UltraLightGeoDemo: | |
| def __init__(self): | |
| self.dataset_info = "S2-NAIP Mini Demo - Hafif örnek veri ile" | |
| def predict_coordinates(self, image): | |
| """Demo tahmin - model yüklemeden""" | |
| try: | |
| # Rastgele koordinatlar (demo amaçlı) | |
| lat = round(random.uniform(36.0, 42.0), 4) # Türkiye civarı | |
| lon = round(random.uniform(26.0, 45.0), 4) | |
| confidence = round(random.uniform(0.4, 0.95), 2) | |
| result = { | |
| 'latitude': lat, | |
| 'longitude': lon, | |
| 'confidence': confidence, | |
| 'note': 'DEMO TAHMİN — Gerçek model eğitilmedi', | |
| 'next_step': 'Gerçek mini model eğitimi için Kaggle örneğini kullanın.' | |
| } | |
| return result | |
| except Exception as e: | |
| return {'error': str(e)} | |
| # Gradio arayüzü | |
| def create_demo_interface(): | |
| demo = UltraLightGeoDemo() | |
| with gr.Blocks(title="🌍 Jeo-Referanslama Mini Demo", theme=gr.themes.Soft()) as interface: | |
| gr.Markdown(""" | |
| # 🌍 Jeo-Referanslama **Mini DEMO** | |
| **Ultra Hafif Sürüm - Gerçek model olmadan çalışır** | |
| 🔹 Bu versiyon sadece az sayıda veri örneğiyle (mini dataset) test yapılmasını önerir. | |
| 🔹 Gerçek eğitim için aşağıdaki Kaggle bağlantısını kullanabilirsiniz. | |
| """) | |
| with gr.Row(): | |
| with gr.Column(): | |
| image_input = gr.Image( | |
| type="filepath", | |
| label="Uydu Görüntüsü Yükle", | |
| height=300 | |
| ) | |
| predict_btn = gr.Button("📍 Demo Tahmin Yap", variant="primary") | |
| with gr.Column(): | |
| output_json = gr.JSON(label="Tahmin Sonuçları") | |
| # Kaggle bağlantısı | |
| gr.Markdown(""" | |
| --- | |
| ## 🚀 Gerçek (mini) Model İçin Kaggle'a Git: | |
| **[👉 KAGGLE'DA MİNİ SİSTEMİ ÇALIŞTIR](https://kaggle.com)** | |
| **Kaggle'da yapman gerekenler:** | |
| 1. Bağlantıya tıkla → "Notebooks" → "New Notebook" | |
| 2. "Settings" sekmesinde **GPU (T4)** seç | |
| 3. Aşağıdaki hafif veri yükleme kodunu çalıştır | |
| """) | |
| # Kaggle için mini dataset kodu | |
| with gr.Accordion("📋 Kaggle Mini Eğitim Kodu", open=False): | |
| gr.Markdown(""" | |
| ```python | |
| # HAFİF EĞİTİM KODU - 500 örnekle mini test | |
| !pip install torch torchvision transformers datasets tqdm --quiet | |
| import torch | |
| from transformers import AutoModel | |
| from datasets import load_dataset | |
| print("🛰️ S2-NAIP mini örnek yükleniyor...") | |
| dataset = load_dataset("allenai/s2-naip", split="train[:500]") # sadece 500 örnek | |
| print(f"Yüklendi: {len(dataset)} örnek") | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| model = AutoModel.from_pretrained("facebook/dinov2-small").to(device) | |
| print("✅ Mini eğitim/deneme için hazır!") | |
| ``` | |
| """) | |
| predict_btn.click( | |
| fn=demo.predict_coordinates, | |
| inputs=image_input, | |
| outputs=output_json | |
| ) | |
| return interface | |
| if __name__ == "__main__": | |
| demo = create_demo_interface() | |
| demo.launch(server_name="0.0.0.0", server_port=7860) |