Image Inpainting Serisi 1: Image Inpainting Nedir?

Fatma Zehra Çetin
novaresearchlab
Published in
3 min readAug 5, 2020
Nvidia’nın Inpainting için oluşturduğu siteden çıktı.

Bu seride görüntülerdeki maskelenmiş kısımları doldurmak için kullanılan Image Inpainting’in ne olduğunu ve Inpainting yöntemlerinden 3 tanesini inceleyeceğiz. GAN’lara ilginiz varsa GAN’ların diğer bir kullanım alanı olan bu kısma da bakmanızı öneririm :) Keyifli okumalar!

Image Inpainting Nedir?

Bir görüntü içerisindeki eksik pikselleri doldurma işlemi, görüntü içi boyama (Image Inpainting) ya da görüntü tamamlama (Image Completion) olarak ifade edilir. Görüntü üzerindeki bir kısım maskelenir ve algoritma tarafından bu maskelenmiş kısmın anlamlı bir biçimde doldurulması beklenir.

Örnek bir inpainting işlemi.
Örnek bir inpainting işlemi.

Yukarıdaki görüntüde görüntünün ortasında kare bir bölge maskelenmiştir. Generative Image Inpainting with Contextual Attention makalesinde tanıtılan yöntem ile doldurma işlemi yapılmıştır.

Image Inpainting işleminin zor kısmı, eksik parçalardaki pikselleri görüntünün geri kalanıyla uyumlu, görsel olarak gerçekçi ve anlamsal olarak mantıklı bir biçimde doldurmaktır. Çıktı orijinal görüntünün birebir aynısı olmayabilir. Örneğin yukarıdaki görüntüde doldurma işlemi sonrasında denize doğru uzanan kayalıklar yok edilmiştir fakat oluşan çıktı yine de anlamlıdır. Orijinal görüntü ile çıktıyı kıyaslamak başarıyı ölçmek için yetersizdir.

Image Inpainting algoritmaları, görüntü içerisindeki istenmeyen objeleri yok etmek, eski görüntüler üzerindeki hatalı kısımları onarmak için kullanılmaktadır. Aşağıdaki şekilde istenmeyen bir parçanın görüntüden silinmesi gösterilmiştir.

Generative Inpainting’in çalışması için örnek olarak paylaşılmış bir sonuç.

Görüntü Tamamlama alanında yapılmış ilk çalışmalarda görüntülerdeki eksik kısımları doldurma problemi, doku üretme (texture synthesis) yöntemine çok benzer yaklaşımlar ile çözülmeye çalışılmıştır. Örneğin görüntü içerisindeki eksik kısımlardaki pikseller, çevrelerindeki pikseller kopyalanarak ya da eşleştirilerek doldurulmuştur. Bu tip yöntemler arka planlar gibi (deniz, gökyüzü, çimen vb.) tekrarlı, düzenli dağılımlar içeren görüntüler üzerinde başarılı olsalar da daha karmaşık ve tekrarlı olmayan yeni parçalar üretmeleri gereken alanlarda (yüzler, objeler) başarılı olamamışlardır.

CNN’lerdeki ve GAN’lardaki büyük gelişmeler son çalışmaları etkilemiştir. Üst seviyede tanıma, alt seviyede piksel üretme şeklinde şartlı bir görüntü üretme problemi olan Görüntü Tamamlama; birlikte eğitilen muhalif (adversarial) sinir ağları ile piksel üretme, bu ağların geri dönüşleriyle görüntünün geri kalanıyla uyumluluğun sağlanma işlemleri ile konvolüsyonel bir encoder-decoder ağı olarak formülize edilir. Bu modellerin kullanıldığı çalışmalarda tatmin edici yeni içeriklerin; yüzler, objeler ve sahneler gibi çok yapılı görüntülerin üretilmesi sağlanmıştır.

Maalesef, CNN tabanlı yöntemler sık sık çevredeki bölgelerle uyumsuz yapılar ve bulanık dokular üretmektedirler. CNN’lerin eksik parçalar ve uzaktaki bağlamsal bilgiler arasında uzun dönemli ilişkileri modellemede etkisiz olması bu problemin sebebidir. Örneğin, bir pikselin 64 piksel ötedeki bir pikselin içeriğinden etkilenmesi için genleşme katsayısı 2 olan 3x3 konvolüsyondan en az 6 katmana ihtiyaç vardır. Bu tip bir konvolüsyon, düzenli ve simetrik elemanların özelliklerini örneklemektedir. Bu nedenle asıl ilgilenen elemanın özellikleri, diğer elemanlara kıyasla ağırlıklandıramayabilir.

Bu alanda çalışmalar yapılmaya son dönemde de hızla devam edilemektedir. Bu seride üç ayrı makaledeki yöntemleri inceleyerek inpainting işleminin nasıl yapıldığına dair daha geniş bir algılayış oluşturmayı hedefliyoruz. Bu çalışmalardan ilk ikisi yapay sinir ağı tabanlıyken son çalışma istatistiksel tabanlıdır.

İnceleyeceğimiz üç çalışma aşağıdaki gibidir:

  • Generative Image Inpainting with Contextual Attention (2018)
  • Image Inpainting for Irregular Holes Using Partial Convolutions (2018)
  • Statistics of Patch Offsets for Image Completion (2012)

Nvidia’nın oluşturduğu inpainting demosundan siz de kendi görüntüleriniz üzerinde inpainting işlemi yapabilirsiniz :)

--

--

Fatma Zehra Çetin
novaresearchlab

A computer engineer who likes to write about AI topics. Munich/DE