9 minute read

Tomasz HACHAJ Przewidywanie skupienia wzroku przy użyciu metod komputerowych

Przewidywanie skupienia wzroku przy użyciu metod komputerowych

Tomasz Hachaj

Advertisement

Zastosowanie nowoczesnych technologii komputerowych stało się codziennością w pracy fotografów, grafików i marketingowców. Postępy w technologii komputerowej oraz badaniach naukowych znacząco poprawiają komfort oraz wydajność naszych działań. W dalszym ciągu jednak niewiadomą pozostaje to, w jaki sposób nasza praca zostanie oceniona przez odbiorcę, czyli widza. Na co on zwróci uwagę? Które elementy kompozycji zatrzymają jego spojrzenie na dłużej, a po których jedynie „przemknie” wzrokiem? Wieloletnie doświadczenie w branży pozwala na ocenę i bardziej lub mniej trafne przewidzenie tych reakcji. Tym niemniej warto mieć narzędzie, które pozwoliłoby na spojrzenie na nasze dzieło z perspektywy przeciętnego widza. Tu z pomocą mogą przyjść najnowsze osiągnięcia, łączące wyniki analizy eye tacking oraz sztucznej inteligencji, w szczególności uczenia maszynowego.

W artykule tym chciałbym przybliżyć zasady działania algorytmów, pozwalających na przewidywanie, na jakich elementach grafiki rastrowej i na jak długo skupia się wzrok obserwatora. Omówię tu podstawowe aspekty tych metod tak, aby sami mogli Państwo ocenić ich cechy pozytywne i ograniczenia, a co za tym idzie — ocenić przydatność w branży. Każde z poruszanych w artykule zagadnień jest bardzo szerokie i posiada wiele interesujących zastosowań. Skupimy się jednak tylko na tych, które są istotne z punktu widzenia przewidywania skupienia wzroku. Pomimo tego, że artykuł ten jest pracą popularnonaukową, znajdują się w nim odnośniki do zbiorów danych oraz artykułów naukowych, które w sposób ścisły opisują zaprezentowane tu metody.

Zapewne pierwsze, co przychodzi nam do głowy, kiedy myślimy o ilościowej analizie procesu obserwacji, jest technologia eye tracking. Pozwala ona na rejestrowanie ruchu gałek ocznych przy pomocy kamer o wysokiej częstotliwości akwizycji obrazu, przekraczającej nawet 1000HZ. Metoda ta pozwala nie tylko na bardzo dokładną analizę, na jakich obiektach skupia się wzrok obserwatora (są to tak zwane fiksacje) ale również na wykrycie stanów przejściowych, w których wzrok przenosi się pomiędzy obiektami (sakady). Istnieje wiele sposobów wizualizacji wyników badań metodą eye tracking, wśród nich znajdują się mapy ciepła (heat maps). Mapy ciepła są grafikami rastrowymi o takiej samej rozdzielczości, jak analizowane obrazy. Najczęściej są to obrazy monochromatyczne, w których jasność piksela proporcjonalna jest do czasu, który obserwator spędził obserwując konkretny fragment analizowanego zdjęcia. Aby ułatwić wizualny odbiór tych map są one zazwyczaj nakładane na analizowane zdjęcie i kolorowane.

Kolejnym istotnym elementem jest metoda komputerowa, pozwalająca na wykorzystanie obserwacji eye tacking do wyciągnięcia pewnych ogólnych i nieoczywistych wniosków dotyczących tego, jakie elementy zdjęcia i w jakiej konfiguracji mogą szczególnie przykuwać uwagę obserwatora. Do przeprowadzenia takich obliczeń używa się obecnie głębokich sieci neuronowych. Głębokie sieci neuronowe to algorytmy komputerowe, które składają się z pewnej liczby warstw. Warstwy te wykonują operacje na sygnale wejściowym, przekształcając go do założonej wcześniej postaci wyjściowej. Sygnałem wejściowym może być na przykład zdjęcie albo ogólniej — grafika rastrowa. Każda warstwa głębokiej sieci neuronowej należy do jednego zdefiniowanego typu. Działanie niektórych typów warstw

[33]

