Image Inpainting
Görüntü onarmanın (image inpainting) maskeler, bölütleme, OpenCV, YOLO26 ve üretken modeller kullanarak içeriği nasıl geri getirdiğini veya kaldırdığını ve ayrıca temel uygulamaları ile sınırlamaları öğren.
Görüntü tamamlama, bir görüntünün eksik, hasarlı veya kasıtlı olarak maskelenmiş bölgelerini yeniden oluşturan ve tamamlanan alanın çevreyle uyum sağlamasını inisiyatif alan bir bilgisayarla görme tekniğidir. İstenmeyen piksellerin üzerini örtmek yerine, bir tamamlama sistemi yakınlardaki dokulardan, sahnelerin yapısından ve üretken sistemlerde öğrenilmiş görsel örüntülerden makul bir değiştirme içeriği tahmin eder. Yaygın hedefler arasında hasarlı fotoğrafları onarmak, nesneleri veya metinleri kaldırmak ve görüntü düzenleme sırasında oluşan boşlukları doldurmak yer alır.
Görüntü Tamamlama Nasıl Çalışır?#
Bir tamamlama iş akışının genellikle iki girdisi vardır: orijinal görüntü ve değiştirilecek pikselleri tanımlayan bir maske. Sistem, maskenin dışındaki pikselleri korurken içindeki içeriği sentezler veya yeniden oluşturur. Maske kuralları araçlara göre değişiklik gösterir; bu nedenle geliştiriciler, beyaz, siyah, sıfır veya sıfırdan farklı piksellerin hangi bölgeyi temsil ettiğini doğrulamalıdır.
Geleneksel bilgisayarla görme yöntemleri renkleri, kenarları ve dokuları maske sınırından içeriye doğru yayar. Örneğin, OpenCV görüntü tamamlama iş akışı maskelenmiş alanları komşu pikselleri kullanarak doldurur ve çevredeki yapıları devam ettirmek için tasarlanmış algoritmalar sunar. Bu yaklaşımlar verimlidir ve genellikle çizikler, toz, ince metinler ve küçük delikler için iyi sonuç verir. (docs.opencv.org)
Öğrenmeye dayalı sistemler daha üst düzey bağlamı çıkarır. Bir model maskelenmiş bir alanın tuğla işi, çimen, giysi veya bir insanın yüzü üzerinde yer aldığını anlayabilir ve bu yorumla tutarlı içerik üretebilir. Ancak çıktı, bilinmeyen orijinal piksellerin kurtarılmasından ziyade makul bir tahmin niteliğindedir.
Maskeler ve Model Yaklaşımları#
Maske kalitesi sonucu büyük ölçüde etkiler. Çok küçük olan bir maske nesne kenarlarını veya gölgeleri arkasında bırakabilirken, aşırı büyük bir maske faydalı bağlamı ortadan kaldırır. Hassas maskeler manuel olarak oluşturulabilir veya görüntü segmentasyonu ile üretilebilir. Örnek segmentasyonu, her nesne için ayrı bir piksel düzeyinde maske ürettiğinden özellikle faydalıdır.
Ultralytics SAM 2 belgeleri, bir nesneyi etkileşimli olarak seçmek için nokta ve kutu tabanlı segmentasyonu açıklar. Bilinen nesne sınıfları için Ultralytics YOLO segmentasyon görevi nesne maskelerini ve çokgen koordinatlarını döndürür. Ekipler ayrıca manuel, SAM destekli ve YOLO destekli açıklamayı destekleyen Ultralytics Platform açıklama düzenleyicisi ile çokgen maskeleri oluşturabilir ve hassaslaştırabilir.
Birkaç model ailesi gerçek doldurma işlemini gerçekleştirebilir:
- Klasik yöntemler yakın pikselleri, konturları veya yumuşak yoğunluk örüntülerini genişletir. scikit-image onarım API, maskelenmiş bölgeler için biharmonik tamamlama içerir.
- Üretken çekişmeli ağlar, üretici ve ayırt edici ağlar arasındaki rekabet yoluyla görsel olarak gerçekçi tamamlamalar üretmeyi öğrenir.
- Yayılım modelleri, maskenin içindeki gürültüyü görünür görüntüye ve isteğe bağlı olarak bir metin komutuna bağlı içeriğe yinelemeli olarak dönüştürür.
Görüntü Tamamlama ve İlgili Görevler#
Tamamlama, yerelleştirilmiş değiştirme ile tanımlanır. İlgili görevlerin farklı amaçları vardır:
- Nesne kaldırma, tamamlamanın bir uygulamasıdır: segmentasyon nesneyi seçer ve tamamlama ortaya çıkan boşluğu doldurur.
- Görüntü segmentasyonu, hangi piksellerin bir nesneye veya sınıfa ait olduğunu tanımlar ancak bunları değiştirmez.
- Gürültü giderme, genel olarak sahne içeriğini korurken yaygın gürültüyü azaltır.
- Genişletme, iç bir bölgeyi onarmak yerine içeriği orijinal tuvalin ötesine uzatır. Google Cloud maske tabanlı görüntü düzenleme kılavuzu içerik eklemeyi, kaldırmayı, genişletmeyi ve değiştirmeyi birbirinden ayırır.
- Süper çözünürlük, kullanıcı tanımlı bir maskeyi hedeflemek yerine görüntü çözünürlüğünü ve detayını artırır.
Metin kaldırma, nesne kaldırma ile aynı iş akışını izler. Metin maskelenir, ardından sistem gizlenen arka planı tahmin eder. Metin benzersiz bir yüzü, sembolü veya belge detayını kaplıyorsa orijinal bilgi güvenilir bir şekilde kurtarılamaz.
Gerçek Dünya Uygulamaları#
Perakende görüntü temizleme: Çevrimiçi bir satıcı, bir ürün fotoğrafından başıboş bir kabloyu, yansımayı, destek standını veya arka plan nesnesini segmentlere ayırabilir ve bu alanı tamamlayabilir. Küçük kusurlar Adobe Content-Aware Fill için uygun olabilirken, Adobe üretken görüntü düzenleme daha büyük, anlamsal olarak karmaşık bölgeleri yönetebilir. (helpx.adobe.com)
Görüntü onarımı: Arşivler ve görüntüleme ekipleri taranmış fotoğraflarda ve mikroskopi karelerinde çizikleri, toz lekelerini, sensör kusurlarını veya eksik pikselleri maskeleyebilir. Bu, okunabilirliği ve sunumu iyileştirebilir ancak yeniden oluşturulan alanlar gözlemlenmiş kanıtlar olarak değerlendirilmemelidir. Tıbbi, bilimsel veya adli görüntülerde uydurulmuş bir yapı yorumu değiştirebilir ve açıkça belgelenmelidir.
Uygulamalı İş Akışı ve Sınırlamalar#
Aşağıdaki örnek, bir insan maskesi oluşturmak için YOLO26 ve bu bölgeyi doldurmak için OpenCV kullanır. Bağımlılıkları pip install ultralytics opencv-python numpy ile yükleyin.
import cv2
import numpy as np
from ultralytics import YOLO
model = YOLO("yolo26n-seg.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Select the first detected person and convert its polygon to a mask.
class_ids = result.boxes.cls.cpu().numpy().astype(int)
person_index = next(i for i, class_id in enumerate(class_ids) if class_id == 0)
contour = result.masks.xy[person_index].astype(np.int32)
contour = contour.reshape(-1, 1, 2)
image = result.orig_img.copy()
mask = np.zeros(image.shape[:2], dtype=np.uint8)
cv2.drawContours(mask, [contour], -1, 255, cv2.FILLED)
inpainted = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA)
cv2.imwrite("inpainted.jpg", inpainted)Bu işlem, nesne yerelleştirmesini segmentasyon konturlarından maske oluşturma için belgelenmiş örüntü ile birleştirir. Klasik doldurma büyük nesnelerle, tekrarlayan geometriyle, gölgelerle, yansımalarla veya yüzlerle mücadele edebilir. Üretken yöntemler daha geniş bağlamı yönetir ancak uydurulmuş detaylar ekleyebilir. Orijinali koruyun, sınırları tam çözünürlükte inceleyin ve özellikle otantikliğin önemli olduğu durumlarda C2PA Content Credentials gibi köken mekanizmaları kullanarak önemli düzenlemeleri kaydedin. NIST sentetik içerik şeffaflığı kılavuzu da anlamlı düzeyde değiştirilmiş medya için kökeni ve etiketlemeyi önemli güvenceler olarak vurgular. (c2pa.org)






