Wprowadzenie do Super Resolution przy użyciu Deep Learning

Super Resolution jest procesem odzyskiwania wysokiej rozdzielczości (HR) obraz z danego niskiej rozdzielczości (LR) obrazu. Obraz może mieć „niższą rozdzielczość” ze względu na mniejszą rozdzielczość przestrzenną (tj. rozmiar) lub ze względu na wynik degradacji (np. rozmycie). Możemy powiązać obrazy HR i LR za pomocą następującego równania: LR = degradation(HR)

Obraz o niskiej rozdzielczości przechowywany obok jego wersji o wysokiej rozdzielczości. (Photo by Jarrad Horne on Unsplash)

Wyraźnie, po zastosowaniu funkcji degradacji, otrzymujemy obraz LR z obrazu HR. Ale, czy możemy zrobić odwrotność? W idealnym przypadku, tak! Jeśli znamy dokładną funkcję degradacji, stosując jego odwrotność do obrazu LR, możemy odzyskać obraz HR.

Ale, tam w leży problem. Zazwyczaj nie znamy funkcji degradacji przed ręką. Bezpośrednie oszacowanie odwrotności funkcji degradacji jest źle rozwiązanym problemem. Pomimo tego, techniki Deep Learning okazały się skuteczne w Super Resolution.

Ten blog skupia się przede wszystkim na zapewnieniu wprowadzenia do wykonywania Super Resolution przy użyciu Deep Learning z wykorzystaniem metod szkolenia nadzorowanego. Niektóre ważne funkcje straty i metryki są również omówione. Wiele treści pochodzi z tego przeglądu literatury, do którego czytelnik może się odnieść.

Metody nadzorowane

Jak wspomniano wcześniej, głębokie uczenie może być użyte do oszacowania obrazu o wysokiej rozdzielczości (HR), biorąc pod uwagę obraz o niskiej rozdzielczości (LR). Używając obrazu HR jako celu (lub ground-truth) i obraz LR jako wejście, możemy traktować to jak problem uczenia nadzorowanego.

W tej sekcji, grupujemy różne podejścia głębokiego uczenia w sposób, w jaki warstwy konwolucji są zorganizowane. Zanim przejdziemy do poszczególnych grup, przedstawimy elementarz dotyczący przygotowania danych i rodzajów konwolucji. Funkcje straty używane do optymalizacji modelu są przedstawione osobno pod koniec tego bloga.

Przygotowanie danych

Jedną z łatwych metod uzyskania danych LR jest degradacja danych HR. Często robi się to poprzez rozmycie lub dodanie szumu. Obrazy o niższej rozdzielczości przestrzennej mogą być również skalowane klasyczną metodą upsamplingu, taką jak interpolacja bilinearna lub bikubiczna. Artefakty JPEG i kwantyzacji mogą być również wprowadzone w celu degradacji obrazu.

Degradacja obrazu o wysokiej rozdzielczości w celu uzyskania jego wersji o niskiej rozdzielczości. (Photo by Jarrad Horne on Unsplash)

Jedną z ważnych rzeczy, na którą należy zwrócić uwagę, jest to, że zaleca się przechowywanie obrazu HR w nieskompresowanym (lub bezstratnie skompresowanym) formacie. Ma to na celu zapobieżenie degradacji jakości obrazu HR z powodu stratnej kompresji, która może dać nieoptymalną wydajność.

Typy konwolucji

Poza klasycznymi konwolucjami 2D, kilka ciekawych wariantów może być używanych w sieciach w celu uzyskania lepszych wyników. Dilated (Atrous) convolutions może zapewnić większe efektywne pole widzenia, a więc wykorzystanie informacji, które są oddzielone dużą odległością. Skip connections, Spatial Pyramid Pooling i Dense Blocks motywują do łączenia zarówno cech niskiego, jak i wysokiego poziomu w celu zwiększenia wydajności.

Strategie projektowania sieci. (Źródło)

Na powyższym rysunku wymieniono szereg strategii projektowania sieci. Więcej informacji można znaleźć w tym dokumencie. Aby uzyskać elementarz na temat różnych typów konwolucji powszechnie stosowanych w głębokim uczeniu, możesz odwołać się do tego bloga.

Grupa 1 – Pre-Upsampling

W tej metodzie obrazy o niskiej rozdzielczości są najpierw interpolowane, aby uzyskać „gruby” obraz o wysokiej rozdzielczości. Teraz, CNN są używane do uczenia się mapowania end-to-end z interpolowanych obrazów niskiej rozdzielczości do obrazów wysokiej rozdzielczości. Intuicja podpowiada, że może być łatwiej najpierw dokonać upsamplingu obrazów o niskiej rozdzielczości przy użyciu tradycyjnych metod (takich jak interpolacja biliniowa), a następnie udoskonalić wynik, niż uczyć się bezpośredniego mapowania z przestrzeni niskowymiarowej do przestrzeni wysokowymiarowej.

Typowa sieć wstępnego upsamplingu. (Źródło)

Na stronie 5 tego dokumentu można znaleźć kilka modeli wykorzystujących tę technikę. Zaletą jest to, że ponieważ upsampling jest obsługiwany przez tradycyjne metody, CNN musi się tylko nauczyć, jak udoskonalać zgrubny obraz, co jest prostsze. Ponadto, ponieważ nie używamy tutaj transponowanych konwolucji, artefakty szachownicy mogą być omijane. Jednak minusem jest to, że predefiniowane metody upsamplingu mogą wzmacniać szum i powodować rozmycie.

Grupa 2- Post-Upsampling

W tym przypadku obrazy o niskiej rozdzielczości są przekazywane do CNN jako takie. Upsampling jest wykonywany w ostatniej warstwie przy użyciu warstwy uczącej się.

Typowa sieć post-upsamplingu. (Źródło)

Zaletą tej metody jest to, że ekstrakcja cech odbywa się w przestrzeni o niższym wymiarze (przed upsamplingiem), a więc złożoność obliczeniowa jest mniejsza. Ponadto, dzięki zastosowaniu uczenia warstwy upsamplingu, model może być trenowany end-to-end.

Grupa 3- Progressive Upsampling

W powyższej grupie, pomimo zmniejszenia złożoności obliczeniowej, zastosowano tylko pojedynczą konwolucję upsamplingu. Sprawia to, że proces uczenia jest trudniejszy dla dużych współczynników skalowania. Aby wyeliminować tę wadę, w pracach takich jak Laplacian Pyramid SR Network (LapSRN) i Progressive SR (ProSR) zastosowano progresywny upsampling. Modele w tym przypadku wykorzystują kaskadę sieci CNN do stopniowej rekonstrukcji obrazów o wysokiej rozdzielczości przy mniejszych współczynnikach skalowania na każdym kroku.

Typowa sieć progresywnego upsamplingu. (Źródło)

Dzięki dekompozycji trudnego zadania na prostsze zadania, trudność uczenia się jest znacznie zmniejszona i można uzyskać lepsze wyniki. Ponadto strategie uczenia się, takie jak uczenie się programowe, mogą być zintegrowane w celu dalszego zmniejszenia trudności uczenia się i poprawy końcowej wydajności.

Grupa 4 – Iteracyjne próbkowanie w górę i w dół

Inną popularną architekturą modelu jest struktura klepsydry (lub U-Net). Niektóre warianty, takie jak sieć Stacked Hourglass, wykorzystują kilka struktur klepsydrowych w szeregu, efektywnie stosując naprzemiennie proces próbkowania w górę i w dół.

Typowa sieć iteracyjnego próbkowania w górę i w dół. (Źródło)

Modele działające w tych ramach mogą lepiej wydobywać głębokie relacje między parami obrazów LR-HR, a tym samym dostarczać wyższej jakości wyniki rekonstrukcji.

Funkcje strat

Funkcje strat są używane do pomiaru różnicy między wygenerowanym obrazem wysokiej rozdzielczości a obrazem wysokiej rozdzielczości prawdy o podłożu. Różnica ta (błąd) jest następnie wykorzystywana do optymalizacji modelu uczenia nadzorowanego. Istnieje kilka klas funkcji straty, z których każda penalizuje inny aspekt wygenerowanego obrazu.

Często, więcej niż jedna funkcja straty jest używana poprzez ważenie i sumowanie błędów uzyskanych z każdej funkcji straty indywidualnie. Pozwala to modelowi skupić się na aspektach, do których przyczynia się wiele funkcji straty jednocześnie.

total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3

W tej sekcji zbadamy kilka popularnych klas funkcji straty używanych do szkolenia modeli.

Strata pikselowa

Strata pikselowa jest najprostszą klasą funkcji straty, w której każdy piksel w wygenerowanym obrazie jest bezpośrednio porównywany z każdym pikselem w obrazie prawdy o podłożu. Stosowane są popularne funkcje straty, takie jak strata L1 lub L2 lub zaawansowane warianty, takie jak Smooth L1 loss.

Plot of Smooth L1 Loss. (Źródło)

Metryka PSNR (omówiona poniżej) jest silnie skorelowana z różnicą pikseli, a zatem minimalizacja utraty pikseli bezpośrednio maksymalizuje wartość metryki PSNR (wskazując na dobrą wydajność). Jednakże, strata pikselowa nie uwzględnia jakości obrazu i model często daje percepcyjnie niezadowalające wyniki (często brakuje szczegółów o wysokiej częstotliwości).

Strata treści

Ta strata ocenia jakość obrazu na podstawie jego jakości percepcyjnej. Interesującym sposobem jest porównanie cech wysokopoziomowych wygenerowanego obrazu i obrazu prawdy. Możemy uzyskać te cechy wysokiego poziomu przepuszczając oba obrazy przez wstępnie wytrenowaną sieć klasyfikacji obrazów (taką jak VGG-Net lub ResNet).

Strata zawartości pomiędzy obrazem prawdy podstawowej a obrazem wygenerowanym. (Źródło)

Powyższe równanie oblicza stratę zawartości między obrazem prawdy podstawowej a wygenerowanym obrazem, biorąc pod uwagę wstępnie wytrenowaną sieć (Φ) i warstwę (l) tej wstępnie wytrenowanej sieci, na której obliczana jest strata. Ta strata zachęca wygenerowany obraz do bycia percepcyjnie podobnym do obrazu prawdy. Z tego powodu, jest ona również znana jako strata percepcyjna.

Strata tekstury

Aby umożliwić generowanemu obrazowi posiadanie tego samego stylu (tekstury, koloru, kontrastu itp.) co obraz prawdy podstawowej, używana jest strata tekstury (lub strata rekonstrukcji stylu). Tekstura obrazu, jak opisano przez Gatys et. al, jest zdefiniowana jako korelacja pomiędzy różnymi kanałami cech. Kanały cech są zwykle uzyskiwane z mapy cech wyodrębnionej przy użyciu wstępnie wytrenowanej sieci klasyfikacji obrazu (Φ).

Obliczanie macierzy Grama. (Źródło)

Korelacja między mapami cech jest reprezentowana przez macierz Grama (G), która jest iloczynem wewnętrznym między zwektoryzowanymi mapami cech i i j na warstwie l (pokazanej powyżej). Po obliczeniu macierzy Grama dla obu obrazów, obliczenie straty tekstury jest proste, jak pokazano poniżej:

Obliczanie straty tekstury. (Źródło)

Używając tej straty, model jest motywowany do tworzenia realistycznych tekstur i bardziej satysfakcjonujących wizualnie rezultatów.

Total Variation Loss

Strata Total Variation (TV) jest używana do tłumienia szumu w generowanych obrazach. Bierze ona pod uwagę sumę bezwzględnych różnic między sąsiadującymi pikselami i mierzy, ile szumu jest na obrazie. Dla wygenerowanego obrazu strata TV jest obliczana w sposób przedstawiony poniżej:

Totalna strata zmienności stosowana na wygenerowanym obrazie o wysokiej rozdzielczości. (Źródło)

Tutaj, i,j,k iteruje odpowiednio po wysokości, szerokości i kanałach.

Strata awersyjna

Generative Adversarial Networks (GANs) są coraz częściej używane do kilku zastosowań opartych na obrazie, w tym Super Resolution. GAN zazwyczaj składają się z systemu dwóch sieci neuronowych – Generatora i Dyskryminatora – pojedynkujących się ze sobą.

Dając zestaw próbek docelowych, Generator próbuje wyprodukować próbki, które mogą oszukać Dyskryminator, aby uwierzył, że są prawdziwe. Dyskryminator próbuje odróżnić próbki prawdziwe (docelowe) od fałszywych (wygenerowanych). Używając tego iteracyjnego podejścia do treningu, ostatecznie uzyskujemy Generator, który jest naprawdę dobry w generowaniu próbek podobnych do próbek docelowych. Poniższy obrazek pokazuje strukturę typowego GAN.

GAN w akcji. (Źródło)

Ulepszenia podstawowej architektury GAN zostały wprowadzone w celu zwiększenia wydajności. Na przykład, Park et. al. użyli dyskryminatora na poziomie cech, aby uchwycić bardziej znaczące potencjalne atrybuty prawdziwych obrazów wysokiej rozdzielczości. Możesz sprawdzić ten blog, aby uzyskać bardziej szczegółowy przegląd postępów w GANs.

Typowo, modele wytrenowane z przeciwstawną stratą mają lepszą jakość percepcyjną, nawet jeśli mogą stracić na PSNR w porównaniu do tych wytrenowanych na stracie pikseli. Jednym małym minusem jest to, że proces szkolenia GAN jest nieco trudny i niestabilny. Jednakże, metody stabilizacji treningu GAN są aktywnie opracowywane.

Metryki

Jednym z ważniejszych pytań jest to, jak ilościowo ocenić wydajność naszego modelu. Szereg technik oceny jakości obrazu (IQA) (lub metryk) jest używanych do tego samego. Te metryki mogą być szeroko klasyfikowane w dwóch kategoriach – subiektywne metryki i obiektywne metryki.

Subiektywne metryki są oparte na ludzkiej ocenie percepcyjnej obserwatora, podczas gdy obiektywne metryki są oparte na modelach obliczeniowych, które próbują ocenić jakość obrazu. Subiektywne metryki są często bardziej „percepcyjnie dokładne”, jednak niektóre z tych metryk są niewygodne, czasochłonne lub drogie w obliczaniu. Innym problemem jest to, że te dwie kategorie metryk mogą nie być ze sobą spójne. Dlatego też, badacze często wyświetlają wyniki używając metryk z obu kategorii.

W tej sekcji, krótko zbadamy kilka szeroko używanych metryk do oceny wydajności naszego modelu super rozdzielczości.

PSNR

Peak Signal-to-Noise Ratio (PSNR) jest powszechnie używaną obiektywną metryką do pomiaru jakości rekonstrukcji stratnej transformacji. PSNR jest odwrotnie proporcjonalny do logarytmu średniego błędu kwadratowego (MSE) między obrazem prawdy podstawowej a obrazem wygenerowanym.

Obliczanie PSNR. (Źródło)

W powyższym wzorze, L jest maksymalną możliwą wartością piksela (dla 8-bitowych obrazów RGB jest to 255). Nic dziwnego, ponieważ PSNR dotyczy tylko różnicy między wartościami pikseli, nie reprezentuje on tak dobrze jakości percepcyjnej.

SSIM

Podobieństwo strukturalne (SSIM) jest subiektywną metryką używaną do pomiaru strukturalnego podobieństwa między obrazami, opartą na trzech względnie niezależnych porównaniach, mianowicie luminancji, kontraście i strukturze. Abstrakcyjnie, wzór SSIM może być przedstawiony jako ważony iloczyn porównania luminancji, kontrastu i struktury obliczanych niezależnie.

SSIM jest ważonym iloczynem porównań, jak opisano powyżej. (Źródło)

W powyższym wzorze, alfa, beta i gamma są wagami odpowiednio funkcji porównania luminancji, kontrastu i struktury. Powszechnie stosowana reprezentacja formuły SSIM jest przedstawiona poniżej:

Powszechnie stosowana reprezentacja formuły SSIM. (Źródło)

W powyższym wzorze μ(I)przedstawia średnią danego obrazu, σ(I)przedstawia odchylenie standardowe danego obrazu,σ(I,I')przedstawia kowariancję między dwoma obrazami, a C1, C2 są stałymi ustawionymi w celu uniknięcia niestabilności. Dla zwięzłości, znaczenie terminów i dokładne wyprowadzenie nie jest wyjaśnione w tym blogu, a zainteresowany czytelnik może sprawdzić Sekcję 2.3.2 w tym artykule.

Dzięki możliwemu nierównomiernemu rozkładowi cech statystycznych obrazu lub zniekształceń, ocena jakości obrazu lokalnie jest bardziej wiarygodna niż stosowanie jej globalnie. Średnia SSIM (MSSIM), która dzieli obraz na wiele okien i uśrednia SSIM otrzymane w każdym oknie, jest jedną z takich metod lokalnej oceny jakości.

W każdym razie, ponieważ SSIM ocenia jakość rekonstrukcji z perspektywy ludzkiego systemu wzrokowego, lepiej spełnia wymagania oceny percepcyjnej.

Inne wyniki IQA

Bez wyjaśnienia, niektóre inne metody oceny jakości obrazu są wymienione poniżej. Zainteresowany czytelnik może odnieść się do tej pracy po więcej szczegółów.

  • Mean Opinion Score (MOS)
  • Task-based Evaluation
  • Information Fidelity Criterion (IFC)
  • Visual Information Fidelity (VIF)

Podsumowanie

Ten artykuł na blogu obejmował pewne materiały wprowadzające i procedury szkolenia modeli głębokiego uczenia dla Super Resolution. Istnieją rzeczywiście bardziej zaawansowane techniki wprowadzone przez najnowocześniejsze badania, które mogą przynieść lepszą wydajność. Ponadto, badania nad takimi zagadnieniami jak nienadzorowana superrozdzielczość, lepsze techniki normalizacji i lepsze reprezentatywne metryki mogą znacznie rozwinąć tę dziedzinę. Zainteresowanych czytelników zachęcamy do eksperymentowania z ich innowacyjnymi pomysłami poprzez udział w wyzwaniach takich jak PIRM Challenge.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.