jest zdeterminowane przez zestawy parametrów liczbowych. Dobieranie tych parametrów odbywa się automatycznie podczas procesu nazywanego treningiem sieci. Treningu sieci dokonuje algorytm optymalizacyjny, który korzysta ze zbioru treningowego. Zbiór treningowy najczęściej składa się par. W skład każdej pary wchodzi pojedyncza grafika rastrowa oraz wartość, którą powinna zwrócić na wyjściu sieć dla tej właśnie grafiki oraz wszystkich podobnych do niej grafik. Na przykład mogą to być pary: zdjęcie oraz identyfikator typu obiektu (klasy obiektu), który ukazano na zdjęciu (kot, pies, samochód itp.). Jeżeli zbiór treningowy posiada wiele przykładów zdjęć obiektów tego samego typu to sieć, poprzez proces treningu, może nauczyć się rozpoznawać to, co znajduje się na zdjęciach. Ten proces nazywa się klasyfikacją a sieć, która dokonuje klasyfikacji, nazywa się klasyfikatorem. Jeżeli sieć potrafi prawidłowo identyfikować obiekty, które znajdują się na zdjęciach, a które nie znajdowały się wcześniej w zbiorze treningowym, mówimy że sieć ma właściwości generalizujące. Tylko sieć posiadająca takie właściwości jest przydatna w praktyce, ponieważ zbiór treningowy może posiadać tylko skończoną liczbę obrazów rastrowych. Oczywiście sieć może rozpoznawać tylko te klasy obiektów, które znajdowały się w zbiorze treningowym. Jeżeli nie było tam na przykład słonia, zwierzę to nie zostanie nigdy zidentyfikowane na zdjęciu. Wyjście sieci neuronowej może zwracać również bardziej złożone wartości niż pojedynczy identyfikator klasy. Może to być na przykład zestaw kilku potencjalnych identyfikatorów klas. W takim wypadku sieć może klasyfikować zdjęcie do wielu klas równocześnie. Właśnie na tej zasadzie działa wiele algorytmów na platformach społecznościowych, które w sposób automatyczny analizują zawartość zdjęć wgrywanych przez użytkowników. Jeżeli algorytm sieci neuronowej wykryje, że na zdjęciu znajdują się na przykład niepożądane dla danej platformy społecznościowej treści, można w sposób automatyczny zabronić ich publikacji i poinformować moderatorów o całym zdarzeniu. W wypadku platform posiadających dziesiątki milionów aktywnych użytkowników pewna automatyzacja takich działań jest nieodzowna aby zapobiec rozprzestrzenianiu się treści zabronionych przez prawo.

Nas jednak interesuje inna konfiguracja sieci. Chcemy, aby na wejściu nasza sieć pobierała zdjęcie, zaś na wyjściu zwracała przewidywaną mapę skupienia wzroku użytkownika na tym obrazie — mapę zbliżoną do tej, którą uzyskalibyśmy analizując zdjęcie przy pomocy badania eye tracking. W tym celu możemy wykorzystać sieć o architekturze koder–dekoder, wykorzystującą warstwy splotowe (konwolucyjne, convolutional) oraz warstwy łączące (pooling). Filtracja splotowa jest bardzo popularną metodą przetwarzania obrazów. Możemy spotkać ją w prawie każdym rozbudowanym programie do grafiki rastrowej. Jest to numeryczna (komputerowa) implementacja matematycznego operatora splotu funkcji. W grafice komputerowej splot funkcji odbywa się pomiędzy obrazem wejściowym a tak zwaną macierzą jądra filtra (kernel). Macierze jądra mogą mieć różne rozmiary (różne liczby współczynników), a współczynniki są liczbami rzeczywistymi, zarówno ujemnymi, jak i dodatnimi. O działaniu filtra decyduje właśnie rozmiar macierzy i wartości współczynników jądra. Najczęściej stosowanymi w praktyce grafiki komputerowej filtrami splotowymi są detektory krawędzi Sobela, Prewitta i Robertsa (nazwiska ich wynalazców) oraz filtry rozmywające: uśredniający oraz Gaussa. W wypadku filtra Gaussa jądro składa się ze współczynników dwuwymiarowej funkcji Gaussa. W wyniku działania filtra splotowego otrzymujemy nowy obraz o tej samej rozdzielczości co obraz wejściowy.

