Makinelere çizim yeteneği kazandırmak için kullandığım yöntemleri, neyin işe yarayıp neyin yaramadığını ve geleceğe nasıl yön verileceğini derlediğim makale yazısı. Bu yapılan deneylerde çeşitli sanatçılardan 4000 sanat illüstrasyonu kullandım. Görüntülerin çoğu bir şeylerle uğraşan insanları içeriyordu. Eğitim için Pytorch pix-2-pix uygulamasını ve bazı diğer kütüphaneleri kullandım.
Eğitimin hedefi şunlardı:
- Makinenin renkleri bulaşmadan renklendirme yeteneğini geliştirmek.
- Makinelere çizgi ekleme ve tamamlama eğitimi vermek. Bu metot basit karalamaları alıp daha detaylandırılmış çizimlere döndürmede kullanılır.
- Makineyi girdide verilen çizimlerin oranlarını düzeltmek için eğitmek. Birçoğumuz için çizim yaptığımızda en çok zorlandığımız konu muhtemelen oranları doğru ayarlayabilmektir. Bu yüzden eğer ki oranları ayarlayabilecek bir makine elde edebilirsek makine öğrenimi destekli çizime doğru büyük bir adım atmış oluruz.
- Çizim için kaynak olarak kullanılan fotoğrafları modellemek faydalı olabilir çünkü fotoğraflarda nesneler zaten doğru oranlarda gelir.
Renklendirme çalışması çok iyi sonuç verdi ve ayrıca eksik çizgileri tamamlama kısmı da büyük ölçüde başarılıydı. Fakat bununla birlikte oran ayarlamanın iyi sonuç verdiği söylenemez. Sonuç olarak resimleri girdi olarak kullanma kısmı umut vadediyor fakat başka bir girdi kaynağı ile beraber kullanılması gerekiyor.
1. Lekesiz Boyama
Önceki eğitimde illüstrasyonları renklendirme yeteneğini göstermiştim. Ayrıca pix-2-pix ve cycleGAN fotoğrafları renklendirme eğitimleri (hiç kullanmadığım) var bu yüzden bu çalışma büyük bir sürpriz sayılmaz. Bu sefer daha geniş veri set renklendirmeleri genellikle hiçbir leke ve çizgi dışına taşırma olmadan daha iyi çalıştı.
Aşağıda en soldaki görüntü ‘Gerçek A’, makinenin doğrulama setinde girdi olarak aldığı görüntüdür. En sağdaki görüntü ‘Gerçek B’ sonucunda ne beklediğimizi gösterir ve son olarak ortadaki görüntü ‘Fake-B’ ise makinenin bizlere sunduğu resimdir. Fotoğraflara baktığınızda şunu görebilirsiniz ki makinenin ortaya çıkarttığı görüntüler beklenen sonuca önemli ölçüde benzerlik gösteriyor.
2. Eksik Parçaları Tamamlama Yeteneği
Girdi görüntülerini ImageMagick’in uygulaması olan kenar algılama yöntemiyle ürettim. Makineye eksik parçaları tamamlamayı öğretmek amacıyla daha düşük eşik değerli(sigma=2) birkaç kenar çizimi ürettim. Bu yol ile görüntülerde bazı anahatlar eksikti.
Fotoğraf 4’teki kişinin vücudunun üst kısmı tamamen eksiktir. Makine üst vücut şeklini nasıl tamamlayacağını ve hatta nasıl el ekleyeceğini bile biliyor.
Fotoğraf 5’te ceketin arkası, sağ kolu ve ayakkabısının görüntüsü eksik. Makine bunları nasıl tamamlayacağını biliyor ve üstelik çok inandırıcı olmasa bile sağ kol ile kol arasındaki bağlantıyı nasıl tamamlayacağını biliyor.
Fotoğraf 6’da yine daha önceden olduğu gibi makine fotoğrafta vücudunun üst kısmındaki eksiklikleri düzeltebiliyor.
3. Oranları Düzeltme
Oranları düzeltme işlemlerini makineye öğretmek için birkaç biçimsiz çizim oluşturdum. Aşağıdaki resim 7’de sol üst köşe çizimi iyi oranda gösteriyor. Sol üstteki resim bu eğitimin beklenen sonucudur. Ben görüntünün bir kısmını ya da tümünü sıkıştırarak veya uzatarak biçimsiz girdiler oluşturdum. Fotoğraf 7 ‘de üst gövdesi ve alt gövdesi çok kısa, tüm vücudu gergin olan (sağ üstten saat yönünde ilerleyen) illüstrasyonlar görüyoruz.
İşe yaramadı. Fotoğraf 8 bize makinelerin ne ürettiğini(ortadaki fotoğraf) gösteriyor ve hiçbir şekilde makinenin desenleri algılamadığı açıkça belli oluyor. Örneğin sadece dikey uzatma gibi biçimsiz fotoğraflar kullanıyor olsaydım eminim ki sonuç çok daha iyi olabilirdi. Önceki bir deneyde, makinenin daha homojen veri seti ile ana hatları değiştirmesini sağladım. Fakat sadece fotoğraftaki bir bozukluğu düzeltmek tamamıyla yararlı olmuyor.
Makaleler de kullandığını gördüğüm tüm resim dönüştürme veri setleri için dönüştürme nesneleri aynı oranlara(örneğin; attan zebraya, elmadan portakala, cepheler, şehir haritası) sahipti. Belki de görüntü dönüştürme algoritmaları bu oranları düzeltmek için uygun değil bunun için farklı yaklaşımlara ihtiyaç var.
4. Fotoğraflardan Oran Elde Etmek
Sabitleme oranı işe yaramadı. Ya oranların kaynağı bir resim olacaksa? Kameraya poz vermek kolaydır. Bir fotoğraf her zaman orantılıdır ve OpenPose kullanılarak poz elde edilebilir.
Resim 9, 10 ve 11 eğitim setindendir ve poz iskeleti bir illüstrasyondan elde edilmiştir. Bu resimler makinenin bir pozu çizime dönüştürmede gayet iyi olduğunu bizlere gösteriyor. Aynı zamanda bu tekniğin sınırlarını ortaya çıkarır. Poz iskeleti sanat tarzı hakkında bilgi içermez.
Bu eğitimde, 250 eşleştirilmiş görüntü kullandım ve daha büyük bir eğitim seti ile makine illüstrasyonları daha net edilecek. Yine de doğrulama setindeki fotoğrafları kullanmak bu yaklaşımın potansiyeli olduğunu bizlere gösterdi (resim 12).
Farklı Bir Yaklaşım
2020’de piyasaya sürülen MixNmachGAN’in gelecek vadeden bir yaklaşım olduğunu söyleyebiliriz. Poz, fotoğraflardan ve OpenPose’dan, belirli bir sanatçının illüstrasyon stilinden, renk seçiciden renk şeması ve dördüncü bir kaynaktan arka plan türetilebilir.
Anekdotlar Ve Geliştirilecek Diğer Şeyler
Makine henüz yüz hatlarını oluşturamıyor (Resim 14). Ateşin renginin kırmızı ve sarıdan oluştuğunu da bilmiyor (Resim 15). Örneğin ateş, eğitim setine birçok farklı ateş resmi daha eklenerek makinenin öğrenmesi sağlanarak bu sorun düzeltilebilir. Benzer şekilde yüz özelliklerine sahip bir eğitim çizim seti, yüz hattı belirgin olan makine yapımı görüntüler oluşturmak için kullanılabilir.
Yazan: Avi Latner
Çeviri: Serra Nur Salim
Bunlar da ilginizi çekebilir
Bilmeniz Gereken 5 Farklı Makine Öğrenim Algoritması
C Programlama Dili Öğrenmek Size Nasıl Fayda Sağlayacak?
İçerisinde Gerçek İnsan Olan ve insan Gücüyle Çalışan Bilgisayar Nedir?
Yorumlar 2