Önce az önce çektiğim örneğimizi izleyelim:
Bilim kurgu filmlerinden fırlamış gibi değil mi? Fotoğrafına sahip olduğunuz bir kişinin yerini almak, şu an yaşamıyor olsa bile!
Aslında mevzu güncel bir konu, fotoğrafların video hale getirilmesi yani Deepfake uygulamaları. Basitçe anlatmak gerekirse hedef fotoğraftaki yüz mimik ve hareketlerinin tahminlenerek video haline getirilmesi, tabii makina öğrenmesi ile.
Geçtiğimiz günlerde yayınlanan Avatarify projesi de Coronavirüs nedeniyle artık neredeyse herkesin adını duyduğu popüler görüntülü konuşma uygulamaları Zoom vs de kameradaki gerçek görüntünüz yerine fotoğraftaki hedef kişi gibi görünmenizi ve konuşmanızı sağlıyor.
Böylece istediğiniz kişinin kılığına girip siz de iş arkadaşlarınızı ya da sevdiklerinizi şaşırtabilirsiniz.
Önceki örneklerin aksine bir öğrenme süreci olmadan gerçek zamanlı olarak yayına geçmesi, deepfake uygulamalarında önemli bir adım olabilir.
Projenin tanıtımı ve diğer detaylar için Webrazzi’nin güzel makalesinden göz atabilirsiniz: https://webrazzi.com/2020/04/18/online-toplantilariniza-farkli-yuzlerle-katilmanizi-saglayan-deepfake-yazilimi-avatarify/
Makina öğrenmesi ve yapay zeka uygulamaları için umut verici gelişmeler olmasına karşın işin bir de etik boyutu var. Şu an için konuştuğumuz kişinin kim olduğundan ve bu tarz videoları sahte olduğunu bilsek de çok yakın bir gelecekte bunu ayırt etmek de zorlanacağız gibi görünüyor. Tabii bu da bir çok dolandırıcılık ve anlaşmazlıkların kapılarını sonuna kadar açacak. Hele ki çalışma hayatının tamamen uzaktan devam ettirildiği, sözlerin ve onayların video konferanslarda verilmeye başlandığı bu dönemde…
İşte bu durumlarla beraber görüntünün gerçekliğinin onaylı olması, belki bu onayın blockchain ile saklanması gibi konular gündeme gelecek. Yani e-imza gibi bir kimliğimiz olması gerekecek ki insanlar gerçekten sizinle konuşup konuşmadığını anlayabilsin. Düşünsenize sizin fotoğrafınıza sahip biri sizin gibi konuşup toplantılara katılabildiğini!
Neyse bu etik konuları başka bir yazıda tartışırız. Ben de kurdum, kurcaladım, biraz uzunca bir kurulumu var, paylaşayım istedim.
Kurulum
Öncelikle belirtelim, bu program CUDA-enabled (NVIDIA) ekran kartlarında çalışıyor. Ben kurulumu NVDIA GeForce GTX 1050 ekran kartı olan bir cihaz üzerinde Windows 10 işletim sistemi ile yaptım. İşlemciyi sömürdüğünü de unutmayalım.
Linux ve Mac kurulum seçenekleri de mevcut.
- Miniconda Python 3.7 indirip kurun.
- Yoksa Git indirip kurun.
- “Windows” düğmesine basın ve anaconda yazmaya başlayın zaten size “Anaconda Prompt” önerecek, onu açın.
- Avatarify yazılımını Git’ten klonlayaıp kurmak için açılan ekranda aşağıdaki komutları sıra ile yazıyoruz.
git clone https://github.com/alievk/avatarify.git cd avatarify scripts\install_windows.bat
- Biraz sabırlı olmanızda fayda var, kurulum biraz sürüyor. Şöyle bir ekranda bekleyeceksiniz.
Network weights paketini indirin ve inen vox-adv-cpk.pth.tar
adlı sıkıştırılmış dosyayı doğrudan avatarify
yazılımını kurduğunuz klasörün içine atın.
- Şimdi sıra son adımda. Yine anaconda komut ekranından
run_windows.bat
dosyasını çalıştırın. Eğer kurulum başarılı olduysa “cam” ve “avatarify” adında iki ekran açılacak. Şimdilik bu ekranları açık bırakıp kuruluma devam edelim. Eğer birden fazla kameranız varsa (sanal da olabilir) bir tanesini seçmeniz lazım.scripts/settings_windows.bat
dosyasını her hangi bir kelime işlemci ile açın mesela Notepad++ veCAMID
değişkenini güncelleyin. variable.CAMID
kameraların sıra numaraıs 0, 1, 2, gibi. Zaten bir kameranız varsa hiç ellemeyin.
- Kurulum aslında tamam ancak Zoom vs gibi iletişim araçlarında kullanmak için sıradaki adımları uyguluyoruz.Açık kaynak OBS Studio yazılımını indirip kuruyoruz. Tabiri caizse next, next, next kurulum :)
- Sanal kamera için VirtualCam eklentisini kuruyoruz. Kurarken dikkkat
Install plugin and register only 1 virtual camera
seçeneğini seçiyoruz. Sonra next, next…
- OBS Studio programını çalıştırın.
- “Sources” bölümünün hemen sol altında yer alan “+” işaretine tıklayın. “Window Capture” seçeneğini seçin.
- Varsayılan ismi koruyun ya da herhangi bir şey yazın, çok önemli değil. “Ok” düğmesine basıp onaylayın.
- Listeden “[python.exe]: avatarify” seçeneğini seçin. Eğer listede çıkmıyorsa “Windows + Tab” tuş kombinasyonu ile gezip avatarify ekranlarını bulun ve geri dönün.
- Edit sekmesinden Transform bölüme gidin ve Fit to Screen seçeneğine tıklayın.
- Son olarak Tools sekmesinden VirtualCam bölümüne gidin. “AutoStart ” seçeneğini işaretleyin ve Buffered Frames ayarlarını 0 olarak ayarlayın. Artık hazırız “Start” düğmesine basarak sanal kamerayı başlatın.
-
OSB-Camera
adlı kamera Zoom ve benzeri uygulamalarda artık görünür olacak. - Zoomdan şöyle ayarlanıyor:
- Skype’ta da şöyle:
Çalıştırma
Çalıştırmak için yine Anaconda komut satırından run_windows.bat
dosyasını çalıştırmak sonrasında da OBS Studio’yu başlatmak gerekiyor.
Önemli bir nokta, Zoom vs uygulamaları bu işlemlerden sonra başlatılmalı.
Kontrol Tuşları
Tam randımanlı sonuç almak için ışığın net olması lazım ve mümkün olduğunca ekrana yakın olmak lazım. Kameraya net bir şekilde baktığınız zaman “X” e bakarak avatarınızın odaklanmasını sağlayın, sonrası kolay :)
1-9 | Varsayılan 9 avatar arasında geçişi sağlıyor. |
Q | StyleGAN-generated avatarlardan rastgele bir tanesi geliyor. |
0 | Avatarı kapatabiliyorsunuz |
A/D | Varsayılan avatarlar arasında önceki / sonraki şeklinde geçiş |
W/S | Kamerayı yakınlaştır uzaklaştır |
Z/C | Adjust avatar target overlay opacity. |
X | Avatarı resetleyerek odaklanmasını sağlıyor. |
R | Ayna yönü ya da tam tersine çeviriyor. |
T | Mirror output window. |
I | FPS değerlerini göster |
ESC | Çıkış |
Umarım yararlı olmuştur, siz de çektiğiniz örnekleri paylaşırsanız sevinirim.
İyi eğlenceler…
Harika bir makale. Çok güzel anlatmışsınız ve örnek seçimi de süper.
Teşekkürler
Çok sağol abim