W praktyce najczęściej filtry splotowe grupuje się w kaskady. Kaskady to następu-

[34]

Wizualizacja działania kodera-dekodera przewidującego skupienie wzroku. Obraz wejściowy ma rozdzielczość 224 × 224 pikseli. Można zauważyć, że filtry splotowe kolejnych warstw pełnią rolę wyspecjalizowanych detektorów krawędzi. Liczby poniżej nazwy każdej warstwy oznaczają rozdzielczości obrazów wyjściowych. Źródło zdjęcia wejściowego: zbiór danych SALICON.

jące po sobie warstwy sieci neuronowej tego samego typu. Najczęściej pojedynczy element kaskady składa się z dwóch warstw: splotowej oraz łączącej. Pojedyncza warstwa splotowa w kaskadzie zawiera kilka filtrów splotowych o tym samym rozmiarze jądra ale o różnych wartościach współczynników. Po warstwie splotowej następuje warstwa łącząca, której celem jest zmniejszenie rozdzielczości otrzymanych obrazków. Zmniejszenie rozdzielczości odbywa się najczęściej poprzez uśrednienie wartości kilku znajdujących się obok siebie pikseli (łączenie przez uśrednienie, average pooling), wzięcia wartości maksymalnej z kilku znajdujących się obok siebie pikseli (maxpooling) lub obliczenia wartości minimalnej z kilku znajdujących się obok siebie pikseli (minpooling). Kaskadę filtrów można wyobrazić sobie jako piramidę, której podstawa ma powierzchnię równą rozdzielczości obrazu wejściowego, szczyt natomiast posiada rozdzielczość, którą obraz wejściowy otrzymuje po ostatniej warstwie łączącej. Możemy również zbudować odwrotną kaskadę, w której każda z warstw będzie zwiększała rozdzielczość obrazu. Warstwy, które tego dokonują, nazywane są transponowanymi wstawami splotowymi albo warstwami dekonwolucyjnymi (transposed convolutional layer, deconvolutional layer).

Sieć neuronowa o architekturze koderdekoder działa na zasadzie kaskady filtrów splotowych. Sieć tego typu składa się z dwóch części: kodera oraz dekodera. Koder składa się z następujących po sobie par warstwy splotowej oraz łączącej. Celem kodera jest przekształcenie wejściowego obrazu do pojedynczego wektora. Wektor ten reprezentuje pewne istotne cechy całego obrazu. Następnie ten wektor staje się wejściem do drugiej części sieci — dekodera. Dekoder zbudowany jest z transponowanych warstw splotowych. Transponowane warstwy splotowe obliczają obraz wyjściowy, który ma (zazwyczaj) taką samą

[35]

Dane rzeczywiste Wyniki działania sieci

Przykładowe wyniki opisanego w artykule algorytmu. Źródło zdjęcia wejściowego: zbiór danych SALICON

rozdzielczość jak obraz wejściowy. Celem dekodera jest więc wygenerowanie obrazu wyjściowego. Przy pomocy sieci koder-dekoder możemy realizować dwie funkcjonalności: auto kodera-dekodera albo heterokodera-dekodera. Funkcja tej sieci zależy przede wszystkim od wyboru zbioru treningowego. Auto koder-dekoder jest wykorzystywany zazwyczaj do usuwania zakłóceń w obrazie. Zbiór treningowy składa się wtedy ze zbioru par, w którym każda para ma dwa identyczne obrazy rastrowe. Na przykład każda para może zawierać odręcznie napisaną literę alfabetu. Sieć uczy się wtedy uśredniać wygląd poszczególnych liter. Po wytrenowaniu, jeżeli sieć otrzyma na wejściu niestarannie napisaną literę, powinna ona odtworzyć na wyjściu tę samą literę ale pozbawioną niestaranności, które wynikają z charakteru pisma autora przekazu. Dużo ciekawszym przypadkiem są hetero koderydekodery. Pary występujące w zbiorze treningowym zawierają obraz wejściowy oraz inny obraz, który w jakiś sposób powiązany jest z pierwszym, na przykład może to być zdjęcie oraz odpowiadająca mu mapa cieplna pochodząca z badania eye tracking. Aby sieć tego typy posiadała zdolności generalizowania może być potrzebne rozbudowanie architektury sieci o dodatkowe dekodery.

