Spaces:
Sleeping
Sleeping
File size: 3,606 Bytes
f198920 1b98f74 9dbebec f198920 9dbebec 13e431f f198920 4dcd0c4 9aa2989 9dbebec f198920 9dbebec f198920 9aa2989 f198920 9dbebec 9aa2989 9dbebec f198920 9aa2989 f198920 9aa2989 f198920 4dcd0c4 1b98f74 c0aad99 9aa2989 f198920 4dcd0c4 9aa2989 4dcd0c4 9aa2989 f198920 4dcd0c4 9aa2989 4dcd0c4 f198920 9dbebec f198920 4dcd0c4 f198920 9aa2989 f198920 9aa2989 f198920 9dbebec 9aa2989 9dbebec f198920 9aa2989 f198920 9aa2989 f198920 9aa2989 f198920 4dcd0c4 f198920 4dcd0c4 f198920 c0aad99 9aa2989 4dcd0c4 f198920 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
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) |