Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Akıllı Müze Rehberi - Uçtan Uca Sanat Eseri Tanıma Projesi

Python (TensorFlow/FastAPI) ve Flutter kullanılarak geliştirilmiş, bir sanat eseri fotoğrafından sanatçısını, sanat akımını ve eser hakkındaki detaylı bilgileri tanıyan uçtan uca bir mobil uygulama projesi.

Bu proje, "ince detaylı sınıflandırma" (fine-grained classification) ve "çok görevli/çok etiketli" (multi-task/multi-label) öğrenme tekniklerini kullanarak karmaşık bir yapay zeka modelini bir mobil API aracılığıyla sunar.

🏛️ Proje Mimarisi

Sistem 3 ana bileşenden oluşur:

AI Modeli (Python/TensorFlow): EfficientNetB3 mimarisi kullanılarak, 50 farklı sanatçı ve 24 farklı sanat akımını aynı anda tahmin etmek üzere eğitilmiş bir "Multi-Task" (Çok Görevli) ve "Multi-Label" (Çok Etiketli) model.

Backend (Python/FastAPI): Eğitilmiş .keras modelini sarmalayan ve /predict adında bir endpoint üzerinden sunan bir web sunucusu. Gelen resmi işler, tahmini yapar ve artists.csv dosyasından biyografik bilgileri çekerek zengin bir JSON yanıtı döndürür.

Frontend (Flutter/Dart): Kullanıcının kamerasını veya galerisini kullanarak fotoğraf çekmesini/seçmesini sağlayan, bu fotoğrafı FastAPI sunucusuna gönderen ve gelen JSON yanıtını kullanıcı dostu bir sonuç kartı olarak gösteren bir mobil uygulama.

💻 Kullanılan Teknolojiler

Backend (Yapay Zeka & API):

Python 3.11

TensorFlow (Keras 3)

Pandas & Scikit-learn (Veri İşleme)

FastAPI & Uvicorn (Web Sunucusu)

Frontend (Mobil Uygulama):

Flutter

Dart

http (API iletişimi)

image_picker (Kamera/Galeri erişimi)

🚀 Nasıl Çalıştırılır

Bu proje, bir "monorepo" yapısındadır. backend ve frontend klasörleri ayrı ayrı çalıştırılmalıdır.

  1. Backend (FastAPI Sunucusu)

Proje ana dizininden backend klasörüne gidin:

cd backend

ÖNEMLİ: Model Dosyası Eğitilmiş model dosyası (art_identifier_model.keras) 136MB+ boyutu nedeniyle bu repository'ye dahil edilmemiştir. API'nin çalışması için orijinal Kaggle veri setini indirip modeli yeniden eğitmeniz gerekmektedir.

Gerekli kütüphaneleri kurun (Yeni bir Conda ortamı önerilir):

(conda create -n art_project python=3.11)

(conda activate art_project)

conda install -c conda-forge tensorflow pandas ... vb.

Modeli eğitmek ve art_identifier_model.keras dosyasını oluşturmak için (~2 saat süren işlem):

python train_model.py

Eğitim bittikten sonra API sunucusunu başlatın:

python -m uvicorn app:app --reload

Sunucu artık http://127.0.0.1:8000 adresinde çalışıyor olacaktır.

  1. Frontend (Flutter Uygulaması)

VS Code veya Android Studio'da frontend klasörünü açın.

Paketleri yükleyin:

flutter pub get

API Adresini Kontrol Edin: lib/main.dart dosyasındaki _apiUrl değişkeninin, API sunucunuzla eşleştiğinden emin olun.

Android Emülatör için: http://10.0.2.2:8000/predict (Varsayılan)

Fiziksel Cihaz için: http://[BILGISAYARINIZIN_IP_ADRESI]:8000/predict

Uygulamayı çalıştırın:

flutter run

About

Uçtan uca Sanat Eseri Tanıma Projesi (Python/FastAPI Backend + Flutter Frontend)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages