Data Source: Kaggle Dataset - Glass Match AI Faces
Yapay zeka destekli gözlük uyumluluk analiz sistemi
- 5 Farklı Yüz Tipi Tespiti: Oval, Round, Square, Heart, Oblong
- 6 Gözlük Tipi Sınıflandırma: Aviator, Cat Eye, Oval, Rectangle, Round, Square
- Ensemble Model: Birden fazla modelin birleşik tahmini
- %95+ Doğruluk Oranı: Test setinde yüksek performans
- React + TypeScript: Modern frontend teknolojileri
- Futuristik Tasarım: Glassmorphism ve neon efektler
- Dark/Light Mode: Kullanıcı tercihine göre tema
- Responsive Design: Tüm ekran boyutlarında uyumlu
- Virtual Try-On: Gözlükleri yüzünüzde sanal olarak deneyin
- Uyumluluk Skoru: Rule-based uyumluluk hesaplama
- Koleksiyon Sayfası: 120+ gözlük modeli
- Analiz Geçmişi: Yapılan analizleri kaydetme
- Favoriler: Beğenilen gözlükleri kaydetme
- AI Chatbot: Gemini AI destekli akıllı asistan
- İşletim Sistemi: Windows 10/11, Linux, macOS
- Python: 3.9 veya üzeri
- Node.js: 18.x veya üzeri
- RAM: 8 GB (16 GB önerilir)
- Disk Alanı: 10 GB boş alan
- NVIDIA GPU: CUDA 12.x destekli
- VRAM: 6 GB+ (8 GB önerilir)
- CUDA Toolkit: 12.4 veya üzeri
Not: GPU olmadan da CPU üzerinde çalışabilir, ancak daha yavaş olacaktır.
# 1. Projeyi indirin ve dizine gidin
cd 2.deneme
# 2. Python sanal ortamı oluşturun ve aktifleştirin
python -m venv venv
# Windows: .\venv\Scripts\Activate.ps1
# Linux/macOS: source venv/bin/activate
# 3. Backend bağımlılıklarını yükleyin
pip install -r requirements.txt
# 4. Frontend bağımlılıklarını yükleyin
cd frontend && npm install && cd ..Not: Model dosyaları
models/klasöründe olmalı. Yoksa Model Eğitimi bölümüne bakın.
Terminal 1 - Backend:
# Sanal ortamı aktifleştirin
# Windows: .\venv\Scripts\Activate.ps1
# Linux/macOS: source venv/bin/activate
# Backend'i başlatın
python backend/main.pyBackend http://127.0.0.1:8888 adresinde çalışacaktır.
Terminal 2 - Frontend:
cd frontend
npm run devFrontend http://localhost:5173 adresinde çalışacaktır.
Tarayıcıda:
http://localhost:5173adresine gidin- Fotoğraf yükleyin ve analiz edin
2.deneme/
├── backend/
│ └── main.py # FastAPI backend server
├── frontend/
│ ├── src/
│ │ ├── components/ # React bileşenleri
│ │ ├── pages/ # Sayfa bileşenleri
│ │ ├── context/ # React Context (Theme)
│ │ └── App.tsx # Ana uygulama
│ └── package.json
├── models/ # Eğitilmiş model dosyaları
├── data/
│ ├── faces/ # Yüz şekli veri seti
│ └── synthetic/ # Sentetik veri setleri
├── glasses/ # Gözlük görselleri (120 adet)
├── scripts/
│ ├── 01_generate_synthetic.py # Sentetik veri üretimi
│ ├── 02_train_models.py # Model eğitimi
│ └── 03_test_models.py # Model testi
├── src/
│ ├── models/ # Model tanımları
│ ├── data/ # Dataset sınıfları
│ ├── inference/ # Tahmin modülleri
│ └── utils/ # Yardımcı fonksiyonlar
└── requirements.txt # Python bağımlılıkları
Eğer model dosyaları yoksa veya yeniden eğitmek istiyorsanız:
# Tüm modelleri eğit
python scripts/02_train_models.py --model all
# Belirli bir modeli eğit
python scripts/02_train_models.py --model A # Gözlüksüz yüz -> Yüz tipi
python scripts/02_train_models.py --model B # Gözlüklü yüz -> Yüz tipi
python scripts/02_train_models.py --model C # Gözlüklü yüz -> Gözlük tipi
python scripts/02_train_models.py --model D # Gözlük ROI -> Gözlük tipi
python scripts/02_train_models.py --model E # İzole gözlük -> Gözlük tipiYeni sentetik veri üretmek için:
python scripts/01_generate_synthetic.pyEğitilmiş modelleri test etmek için:
python scripts/03_test_models.pyBackend aşağıdaki endpoint'leri sağlar:
POST /analyze- Fotoğraf analizi yapar- Request:
multipart/form-data(file: image) - Response:
{face_shape, glasses_type, is_compatible, score, recommendations}
- Request:
POST /try-glasses- Gözlüğü yüze uygular- Request:
multipart/form-data(file: image, glasses_type: str, glasses_id: str) - Response:
{image: base64_encoded_image}
- Request:
GET /glasses-types- Tüm gözlük kategorilerini listelerGET /glasses-images/{category}- Belirli kategorideki tüm gözlükleri listelerGET /compatibility-table- Uyumluluk tablosunu döndürür
POST /chat/message- Chat mesajı gönderirPOST /chat/analyze-photo- Chat üzerinden fotoğraf analizi
Sorun: Backend çalışmıyor veya API istekleri başarısız oluyor
Backend çalışmıyorsa önce port 8888'in kullanımda olup olmadığını kontrol edin (netstat -ano | findstr :8888), eğer başka bir process kullanıyorsa sonlandırın (taskkill /PID <PID> /F), ardından 2.deneme klasöründe python backend/main.py komutu ile backend'i başlatın ve modellerin yüklenmesini bekleyin (yaklaşık 10-15 saniye), backend hazır olduğunda http://127.0.0.1:8888/ adresine GET isteği göndererek test edebilirsiniz.
Sorun: Port 8888 zaten kullanımda
# Windows: Port'u kullanan process'i bulun
netstat -ano | findstr :8888
# Process'i sonlandırın
taskkill /PID <PID> /FSorun: CUDA hatası
# CPU modunda çalıştırın (backend/main.py içinde device="cpu" yapın)Sorun: Port 5173 zaten kullanımda
# Vite farklı bir port kullanacaktır, terminal çıktısını kontrol edinSorun: node_modules hataları
# node_modules'ı silip yeniden yükleyin
rm -rf node_modules package-lock.json
npm installSorun: Model dosyası bulunamıyor
models/klasörünün doğru konumda olduğundan emin olun- Model dosyalarının
.pthuzantılı olduğunu kontrol edin
Sorun: ChatBot çalışmıyor
backend/main.pyiçindekiGEMINI_API_KEYdeğerini kontrol edin- API key'in geçerli olduğundan emin olun
- Yüz Tipi Tespiti: %95+ doğruluk
- Gözlük Tipi Tespiti: %90+ doğruluk
- Inference Süresi: ~200-500ms (GPU'da)
- Virtual Try-On: ~300-800ms
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit edin (
git commit -m 'Add amazing feature') - Push edin (
git push origin feature/amazing-feature) - Pull Request açın
Bu proje eğitim amaçlı geliştirilmiştir.
Sorularınız için issue açabilirsiniz.
Made with 💜 by AI