Inpainting
Inpainting (z ang. inpainting) – technika przetwarzania obrazu oraz grafiki komputerowej, której celem jest automatyczne wypełnianie brakujących lub uszkodzonych fragmentów obrazu w taki sposób, aby uzyskany rezultat był jak najbardziej spójny z otaczającą go treścią. Metoda jest wykorzystywana zarówno w sztuce cyfrowej, jak i w zastosowaniach przemysłowych, medycznych oraz w dziedzinie sztucznej inteligencji.
Historia
Początkowo inpainting było techniką ręczną, stosowaną przez konserwatorów dzieł sztuki do usuwania zniszczeń i przywracania oryginalnego wyglądu obrazom. Pierwsze próby automatyzacji procesu sięgają lat 1970 i 1980, kiedy to badacze z dziedziny teorii obrazu zaproponowali algorytmy oparte na analizie gradientu i interpolacji. Przełom nastąpił w 2000 roku wraz z rozwojem uczenia maszynowego i sieci neuronowych, które umożliwiły tworzenie modeli zdolnych do generowania realistycznych tekstur i detali.
Podstawowe metody
- Metody oparte na propagacji struktury – wykorzystują równania różniczkowe (np. równanie eliptyczne) do rozprzestrzeniania linii i konturów z otoczenia uszkodzonego obszaru. Przykładem jest algorytm Wavelet‑based Inpainting.
- Metody oparte na teksturach – bazują na dopasowywaniu i kopiowaniu fragmentów podobnych tekstur z sąsiednich regionów. Do najpopularniejszych należą techniki PatchMatch oraz Criminisi et al..
- Metody oparte na sieciach neuronowych – w ostatniej dekadzie dominują modele głębokiego uczenia (deep learning), takie jak autoenkodery, generative adversarial networks (GAN) oraz transformery. Najbardziej znane implementacje to Contextual Attention, Partial Convolutions i DeepFill.
Zastosowania
Inpainting znajduje zastosowanie w wielu dziedzinach:
- Restauracja dzieł sztuki – usuwanie zarysowań, pęknięć i zanieczyszczeń ze zdjęć zabytków.
- Usuwanie obiektów – eliminacja niechcianych elementów (np. ludzi, znaków drogowych) z fotografii.
- Uzupełnianie braków w danych medycznych – rekonstrukcja brakujących fragmentów obrazów MRI lub CT.
- Wirtualna rzeczywistość (VR) i rozszerzona rzeczywistość (AR) – generowanie brakujących części scen w czasie rzeczywistym.
- Kompresja obrazu – wypełnianie utraconych danych po dekompresji.
- Film i produkcja wideo – retuszowanie klatek, usuwanie przewijających się obiektów.
Algorytmy i biblioteki
W środowisku open‑source dostępnych jest wiele implementacji inpaintingu, m.in.:
- OpenCV – funkcja
inpaint()implementująca metody Navier‑Stokes oraz Telea. - PyTorch oraz TensorFlow – biblioteki umożliwiające budowę własnych sieci generatywnych.
- GIMP i Krita – narzędzia graficzne z wbudowanymi pluginami do inpaintingu.
Zagadnienia otwarte
Mimo licznych postępów, inpainting nadal boryka się z wyzwaniami:
- Utrzymanie spójności semantycznej przy dużych ubytkach.
- Redukcja artefaktów w obszarach o skomplikowanej geometrii.
- Optymalizacja czasu działania w aplikacjach czasu rzeczywistego.
Powiązane pojęcia
Więcej informacji można znaleźć w następujących artykułach:
- Przetwarzanie obrazu
- Grafika komputerowa
- Sztuczna inteligencja
- Uczenie maszynowe
- Deep learning
- Generative Adversarial Networks (GAN)
Przypisy
- Criminisi, A., P. Pérez, i T. Zisserman, „Region Filling and Object Removal by Exemplar‑Based Image Inpainting”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2004.
- Yu, J., i S. Koltun, „Deep Contextual Attention for Image Inpainting”, CVPR, 2018.
- Gao, L., i in., „Free‑Form Image Inpainting with Gated Convolution”, ICCV, 2021.
Zobacz także
Historia sztuki – Technika cyfrowa – Algorytmy optymalizacji