Sanal Ayna: Virtual Mirror
A real-time virtual mirror: camera filters, face accessories and face swapping. Computer Vision course project at Sakarya University.
cat README.md
Sanal Ayna — Virtual Mirror
İsmail Konak, Süleyman Samet Kaya ve İbrahim Güldemir tarafından Sakarya Üniversitesi Bilgisayar Mühendisliği Bilgisayar Görmesi dersi kapsamında hazırlanmıştır.
Gerçek zamanlı sanal ayna uygulaması. Kameranız üzerinde filtreler, yüz aksesuarları ve yüz değiştirme özelliklerini anında kullanabilirsiniz.
🚀 Hızlı Başlangıç
Gereksinimler
- Python 3.10 veya daha yeni
- uv paket yöneticisi
Kurulum ve Çalıştırma
# Bağımlılıkları yükle
uv sync
# Model dosyaları hazırla
uv run python scripts/generate_assets.py
# Uygulamayı başlat
uv run python main.py
💡 Özellikler
| Özellik | Açıklama |
|---|---|
| Ayna Efekti | Kameranız yatay olarak çevrilir |
| Filtreler | None, Gri Tonlama, Sepia, Bulanıklık, Keskinleştirme, Kenar Algılama |
| Aksesuarlar | Gözlük, Şapka, Bıyık (gerçek zamanlı eklenir) |
| Yüz Değiştirme | İnsan yüzünü başka bir fotoğraftaki yüzle değiştirir |
| Arka Plan Bulanıklığı | Yüzün etrafındaki arka planı bulanıklaştırır |
| Fotoğraf Çekme | Anlık görüntüyü PNG olarak kaydeder |
| GPU Hızlandırması | CUDA/DirectML ile hızlı işlem |
⌨️ Klavye Kontrolleri
Uygulamayı çalıştırdıktan sonra bu tuşları kullanabilirsiniz:
| Tuş | İşlem |
|---|---|
| f | Filtreyi değiştir |
| g | Gözlüğü aç/kapat |
| h | Şapkayı aç/kapat |
| m | Bıyığı aç/kapat |
| b | Arka plan bulanıklığını aç/kapat |
| s | Yüz değiştirmeyi aç/kapat |
| SPACE | Fotoğraf çek |
| q / ESC | Çıkış |
🎭 Yüz Değiştirme
Yüz değiştirme özelliğini kullanmak için bir fotoğraf gereklidir:
uv run python main.py --source yuzunuz.jpg
Ardından uygulamada s tuşuna basarak yüz değiştirmeyi açabilirsiniz.
Kaliteli Sonuç İçin (Opsiyonel)
Daha iyi sonuçlar için inswapper_128.onnx modelini indirin:
- Buradan dosyayı indir (~530 MB)
models/klasörüne kopyala
Model yoksa uygulama otomatik olarak daha basit bir yöntemi kullanır.
🖥️ GPU ve Performans
CUDA Desteği (NVIDIA)
GPU'yu kullanmak için:
uv add onnxruntime-gpu
CUDA 13.x Kullanıyorsanız
Resmi paket CUDA 13'ü desteklemiyorsa, nightly sürümü kullanın:
pip install --pre --index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ort-cuda-13-nightly/pypi/simple/ onnxruntime-gpu
GPU Yoksa Endişelenmeyin
Uygulama otomatik olarak CPU moduna geçer ve işi devam ettirir.
📁 Dosya Konumu
- Çekilen Fotoğraflar:
captures/klasörü - Yüz Analiz Modelleri:
~/.insightface/(otomatik indirilir) - Yüz Değiştirme Modeli:
models/inswapper_128.onnx(opsiyonel)
🧪 Testler
Kodun doğru çalıştığını kontrol etmek için:
uv run pytest -v
⚠️ Windows'ta Yüz Tanıma Kütüphanesi
İlk kurulumda InsightFace'e ihtiyaç varsa, Visual Studio'da C++ derleyici gereklidir:
- Visual Studio Installer'ı açın
- "Desktop development with C++" workload'ını yükleyin
uv synckomutunu yeniden çalıştırın
🐛 Sorun Giderme
Kamera açılmıyorsa: Farklı kamera indeksini deneyin:
uv run python main.py --camera 1
Yüz değiştirme çalışmıyorsa: Model dosyasını models/ klasörüne yerleştirin veya fotoğrafın kalitesini kontrol edin.
Yavaş çalışıyorsa: GPU'yu etkinleştirmeyi veya filtreleri kapatmayı deneyin.
📝 Lisans
Bu proje Sakarya Üniversitesi Bilgisayar Görmesi dersi kapsamında geliştirilmiştir.