Skip to content

A full-stack application for detecting diseases in potato plant leaves using a CNN model trained on the PlantVillage dataset.

Notifications You must be signed in to change notification settings

sinanbalibey/cnn-potato-health-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project

Patates Hastalığı Tespit

Genel Bakış

Bu proje, patates yapraklarındaki hastalıkları tespit etmek için derin öğrenme kullanan bir tam yığın (full-stack) uygulamadır. Proje şu bileşenlerden oluşmaktadır:

  1. Frontend: Kullanıcıların patates yapraklarının görüntülerini yüklemesini ve tahmin sonuçlarını görmesini sağlayan React tabanlı bir web uygulaması.
  2. Backend: Yüklenen görüntüleri işleyen ve bir CNN modeliyle tahmin yapan FastAPI uygulaması.

Model, yaprağın Early Blight (Erken Yanıklık), Late Blight (Geç Yanıklık) veya Sağlıklı olup olmadığını tahmin eder.

potato1.PNG

potato2.PNG

potato3.PNG

potato4.PNG

Özellikler

  • Frontend:
    • Görüntü yükleme için kullanıcı dostu bir arayüz.
    • Tahmin sonuçlarını ve güven skorlarını gösterir.
  • Backend:
    • Yüklenen görüntüleri işler.
    • CNN modelinden tahmin sonuçlarını döner.
  • Derin Öğrenme Modeli:
    • PlantVillage veri seti kullanılarak eğitilmiş model.
    • Yüksek doğruluk oranıyla hastalık sınıflandırması yapar.

Veri Seti

Eğitimde kullanılan veri seti, PlantVillage veri seti üzerindeki patates yaprağı görüntüleridir. Görseller, 256x256 piksel boyutunda 3 renk kanalıyla işlenmiştir. Her görüntü şu üç sınıftan birine aittir:

  1. Early Blight (Erken Yanıklık)
  2. Late Blight (Geç Yanıklık)
  3. Healthy (Sağlıklı)

Teknik Detaylar

Derin Öğrenme Modeli

  • Mimari: CNN (Convolutional Neural Network)
  • Framework: TensorFlow/Keras
  • Ön İşleme:
    • Görseller 256x256 boyutuna yeniden boyutlandırıldı.
    • Piksel değerleri [0, 1] aralığında normalize edildi.
    • Veri artırımı (döndürme, yansıtma) uygulandı.
  • Eğitim:
    • Veri seti %80 eğitim, %10 doğrulama, %10 test olarak bölündü.
    • Optimizasyon: Adam
    • Kayıp Fonksiyonu: Sparse Categorical Crossentropy
    • Eğitim Süresi: 50 epoch
  • Çıktı: 3 sınıf için softmax olasılıkları.

Eğitilmiş model, my_model.h5 dosyası olarak kaydedilmiştir.

Backend

  • Framework: FastAPI
  • Endpointler:
    • GET /ping: Sunucunun çalışıp çalışmadığını kontrol eder.
    • POST /predict: Görüntü dosyasını alır, işler ve tahmin sınıfını ve güven skorunu döner.
  • CORS: http://localhost:3000 adresinden gelen taleplere izin verecek şekilde yapılandırılmıştır.

Frontend

  • Framework: React
  • Port: 3000
  • Ortam Değişkeni: Backend ile bağlantı kurmak için REACT_APP_BACKEND_URL=http://localhost:8001 kullanılır.

Çalıştırma Adımları

Gereksinimler

  • Docker

Kurulum

Bir dizinde “docker-compose.yml” isimli bir dosya oluşturun ve içine aşağıdakileri yapıştırın.

services:
  backend:
    image: sibacode/bcnnpotato
    container_name: backend
    ports:
      - "8001:8001"
    networks:
      - app-network

  frontend:
    image: sibacode/fcnnpotato
    container_name: frontend
    ports:
      - "3000:3000"
    networks:
      - app-network
    environment:
      - REACT_APP_BACKEND_URL=http://backend:8001

networks:
  app-network:
    driver: bridge

Compose dosyasının bulunduğu dizine konsol aracılığıyla erişin ve şu komutu yazın:

docker compose up -d 

Bu komut:

API Endpointleri

  • GET /ping

    Örnek:

    curl http://localhost:8001/ping

    Cevap:

    "Hello, I am alive"
  • POST /predict

    Örnek:

    curl -X POST -F "[email protected]" http://localhost:8001/predict

    Cevap:

    {
      "class": "Early Blight",
      "confidence": 0.99
    }

Doğruluk ve Kayıp.PNG

About

A full-stack application for detecting diseases in potato plant leaves using a CNN model trained on the PlantVillage dataset.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages