Sbzc's picture
Initial commit
8be046b
import gradio as gr
import tensorflow as tf
import numpy as np
from PIL import Image
# Sınıf isimleri - sizin veri setinize göre
CLASS_NAMES = [
"Africanized Honey Bees (Killer Bees)",
"Aphids",
"Armyworms",
"Brown Marmorated Stink Bugs",
"Cabbage Loopers",
"Citrus Canker",
"Colorado Potato Beetles",
"Corn Borers",
"Corn Earworms",
"Fall Armyworms",
"Fruit Flies",
"Spider Mites",
"Thrips",
"Tomato Hornworms",
"Western Corn Rootworms"
]
# Model yükleme
model = tf.keras.models.load_model("XceptionFarmInsectClassifier.h5")
def predict_insect(image):
"""
Yüklenen görüntüyü işler ve böcek sınıfını tahmin eder.
Args:
image: PIL Image veya numpy array
Returns:
dict: Sınıf olasılıkları
"""
# Görüntüyü işle
if isinstance(image, np.ndarray):
img = Image.fromarray(image.astype('uint8'))
else:
img = image
# Boyutlandır
img = img.resize((224, 224))
img_array = np.array(img)
# Normalize et
img_array = img_array / 255.0
# Batch dimension ekle
img_array = np.expand_dims(img_array, axis=0)
# Tahmin yap
predictions = model.predict(img_array, verbose=0)
# Sonuçları dictionary'e çevir
results = {CLASS_NAMES[i]: float(predictions[0][i]) for i in range(len(CLASS_NAMES))}
return results
# Gradio arayüzü oluştur
iface = gr.Interface(
fn=predict_insect,
inputs=gr.Image(type="pil", label="Böcek Fotoğrafı Yükleyin"),
outputs=gr.Label(num_top_classes=5, label="Tahmin Sonuçları"),
title="🐛 Farm Insect Classifier API",
description="Zararlı böcekleri tespit eden AI modeli. Bir böcek fotoğrafı yükleyin.",
examples=[
# Örnek görüntü yolları ekleyebilirsiniz
],
allow_flagging="never"
)
# API olarak çalıştır
if __name__ == "__main__":
iface.launch(share=False, server_name="0.0.0.0", server_port=7860)