W najnowszych pracach naukowych1 skutecznie działające sieci generujące mapy cieplne mają nie jeden, ale aż trzy dekodery. Koder takiej sieci jest kaskadą składającą się z pięciu par warstw splotowych oraz warstw max pooling. Kaskada ta jest częścią głębokiej sieci o nazwie VGG162, która jest obecnie jedną z najpopularniejszych architektur tego typu. Wagi poszczególnych warstw filtrów sieci VGG16 ustalane są w procesie treningu na bardzo dużym zbiorze danych ImageNet3, które zawierają blisko 1000 klas obiektów. Kaskada pierwszego dekodera pobiera dane z wyjścia trzeciej warstwy kaskady kodera. Kaskada drugiego dekodera pobiera dane z wyjścia czwartej warstwy kaskady kodera. Kaskada trzeciego dekodera pobiera dane z wyjścia piątej warstwy kaskady kodera. Takie podejście ma na celu pobranie zarówno szczegółowych jak i globalnych cech obrazu wejściowego, które uwidoczniają się wraz ze zmniejszaniem jego rozdzielczości. Ostateczny obraz wyjściowy — aproksymacja mapy cieplnej — powstaje poprzez dokonanie operacji splotu na trzech ob-

[36]

1 Wenguan Wang, Jianbing Shen, Deep Visual Attention Prediction, 2017, arXiv:1705.02544 2 Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition, 2014, arXiv:1409.1556 3 http://www.image-net.org/

(foto Lilianna Wolnik)

razach wynikowych trzech dekoderów. Trening całości sieci odbywa się na zbiorze danych SALICON4, który składa się z 10 000 par zdjęć oraz przypisanych do nich map cieplnych. Ponieważ wagi kodera zostały ustalone wcześniej (podczas treningu sieci VGG16), modyfikujemy jedynie wagi dekoderów.

Wyniki działania powyższej sieci są bardzo zbliżone do wyników otrzymywanych przy pomocy eye tracking, jednak nie są idealne. Poważnym ograniczeniem jest w dalszym ciągu rozdzielczość obrazów, na których może działać sieć. Przy niewielkiej rozdzielczości obrazu wejściowego (224 × 224 piksela) i trzech kanałach koloru sieć posiada 25 863 779 parametry, w tym 11 143 329, które muszą być wytrenowane. Z perspektywy współczesnego sprzętu komputerowego nie są to wartości niebotyczne wielkie — zarówno trening sieci jak i jej szybkie działanie mogą być z powodzeniem zrealizowane na komputerze wyposażonym w kartę graficz-

4 Jiang, Ming & Huang, Shengsheng & Duan, Juanyong & Zhao, Qi. (2015). SALICON: Saliency in Context. 10.1109/CVPR.2015.7298710. ną ze średniej półki (zarówno trening głębokich sieci neuronowej jak i jej działanie oblicza się obecnie przy pomocy procesorów karty graficznej), jednak zwiększenie rozdzielczości filtrów kodera-dekodera mogłoby już stanowić poważniejszy problem obliczeniowy. Drugim ograniczeniem jest brak odpowiednio dużego zbioru danych treningowych, który powinien liczyć zapewne nie dziesiątki, ale setki tysięcy przykładów, aby sieć mogła uzyskać dobrą generalizację wyników. Pomimo tych ograniczeń model sieci jest niezwykle ciekawym i obiecującym rozwiązaniem o szerokim zastosowaniu, w szczególności dla branży marketingowej, dla której korzystanie z wyników analizy eye tracking staje się chlebem powszednim. Zastosowanie takiej sieci pozwala na wstępne oszacowanie skupienia wzroku obserwatora bez konieczności przeprowadzania kosztowanych badań.

Obecnie w Instytucie Informatyki Uniwersytetu Pedagogicznego imienia Komisji Edukacji Narodowej w Krakowie prowadzimy zaawansowane prace w zakresie przewidywania skupienia wzroku i ich zastosowań w grafice, marketingu i edukacji.

[37]

This article is from: