Yapay zeka yırtık ve çizikleri onarabilir mi? Fizibilite sayıları
Evet; bu yazı da onu yol haritası umudundan yayındaki bir özelliğe taşıyan ölçümleri kaydediyor: hattın hasarlı taramalara eskiden ne yaptığı, aşamayı kurmayı haklı çıkaran kavram kanıtı sayıları ve şimdi “Çizikleri ve yırtıkları onar” onay kutusunun arkasında yayında olan sürümün uçtan uca sonuçları.
Hat yırtık bir fotoğrafa eskiden ne yapıyordu
Restorasyonun inpainting aşaması yoktu: bir bölgeyi kaldırıp yerine bir şey sentezleyebilecek hiçbir şey. Ağır çatlaklı bir portrede doğrulandı: yüz bölgelerinin içinde hasar tesadüfen kayboluyor (yüz modeli tüm kırpmayı yeniden sentezler) ve ardından harman sınırında aniden yeniden beliriyordu; yanakta duran bir çatlak, hiç onarım olmamasından daha kötü görünebilir. Diğer her yerde hasar iyileştiriliyordu: keskinleştirme geçişi yırtık kenarlarını ayrıntıymış gibi keskinleştiriyor, renklendirici ise beyaz çatlak çizgilerini sahne içeriği olarak boyuyordu.
Kavram kanıtı
Test öznesi: emülsiyon çatlakları ağıyla kaplı 510×817'lik siyah beyaz bir portre. Donanım: kasıtlı olarak zayıf, yalnızca CPU'lu bir sanal alan; dolayısıyla her süre en kötü durum. İki aşama: bir çizik tespit ağı (Microsoft'un açık kaynaklı “Bringing Old Photos Back to Life” projesinden[2]) bir hasar maskesi üretir; LaMa inpainting modeli[1] ardından yalnızca maskelenmiş bölgeleri 512 px'lik karolarla doldurur; ikisi de ONNX Runtime'ın CPU sağlayıcısında[3].
Bu ağır hasarlı fotoğrafta hasar maskesi piksellerin %18.4'ünü kapladı. Kalite sonucu: çatlak ağı yüz, giysi ve arka plan boyunca kaldırıldı, zarar verici yanlış pozitif yoktu: çizik dedektörlerinin klasik tuzağı olan dantel masa örtüsü hayatta kaldı.
Yayınlanan şey, uçtan uca ölçüldü
Üretim aşaması restorasyon sırasında ilk çalışır, böylece çatlaklar kaldırılmadan önce asla renklendirilmez ya da keskinleştirilmez. Tespit kısa kenar 256'da 2 px maske genişletmesiyle çalışır; inpainting yerel çözünürlükte yama yama yapılır, fotoğraf başına 12 yamayla sınırlıdır ve en büyük hasar bölgeleri öncelik alır. İki değişmez umut edilmek yerine zorunlu kılınır: yalnızca maskelenmiş pikseller yazılır (çıktıdaki hasarsız her piksel girişle bayt bayt aynıdır) ve bir kapsama kapısı, tespit edilen alan %0.5'in altındaysa (onarmaya değer bir şey yok) ya da %35'in üstündeyse (hasardan çok yanlış tespit edilmiş doku olması muhtemel) aşamayı tamamen atlar.
Sonraki bir üretim revizyonu otomatik kapıya ikinci, daha keskin bir ayırt edici ekledi: şekil. Kapsama tek başına ince bir yırtığı dedektör gürültüsünden ayıramaz, ama geometrileri bir büyüklük mertebesi farklıdır: yırtık uzun ve incedir, gürültü ise lekelerden oluşur. Maskenin her bağlı bileşeni için, sınırlayıcı kutusu bw×bh ve piksel alanı A ile şunu puanlıyoruz:
Kıyaslamadan kalibrasyon noktaları: temiz bir pazarlama grafiği en fazla 2.4 uzama puanı alıyor; çatlak ağlı tarama 29.8. 6 eşiği ikisinden de rahatça uzakta duruyor ve her üretim çalıştırması kapsamasını ve uzamasını günlüğe kaydediyor; böylece kapı iki fotoğrafa değil, gerçek trafiğe göre ayarlanmaya devam ediyor.
İki kontrol: onay kutusu kapalıyken aşama hiç çalışmadı ve süreler önceki hatla tam olarak eşleşti. Neredeyse temiz bir fotoğrafta dedektör yalnızca gerçekten hasarlı olan %0.81'lik pikselleri (köşede kalan çatlaklar ve toz) işaretledi; yüzlerde, dantelde ya da dokuda sıfır yanlış pozitif.
Neden varsayılan değil de isteğe bağlı
Otomatik hasar onarımının bilinen hata biçimi yanlış pozitiflerdir: çit tellerini, saç tellerini ya da danteli çizik olarak işaretleyen bir dedektör gerçek içeriği siler ve bir inpainter bir şeyleri silmekte çok iyidir. İki kontrol fotoğrafı kanıttır, kıyaslama değil. Bu yüzden aşama açık bir onay kutusu olarak yayınlanıyor ve her çalıştırma hasar kapsama rakamını günlüğe kaydediyor; böylece eşikler varsayılana terfi etmeden önce gerçek trafik üzerinde ayarlanabilir. Fotoğrafları harici bir üretken görüntü API'sine gönderme kestirmesini de reddettik: bu araç fotoğrafları kendi altyapımızda geçici olarak işler ve tam bir üretken yeniden render kimliği kaydırır; amaç hasarı onarmak, akrabanı yeniden boyamak değil.
Kaynaklar
- Suvorov, R., Logacheva, E., Mashikhin, A., et al. (2022). Resolution-robust Large Mask Inpainting with Fourier Convolutions (LaMa). WACV. arXiv:2109.07161. arxiv.org
- Wan, Z., Zhang, B., Chen, D., et al. (2020). Bringing Old Photos Back to Life (the scratch-detection recipe). CVPR. arXiv:2004.09484. arxiv.org
- ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai