LPIPS
Jak działa
1) Wybor sieci bazowej: VGG-16 (default, najlepsza jakosc), AlexNet (szybsza, mobilna), lub SqueezeNet (najlzejsza). 2) Wyjscia wybranych warstw konwolucyjnych sieci (zwykle 5 warstw dla VGG) sa ekstrahowane dla obu porownywanych obrazow. 3) Aktywacje sa unit-normalizowane per-kanal per-pozycja przestrzenna. 4) Obliczana jest kwadratowa roznica L2 aktywacji — element-wise. 5) Dla kazdej warstwy roznice sa mnozone przez wektor nauczonych wag w (per-kanal, trenowanych na BAPPS). 6) Roznice per-warstwa sa usredniane po pozycjach przestrzennych (spatial mean). 7) Suma po wszystkich warstwach daje koncowy LPIPS. Zakres wartosci: 0 (identyczne) do ~1 (bardzo rozne).
Rozwiązany problem
Klasyczne metryki jakosci obrazu jak PSNR i SSIM sa prostymi, plytkimi funkcjami zaprojektowanymi recznie dla klasycznych znieksztalcen (kompresja JPEG, szum gaussowski, rozmycie). Nie potrafia oddac ludzkiej percepcji podobienstwa dla nowoczesnych artefaktow (wyjscie GAN, super-rozdzielczosc, style transfer) — zdarza sie, ze dwa obrazy percepcyjnie identyczne dla czlowieka maja diametralnie rozne PSNR. Brakowalo obiektywnej, powtarzalnej metryki podobienstwa skalibrowanej na faktycznej ludzkiej percepcji, dzialajacej na szerokim spektrum znieksztalcen.
Komponenty
Implementacja
Ewolucja
Hiperparametry (konfigurowalne osie)
VGG-16: najlepsza korelacja z ludzkim rankingiem, wolniejsza (~5-10x wolniej od SqueezeNet). AlexNet: kompromis. SqueezeNet: najlzejszy, do zastosowan mobilnych i real-time.
„Lin" — wagi w wytrenowane na BAPPS (rekomendowane). „Lin-tune" — dodatkowo dostrojone backbone. Wersja bez wag (surowe features) dziala ale slabiej.
Standardowo 64x64 lub 224x224 (ImageNet default). Wyzsza rozdzielczosc zwieksza pamiec i czas O(n^2), ale nie zawsze poprawia korelacje z ludzka percepcja — wysokie warstwy CNN maja duze recepcyjne pola i tak.
Uzycie LPIPS jako loss term wymaga rozniczkowalnosci calego pipeline'u (gradienty przez CNN backbone). Uzycie tylko jako metryka ewaluacyjna moze byc no-grad (szybsze).
Backbone spodziewa sie 3 kanalow RGB. Dla grayscale wystarczy replikacja kanalu. Range wartosci [-1, 1] (input normalization ImageNet).
Paradygmat wykonania
LPIPS aktywuje caly forward pass CNN dla obu obrazow — wszystkie warstwy, wszystkie kanaly, wszystkie pozycje przestrzenne. Bez skiplayerow ani sparse computation.
Równoległość
Obliczanie LPIPS jest w pelni rownoleglizowalne. Forward pass CNN dla batcha par obrazow — identyczny jak inferencja klasyfikacyjna. Redukcja przez warstwy niezalezna — kazda warstwa moze byc liczona niezaleznie. Skalowanie liniowe do rozmiaru batcha az do wypelnienia GPU.