~/projects/bilgisayargormesi-sanalayna/

Sanal Ayna : miroir virtuel

27 avr 2026 #computer-vision#python#opencv

Un miroir virtuel en temps réel : filtres caméra, accessoires de visage et échange de visages. Projet du cours de vision par ordinateur à l'Université de Sakarya.

IsmailKonak/BilgisayarGormesi-SanalAyna/README.md

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

ÖzellikAçıklama
Ayna EfektiKameranız yatay olarak çevrilir
FiltrelerNone, Gri Tonlama, Sepia, Bulanıklık, Keskinleştirme, Kenar Algılama
AksesuarlarGö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 ÇekmeAnlı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
fFiltreyi değiştir
gGözlüğü aç/kapat
hŞapkayı aç/kapat
mBıyığı aç/kapat
bArka plan bulanıklığını aç/kapat
sYüz değiştirmeyi aç/kapat
SPACEFotoğ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:

  1. Buradan dosyayı indir (~530 MB)
  2. 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:

  1. Visual Studio Installer'ı açın
  2. "Desktop development with C++" workload'ını yükleyin
  3. uv sync komutunu 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.

← cd ..