Upscaling obrazu przy użyciu AI (feat. denoise&sharpen)

Hejson!

Dzisiejsza konsumpcja mediów ma to do siebie, że odbywa się na 5-6 calowym ekranie telefonu. Ma też to do siebie, że zanim zdjęcie dotrze do Ciebie, to przejdzie przez 6 konwersacji na jedynym słusznym messengerze, zatem zostanie 6-cio krotnie skompresowane. W międzyczasie, jak będziecie mieli pecha, to jakiś wujek zrobi screena, zamiast zapisać zdjęcie w oryginalnej rozdzielczości, wówczas źle wygląda już na pierwszy rzut oka. Jakiekolwiek kadrowanie czy chęć wydruku zdjęcia obnaża pliki,z jakimi próbujemy dokonać takich manewrów. Zatem słowo klucz: upscaling.

Jednym z podstawowych algorytmów stosowanych w super-rozdzielczości jest konwolucyjna sieć neuronowa (CNN). Modele CNN wykorzystują konwolucje, które polegają na przetwarzaniu obrazu za pomocą filtrów wyodrębniających cechy charakterystyczne. Zasadniczo, model SR (Super Resolution) bazuje na wielu warstwach konwolucyjnych, które uczą się wydobywać coraz bardziej skomplikowane struktury obrazu. Dzięki procesowi uczenia nadzorowanego, sieć jest w stanie rozpoznać wzorce i zależności, które prowadzą do rekonstrukcji obrazu o wyższej rozdzielczości.

Popularnym podejściem do super-rozdzielczości jest zastosowanie generatywnych sieci kontradyktoryjnych (Generative Adversarial Networks). GAN składają się z dwóch rywalizujących sieci: generatora, który próbuje wygenerować obraz o wyższej rozdzielczości, oraz dyskryminatora, który ocenia, na ile generowany obraz jest realistyczny. Podczas treningu oba komponenty dążą do wzajemnego doskonalenia się, co prowadzi do uzyskania wyjątkowo szczegółowych wyników. Przykładem modelu wykorzystującego tę metodologię jest ESRGAN (Enhanced Super-Resolution Generative Adversarial Network), który wyróżnia się wysoką jakością detali oraz naturalnością tekstur.

Równie istotnym podejściem są modele oparte na transformatorach, takie jak SwinIR (Swin Transformer for Image Restoration). Zastosowanie architektury transformatorowej pozwala modelowi na efektywne przetwarzanie kontekstowych zależności pomiędzy różnymi obszarami obrazu. Transformator Swin, poprzez swój mechanizm samouwagowy (self-attention), umożliwia lepsze uchwycenie relacji długozasięgowych, co jest szczególnie korzystne przy rekonstrukcji szczegółów w obrazie o podwyższonej rozdzielczości.

Innym ciekawym aspektem jest wykorzystywanie tzw. uczenia resztowego (residual learning), które pomaga w efektywnej nauce modeli SR. Sieci resztowe uczą się rekonstruować różnicę pomiędzy obrazem o niskiej rozdzielczości a jego wersją o wysokiej rozdzielczości, co przyspiesza proces konwergencji modelu. Technika ta jest często stosowana w połączeniu z głębokimi sieciami konwolucyjnymi, takimi jak VDSR (Very Deep Super Resolution), które osiągają znakomite rezultaty pod względem jakości i szybkości.

Przystosowanych do tego modeli i narzędzi jest wiele. Osobiście korzystam z płatnego rozwiązania od Topaz Labs. Kiedyś aplikacje podzielone były na Denoise, Sharpener, Gigapixel etc., dziś spakowane jest to do jednego programu. Wykorzystam zatem zdjęcie z poprzedniego tekstu, niepodpisanego autora.

Oryginalny plik ma rozdzielczość 910×1370. Not great, not terrible. Na pewno nie jest to rozdzielczość, która satysfakcjonowałaby mnie do dalszego działania ze zdjęciem. Program pozwala na maksymalnie 6-cio krotne zwiększenie rozdzielczości obrazu. Do wyboru mamy kilka modeli, w zależności od potrzeb. Prawdopodobnie większość klientów będzie zainteresowana poprawą jakości zdjęć przedstawiających bliskich i ich samych, zatem największy nacisk położony został na face recovery, który to działa bardzo satysfakcjonująco i, niestety, bardzo często odstawia jakościowo pozostałą część kadru. Wówczas, osobiście, wchodzę do Photoshopa i łączę kilka zdjęć w jedno, spójne… Tak, jestem zapaleńcem i zwolennikiem quality contentu.

Ale odchodząc od moich zboczeń, tak prezentuje się obraz wyjściowy.

Staram się też dosyć ostrożnie obcować z suwakami, żeby zminimalizować sztuczność efektu.

Dużym wyzwaniem, ponownie, są kosmyki włosów. Tutaj do gry dołącza funkcja face recovery, która ma za zadanie urealnić twarz, zebrać z niej niepotrzebne przeostrzenie, jednocześnie dodając sztuczne rozmycie, aby ów twarz wyróżnić na zdjęciu. To, tak jak suwaki Minor Denoise/Deblur, powodować może nieprzyjemne artefakty i każde zdjęcie wymaga po prostu licznych prób i przybliżeń. 

Teraz na tapet weźmy moje stare zdjęcie krajobrazowe. Oryginalna rozdzielczość to 1080×720.

Tak prezentuje się przybliżenie na budynek i fragment natury:

A tutaj woda:

I na koniec przykład dosyć hardkorowy: zdjęcie które poczyniłem kilka lat temu telefonem HTC 10, z oryginalnej rozdzielczości 3984×2241, przeskalowane do 640×360. Porównamy zatem Upscale do oryginału.

Wycinki przedstawiają odpowiednio: plik bardzo mocno skompresowany, plik oryginalny, model standard oraz model high fidelity.

Tak wygląda bokeh, czyli okrągle rozmycia punktów światła.

Dla zaspokojenia potencjalnej ciekawości, pokażę Wam działanie funkcji wyostrzania i odszumiania zdjęć. Przed/po:

Zobacz także:

  • Piotr Szymański

    Kategoria:

    Hejka! Zapraszam na skrót z minionych dwóch tygodni, który przyswoić możecie przy ciepłej herbatce w te mroczne, szare dni. W opublikowanym przez Google 14 listopada ostrzeżeniu wskazano kilka najważniejszych rodzajów oszustw internetowych. Uwagę zwrócono między na niebezpieczne techniki ataków typu cloaking, które nabierają nowego wymiaru dzięki wykorzystaniu sztucznej inteligencji. Cloaking polega na ukrywaniu przed użytkownikiem […]
  • Piotr Szymański

    Kategoria:

    Hejka po dłuższej przerwie! Zaczynamy świeżym tematem. Raptem kilkanaście godzin temu do użytkowników trafiła, zapowiedziana 25 lipca, funkcja SearchGPT od OpenAI, umożliwiająca, w przeciwieństwie do tradycyjnych modeli językowych, na integrację z internetem w czasie rzeczywistym. SearchGPT ma dostęp do aktualnych informacji z sieci, co pozwala na udzielanie odpowiedzi opartych na najnowszych danych. Ponadto SearchGPT dostarcza […]
  • Piotr Szymański

    Kategoria:

    Hej! Robimy bardzo dużo zdjęć, a co za tym idzie – wiele z nich jest niechlujnych, z zabałagnionym tłem. Możemy jednak chcieć wykorzystać je do pochwalenia się naszym ryjkiem na jakimś publicznym profilu, gdyż np. naturalne, miękkie światło korzystnie eksponuje naszą facjatę. Podejścia mogą być dwa – albo zdecydujemy się na blur bądź zupełne usunięcie […]
  • Piotr Szymański

    Kategoria:

    Strzałeczka. Nvidia przejęła OctoAI, startup specjalizujący się w optymalizacji modeli uczenia maszynowego. To już piąta akwizycja Nvidii w 2024 roku, co czyni aktualnie nam panujący rok rekordowym pod względem liczby przejęć. OctoAI, założone w 2019 roku przez Luisa Ceze, skupiło się na tworzeniu oprogramowania zwiększającego wydajność modeli uczenia maszynowego na różnych platformach sprzętowych. Oprogramowanie OctoAI […]
  • Piotr Szymański

    Kategoria:

    Cześć i czołem! Przejdźmy od razu do rzeczy najistotniejszych, poważnych i brzemiennych w skutkach dla Nas wszystkich. Roblox właśnie pokazał nowe narzędzie AI, ubogacające możliwości platformy mocno stawiającej na sztuczną inteligencję. Zmiany mają zmienić sposób tworzenia gier i map, pozwalając na generowanie światów na bieżąco, bez potrzeby skomplikowanego programowania w języku Lua. Generatywna sztuczna inteligencja, […]