Automatyczna detekcja emocji na podstawie mimiki twarzy człowieka
Transkrypt
Automatyczna detekcja emocji na podstawie mimiki twarzy człowieka
UNIWERSYTET IM. ADAMA MICKIEWICZA WYDZIAŁ MATEMATYKI I INFORMATYKI Sławomir Sosiński nr albumu: s351853 Automatyczna detekcja emocji na podstawie mimiki twarzy człowieka Praca magisterska na kierunku: INFORMATYKA Promotor: Prof. UaM. Dr. Hab. Krzysztof Jassem Poznań 2014 Poznań, dnia 30.09.2014 (data) OŚWIADCZENIE Ja, niżej podpisany Sławomir Sosiński student Wydziału Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza w Poznaniu oświadczam, że przedkładaną pracę dyplomową pt: „Automatyczna detekcja emocji na podstawie mimiki twarzy człowieka” napisałem samodzielnie. Oznacza to, że przy pisaniu pracy, poza niezbędnymi konsultacjami, nie korzystałem z pomocy innych osób, a w szczególności nie zlecałem opracowania rozprawy lub jej części innym osobom, ani nie odpisywałem tej rozprawy lub jej części od innych osób. Oświadczam również, że egzemplarz pracy dyplomowej w wersji drukowanej jest całkowicie zgodny z egzemplarzem pracy dyplomowej w wersji elektronicznej. Jednocześnie przyjmuję do wiadomości, że przypisanie sobie, w pracy dyplomowej, autorstwa istotnego fragmentu lub innych elementów cudzego utworu lub ustalenia naukowego stanowi podstawę stwierdzenia nieważności postępowania w sprawie nadania tytułu zawodowego. [TAK]* - wyrażam zgodę na udostępnianie mojej pracy w czytelni Archiwum UAM [TAK]* - wyrażam zgodę na udostępnianie mojej pracy w zakresie koniecznym do ochrony mojego prawa do autorstwa lub praw osób trzecich *Należy wpisać TAK w przypadku wyrażenia zgody na udostępnianie pracy w czytelni Archiwum UAM, NIE w przypadku braku zgody. Niewypełnienie pola oznacza brak zgody na udostępnianie pracy. .............................................. (czytelny podpis studenta) Abstract Praca zawiera informacje z zakresu (ang. ”Affective computing”) i skupia się na automatycznym rozpoznawaniu emocjonalnych ekspresji człowieka poprzez komputerowe techniki przetwarzania obrazu, detekcji cech w obrazie i modelowania informacji. Praca zawiera przykłady funkcjonujących systemów zdolnych do detekcji emocji oraz ich zapotrzebowanie w kilku sektorach rynkowych. Główną część stanowi opis technik i rozwiązań zastosowanych w autorskiej metodzie detekcji emocji. Opisy technik dotyczą zakresu znanych metod przetwarzania obrazu i zastosowań na potrzeby detekcji wybranych cech twarzy. Detekcja emocji jest opracowana na podstawie systemu FACS i prac badawczych Paula Ekmana, Wallace V. Friesena oraz Josepha Hagera. Do oceny stanów emocjonalnych wykorzystane jest sterowanie rozmyte na podstawie teorię zbiorów rozmytych opracowanych przez Lofiego Zadeha. Praca zawiera wyniki z testów detekcji emocji, przeprowadzonych na grupie badawczej z wykorzystaniem autorskiego programu. The work contains informations in the field of “Affective computing”. Work focuses on the automatic recognition of human emotional expression through computer techniques for image processing, features detection and modeling information. The paper contains examples of currently functioning systems that are able to detect emotions as well, as their business need in several sectors of the market. Main part of paper contains the description of techniques and solutions used in the author’s method of emotion detection. Descriptions of techniques refer to the scope of known image processing methods and their application to the needs of facial features detection. Detection of emotion is based on the FACS system and the research works by Paul Ekman, Wallace V. Friesen, and Joseph Hager. Evaluation of emotional states uses fuzzy control based on fuzzy set theory developed by Lofi Zadeh. Paper presents the results of tests on a research group using author’s solution of emotion detection. Spis treści Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Problematyka tematu i znane rozwiązania . . . . . . . . . . . . . . . . . . . 6 1.1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1. Problematyka tematu . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2. Założenia i cele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.3. Potencjalne zastosowania . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2. Istniejące rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.1. Istniejące systemy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.2. Biblioteki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2. Metody przetwarzania obrazu zastosowane w projekcie autorskim . . . . 14 2.1. Postać zapisu cyfrowego obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2. Barwa i kolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.1. Wstęp o barwie i kolorze . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.2. Standaryzacja i modele barw . . . . . . . . . . . . . . . . . . . . . . . 20 2.3. Operacje punktowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.1. Operacja negacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.2. Korekcja jasności . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.3. Korekcja kontrastu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.4. Korekcja gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4. Progowanie i binaryzacja obrazu . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4.1. Progowanie binarne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4.2. Progowanie ucięte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4.3. Progowanie do zera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5. Operacje kontekstowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.5.1. Filtr Gaussa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.5.2. Filtr Medianowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.6. Morfologia matematyczna obrazu cyfrowego . . . . . . . . . . . . . . . . . . . 30 2.6.1. Idea operacji morfologicznych . . . . . . . . . . . . . . . . . . . . . . . 31 2.6.2. Operacja dylatacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.6.3. Operacja erozji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.7. Histogramy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.7.1. Histogram jako metoda statystyczna . . . . . . . . . . . . . . . . . . . 34 1 2.7.2. Wyrównanie histogramów . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.7.3. Rozciąganie histogramów . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.7.4. Histogramy boczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.8. Algorytm Viola-Jonesa i cechy Haar’a . . . . . . . . . . . . . . . . . . . . . . 41 3. Autorskie podejście do detekcji cech obrazu cyfrowego . . . . . . . . . . . 45 3.1. Założenia ekspozycji, światłocienia i barwy dla obrazu wejściowego . . . . . . 45 3.2. Klasyfikator Haar’a dla detekcji twarzy . . . . . . . . . . . . . . . . . . . . . . 46 3.3. Metody detekcji cech czułe na zmiany barwy i jasności . . . . . . . . . . . . . 47 3.3.1. Detekcja oczu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.3.2. Detekcja ust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3.3. Problemy i wnioski z zastosowanej metody . . . . . . . . . . . . . . . 48 3.4. Metody detekcji cech odporne na zmiany barwy . . . . . . . . . . . . . . . . . 49 3.4.1. Detekcja oczu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.4.2. Detekcja brwi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.4.3. Detekcja Ust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.4. Wnioski z zastosowanej metody . . . . . . . . . . . . . . . . . . . . . . 52 3.4.5. Problem uniewrażliwienia obrazu na zmiany jasności . . . . . . . . . . 53 4. Teoria i zastosowane techniki w detekcji emocji . . . . . . . . . . . . . . . . 55 4.1. Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1.1. Anatomiczna plastyka twarzy człowieka . . . . . . . . . . . . . . . . . 55 4.1.2. System FACS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.1.3. Przełożenie teoretyczne w obrazie cyfrowym . . . . . . . . . . . . . . . 62 4.2. Zbiory Rozmyte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.2.1. Teoria zbiorów rozmytych Lofiego Zadeh’a . . . . . . . . . . . . . . . . 64 4.2.2. Operacje na zbiorach rozmytych . . . . . . . . . . . . . . . . . . . . . 65 4.2.3. Operacje triangularne: t-normy i t-ko normy . . . . . . . . . . . . . . 65 4.2.4. Zmienna lingwistyczna . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2.5. Relacje rozmyte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2.6. Rozmyte zdania warunkowe i złożeniowa reguła wnioskowania . . . . . 68 4.2.7. Liczby rozmyte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.3. Sterowanie rozmyte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5. Autorska metoda detekcji emocji . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.1. Opis pierwszej koncepcji sterownika rozmytego . . . . . . . . . . . . . . . . . 75 5.1.1. Wykorzystane zmienne lingwistyczne dla detekcji emocji radości w sterowaniu rozmytym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.1.2. Opis zbioru reguł . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2 5.1.3. Wyniki i problemy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Opis drugiej koncepcji sterownika rozmytego . . . . . . . . . . . . . . . . . . 78 79 5.2.1. Wykorzystane zmienne lingwistyczne dla detekcji emocji radości w sterowaniu rozmytym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.2.2. Zbiór reguł dla emocji: . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3. Wyniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 A. Oświadczenia osób biorących udział w badaniach naukowych . . . . . . . 93 B. Zapis wideo z eksperymentu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 C. Podziękowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Spis tabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Spis rysunków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 3 Wprowadzenie Tematyka maszynowego rozpoznawania twarzy oraz emocji pomimo intensywnego rozwoju technologii nadal pozostaje w sferze badań. W przeciągu ostatnich pięćdziesięciu lat badacze coraz bardziej skupiali się nad możliwością rozpoznawania przez maszyny tak zwanych informacji afektywnych (41). Składają się na nie między innymi: gesty, mimika, czy zabarwienie emocjonalne wypowiadanych zdań. Dzisiaj ten obszar badań jest określany terminem “affective computing” i skupia się na automatycznym rozpoznawaniu emocjonalnych ekspresji człowieka poprzez komputerowe techniki detekcji i modelowania informacji oraz ich roli w relacji człowiek — komputer. “Affective computing” (41) ma na celu stworzenie sprzętu i oprogramowania umożliwiającego zbieranie i możliwość wyrażania emocji w komunikacji. Ma na celu lepsze zrozumienie, w jaki sposób emocje wpływają na nasze zdrowie, zachowania społeczne, komunikację, pamięć oraz zdolność człowieka do nauki. Zwraca uwagę na fakt, w jakim stopniu komunikacja niewerbalna jest ważna w ludzkich relacjach pod postacią gestów, mowy ciała i mimiki twarzy. Człowiek potrafi bez słów wyrazić swój stan emocjonalny. Istnieją także osoby, które w wyniku chorób, czy wypadków mają mniejsze zdolności komunikacji ze światem. Mimo to mogą się porozumiewać z otoczeniem, bez użycia wydawałoby się potrzebnych słów. Wszystkie elementy komunikacji niewerbalnej nadają informacji określony charakter i znaczenie komunikacji werbalnej. Jest to aspekt obecnie nagminnie pomijany w relacjach człowiek-komputer, przez co traci się dużą część komunikatu przekazywanego przez człowieka. Wspomniane badania już obecnie powoli znajdują zastosowania w życiu codziennym oraz biznesie. Możemy nie zdawać sobie sprawy, iż na przykład część oglądanych reklam w telewizji była skonstruowana i analizowana pod kątem wywoływania określonych reakcji emocjonalnych. Proces analizy obecnie coraz bardziej wyklucza udział człowieka na rzecz maszyn. Detekcja emocji znalazła także zastosowania w motoryzacji, gdzie w laboratoriach dużych koncernów tworzone są prototypy urządzeń zdolnych do określenia trzeźwości i zmęczenia kierowcy, jego negatywnych stanów emocjonalnych lub też zdolności skupienia się na drodze. W toku prowadzonego śledztwa w sprawie incydentu lotu Fed-ex express 705 z dnia 7 kwietnia 1994 roku (3) oraz tajemniczego zaginięcia samolotu lotu MH 370 Malaysia Airlines z dnia 8 marca 2014 roku (42) pojawiły się głosy mówiące o konieczności stworzenia nowego automatycznego systemu bezpieczeństwa zdolnego do detekcji stanów emocjonalnych pilotów, które mogły stanowić zagrożenie dla bezpieczeństwa lotu i życia pasażerów oraz załogi. Istnienie sprzętu i oprogramowania zdolnego do detekcji oraz odwzorowania emocji człowieka poprzez gest lub mimikę twarzy znajduje także zastosowania w przemyśle rozrywkowym, pod postacią technologii przechwytywania ruchu “Motion Capture”. Jednakże obecnie istniejące 4 rozwiązania technologiczne są drogie i niedostępne dla mniejszych firm poprzez konieczność wykorzystywania specjalistycznych instalacji wielokamerowych. Moja praca w tym obszarze skupia się na dwóch rozróżnionych elementach. Pierwszym z nich jest przedstawienie mojego autorskiego rozwiązania kwestii detekcji twarzy oraz jego cech w dwuwymiarowym obrazie cyfrowym przy użyciu obecnie znanych rozwiązań algorytmicznych z zakresu przetwarzania obrazu. Obejmuje opis i model matematyczny zastosowanych rozwiązań oraz ich zastosowanie w detekcji wybranych przezemnie cech twarzy. Drugim elementem jest detekcja emocji, na podstawie modelu emph“FACS” zaproponowanego przez Paula Ekmana (10). Została ona osiągnięta poprzez zastosowanie sterowania rozmytego. Ta część pracy obejmuje opis najważniejszych elementów z zakresu zbiorów rozmytych oraz mechanikę działania i szczegółowy opis zaproponowanych przeze mnie sterowników wykrywających ludzkie emocje na podstawie mimiki twarzy człowieka, z wynikami dla każdej metody. 5 ROZDZIAŁ 1 Problematyka tematu i znane rozwiązania W sekcji 1.1.1 zamieszczone zostały podstawowe pojęcia i problemy mające kluczowe znaczenie dla detekcji mimiki oraz emocji człowieka. Sekcja 1.1.3 opisuje potencjalne zastosowania detekcji emocji. W sekcji 1.2 prezentowane są istniejące rozwiązania pod postacią istniejących aplikacji zdolnych do wykrywania emocji w czasie rzeczywistym. 1.1. Wstęp 1.1.1. Problematyka tematu Detekcja emocji człowieka jest procesem skomplikowanym. W pierwszej kolejności należy określić, w jaki sposób człowiek rozpoznaje emocje innej osoby. Odczucie emocji drugiej osoby jest zależne od wielu czynników mających miejsce na płaszczyźnie zarówno biologicznej i psychologicznej oraz fizycznej, które wydają się subiektywne. Wg definicji emocji Janusza Reykowskiego (27): Proces emocjonalny to specyficzna reakcja organizmu na zmiany wewnętrznego i zewnętrznego środowiska, w skład której wchodzą trzy podstawowe komponenty: Pobudzenie emocjonalne, które prowadzi do zmian mobilizacyjnych w organizmie. Uświadomienie znaczenia tych zmian dla podmiotu. Specyficzne i jakościowe cechy zdarzenia mającego znaczenie dla człowieka. Idąc za taką definicją emocji możemy śmiało uznać, że nie istnieje obecnie system, ani maszyna, które byłyby zdolna jednocześnie do szczegółowej analizy kontekstu danej sytuacji oraz bodźców pobudzających emocję. Maszyna nie jest tym bardziej w stanie znaleźć takich cech emocji, które miałyby znaczenie dla obcej osoby. Szukając emocji pozostaje nam badanie zmian w organizmie i ich skutków. Potencjalnych zmian mobilizacyjnych w organizmie, w trakcie procesu emocjonalnego, jest wiele. Do nich zaliczamy między innymi: odruchy źreniczne; zmiany ciśnienia krwi oraz tempa i siły uderzeń serca zmiany tempa i głębokości oddechu 6 zwiększenie wydzielania zewnętrznego np. wydzielania potu wydzielanie adrenaliny etc . . . Zmiany mobilizacyjne okazują się przydatne dla np. problemu wykrycia kłamstwa, gdzie przy użyciu wariografu wraz z kontrolą zmian mobilizacyjnych można wykryć występowanie emocji podczas rozmowy. Jednak nadal trudno jest wykryć emocję bez znajomości kontekstu i bodźca, który ją wywołał. Metoda opierająca się na detekcji emocji na podstawie zauważalnych zmian w organizmie jest uciążliwa dla badanej osoby, dlatego warto rozważyć inne cechy umożliwiające rozpoznawanie emocji. Takimi cechami jest rozpoznawanie emocji na podstawie wrażenia wizualnego innego człowieka, do których zaliczamy między innymi mowę ciała, gesty oraz mimikę twarzy. W latach siedemdziesiątych XX wieku psycholodzy Paul Ekman, Joseph C. Hager oraz Wallance V. Friesen (9) przeprowadzili kompleksowe badania nad pracą mięśni twarzy podczas występowania emocji. Wg Ekmana emocje charakteryzują się wzorcami w mimice. Wspólne badania doprowadziły do powstania modelu “FACS” “Facial Action Coding System” (10). Na podstawie wielu obserwacji emocji twarzy człowieka przypisano wzorce ruchu poszczególnych mięśni twarzy podczas występowania poszczególnych emocji. Tym samym stworzony został ustandaryzowany i uniwersalny model dla rozróżnienia emocji, który jest także przystępny dla maszynowej analizy mimiki twarzy. Głównym problemem zatem pozostaje detekcja wybranych cech twarzy, takich, na podstawie których maszyna jest w stanie dostrzec mimiczne ruchy mięśni i odczytanie z nich emocji twarzy. 1.1.2. Założenia i cele Podstawowym celem projektu magisterskiego było stworzenie automatycznego systemu zdolnego do znalezienia i śledzenia twarzy w dwuwymiarowym obrazie cyfrowym, rozpoznania bazowych cech twarzy i określenia emocji na ich podstawie w czasie rzeczywistym. Na potrzeby badań wprowadzone zostały założenia mające na celu umożliwienie komputerowi detekcje emocji z wybranego źródła, którym jest sensor zewnętrzny pod postacią kamery lub stały obraz oraz zapis sekwencyjny obrazów wczytywany z pliku. Twarz człowieka musi być zwrócona w stronę sensora rejestrującego obraz. Człowiek musi poruszać się w zakresie widzenia sensora. Obraz wejściowy musi zawierać informacje umożliwiające rozpoznanie cech twarzy. Obszar twarzy musi być dobrze widoczny, umożliwiający detekcję emocji. Środowiskowe oświetlenie twarzy powinno być w miarę równomierne, bez ostrych światło-cieni, oraz możliwych prześwietleń w obrazie cyfrowym. 7 System musi być możliwie odporny na środowiskowe zmiany oświetlenia w zakresie ekspozycji źródła światła, barwy oraz temperatury barwowej. 1.1.3. Potencjalne zastosowania Warto zadać sobie jedno zasadnicze pytanie. Czy nasz wkład i praca będzie miała przełożenie na realną wartość? Rosnąca ostatnim czasem popularność omawianego zagadnienia wskazuje na coraz większe zapotrzebowanie na detektory emocji na użytek kilku sektorów rynku: bezpieczeństwa, marketingowego, motoryzacyjnego, lotniczego i rozrywkowego. Laboratoria badawcze wielkich korporacji w ostatnich latach zaprezentowały gotowe prototypy potencjalnych detektorów emocji. Jednym z pierwszych zastosowań detektory emocji mogłyby znaleźć na użytek sektora bezpieczeństwa. Analizując zapis sekwencji obrazów, można wyszukać osoby zachowujące się podejrzanie w miejscach publicznych, poprzez detekcję ich stanu emocjonalnego. Takim stanem może być zdenerwowanie lub złość. W określonych sytuacjach taki system byłby w stanie przewidzieć zamiary podejrzanej osoby. Detekcja emocji w tym sektorze znalazłaby także zastosowanie, jako zamiennik lub wsparcie dla wariografu podczas badania na prawdomówność. Większość ludzi nie jest w stanie kontrolować ruchów mimicznych podczas występowania emocji oraz tak zwanych mikro-ekspresji, czyli krótkotrwałej, trwającej ok 50ms, pełnej ekspresji mimicznej wzorcowej dla danej emocji. System wykrywania emocji znajduje także zapotrzebowanie w lotnictwie. W wyniku zamachów terrorystycznych oraz niebezpiecznych incydentów z udziałem pasażerów oraz załogi pojawia się zapotrzebowanie na systemy zdolne do szybkiej oceny stanu psychofizycznego człowieka. Przykładem takiego incydentu może być feralny lot transportowy Fed-ex express 705 z dnia 7 kwietnia 1994 roku (3), kiedy to członek załogi zaplanował wyłudzenie odszkodowania, poprzez doprowadzenie do katastrofy lotniczej. Wykupił wysokie ubezpieczenie na życie, a następnie przy pomocy młotka zaatakował pozostałych członków załogi w kabinie pilotów. Motywem ataku było planowane zwolnienie z pracy. Podobny wątek złych zamiarów członków załogi pojawił się w toku śledztwa dotyczącego zaginięcia lotu MH 370 Malaysia Airlines z dnia 8 marca 2014 roku (42). Zauważono, iż jedną z luk bezpieczeństwa w lotnictwie jest fakt, że piloci przechodzą obowiązkowe badania psychologiczne jedynie raz w momencie podjęcia pracy. Okresowo nie sprawdza się ich stanów emocjonalnych, czy zmian psychologicznych. W dokumencie Discovery Channel (Zagadka lotu MH 370,2014) (42) zaprezentowano obecnie prototypowe automatyczne metody badania pilotów pod kątem procesów emocjonalnych. Wykorzystywane są do tego jedynie zmiany mobilizacyjne organizmu, aby wykryć oznaki nagłego zdenerwowania lub zmęczenia. Pierwsze prototypy detektorów emocji na podstawie ruchów mimicznych już powstały na rynku motoryzacyjnym. Firma PSA Peugeot Citroen we współpracy z piątym laboratorium przetwarzania sygnałów Politechniki Federalnej w Lozannie, zaprezentowały w 2014 8 roku (26,36) prototyp systemu, określającego stan emocjonalny kierowcy. System domyślnie ma za zadanie wykrywać emocje odpowiedzialne za zjawisko przemocy drogowej. Abstrahując od kwestii bezpieczeństwa oraz komunikacji, detektory emocji znajdują potencjalne zastosowania w marketingu i rozrywce. Tutaj warto zwrócić uwagę na projekt Start Up “Real Eyes” (37), który początkowo powstawał w 2010 roku na uniwersytecie w Oxfordzie. Projekt wykorzystuje badania Paula Ekmana na potrzeby badania reklam. Projekt analizuje emocje ludzi oglądających daną reklamę przy pomocy kamery internetowej i pozwala określić, jaki wpływ wywiera obraz na oglądających. Pozwala to lepiej dobierać środki marketingowe dla osiągnięcia planowanego efektu emocjonalnego. 1.2. Istniejące rozwiązania Przyjrzyjmy się bliżej obecnie istniejącym systemom zdolnym do wykrywania emocji. Ponieważ poruszamy się nadal w większości w obszarze badawczym, wielu twórców jeszcze nie udostępniło działających wersji swojego oprogramowania publicznie. Dlatego część informacji dotyczących możliwości projektów zostało zebranych na podstawie oficjalnych prezentacji i notatek prasowych. 1.2.1. Istniejące systemy 1.2.1.1. System autorstwa PSA Peugeot Citroen oraz Politechniki Federalnej w Lozannie Rysunek 1.1: Zrzut ekranu z prezentacji działania systemu PSA. Rozwiązanie zaproponowane przez koncern samochodowy i Politechnikę Federalną w Lozannie (26,36) jest nastawione na wykrywanie emocji odpowiedzialnych za zjawisko znane jako przemoc drogowa (z ang. Road Rage). System jest w stanie rozpoznać łącznie siedem stanów 9 emocjonalnych: stan neutralny, radość, smutek, wściekłość, obrzydzenie, strach, zaskoczenie. Autorzy poszukiwali możliwości wykrycia emocji irytacji, jednak uznano, iż równie dobrze sprawdza się detekcja samych emocji wściekłości i obrzydzenia. Jeżeli twarz kierowcy wskazuje na to, że znajduje się on przez pewien czas w jednym ze wspomnianych wcześniej dwóch stanów emocjonalnych, staje się on coraz bardziej podatny na stres i zjawisko przemocy drogowej. Działanie systemu przedstawia rysunek 1.1. W lewym górnym rogu znajduje się pole detekcji siedmiu stanów emocjonalnych. Gdy pasek stresu wypełni się całkowicie, uaktywniony zostaje sygnał dźwiękowy. 1.2.1.2. Start Up Real Eyes RealEyes jest projektem rozwiniętym w 2010 roku na uniwersytecie w Oksfordzie (37). Rozpoznaje sześć głównych stanów emocjonalnych. Dużą zaletą tego rozwiązania jest wsparcie dla przetwarzania informacji w chmurze oraz obsługi kamer internetowych. W ten sposób projekt ma zasięg globalny i według zapewnień twórców jest w stanie zanalizować materiał w ciągu kilkunastu sekund. Projekt jest wykorzystywany do analiz marketingowych. Pozwala odpowiadać na pytanie, czy zastosowana strategia marketingowa lub jej pojedynczy element, wywołuje pożądany efekt u widza. Udostępniany jest wykres występowania danej emocji w czasie trwania prezentowanego nagrania (1.2), wraz z możliwością filtrowania danych w zakresie preferowanych grup odbiorców. Autorzy udostępniają darmowe zapoznanie się z systemem i analizę własnego materiału, w zamian za rejestrację w serwisie internetowym. Twórcy oferują swoje usługi odpłatnie i realizowali już zlecenia we współpracy z największymi koncernami. Serwis jest dostępny pod adresem http://www.realeyesit.com. Rysunek 1.2: Zrzut ekranu systemu Real Eyes 10 1.2.1.3. Visual Recognition Visual Recognition od 2006 roku dostarcza oprogramowanie zdolne do detekcji emocji na podstawie mimiki twarzy człowieka. Oprogramowanie zostało stworzone w laboratorium systemów inteligentnych, w skrócie ILSA (38), na uniwersytecie w Amsterdamie. Rozpoznaje sześć podstawowych stanów emocjonalnych: radość, smutek, wściekłość, obrzydzenie, strach, zaskoczenie. Oprogramowanie znalazło zastosowanie w laboratoriach badawczych-między innymi przez centrum naukowe NEMO, do gry ‘Pong’. Na podstawie holenderskiego rozwiązania powstało rozszerzenie do popularnej od 2003 roku gry Second Life, umożliwiającej przenoszenie emocji z twarzy gracza na twarz wirtualnej postaci. Co więcej, ILSA wraz z firmą ILSE media (obecnie ‘Sanoma’) udostępniły za darmo serwis internetowy ‘Glad or Sad’ (34). Jest to prosty portal społecznościowy, który umożliwia analizę emocji człowieka na podstawie zdjęcia oraz tworzy rankingi osób względem wybranej emocji, na przykład poprzez ukazanie zdjęć osób najradośniejszych lub najsmutniejszych. Witryna jest dostępna pod adresem: http://www.gladorsad.com. 1.2.2. Biblioteki 1.2.2.1. Emotient API Emotient API (33) jest komercyjnym rozwiązaniem firmy Emotient. Oprogramowanie między innymi pozwana na analizę twarzy człowieka oraz jego stanu emocjonalnego. Oprogramowanie dokonuje analizy zapisu sekwencji oraz pojedynczych obrazów. Wykrywa sześć podstawowych stanów emocjonalnych zdefiniowanych przez Paula Ekmana oraz dodatkowo emocję frustracji, zastanowienia i zmieszania. Dodatkowym elementem jest zdolność do rozróżnienia emocji negatywnej od pozytywnej oraz wykrywania płci na podstawie cech twarzy. Autorzy zrealizowali swoje rozwiązanie na podstawie badań Paula Ekmana. Zaimplementowano rozpoznawanie emocji na podstawie dziewiętnastu jednostek działań, (ang. Action Units) opisujących ruchy mięśni twarzy, według modelu FACS. Rozwiązanie tworzy niezależne wykresy występowania wybranej emocji u badanej osoby, w czasie procesu analizy. 11 1.2.2.2. Auduno Rysunek 1.3: Zrzut ekranu przedstawiający działanie detekcji emocji przy użyciu biblioteki Auduno. Wykrywane są cztery stany emocjonalne. Biblioteka Auduno sama w sobie nie umożliwia detekcji emocji. Zasługuje jednak na oddzielny wpis ze względu na dostępność tego rozwiązania. Rozwijana od 2012 roku biblioteka umożliwia wykrywanie ruchów głowy oraz detekcję cech twarzy, które mogą być dobrą bazą dla oprogramowania wykrywającego emocje. Biblioteka została stworzona z myślą o systemach webowych, napisana jest w języku Javascript na licencji MIT (17). Wśród przykładów zastosowania biblioteki zaprezentowano wykrywanie na podstawie obrazu z kamery internetowej, jednej z czterech emocji: radości, smutku, wściekłości i zaskoczenia. Działanie 12 aplikacji przedstawia rysunek 1.3. Wspomniany przykład można samemu przetestować pod adresem:http://auduno.github.io/clmtrackr/examples/clm emotiondetection.html 13 ROZDZIAŁ 2 Metody przetwarzania obrazu zastosowane w projekcie autorskim W tym rozdziale zostaną zaprezentowane metody przetwarzania obrazu i dźwięku, które zostały użyte na potrzeby detekcji cech twarzy. W sekcji 2.1 zostanie omówiona postać zapisu cyfrowego obrazu, podstawowe definicje, terminy oraz dane dotyczące użytej biblioteki graficznej w projekcie. W sekcji 2.2 opisane zostały modele barw, ich reprezentacja matematyczna, oraz obliczeniowy problem konwersji dwóch różnych modeli kolorów, który ma znaczący wpływ na kształt projektu. W podrozdziałach 2.3, 2.7.1, 2.4, 2.6 zostały zaprezentowane użyte techniki przetwarzania obrazu. W podrozdziale 2.8 przedstawiona jest technika wyszukiwania w obrazie dwuwymiarowym skomplikowanych obiektów o pożądanych cechach. 2.1. Postać zapisu cyfrowego obrazu Czym jest obraz? Najpopularniejszym podejściem do pojęcia obrazu jest zdefiniowanie go jako tworu odzwierciedlającego to, co widzi oko. Specyfika obrazu nie została jednak zdefiniowana przy użyciu jednego słusznego terminu. Zawartość czyli, innymi słowy treść obrazu, może zostać zdefiniowana za każdym razem inaczej przez człowieka, w zależności od jego sposobu spostrzegania. Jest to forma zapisu informacji cechująca się niezwykle dużą nadmiarowością informacji, dlatego jednym z wyzwań dla współczesnej informatyki jest opracowanie metod selekcji, przetwarzania oraz analizy zawartych w obrazie informacji. Obecnie uznaje się, że człowiek odbiera około 90 procent informacji przy pomocy bodźców wizualnych. Jednym z powodów jest fakt, iż obrazy są naturalną oraz wygodną dla człowieka formą reprezentacji danych. W przypadku przetwarzania maszynowego obrazu proces jego odczytywania nie należy do problemów łatwych, pomimo iż sposób sczytywania danych jest zbliżony do procesów zachodzących u ludzi. Proces odczytywania obrazu rozpoczyna się przez człowieka od jego rejestracji przy pomocy oka. W naszym rozumieniu dla maszyny okiem może być dowolny receptor, który jest w stanie otrzymywać obrazy. Mogą być nimi skanery optyczne, czujniki termowizyjne, kamery optyczne i cyfrowe. Dyskretyzacja — Jest to proces zamiany przez urządzenie wejściowe danych pochodzących z oka receptora obrazu, na dwuwymiarową tablicę liczb. Ten proces składa się z dwóch innych procesów: Próbkowania oraz Kwantowania. Próbkowaniem nazywamy proces wyboru zbioru punktów z zakresu widzenia oka receptora. W teorii próbkowanie odbywa 14 się w wybranych miejscach na dwuwymiarowej płaszczyźnie obrazu, np. przy pomocy węzłów siatki prostokątnej przedstawionych na rysunku 2.1. W wyniku działania, dla pewnej funkcji jasności L(x, y) zostanie określona na płaszczyźnie dyskretnej, czyli inaczej mówiąc: ∀x, y ∈ L(x, y), x = nTx , y = nTy Funkcja L(x, y) przyjmuje wartość dla pojedynczego punktu na siatce, którego pozycję wyznaczają x, y, natomiast wartość wyznacza częstotliwość próbki nTx , nTy , będąca liczbą pobranych próbek n, w jednostce czasu T , którą nazywamy interwałem próbkowania. Rysunek 2.1: Próbkowanie obrazu Kwantowaniem nazywamy proces, w którym dla każdego punktu ze zbioru otrzymanego w wyniku próbkowania, wartość opisywana jest przez skończoną liczbę cyfr. W przypadku funkcji jasności L(x, y) proces kwantowania będzie polegał na podzieleniu całego zakresu jasności światła na przedziały i przypisaniu im dla danego przedziału określonej wartości dyskretnej. W wyniku powyższych operacji otrzymujemy tak zwany rastrowy zapis obrazu, w którym pojedynczy punkt L(x, y) przyjmuje określoną dla przedziału wartość dyskretną. Proces kwantowania oraz dyskretny zapis obrazu pokazany jest na rysunku 2.2. 15 Rysunek 2.2: Z lewej proces kwantowania, z prawej zapis dyskretny na podstawie pomiaru próbek. Pikselem nazywamy najmniejszą jednostkę informacji w obrazie, przechowująca pewną wartość liczbową. Termin piksel pochodzi od zlepki słów “Picture-Element” w języku angielskim. Rozdzielczość przestrzenna obrazu. Jest to stosunek liczby pikseli jednostki szerokości do jednostki wysokości obrazu. Używając terminu rozdzielczość, trzeba jednak rozróżnić: Rozdzielczość wejściową obrazu. Jest to gęstość punktów próbkowania informacji na danej powierzchni, którą receptor jest w stanie przechwycić. Wyrażamy ją najczęściej przy pomocy jednostki pikseli na cal (ppi) lub pikseli na centymetr. Rozdzielczość optyczna obrazu. Jest to ilość faktycznych informacji, które system optycz- ny jest w stanie próbkować z otoczenia. Rozdzielczość poziomów jasności. Nazywana jest także rozdzielczością bitową obrazu lub głębią barw obrazu. Określa ona zdolność urządzenia do rozpoznania stopni jasności obrazu wejściowego. Standard obrazu. Jest to rozdzielczość będąca całkowitą liczbą punktów zapisu obrazu rastrowego. Obecnie standard obrazu jest także podawany jako liczba próbek mierzonych w pionie, dla przyjętego dla standardu formatu obrazu. Najczęściej współcześnie przyjmuje się format w proporcjach 4:3 oraz 16:9. Standard monitora. Jest to definiowana jako liczba próbek obrazu, która może zostać wyświetlona na ekranie urządzenia. Jak można zauważyć, proces kwantowania polega na podziale jasności światła na pewne zakresy. Należy zadać sobie pytanie, przy pomocy jakiej ilości potencjalnych przedziałów należy podzielić jasność światła w taki sposób, aby otrzymać szczegółowy obraz? W wyniku 16 różnych interpretacji zakresów podziału otrzymujemy tak zwane klasy obrazu. Wcześniej termin klas odnosił się nie tylko do rozdzielczości poziomów jasności, ale także sposobu dyskretnego kodowania informacji obrazu. Theo Pavlidis (23) zaproponował istnienie 4 klas obrazu, z czego dwie dotyczyły głębi bitowej obrazu. W pozostałych klasach zaproponował on użycie kodów łańcuchowych dla cyfrowego zapisu obrazu, nazywając klasy głębi bitowych mianem nieefektywnych dla ówczesnych komputerów. Kody łańcuchowe natomiast pozwalały na określenie wektora łączącego dwa punkty przy użyciu kodu zeskończonego zbioru symboli dla opisywania płaszczyzn lub kształtów przedmiotów. Jak możemy zauważyć, termin ten odnosił się zarówno do grafiki wektorowej, jak i rastrowej, bez ich rozróżnienia podczas procesu dyskretyzacji. Poniżej zostały opisane najbardziej znane klasy zapisu rastrowego obrazu. Głębię koloru przy poszczególnych klasach obrazów wyrażamy w jednostkach bpp, co oznacza liczbę bitów na każdy piksel w obrazie cyfrowym. Wyróżniamyklasy obrazu: Obrazy binarne. Są to obrazy o głębi bitowej nie większej niż 1 bpp. Obrazy te rozróż- niają jedynie kolor czarny dla wartości 0 i biały dla wartości 1. Takie obrazy nazywa się także często obrazami dwuwartościowymi. Obrazy pseudo-binarne. Są to obrazy binarne zapisane na większej ilości bitów (najczę- ściej 8 bpp). Wtedy kolor biały reprezentowany jest przez wartość 255. Obrazy monochromatyczne. Są to obrazy o głębi 8 bpp, zdolne do rozróżnienia 256 różnych poziomów szarości. Obrazy barwne. Charakteryzują się one większą głębią bitową niż wcześniejsze klasy. Liczba bitów zależy od przyjętego modelu koloru. Wśród najpopularniejszych rozpoznajemy: — Obrazy barwne 24-bitowe. Każdy z trzech 8 bitowych bloków na piksel, opisuje jeden z podstawowych barw. Dla najpopularniejszego modelu RGB lub CMY można zakodować 16,7 miliona barw obrazu. — Obrazy barwne 32-bitowe. Najpopularniejszym przykładem modelu kolorów jest model CMYK, w którym dodatkowe 8 bitów przeznaczone jest na zapisanie informacji o tak zwanym ‘key color’. Kolor kluczowy jest nienasyconym kolorem czarnym, służącym do nadawania jasności pikseli. Alternatywnie, dodatkowe 8 bitów znajduje zastosowanie w kodowaniu transparentności obrazu. Np. w modelu koloru RGBA, dodatkowe 8 bitów przeznaczone jest na tak zwany kanał alpha, określający transparentność obrazu. Powstały przy użyciu wcześniejszych metod obraz cyfrowy, nie musi być w pełni rzeczywistym odzwierciedleniem widzenia receptora. Może on posiadać pewne skazy, takie jak zjawisko nazywane szumem. Szumem nazywamy statystycznie niezależnie dane nałożone 17 na obraz, utrudniające jego rozpatrywanie i precyzyjne przetwarzanie. Spowodowany jest on zasadą działania procesu dyskretyzacji receptora, jeśli działa on w niekorzystnych dla jego pracy warunkach np. przy zbyt niskim oświetleniu dla dopuszczalnej czułości urządzenia. Innymi słowy, na dyskretnej siatce generuje punktowo przybliżone wartości, dla obszarów obrazu poniżej czułości urządzenia. W takiej sytuacji nie ma gwarancji, że dwa leżące obok siebie punkty podczas niezależnego próbkowania otrzymają taką samą wartość. Obraz cyfrowy możemy rozpatrywać na dwa sposoby: w dziedzinie przestrzennej oraz w dziedzinie częstotliwości. W dziedzinie przestrzennej obraz jest reprezentowany jako macierz W która posiada swój wymiar [M, N ] odpowiadający kolejno liczbą: pikseli wysokości oraz szerokości obrazu. Elementami macierzy są piksele, reprezentowanom liczbą z przedziału < 0, L − 1 > gdzie L reprezentuje liczbę poziomów jasności, w zależności od klasy obrazu. W przypadku obrazów barwnych najczęściej stosowane są macierze trójwymiarowe [C, M, N ], w których przy pomocy zmiennej C oznacza się wybrany, pojedynczy kanał obrazu wybranego modelu koloru. Kanał obrazu C opisuje przy użyciu macierzy M, N wartości jednej barwy wybranego modelu koloru w obrazie. Alternatywnie stosuje się także w implementacji tablice macierzy. Ze względu na różnice zakresu wartości przyjmowane przez różne klasy obrazu przyjmijmy oznaczenia dotyczące wartości minimalnych i maksymalnych dla pojedynczego piksela, na potrzeby późniejszych definicji. Niech Lmin będzie oznaczać minimalną wartość piksela, natomiast Lmax maksymalną wartość piksela w wybranej klasie obrazu. W dziedzinie częstotliwości widmo obrazu jest reprezentowane za pomocą funkcji matematycznej na przykład przy pomocy transformaty Fouriera, za pomocą macierzy W . Elementy macierzy są adresowane przy użyciu zmiennych 1/x, 1/y, które określają częstotliwości przestrzenne obrazu. Elementy widma o współrzędnych [0, 0] nazywamy składową stałą macierzy. Stała składowa jest wprost proporcjonalna do średniej jasności obrazu. Ze względu na charakter poruszanego problemu warto wprowadzić definicje związane z zapisem sekwencyjnym obrazu. Kodekiem nazywamy urządzenie lub program zdolny do przekształcania strumienia danych lub sygnału w formę zakodowaną oraz zwrotnie odkodować strumień danych z formy zakodowanej, aby umożliwić ich odtworzenie, lub obróbkę. Sekwencją obrazów nazywamy zapis ciągu obrazów, o jednakowym formacie, wyświetlaną z możliwie stałą liczbą klatek obrazu na sekundę. Rozróżniamy: Strumieniową sekwencję obrazów — ciąg obrazów pochodzący bezpośrednio z wy- branego receptora obrazu, na przykład z kamery internetowej, którego format, jak i prędkość wyświetlania oraz cechy obrazu zależą od ustawień i możliwości receptora. Zapis cyfrowy obrazów — ciąg obrazów zapisany bezpośrednio w postaci pliku, 18 wraz z wybranym kodowaniem. Prędkość wyświetlania oraz format zależy od zapisu przy użyciu wybranego kodeka obrazu. Klatkarzem nazywamy prędkość wyświetlania sekwencji obrazów. Pojedynczy obraz w sekwencji nazywamy klatką, natomiast klatkarz wyrażamy w ilości klatek na sekundę. 2.2. Barwa i kolor 2.2.1. Wstęp o barwie i kolorze Ludzka percepcja barwy nie jest zjawiskiem w pełni obiektywnym. Każdy człowiek odczuwa barwę w sposób subiektywny, jednakże jego odczucie jest wywoływane przez obiektywne czynniki fizyczne. Arheim Rudolf (1), zauważa jednak pewne podobieństwa w percepcji barw i grup ludzi ze względu na pokrewny układ nerwowy oraz budowę siatkówki oka, z pominięciem patologii indywidualnych takich jak np. barwna ślepota. Nigdy jednak w rozumieniu barwy nie będzie u ludzi występowała całkowita zbieżność, wynikająca z indywidualnych cech oraz faktu, iż pomimo istnienia stałego widma barw ludzie odnoszą do różnych wrażeń, w zróżnicowanych warunkach, całkowicie inne nazwy kolorów. W powyższym rozumowaniu możemy znaleźć jedynie jedną stałą dla określania maszynowego barwy. Jest nią widmo światła, którego specyficzna barwa wynika z wybranej długości fali z całego spektrum światła niechromatycznego. Sam kolor zaś nie zawsze związany jest z długością fali. Człowiek będąc pod wpływem ‘mieszania’ wybranych długości fal może uzyskać określony kolor z widma, jednak będzie on mniej nasycony niż odpowiadająca mu barwa monochromatyczna. W psychologii rozróżniamy jako barwy podstawowe ludzkiego widzenia: barwę niebieską, zieloną, żółtą i czerwoną, jako najłatwiej wyróżniane z widma. Pomiędzy nimi istnieją barwy psychologiczne wtórne: fioletowy, turkusowy, seledynowy i oranż. Jednakże w świecie fizycznym zaproponowano zgoła inne barwy podstawowe, powstałe na podstawie budowy ludzkiego oka. Zaproponowano trzy barwy podstawowe: czerwony, zielony oraz ciemny błękit, przy użyciu syntezy addytywnej barw, polegającej na dodawaniu promieni światła. Model fizyczny wynika z faktu, iż ludzkie oko posiada trzy rodzaje czopków odpowiedzialnych za widzenie barw. Około 4 procent z nich to cyjanolaby czułe na widmo świetlne o zakresie 450nm, 32 procent to chlorolaby o wrażliwości na fale długości około 530nm, pozostałe 64 procent to erytrolaby czułe na widmo o długości fali równej około 650nm. Odpowiada to kolejno barwom: niebieskiej, zielonej i czerwonej. W oku istnieją w widzeniu inne receptory zwane pręcikami, których jest znacznie więcej oraz są bardziej czułe na widmo świetlne. Jednakże służą one jedynie do rozpoznawania barw achromatycznych, czyli różniących się tylko jedną cechą widzenia, którą jest jasność. Skutkiem takiej sytuacji jest widzenie skotopowe u człowieka, w którym czułe pręciki odbierają więcej informacji niż czopki przy słabym oświetleniu, a w konsekwencji człowiek odbiera ograniczone wrażenia barwne. 19 2.2.2. Standaryzacja i modele barw Percepcja maszynowa głównie opiera się na odtworzeniu zasad widzenia ludzkiego, jednakże została ona wzbogacona o nowe przydatne interpretacje matematyczne modeli barw. Od 1913 r. istnieje organizacja zwana międzynarodowym komitetem do spraw iluminacji lub w skrócie CIE, z francuskiego Commision Internationale de l’Eclairage (35). Jest to organizacja nonprofit, której celami są: Dostarczenie międzynarodowego forum dyskusyjnego dla nauki, technologii i sztuki na polu badań dotyczących natury światła i oświetlenia. Rozwój standardów i procedur metrologii na polu światła i oświetlenia. Dostarczenie wskazówek w zakresie stosowania zasad i procedur w opracowywaniu norm międzynarodowych oraz krajowych w zakresie światła i oświetlenia. Przygotowanie i publikacja standardów, raportów i innych publikacji mających zwią- zek z nauką, technologią, standaryzacją oraz sztuką w zakresie badań nad światłem i oświetleniem. Utrzymanie łączności i technicznej interakcji z innymi organizacjami zajmującymi się podobnymi zagadnieniami komitetu CIE. W praktyce organizacja w przeciągu ponad stu lat istnienia doprowadziła do międzynarodowej standaryzacji modeli kolorów, a także określenia między innymi międzynarodowych standardów dot. klasyfikacji papieru, profilów koloru, poziomów luminacji, świateł drogowych itp. Poniżej zostały opisane najważniejsze modele barw użytych w projekcie magisterskim. 2.2.2.1. Model CIE Model CIE został przyjęty jako standard i punkt odniesienia dla pozostałych przestrzeni barw. Został stworzony, aby reprezentować paletę barw widzialnych przez receptory ludzkiego oka, w zależności do długości fali całego spektrum światła widzialnego. Istnieje kilka odmian tego modelu. Za punkt zaczepienia przyjmujemy model bazowy, opracowany w 1931 roku, przez organizację CIE, model znany jako CIE-XYZ. Do zobrazowania modelu wykorzystywane są tak zwane współrzędne trójchromatyczne, które opisują chromatyczność badanego bodźca. Wykorzystują one obserwację zjawiska postrzegania luminacji różnych kolorów przez ludzi w zróżnicowanych warunkach. Człowiek ma zwyczaj postrzegania zielonych obszarów spektrum barwnego jaśniej niż czerwonego lub niebieskiego. W modelu CIE zatem wartości osi Y przyjmowane są jako wartości luminacji barwy. Wartosć osi Z jest w pewnym stopniu równa wartości stymulacji koloru niebieskiego 20 widzianego przez ludzkie oko, natomiast wartości na osi X są liniową kombinacją reakcji czopków, które zostały wybrane jako dodatnie. Trójwymiarowy model jest zatem analogiczny do reakcji czopków ludzkiego oka. Przypisanie zmiennej Y wartości luminacji daje przewagę, iż dla wybranej wartości Y , płaszczyzna XZ zawiera wszystkie chromatyczności dla wybranego poziomu luminacji. Zobrazujmy model CIE XYZ na płaszczyźnie dwuwymiarowej. W momencie, gdy czopki w oku człowieka odpowiadają różnym długościom fali, nie pozostaje problemem wizualizacja trójwymiarowa tego modelu. Tym razem opiszemy chromatyczność koloru przy pomocy dwóch pochodnych parametrów x oraz y — dwóch z trzech znormalizowanych wartości, które są funkcjami wszystkich trzech wartości chromatycznych XY Z: x= y= z= X X+Y +Z Y X+Y +Z Z X+Y +Z =1−x−y Ten pochodny model koloru, zdefiniowany przez zmienne x, y oznaczony jest jako CIE— xyY i jest często wykorzystywany do określenia kolorów w praktyce. Rozkład barw modelu CIE-xyY w zależności od długości fali widma, został przedstawiony na rysunku 2.3. Rysunek 2.3: Wykres rozkładu barw modelu CIE-xyY 21 2.2.2.2. Model RGB Gamut jest to pewien skończony zbiór kolorów, zdolny do wyświetlenia przez wybrane urządzenie. W praktyce powyższy model CIE oddaje całe widzialne światło przez człowieka, jednak większość obecnie funkcjonujących ekranów nie jest w stanie wyświetlić pełnego spektrum barwnego. Przy użyciu gamutów modelu CIE, określone zostały inne, oszczędniejsze w skończonej liczbie kolorów modele barw. Przykładem takiego modelu jest model RGB, obecnie powszechnie stosowany w zapisie obrazu cyfrowego na potrzeby wyświetlania obrazu w urządzeniach elektronicznych. Model RGB jest modelem addytywnym. Oznacza to iż kolory są otrzymywane poprzez dodawanie wartości trzech składowych barw: czerwonego, zielonego oraz niebieskiego. Najczęściej stosowany jest zapis 24 bpp, w którym każda składowa jest kodowana przy pomocy 8 bitów informacji. Jednakże istnieją modyfikacje tego modelu barw, odpowiednio: 32 bpp — dodatkowe 8 bitów poświęcane jest na kanał transparentności, zwany także kanałem alpha. Stąd nazwa pochodnego modelu kolorów RGBA. 48 bpp — w którym to na każdą z barw składowych przypada 16 bitów informacji, pozwalający na osiągnięcie większej liczby kolorów obrazu. W modelu RGB kolor czarny jest oznaczany jako 0, natomiast kolor biały oznaczany jest jako maksymalna osiągalna wartość w wyniku dodawania trzech składowych koloru, w zakresie określonej głębi bitowej. Wartość ta dla 24 bitowej głębi kolorów wynosi 255, dla każdego kanału koloru. W wartościach znormalizowanych kolor ten także przedstawiany jest w zakresie wartości [0, 1]. Trójwymiarowa reprezentacja modelu RGB jest sześcianem, w którym każda z osi X, Y, Z przyjmuje wartość koloru z zakresu [0, 1]. Trójwymiarową reprezentację modelu ilustruje rysunek 2.4. Rysunek 2.4: Trójwymiarowa reprezentacja modelu RGB. Każda z osi składających się na sześcian reprezentuje wartości jednego koloru z zakresu [0, 1]. 22 2.2.2.3. Model HSV Innym modelem zaproponowanym przez CIE w 1978 roku jest model HSV, który funkcjonuje również pod nazwą HSB. Model ten pełni ważną funkcję w koloryzacji obrazu oraz przy operacjach zamiany barwy lub nasycenia i operowania w pobliżu wybranej barwy koloru. Co więcej, jest on transformacją przestrzeni barwnej RGB. Symbole w nazwie nawiązują do kolejno: H-Hue, czyli odcień światła, przyjmuje on wartości w stopniach. Jego zakres wynosi od 0◦ do 360◦ . S-Saturation, czyli nasycenie koloru. V-Value, czyli wartość światła białego. Często jest równoważna nazwie B z . (ang. Bri- ghtness) Model trójwymiarowy tego modelu kształtem przypomina stożek, którego podstawą jest okrąg odwzorowujący w stopniach wartość światła. O promieniu tego okręgu decyduje wartość nasycenia koloru, podczas gdy jego wysokością jest moc światła białego. 2.2.2.4. Konwersja modeli barwnych, a problem wydajnościowy w obrazie sekwencyjnym Należy zadać sobie pytanie o celowość zastosowania innego modelu barw od wcześniej opisanych, jak i kosztów potencjalnej konwersji. Niewątpliwie konwersja do innego zapisu obrazu barwnego ma swoje korzyści, jednak w toku prac nad projektem pojawił się problem związany ze złożonością obliczeniową operacji wykonywanych na modelu HSV. Model HSV jest użyteczny w procesie segmentacji, ponieważ pozwala na łatwe wyszukiwanie wybranego tonu z uwzględnieniem progu tolerancji dla poziomu nasycenia barwy. Wykorzystywane urządzenia jednak pobierają klatkę obrazu jedynie w modelu RGB. Co więcej, nie istnieją obecnie ekrany zdolne do wyświetlania obrazu przy pomocy modelu HSV, dlatego wymagana jest operacja konwersji dwóch modeli. Przyjrzyjmy się algorytmowi operacji konwersji z modelu RGB na HSV (2.1): Algorytm 2.1: Kod operacji konwersji RGB na HSV Dane wejściowe: (r,g,b) Dane wyjściowe: (h,s,v) v = MAX(r,g,b) mmm = v-MIN(r,g,b) s = mmm/v 23 r1 = (v - r) / mmm g1 = (v - g) / mmm b1 = (v - b) / mmm if r = max and g = min h = 5 + b1 else if r = max and g != min h = 1 - g1 else if g = max and b = min h = 1 + r1 else if g = max and b != min h = 3 - b1 else if b = max and r = min h = 3 + g1 else h = 5 - r1 Algorytm 2.1 pochodzi z pracy Petteri Kerminena oraz Moncefa Gabbouji 14, którzy w swoim artykule dokonali analizy złożoności operacji przetwarzania obrazów oraz operacji konwersji dla różnych modeli kolorów. Z publikacji wynika, iż dla macierzy W [M, N ] obrazu należy na wstępie wykonać 3 × M × N × nj operacji, gdzie nj to operacje wykonywane podczas konwersji i operacji przetwarzania obrazu. Samo 3 × M × N to koszt iteracji po każdym kanale obu modeli kolorów, dla każdego piksela należącego do macierzy W [M, N ]. Na potrzeby eksperymentu autorów zastosowano zaledwie cztery operacje: konwersję z modelu RGB na wybrany model koloru, w tym HSV, zamianę typu zmiennej, porównanie obrazów i przypisanie im podobieństwa. Okazało się, że ten sam algorytm wykonany w przestrzeni RGB oraz HSV cechował się zupełnie inną wydajnością, na niekorzyść modelu HSV. Według autorów sama liczba operacji konwersji wynosi 34, a w najgorszym przypadku 46 na pojedynczy piksel. Dodatkowo koszt operacji przy użycu HSV podczas operacji przetwarzania był ponad dwukrotnie wyższy niż w przypadku modelu RGB. Analogiczna sytuacja wystąpiła w trakcie prac nad projektem magisterskim. Różnica jednak polegała na tym, iż zamiast wykonywania obliczeń na pojedyncze obrazach, z użyciem operacji konwersji, operacja musiałaby być powtarzana tyle razy, ile wynosi klatkarz. Przy wykorzystaniu metody konwersji do modelu HSV, podczas przetwarzania obrazu przy użyciu metod wydobywania cech twarzy nastąpił zauważalny spadek wydajności aplikacji. Domyślnie aplikacja wyświetlająca obraz sekwencyjny z prędkością około 60 klatek na sekundę, utraciła swoją płynność ponad dwukrotnie, dla strumieniowego zapisu obrazu z receptora. W przypadku zapisu sekwencyjnego obrazu przy użyciu kodeków prędkość wyświetlania wyniosła zaledwie 10 do 15 klatek na sekundę, uniemożliwiając płynną analizę obrazu. Z tego także 24 powodu w moim projekcie badawczym zrezygnowałem z operacji konwersji do jakiegokolwiek innego modelu kolorów, pozostając przy modelu RGB. Wyjątkiem jednak stanowiła konwersja z modelu barwnego, do 256 poziomowej skali szarości, która jest bazą dla operacji przetwarzania obrazu na potrzeby detekcji cech opisanych w 3.4. Operacja ta nie jest operacją zwrotną, czyli inaczej mówiąc po wykonaniu operacji konwersji, nie jest możliwa powtórna konwersja ze skali szarości do modelu RGB, która zawierałaby barwy. Wykorzystywana jest średnia ważona do obliczenia wartości nowego piksela według wzoru: q(i, j) = R(p(i, j)) ∗ r + G(p(i, j)) ∗ g + B(p(i, j)) ∗ b Wagi r, g, b ∈ [0, 1] spełniają warunek r+g+b = 1. Natomiast funkcje R(p(i, j)), G(p(i, j)), B(p(i, j)) zwracają wartość piksela obrazu pierwotnego p(i, j) dla odpowiadającego im kanału modelu RGB. 2.3. Operacje punktowe Operacje punktowe, zwane także operacjami bezkontekstowymi, wykonywane są w każdym punkcie macierzy W [M, N ]. Nazwa operacji bezkontekstowych bierze się z faktu, iż każdy pojedynczy piksel jest przetwarzany bez uwzględnienia otaczających go pikseli. Innymi słowy, na każdy piksel obrazu wyjściowego ma wpływ tylko jeden piksel obrazu wejściowego. Operacje punktowe znajdują zastosowane przy poprawie jakości obrazu. 2.3.1. Operacja negacji Jedną z najbardziej podstawowych operacji punktowych jest operacja negacji. Obraz wynikowy W [M, N ] powstaje w wyniku odjęcia od wartości maksymalnej Lmax wszystkich pikseli q(i, j)0 < i < M, 0 < j < N , wartości analogicznego piksela p(i, j) obrazu pierwotnego P [M, N ], wykonywany dla każdego kanału zastosowanej klasy obrazu i modelu koloru. Konsekwencją tej operacji jest obraz przedstawiony w negatywie (Rysunek 2.5). 25 Rysunek 2.5: Przykład przeprowadzenia operacji negacji w obrazie. Po lewej obraz oryginalny, po prawej po wykonaniu operacji negacji. 2.3.2. Korekcja jasności Operacja korekcji jasności polega na prostym dodawaniu lub odejmowaniu wartości stałej k pojedynczego piksela q(i, j) obrazu. Dodanie wartości k powoduje zwiększenie jasności obrazu wynikowego, natomiast operacja odwrotna skutkuje zmniejszeniem jasności obrazu. W przypadku operacji korekcji jasności może w bardzo łatwy sposób dojść do przekroczenia wartości granicznych Lmin oraz Lmax , dlatego stosuje się arytmetykę przepełnieniową. Polega ona na ucinaniu wartości na poziomach granicznych wyznaczonych przez Lmin i Lmax . 2.3.3. Korekcja kontrastu Operacja korekcji kontrastu jest to funkcja liniowa wyrażana wzorem q(i, j) = kp(i, j) + b, gdzie q(i, j) to obraz wyjściowy, p(i, j) to obraz pierwotny, natomiast stałe k, b takie, że 0 < k, k, b ∈ R. Zmienna b koryguje jasność obrazu w sposób opisany w 2.3.3. Natomiast w zależności od wartości k dla 0 < k < 1 następuje zmniejszenie kontrastu obrazu, podczas gdy dla k > 1 następuje zwiększenie kontrastu. Dla zmiennej k = 1 funkcja działa analogicznie jak korekcja jasności, zależna od parametru b. Podobnie jak w przypadku korekcji jasności w bardzo łatwy sposób można przekroczyć wartości graniczne Lmin oraz Lmax dla wybranej klasy obrazu i modelu kolorów. Należy też zauważyć, że wielokrotna operacja na kontraście z powyższego powodu może doprowadzić do utraty informacji zawartych w treści obrazu. 2.3.4. Korekcja gamma Korekcja gamma jest przekształceniem potęgującym najbardziej różnice pomiędzy wartościami poszczególnych wartości pikseli. Znajduje zastosowanie między innymi w usuwaniu znie- 26 kształceń wynikających z pracy urządzenia. W porównaniu do korekcji kontrastu operacja korekcji gamma intensywniej nasyca obraz. Odbywa się ona zgodnie z zależnością: q(i, j) = (p(i, j))k dla pewnej stałej k 6= 0. Aby wartości piksela mieściły się w zakresach wartości granicznych Lmin oraz Lmax stosowane jest przeskalowanie funkcji zgodnie ze wzorem: q(i, j) = (p(i,j))k 255k−1 dla k > 0 Zauważmy jednak iż funkcja korekcji gammy pozwala na używanie liczb ujemnych dla zmiennej k . Dlatego też dla zmiennej k < 0 funkcja skalowania wyrażana jest wzorem: q(i, j) = (p(i,j))−k 255−k−1 dla k < 0 2.4. Progowanie i binaryzacja obrazu Segmentacja jest to podział obrazu na obszary spełniające pewne wyznaczone kryteria. Będziemy wyznaczać poszczególne segmenty obrazu, na podstawie znalezienia wybranych cech twarzy, która w zapisie obrazowym nie występuje poza najbliższym sąsiedztwem wybranej cechy. Binaryzacją nazywamy proces segmentacji zapisu z obrazu posiadającego dużą liczbę informacji, do jego najprostszej formy binarnej, rozróżniającej piksele jedynie przy pomocy informacji Lmin i Lmax , zawierającej jedynie pożądane cechy obrazu. Z punktu widzenia maszynowego binaryzacja odgrywa dużą rolę w interpretacji informacji pochodzących z obrazu cyfrowego. Pozwala ona na oczyszczenie zawartych informacji pochodzących od uprzednio przygotowanego źródła, ze zbędnych szumów lub niepożądanych elementów. Jednym z przykładowych zastosowań jest maszynowe zastosowanie binaryzacji przy maszynowym odczytywaniu dokumentów, w którym informacja tekstowa zostaje oczyszczona ze zbędnych informacji w postaci szumów, cieni lub przypadkowych zniekształceń papieru. Ma to na celu ułatwienie odczytywania treści przez algorytmy do optycznego rozpoznawania pisma. Binaryzacja odgrywa także dużą rolę w operacjach morfologicznych obrazu, opisanych w sekcji 2.6. 2.4.1. Progowanie binarne Progowanie jest to jedna z najprostszych metod wyselekcjonowania obszaru obrazu. Jest to operacja punktowa, która polega na porównywaniu wartości każdego piksela obrazu q(i, j) z wybraną wartością progową obrazu t spełniającą warunek Lmin < t < Lmax . Problem odnalezienia wybranej cechy w obrazie sprowadza się do znalezienia takiej wartości progu t, która umożliwia selekcję obszaru wybranego typu. Najprostsza interpretacja powyższego mechanizmu stosuje bezwzględnie jedną wartość progu i jest obliczana według wzoru: 27 t F (q(i, j)) = 0 q(i, j) > t q(i, j) ¬ t Takie progowanie nazywamy binarnym. Proces nie definiuje wynikowej klasy obrazu. Obrazem wynikowym może być dowolna klasa obrazu. W przypadku obrazów barwnych powyższe progowanie stosowane jest niezależnie dla każdego kanału koloru. Przy wydobywaniu pożądanych cech obrazu, nie musimy się ograniczać do klasy obrazów binarnych lub pseudo binarnych. Proces pozyskiwania cech można przeprowadzać wieloetapowo, przy użyciu innych metod progowania obrazu. Wszystkie metody jednak opierają się na analogicznym mechanizmie, w którym sposób przetwarzania pikseli jest zależny od wyznaczonego progu t. W zależności od interpretacji istnieje także wersja odwrotna powyższej operacji nadająca wartości Lmax , jeśli piksel przyjmuje wartość równy lub większy progowi t. Takie progowanie nazywamy odwróconym progowaniem binarnym. 2.4.2. Progowanie ucięte Progowanie ucięte, znane także pod angielskim terminem jako (ang. “truncate threshold”), polega na “ucinaniu” wartości pikseli znajdujących się powyżej wartości progu t, poprzez nadanie wartości piksela q(i, j) równej wartości progu t. Pozostałe wartości pikseli pozostają bez zmian. Wyrażamy poniższa operację przy pomocy wzoru: t F (q(i, j)) = q(i, j) q(i, j) > t q(i, j) ¬ t Skutkiem działania powyższej operacji jest “ucinanie” wyższych wartości pikseli, oczyszczającym obraz z jaśniejszych tonów, zachowując wszystkie pozostałe. 2.4.3. Progowanie do zera Progowanie do zera polega na pozostawianiu nietkniętych wartości pikseli q(i, j), jeśli ich wartość jest większa od wartości progowej t obrazu. W przeciwnym wypadku przyjmuje on wartość Lmin obrazu i w konsekwencji nadając pikselowi kolor czarny. Wyrażamy tę operację wzorem: q(i, j) F (q(i, j)) = L min q(i, j) > t q(i, j) ¬ t Powyższą operację możemy także zinterpretować w odwrotny sposób, pozwalając na nadanie koloru czarnego pikselom o większej wartości od wyznaczonego progu t, pozostawiając pozostałe piksele nienaruszone. Taką operację nazywamy odwróconym progowaniem do zera. 28 2.5. Operacje kontekstowe Do tej pory rozpatrywaliśmy jedynie operacje wykonywane bezpośrednio na pikselach, bez uwzględniania kontekstu obrazu. Tymczasem szersze zastosowania znajdują obecnie znane metody kontekstowe w przetwarzaniu obrazów, które pozwalają między innymi na oczyszczanie obrazów z szumów, wyostrzaniu pożądanych elementów obrazu czy też wykrywanie kształtów obiektów zawartych w obrazie. Metody te nazywamy kontekstowymi, ponieważ uwzględniają sąsiedztwo pikseli, w pewnej wyznaczonej odległości m, n od rozpatrywanego piksela na płaszczyźnie dwuwymiarowej obrazu p(i, j). q(i, j) = F (p(i + x, j + y)) gdzie x = −m, . . . , m oraz y = −n, . . . , n W przypadku filtru liniowego obraz wyjściowy q(i, j) jest liniową kombinacją pikseli jego otoczenia w obrazie wyjściowym: q(i, j) = a p(i − m, j − n) + 0,0 a1,0 p(i − m, j − n + 1) + .. . + a2n+1,0 p(i − m, j + n) q(i, j) = a0,0 a1,0 ... a0,1 a1,1 .. . + a0,1 p(i − m + 1, j − n) a0,2m+1 p(i + m, j − n) a1,1 p(i − m + 1, j − n + 1) + · · · + a1,2m+1 p(i + m, j − n + 1) .. .. . . + .. + . a2n+1,1 p(i − m + 1, j + n) ··· a0,2m+1 ··· .. . a1,2m+1 a1,0 p(i − m, j − n + 1) .. .. . . a2n+1,0 a2n+1,1 · · · a2n+1,2m+1 + ··· + p(i − m, j − n) a2n+1,0 p(i − m, j + n) + ··· + a2n+1,2m+1 p(i + m, j + n) p(i − m + 1, j − n) ··· a0,2m+1 p(i + m, j − n) a1,1 p(i − m + 1, j − n + 1) · · · a1,2m+1 p(i + m, j − n + 1) .. .. .. . . . a2n+1,1 p(i − m + 1, j + n) ··· a2n+1,2m+1 p(i + m, j + n) q(i, j) = A ∗ P Powyższą operację nazywamy splotem lub konwolucją, podczas gdy macierz A nazywamy maską konwolucji . Natomiast macierz P o rozmiarze równym masce zawiera wszystkie sąsiadujące piksele wokół rozpatrywanego przez nas piksela w otoczeniu [x, y] gdzie x = −m, . . . , m oraz y = −n, . . . , n. Taką macierz P nazywamy oknem piksela p(i, j) ∈ P . Przechodząc obraz przy użyciu okna, musimy rozważyć sytuacje, w której oraz nie posiada sąsiadujących pikseli, na przykład dla pikseli tworzących brzegi obrazu. W takim przypadku nie możemy obliczyć konwolucji z powodu braku sąsiadów. W niektórych przypadkach są one wówczas nieprzeliczane. W takim przypadku, w zależności od rozmiarów okna filtry liniowe generują efekt “Passe-partout”, czyli ramki złożonej z pikseli brzegowych o nieprzeliczonych wartościach. Aby uniknąć podobnej sytuacji, należy w pewien sposób stworzyć brakujące piksele w oknie należącym do piksela p(i, j). Istnieją trzy najpopularniejsze rozwiązania tego problemu: Uznanie, iż piksele leżące poza brzegami obrazu, przyjmują wartość Lmin , czyli kolor czarny. Powtarzanie wartości najbliższego piksela brzegowego, sąsiadującego z obszarem okna znajdującym się poza obrazem. Stosowanie metody cyklicznej, polegającej na cyklicznym zawijaniu obrazu, poprzez wypełnianie elementów okna wartościami pochodzącymi z przeciwnej strony obrazu. 29 2.5.1. Filtr Gaussa Filtr Gaussa jest filtrem liniowym stosowanym przy rozmyciu obrazu, charakteryzujący się dobrym zachowaniem krawędzi oraz detali obrazu. Posiada charakterystyczne właściwości struktury maski splotu, w którym im dalej piksel sąsiadujący znajduje się od rozpatrywanego piksela obrazu wejściowego, tym ma mniejszy wpływ na końcową wartość rozpatrywanego piksela. Filtr ten jednak nienajlepiej radzi sobie z redukcją zakłóceń w postaci szumu na obrazie. Elementy macierzy splotu filtru Gaussa są wyliczane ze wzoru rozkładu normalnego Gaussa. Zakładamy, iż centralny element posiada współrzędne równe i = 0, j = 0 oraz pozostałe elementy posiadają jednakową wariancję σi = σj = σ. Wartość elementów macierzy splotu obliczamy wg wzoru: q(i, j) = 1 ( i2 +j 2 2πσ e − 2σ 2 ) Przykładowe macierze filtru Gaussa o rozmiarze 3 × 3 dla ułatwienia obliczeń zamiast wartości rozkładu funkcji Gaussa stosuje się macierze ze współczynnikami całkowitymi. Najczęściej współczynniki macierzy są potęgami liczby 2. 0, 06 0, 1 0, 06 0, 1 0, 16 0, 1 0, 06 0, 1 0, 06 1 2 1 2 4 2 1 2 1 2.5.2. Filtr Medianowy Filtr medianowy jest funkcją nieliniową. Wynika to z faktu, iż w przeciwieństwie do wcześniejszych funkcji, filtr medianowy nie korzysta z operacji splotu dwóch macierzy. Zamiast tego sortuje elementy znajdujące się wewnątrz okna przetwarzanego piksela i wybiera zawsze wartość środkową spośród nich. Posiada jedną zasadniczą zaletę: wynikiem działania zawsze jest wartość jednego z pikseli występujących w obrazie, co może mieć znaczenie przy indeksowaniu. Filtr ten zachowując krawędzie obrazu, jest bardzo skuteczny przy eliminowaniu ziarnistych szumów. Jego wadą natomiast jest wysoka złożoność. W zależności od zastosowanego algorytmu sortującego, wraz ze wzrostem wymiarów okna obrazu prędkość filtrowania drastycznie spada. 2.6. Morfologia matematyczna obrazu cyfrowego Morfologia jest to nauka zajmująca się formą i strukturą. Morfologia matematyczna rozwinęła się na bazie prac Hermana Minkowskiego (19) z przełomu XIX i XX wieku. Jej dzisiejsza forma została określona w publikacjach Jeana Serrego 29 oraz Georga Matherona 22, którzy sformułowali podstawowe koncepcje oraz operacje morfologiczne obrazu. Operacjami 30 morfologicznymi nazywamy takie przekształcenia, które powodują modyfikację wartości pojedynczego piksela wtedy, gdy spełniony jest warunek logiczny. Jednymi z głównych zalet przekształceń morfologicznych są niezwykle proste sposoby ich wykonywania oraz prostota zapisu operacji. Dlatego też operacje morfologiczne znalazły szerokie zastosowanie w algorytmach przetwarzania obrazów. 2.6.1. Idea operacji morfologicznych Ogólny algorytm operacji morfologicznych opiera się na przechodzeniu tak zwanego elementu strukturalnego, będącego macierzą S[M, N ] M, N ∈ N w taki sposób, iż jego centralny punkt zostaje przyłożony kolejno do każdego piksela obrazu. Następnie sprawdzamy, czy lokalnie konfiguracja pikseli, odpowiada zdefiniowanemu elementowi strukturalnemu. Jeżeli tak, to wykonywana jest operacja spełniająca pewne z góry zdefiniowane warunki logiczne w przeciwnym wypadku wartości pikseli pozostają bez zmian. Elementem strukturalnym nazywamy binarną macierz S[M, N ] M, N ∈ N, posiadającą punkt centralny i tworzącą przy użyciu wartości binarnych strukturę wewnątrz macierzy. Punkt centralny posiada własny lokalny układ współrzędnych. Nazywa się on punktem reprezentacyjnym, względem którego rozpatrywany jest wzorzec struktury zapisanej w macierzy S. Rysunek 2.6 przedstawia przykładowe elementy strukturalne. Wartości 1 tworzą element strukturalny umownie zaznaczony kolorem szarym. Wyróżniony element centralny został oznaczony symbolem X. Rysunek 2.6: Przykładowe elementy strukturalne Dla zrozumienia operacji morfologicznej zmienimy w tym przypadku interpretację obrazów binarnych. Możemy taki obraz przedstawić jako zbiór wszystkich pikseli w obrazie, których wartość wynosi dokładnie 1. Wówczas możemy na obrazie wykonywać podstawowe operacje pochodzące z teorii zbiorów, takie jak: dodawanie, odejmowanie, przekrój i zawiera- 31 nie. W operacjach morfologicznych wykorzystywana jest także operacja przesunięcia o wektor p = (pi , pj ). Taki przesunięty o wektor p zbiór Pa definiujemy w poniższy sposób: P a = a + p : a ∈ Ap Innymi słowy, ta operacja to zwykłe dodanie do współrzędnych wektora p, w taki sposób, że współrzędne punktu i, j zostają zastąpione współrzędnymi przesuniętymi o wektor (i + ps , j + py ). Na przykład dla macierzy 3 × 3: AM,N 1 0 1 = 0 1 0 BM,N = 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 AM,N ∪ BM,N = 0 1 1 AM,N ∩ BM,N = 0 1 0 1 1 1 0 0 1 Współczesna morfologia matematyczna bazuje na geometrii całkowitej opisanej przez Hermana Minkowskiego. Wyróżniamy kilka operacji morfologicznych, jednak na potrzeby projektu magisterskiego ograniczymy się jedynie do operacji dylatacji oraz operacji erozji. Wykorzystują one proste operacje dodawania i odejmowania dwóch zbiorów Minkowskiego: — operacja dodawania Minkowskiego: A ⊕ B = {a + b : a ∈ A, b ∈ B} — operacja odejmowania Minkowskiego: 0 A B = (A ⊗ B ∗ ) 0 gdzie A oraz B ∗ : 0 0 A = {a : a0 ∈ / A} B ∗ = {−b : b ∈ / B} 2.6.2. Operacja dylatacji Dylatacja jest operacją polegającą na rozszerzeniu zbioru wejściowego. Formalnie oznaczamy ją przy pomocy symbolu ⊕ . Jest to morfologiczna transformacja, która łączy ze sobą dwa zbiory za pomocą wektorowego dodawania. Transformacja tworzy zbiór pikseli wszystkich możliwych par elementów obu zbiorów A, B powstałych w wyniku dodawania: A ⊕ B = {p : p = a + b, a ∈ A, b ∈ B} Alternatywnie operacja może być zinterpretowana jako połączenie wszystkich przesuniętych o wektor punktów zbioru A, w stosunku do struktury zdefiniowanej w elemencie strukturalnym B: 32 A⊕B = S b∈B Ab W operacji Ab to zbiór A przesunięty o wektor b, zgodny z definicją elementu strukturalnego. Operacja dylatacji wygląda następująco, na przykładzie dwóch macierzy A, B o wymiarze 5 × 5. (poprzez ps oznaczony został punkt centralny): 0 0 A= 1 0 1 1 0 0 1 0 0 0 1 0 0 0 h B = 1ps 1 i 1 1 0 0 0 0 A⊕B = 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0ps 0 1 1 1 0ps 0 1 1 0 Jak więc możemy zauważyć, operacja ta powoduje łączenie w obiekty elementów, które są położone blisko siebie. Sposób łączenia jest silnie związany ze strukturą zapisaną w elemencie strukturalnym. W praktyce operacja dylatacji powoduje różne efekty w zależności od zdefiniowanego elementu strukturalnego. Między innymi dylatacja powoduje zgrubienie obrazu poprzez zwiększenie powierzchni obiektów, likwiduje drobne wklęsłości oraz wygładza brzegi obiektów znajdujących się w treści obrazu. 2.6.3. Operacja erozji Erozja jest operacją odwrotną do operacji dylatacji. Erozja dwóch zbiorów A, B oznacza zbiór wszystkich punktów a takich, iż punkt a jest przesunięty o b i został zawarty w zbiorze A : A B = {a : a + b ∈ A, ∀b, b ∈ B} Inaczej mówiąc, badany jest każdy punkt a należący do obiektu A, którego wynik jest określony przez a spełniające warunek a + b ∈ A. W przeciwieństwie do operacji dylatacji jest to operacja nieekstensywna, czyli: AB ⊆ A. Przyjrzyjmy się tej operacji na przykładzie macierzy użytych do pokazania operacji dylatacji. 0 0 A= 1 0 1 1 0 0 1 0 0 0 1 0 0 0 h B = 1ps 1 1 1 0 0 0ps 0 1 1 0 i 0 0 AB = 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0ps 0 1 0 0 Element strukturalny B, który jest porównywany z każdą możliwą parą elementów macierzy A sprawdza, czy wektor p zawiera się w macierzy A. Jeśli warunek ten jest spełniony, to punkt centralny B nie podlega erozji. Ten mechanizm możemy też ująć prościej. Obiekt należący do macierzy A będąc pod wpływem erozji przez element strukturalny B, można przedstawić jako przecięcie wszystkich przesunięć obiektu A o wektor b, który jest wyznaczony przez element strukturalny: 33 AB = T b∈B A−b Operacja erozji znajduje zastosowanie przy upraszczaniu struktury obiektu oraz do podziału skomplikowanego obiektu w treści obrazu na kilka prostszych obiektów tworzących skomplikowaną strukturę. W połączeniu z operacją dylatacji może służyć do trwałego usuwania błędów w strukturach obiektów podczas procesu segmentacji wybranych cech obrazu. 2.7. Histogramy Histogramem nazywamy graficzną reprezentację operacji statystycznych realizowanych na obrazie cyfrowym. Na podstawie prowadzonych statystyk można wnioskować, że histogramy znajdują wiele zastosowań. Umożliwiają między innymi weryfikację jakości obrazu. Odbywa się ona poprzez porównywanie histogramów i takie ustawienie receptora, by jego rozkład był najbliższy rozkładowi normalnemu Gaussa. W ten sposób unika się efektów niedoświetlenia obrazu lub tak zwanemu efektu ‘przepalenia’ obrazu przy zbyt mocnym oświetleniu. Jest to rozwiązanie obecnie powszechnie stosowane w aparatach oraz kamerach cyfrowych. Innym zastosowaniem histogramów jest wykorzystanie statystyk wartości pikseli do obliczania podobieństwa obrazów lub wyszukiwania pozycji wybranej cechy w obrazie. 2.7.1. Histogram jako metoda statystyczna Dla zrozumienia histogramu użyjemy w pierwszej kolejności jego najpopularniejszej formy. Histogramem nazywać będziemy rozkład empiryczny wartości pikseli zawartych w obrazie cyfrowym. Poprzez rozkład empiryczny rozumiemy uzyskany na podstawie próby statystycznej opis wartości przyjmowanych przez cechę statystyczną, przy pomocy opisu częstości ich występowania. W naszym przypadku niech cechą będzie częstość występowania pikseli o określonej wartości z przedziału Lmin oraz Lmax wybranej klasy obrazu. W przypadku obrazów barwnych histogram jest modelowany oddzielnie dla każdego kanału składowej koloru należącej do określonego modelu kolorów. Najczęściej wartości pikseli, składające się na poziomą oś x histogramu przyjmują wartość z zakresu [0, Lmax ]. Oś y histogramu zaś zawiera znormalizowaną liczbę wystąpień wartości pikseli równej x . Konieczność normalizacji wynika z faktu, iż nie jesteśmy w stanie określić stałej maksymalnej wartości osi y histogramu. Spowodowane jest to zmienną liczbą pikseli w zależności od rozmiarów obrazu. Najczęściej przyjmuje się wartości z zakresu [0, 1], gdzie wartość 1 przypisana jest największej liczbie wystąpień pikseli, które posiadają tę samą wartość. Wartość pozostałych wystąpień jest równa liczbie ich wystąpień w stosunku do największej wartości. Rysunek 2.7 przedstawia przykładowy obraz oraz jego wykres histogramu dla kanału jasności oraz kolejno kanałów R, G, B. 34 Rysunek 2.7: Histogram RGB przykładowego obrazu Obserwując rozkład wartości, możemy zauważyć, iż każdy z histogramów posiada wartości rozłożone wokół ich środkowych wartości. To powoduje, że część informacji zawartych w treści obrazu jest niemożliwa do odczytania, także z powodu mgły znajdującej się za obrazem, jak i niskiego kontrastu. Na szczęście histogramy podlegają przekształceniom matematycznym, dzięki którym można zaingerować informacje zawarte w treści obrazu. Operacje te przekształcają histogramy, poprzez ingerencję w reprezentowane przez histogramy statystyki. Innymi słowy, używając informacji statystycznych zawartych w histogramach, będziemy zmieniać 35 wartości pikseli należących do obrazu, tym samym nadając nową statystykę dla całego histogramu, a w konsekwencji zmieniając treść obrazu. 2.7.2. Wyrównanie histogramów Wyrównywanie histogramu jest operacją, która wyrównuje liczbę wystąpień wartości pikseli w obrazie, celem poprawy różnic kontrastu obrazu. Jest szczególnie pożądana dla obrazów zapisanych w skali szarości, pozwala wtedy wydobyć więcej szczegółów z obiektów zapisanych w treści obrazu. Niestety wadą tej metody jest podatność na generowanie szumu i pogorszenie jakości obrazów barwnych w niektórych przypadkach. Dla obrazów barwnych operacja wyrównywania histogramu często generuje nierealne efekty barwne w obrazie oraz niepożądane efekty, takie jak gradienty dla obrazów o niskiej głębi bitowej. Celem wyrównania obrazu, obliczana jest dystrybuanta wartości pikseli na całym spektrum przedziału [0, Lmax ]. Dla obrazów barwnych każdy kanał obrazu jest przeliczany oddzielnie. Prawdopodobieństwo wystąpienia piksela p dla określonej wartości i wynosi: px (i) = p(x = i) = ni /n gdzie 0 ¬ i ¬ Lmax Najczęściej Lmax przyjmuje wartość 255, n jest to suma wszystkich pikseli obrazu, natomiast px (i) jest to znormalizowana do przedziału [0, 1] wartość prawdopodobieństwa wystąpienia piksela o wartości i dystrybuanty. Na podstawie powyższego rozkładu zdefiniujemy akomodacyjny histogram kumulacyjny, który zawiera sumy prawdopodobieństw dla wybranej wartości i: HKfx (i) = P ji = 0px (j) Aby otrzymać obraz y odpowiadający powyższemu histogramowi, musimy stworzyć transformację y = T (x), która posiadałaby linearną dystrybuantę na całym zakresie wartości. Innymi słowy, potrzebujemy funkcji, która przekształciłaby wartości histogramu kumulacyjnego w taki sposób, iż po przekształceniu rozkład wartości tego histogramu stałby się liniowy: HKFy (i) = iK Na taką transformację pozwala nam własność funkcji odwrotnej dystrybuanty naszego rozkładu prawdopodobieństwa: 0 HKFy (y ) = HKFy (T (k)) = HKFy (k), 0 ¬ k ¬ Lmax Należy zwrócić uwagę, iż stworzona funkcja generuje wartości z zakresu [0, 1] z powodu użycia znormalizowanych wartości histogramu kumulacyjnego x. Musimy zatem przeliczyć powyższe wartości z powrotem do zakresu [0, Lmax ]. Aby to uczynić, należy zastosować poniższą transformację: 36 0 y = y × (max{x} − min x) + min x Rysunek 2.8 przedstawia konsekwencję wyrównania histogramu dla przykładu obrazu 2.7. Histogramy opisują kolejno jasność oraz kanały R, G, B. Rysunek 2.8: Wyrównywanie histogramu i jego konsekwencje 37 2.7.3. Rozciąganie histogramów Drugą z podstawowych operacji wykonywanych na histogramach jest operacja rozciągnięcia. Pozwala na korekcję tonalności obrazu, jeśli wartości pikseli y histogramu nie pokrywają wszystkich wartości składowych x histogramu. Aby móc zrealizować tę operację, wykorzystujemy histogram obrazu H(x), wyszukując zakresy [hmin , hmax], będące niezerowymi wystąpieniami wartości pikseli w tym histogramie. Następnie, aby rozciągnąć histogram, każdy piksel należący do obrazu x musi zostać przeliczony na nowo według wzoru: p(i) = Lmax hmax −hmin × (i − hmin ) Rysunek 2.9 przedstawia konsekwencję wyrównania histogramu dla przykładu obrazu 2.7. Histogramy opisują kolejno jasność oraz kanały R, G, B. 38 Rysunek 2.9: Rozciąganie histogramu i jego konsekwencje 2.7.4. Histogramy boczne Histogramy boczne, znane także jako brzegowe, to statystyki kluczowe dla wyszukiwania cech w obrazie. Są także nietypowe z tego powodu, iż zbiór argumentów tworzy liczba pikseli szerokości i wysokości, natomiast wartością argumentu jest suma wystąpień wszystkich pikseli leżących na linii w: pionie stanowiącym wysokość obrazu oraz poziomie stanowiącym 39 szerokość obrazu. Innymi słowy, histogramy boczne nie tworzą statystyki dwuwymiarowego obrazu W [M, N ], lecz ich rozkład jest rozpatrywany tylko z perspektywy jednej osi układu kartezjańskiego. Histogramy boczne definiujemy następująco: Histogram poziomy zwany także histogramem szerokości obrazu jest to funkcja: Hx (i) = P j = 0j = N − 1p(i, j), 0 ¬ j ¬ N − 1, 0 ¬ i ¬ W − 1. Histogram pionowy zwany także histogramem wysokości obrazu jest to funkcja: Hx (j) = P i = 0i = W − 1p(i, j), 0 ¬ j ¬ N − 1, 0 ¬ i ¬ W − 1. Podobnie jak w przypadku histogramów 2.7.2 oraz 2.7.3, potrzebna jest normalizacja ich wartości. Wykonujemy ją analogicznie jak w przypadku histogramów 2.7.2, 2.7.3. Należy zadać sobie pytanie, w jaki sposób powyższy rozkład empiryczny może być przydatny? Dla obrazów nieprzeliczonych metodami przetwarzania obrazów wydaje się on całkowicie bezużyteczny, ponieważ rozkłady brzegowe obu osi przyjmują wysokie wartości. Jedynym wyjątkiem są obrazy o dużym zróżnicowaniu kontrastu lub barw. Jednakże powyższe histogramy są użyteczne dla obrazów o niskiej głębi bitowej, takich jak klasa obrazów binarnych lub obrazów w skali szarości. Pozwalają na wyraźną detekcję obszarów o różnej jasności wybranego obszaru, co umożliwia odnalezienie regionu, w którym poszukiwana jest pożądana cecha obrazu. Możemy to uczynić, wyznaczając wartość progu histogramu Hpx , Hpy , a następnie odnajdując zakresy: 0 < Hxmin , Hxmax < N oraz 0 < Hymin , Hymax < W . Zakresy muszą spełniać warunek: Hxmin , Hxmax > Hpx , Hymin , Hymax > Hpy W ten sposób znajdując oddzielnie zakresy, będące podzbiorami należącymi do odpowiednich zakresów szerokości i wysokości obrazu, określamy obszar, w którym znajduje się pożądana cecha. Przykład zastosowania histogramu przedstawia rysunek 2.10. Wyznaczony obszar wynika z zakresów wyznaczonych przez wartości progu Hpx , Hpy = 0, 5. Próg został oznaczony czerwoną linią na obu histogramach. 40 Rysunek 2.10: Przykład zastosowania histogramów bocznych. 2.8. Algorytm Viola-Jonesa i cechy Haar’a Powyżej poznaliśmy już metody przetwarzania obrazu oraz jeden ze sposobów na wyszukiwanie pożądanych pojedynczych cech obrazu. Jest to podejście niewystarczające, jeśli chcielibyśmy odnaleźć w treści obrazu jakiś bardziej złożony obiekt. Istnieje metoda opracowana przez dwóch badaczy: Paula Viola oraz Michaela Jonesa 40. Jest to metoda zrealizowana na podstawie nauczania maszynowego, w którym klasyfikator jest trenowany przy użyciu zestawów, zawierającego wiele obrazów. Zawierają one informację pozytywną dla maszyny, czyli zawierającą poszukiwaną informację lub negatywną, czyli nieposiadającą wymaganej informacji. Są one używane, aby wykryć obiekty w innych obrazach. Metoda wykorzystuje tak zwane cechy Haara. Każda cecha to wartość uzyskana w wyniku odejmowania sum wartości pikseli, dla których wartość logiczna cechy Haara wynosi 0, od sum wartości pikseli, których wartość logiczna cechy Haara jest równa 1. Innymi słowy, obliczana jest różnica sumy wartości pikseli znajdujących się w białym obszarze cechy oraz sumy pikseli znajdujących się w czarnym obszarze cechy Haara. Obliczona różnica pozwala nam kategoryzować podzbiory obrazu. H(t) = 1 0 ¬ t < 1/2 0 pozostałe −1 1/2 ¬t<1 Rysunek 2.11: Wzór falki Haara Idea kryjąca się za cechami Haara polega na tym, iż zamiast używać wartości intensywności danego piksela, wykorzystywana jest funkcja falki Haara 2.11. Wartość falki Haara H(t) 41 zależy od interwału t. Falka ta została zaadaptowana przez badaczy: Viola oraz Jonesa. W rezultacie zostały rozwinięte wspomniane cechy, które są prostokątnymi obszarami, w dowolnej pozycji wewnątrz okna obrazu. Spośród istniejących cech na potrzeby realizowanego tematu wyróżniamy 2.12,2.13,2.14: Rysunek 2.12: Cechy krawędziowe Haar’a Rysunek 2.13: Cechy liniowe Haar’a Rysunek 2.14: Cechy podziału cztero-kwadratowego Haar’a Gdy po raz pierwszy pomysł algorytmu 2.8 został przedstawiony, wymagał on sprawdzenia cech 2.12, 2.13, 2.14 dla każdego możliwego rozmiaru i położenia. Jest to zbyt duża liczba informacji do przetworzenia dla komputera. Okno rozmiaru 24 × 24 piksele mające powyższe cechy mogło ich posiadać ponad 16 tysięcy. Dlatego autorzy wprowadzili tak zwane obrazy integralne, które ułatwiają obliczenia. Obrazy te są definiowane jako dwuwymiarowe macierze o wymiarze równym oryginalnemu obrazowi. Każdy element integralnego obrazu zawiera sumę wszystkich pikseli znajdujących się w górnym lewym obszarze oryginalnego obrazu. Ta własność pozwala obliczyć sumę wartości pikseli wewnątrz prostokątnego regionu, korzystając jedynie z wartości pikseli brzegowych tworzących ten obszar, co jest pokazane na rysunku 2.15. 42 Rysunek 2.15: Ilustracja pomysłu obrazu integralnego zastosowanego w algorytmie ViolaJonesa y = I(C) + I(A) − (I(B) + I(D)) gdzie piksele A, B, C, D tworzą obszar obrazu integralnego oznaczonego przez I. Co więcej, część cech zapisanych w treści obrazu jest nieistotna. Zastosujmy rozwiązanie dla przykładu wykrywania twarzy. Cecha określona przez pionową cechę liniową Haara może być niewystarczająca dla detekcji oczu człowieka. Rozpatrzmy taki element liniowy przechodzący przez linię wzroku, co jest pokazane na rysunku 2.16. Pionowa cecha liniowa skutecznie wykorzystuje fakt, iż obszar oczu jest zazwyczaj ciemniejszy niż nosa lub policzków. Korzystając z innch cech Harra nie można wykryć tej zależności, z wyjątkiem drugiej cechy liniowej. Jednak przy użyciu tej cechy na linii wzroku w tym samym punkcie, możliwe jest wykrycie zależności. Dzieje się tak, ponieważ obszar oczu zazwyczaj jest ciemniejszy niż skóra na kości nosowej. Autorzy na potrzeby szybkiej detekcji najlepszych cech zaproponowali użycie następującego sposobu. Zastosowali kaskady klasyfikatorów, które grupują cechy do różnych etapów klasyfikacji, a następnie stososują klasyfikatory jeden po drugim. Jeśli potencjalne okno obrazu nie spełnia warunków cechy, jest odrzucane, jeśli spełnia warunek, wtedy przetwarzany jest kolejny etap porównywania zaakceptowanego fragmentu obrazu, z cechami Haara. W przypadku oryginalnego detektora zaproponowanego przez autorów rozwiązania klasyfikator przeanalizował ponad sześć tysięcy cech w przeciągu 38 etapów, które zawierały kolejno 1, 10, 25, 50 cech w przeciągu pierwszych pięciu etapów. Według autorów średnio 10 cech z ponad 6000 jest obliczanych w każdym podoknie. Jak więc widzimy, jest to całkiem efektywna metoda wyszukiwania obiektów. 43 Rysunek 2.16: Przykład wyszukiwania obrazu przy pomocy cech Haar’a 44 ROZDZIAŁ 3 Autorskie podejście do detekcji cech obrazu cyfrowego W niniejszym rozdziale przedstawiono działanie opisanych wcześniej technik przetwarzania obrazu na potrzeby detekcji twarzy człowieka. W sekcji 3.1 przedstawione są założenia dotyczące obrazu wejściowego na potrzeby przetwarzania obrazów. Zostaną zaprezentowane dwa podejścia do problemu segmentacji cech. Opisane w sekcji 3.3, zawierają metody czułe na zmiany barwy i jasności obrazu, natomiast metody segmentacji opisane w sekcji 3.4 oparte zostały o przetwarzanie obrazu monochromatycznego, który posiada mniej informacji zawartych w treści obrazu. Na końcu każdej sekcji 3.3 i 3.4 zostały przedstawione wnioski z obu metod oraz techniki wykorzystywane na potrzeby próby uniewrażliwienia obrazu na zmiany w barwie i jasności. 3.1. Założenia ekspozycji, światłocienia i barwy dla obrazu wejściowego Maszynowa detekcja emocji wymaga, aby obraz wejściowy zawierał możliwie najczystsze informacje w jego treści, które maszyna będzie przetwarzać. Oczywiście jednym z wyzwań współczesnej informatyki jest możliwie największe odfiltrowanie szumów i zakłóceń, w celu wydobycia pożądanych informacji niezależnie od jakości obrazu. Na potrzeby projektu badawczego zostaną wprowadzone pewne minimalne warunki dotyczące jakości obrazu, aby było możliwe pozyskanie z niego interesujących nas cech. Warunkami tymi zarówno dla receptora, jak i samego obrazu są: Dobrze oświetlony obszar twarzy, niezawierający efektu “przepalenia” obrazu, czyli sytuacji, w którym duże obszary zawierają kolor biały o wartości Lmax danej głębi bitowej. Jednocześnie obraz nie powinien zawierać dużych obszarów niedoświetlonych, zawierających wartości Lmin danej głębi bitowej. Zalecane oświetlenie punktowe lub dwupunktowe pod kątem 30*-45* w stosunku do pionowej osi środka frontalnego rzutu twarzy, uniemożliwiającego występowanie niepożądanych mocnych cieni na obszarze twarzy, które wynikły z jej budowy. W przypadku oświetlenia środowiskowego zalecane jest przebywanie w otoczeniu stałego, niezmienne- 45 go źródła światła, spełniającego warunek braku wyraźnych cieni wynikających z budowy twarzy. Obraz nie powinien zawierać tak zwanego efektu “przepalenia”, polegającego na przyj- mowaniu dużych wartości barw podstawowych modelu barw i w efekcie fałszującego rzeczywiste barwy obrazu. Receptor powinien możliwie najwierniej odtwarzać barwy otoczenia, poprzez edycję balansu bieli, dla zrównoważenia temperatury barwowej źródeł światła z otoczenia. Minimalnym formatem obrazu powinien być format SD (Standard Definition), rozmiaru 640px na 480px. Zalecanym formatem dla poprawnej detekcji twarzy jest standard HD720p lub większy. Obszar twarzy powinien wynosić nie mniej niż 100 px, dla obszaru detekcji Haar’a dla poprawnej detekcji emocji. Obraz nie powinien zawierać znacznego szumu elektronicznego, nieumożliwiającego odczytanie twarzy człowieka z obrazu. Dla płynnej analizy obrazu zalecany jest receptor zdolny do pobierania obrazów z klatkarzem wynoszącym co najmniej 25 klatek na sekundę dla obrazów zapisanych z przeplotem zgodnych z europejskim standardem PAL lub 24,93 klatek na sekundę dla urządzeń zgodnych ze standardem NTSC. 3.2. Klasyfikator Haar’a dla detekcji twarzy W pierwszym kroku wykorzystany został klasyfikator Haara dla detekcji twarzy zwróconej w stronę receptora, pochodzącego z biblioteki OpenCV (28). Klasyfikator ten generuje obszar kwadratowy obejmujący oczy, brwi, nos i usta. Jednak rodzi on problem związany z segmentacją, ponieważ nie obejmuje on dolnej części szczęki oraz czoła. Przyczyną takiej sytuacji jest fakt, iż za długość boku wykrytego obszaru przyjmowana jest jedynie szerokość twarzy, natomiast klasyfikator nie uwzględnia prawdziwych proporcji twarzy. Co więcej, usta w niektórych przypadkach ekspresji mimicznych mogą znaleźć się poza obszarem wyznaczonym przez klasyfikator. Jednakże, aby zwiększyć prawdopodobieństwo znalezienia pożądanej cechy oraz ogólną wydajność programu możemy podzielić ten obszar na mniejsze podobszary, w których znajdują się pożądane cechy. Nie możemy jednak dokonać wstępnego podziału obrazu na podstawie proporcji twarzy z powodów różnic w proporcjach. Aby rozwiązać ten problem, zostały uwzględnione zupełnie inne, procentowe wartości wysokości oraz szerokości obszaru twarzy dla detekcji oczu i brwi. W przypadku ust obszar został przesunięty, aby obejmował także całą dolną szczękę. 46 3.3. Metody detekcji cech czułe na zmiany barwy i jasności Jednym z pierwszych podejść dla problemu segmentacji poszczególnych cech twarzy z obrazu cyfrowego, było wykorzystanie możliwie największej liczby informacji pozyskanej z receptora obrazu. Segmentacja odbywała się poprzez uwzględnienie informacji poszczególnych barw modelu RGB. Przetworzony obraz wynikowy natomiast był obrazem monochromatycznym, zawierającym tylko obszar poszukiwanej cechy obrazu. Tym samym, jeśli obraz wejściowy jest przesycony, np. receptor jest zbyt czuły na fale długie i w konsekwencji obszary są sztucznie zabarwiane na czerwono, może to prowadzić do błędów w detekcji cech. W przypadku występowania niedostatecznej lub dużej jasności zastosowane metody przetwarzania wypadają znacznie lepiej, pod warunkiem, iż obraz nie zawiera zbyt dużych zbiorów pikseli o wartościach bliskich Lmin i Lmax w miejscach wyszukiwania. 3.3.1. Detekcja oczu Poszczególne etapy w segmentacji barwnej modelu RGB zaczynamy od znalezienia podobszarów, w których mogą oczy występować. W projekcie obszary te są rozpatrywane oddzielnie, analizujemy oddzielnie lewe oraz prawe oko przy użyciu podobnych metod. Ma to na celu uniemożliwienie przypadkowej detekcji krawędzi nosa. Obszar wyszukiwania oka stanowi 2/ 3 wysokości oraz szerokości obszaru wykrytego przez klasyfikator Haara, przesuniętego o 1/ 6 względem oryginalnej wysokości, oraz szerokości względem górnej lewej krawędzi obrazu. Obszar ten zawiera w obrazie oczy możliwie bez widocznych brwi oraz nosa. Rozróżnienie na oko lewe oraz oko prawe dokonujemy poprzez proste nieuwzględnianie wartości z przedziału poniżej ½ wartości nowej szerokości lub powyżej tej wartości. Następnie wykonywane są operacje 3.1 na wszystkich kanałach modelu RGB: Algorytm 3.1: Pseudokod metody przetwarzania obrazu na potrzeby detekcji oczu Dla każdego piksela obrazu p(i,j): { B(p(i,j) = R(p(i,j)) - G(p(i,j))) R(p(i,j) = 2*R(p(i,j))) ¬ p(i,j) } Progowanie Do Zera RGB(p(i,j)) Dylatacja(p(i,j)) W ten sposób nasycamy obszar oczu kolorem czerwonym, w widoczny sposób odróżniając obszar oczu od pozostałych cech twarzy, poprzez różnicę barw zapisanych na kanale B. Operacja negacji natomiast ma za zadanie wyodrębnić dotychczas zapisane na niewielkich wartościach źrenice, barwami o wysokich wartościach zbliżonych do bieli, co ma praktyczne 47 zastosowanie przy użyciu histogramów bocznych. Następnie przy pomocy operacji progowania do zera wyodrębniamy sam potencjalny obszar oczu. Ostatnim etapem jest użycie operacji morfologicznej — dylatacji, która powoduje zgrubienie obszaru wyszukiwania. Jest to bardzo ważne, gdyż wyodrębniony obraz w zależności od wielkości obszaru całej twarzy może mieć zaledwie rozmiar kilku pikseli wysokości i szerokości. Dylatacja pozwoli nam na stabilne śledzenie oka. Ten obszar opisujemy, używając histogramu bocznego, z przyjęta wartością progu akceptacji większą niż 0.2. 3.3.2. Detekcja ust W przypadku detekcji ust pierwsze kroki są analogiczne jak w przypadku detekcji oczu opisanego w sekcji 3.3.1. Wykorzystujemy ten sam obszar wyszukiwania, tym razem jednak analizujemy tylko i wyłącznie dolną połowę wspomnianego obszaru. W momencie trwania testów tej metody zdarzały się jednak sytuacje, w której dla ust szeroko rozwartych dolna warga potrafiła wyjść poza taki obszar wyszukiwania. W procesie segmentacji nie udało się wyodrębnić ust, opierając się na kanale czerwieni, dlatego wydobyty obraz i obszar segmentacji został oparty o kanał koloru zielonego. Operacje pozostają dokładnie takie same jak w przypadku detekcji oczu z wyjątkiem operacji progowania oraz stopnia nasycenia czerwieni w obrazie wyjściowym, która wynosiła 1.4. W wyniku wykonania operacji progowania na obrazie dominantą są barwy kanału zielonego, z niewielką ilością tonów kanału czerwonego o dużych wartościach, w treści obrazu. Metoda pozwala na szybką i relatywnie poprawną metodę detekcji obszaru ust. Niestety jednak przy zmiennym oświetleniu może dochodzić do utraty informacji o kształcie i pozycji warg w treści obrazu, co poważnie utrudniałoby poprawną detekcję. 3.3.3. Problemy i wnioski z zastosowanej metody W trakcie prac zauważono główny problem, który doprowadził do porzucenia metody. Obraz wejściowy był niezwykle czuły na najmniejsze zmiany barwy wejściowej obrazu. Co gorsza, metody opierające się na wydobywaniu cech na podstawie dwóch różnych kanałów tego samego modelu koloru, powodowały, iż temperatura barwowa musiała być możliwie neutralna. Wydaje się, iż naturalną metodą segmentacji ust na podstawie operacji na barwach, będzie podobnie jak w przypadku oczu barwa czerwona. Niestety, wartości tej barwy znajdowały się w opisie skóry o wartościach zbliżonych do wartości znajdujących się na ustach człowieka. To spowodowało, iż niemożliwym jest w szybki i oszczędny dla zasobów maszyny sposób segmentacji wspomnianego obszaru na kanale czerwonym. Brak dostatecznej segmentacji cech, a w konsekwencji brak obszarów mogących podlegać detekcji emocji, doprowadził do zarzucenia poszukiwania rozwiązań w obrazach barwnych. 48 3.4. Metody detekcji cech odporne na zmiany barwy Wszystkie poniższe metody detekcji opierają się na przetwarzaniu obrazu monochromatycznego, o głębi bitowej równej 8bpp, zwanej także obrazem w skali szarości. Zamiast wykonywać operacje na barwach obrazu, metoda skupia się na poszukiwaniu cech na podstawie kontrastów w skali szarości. Innymi słowy, będziemy dążyć do zmian intensywności pikseli w taki sposób, aby w wyszukiwanym podobszarze nasza cecha przyjmowała możliwie największe lub najmniejsze wartości na tle sąsiadujących zbiorów pikseli obrazu. Możemy zauważyć, że ten sposób jest skutecznie wykorzystywany przez algorytm Viola-Jones i klasyfikator kaskadowy. Dla przeszukiwania przy pomocy cech zaletą metody jest fakt, iż sposoby detekcji stają się niewrażliwe na zmiany nasycenia lub temperatury barwowej obrazu wejściowego, dzięki szybkiej operacji konwersji do obszaru monochromatycznego, o złożoności liniowej dla każdego piksela obrazu (2.2.2.4). 3.4.1. Detekcja oczu Na potrzeby detekcji oczu zmieniono proporcje analizowanego obrazu. Zmiana wynikała z faktu, iż zamiast przetwarzać ten sam podobszar pola wyszukiwania twarzy, wyodrębnione zostały mniejsze pod obrazy dla każdej z cech, które będą analizowane oddzielnie. Nowym podobszarem oczu jest obszar wynoszący 2/3 szerokości oraz 1/5 wysokości obszaru wyznaczonego przez algorytm Viola-Jones z użyciem klasyfikatorów Haar’a. Obszar ten obejmuje potencjalne pole oczu, możliwie bez obszaru brwi wraz z obszarem szwu czołowo-nosowego. Przetwarzanie wykonujemy dla obu oczu naraz, podczas gdy detekcja jest rozpatrywana indywidualnie. Operacje segmentacji oczu zostały opisane w pseudokodzie 3.2, natomiast skutek tej operacji krok po kroku przedstawia rysunek 3.1. Algorytm 3.2: Pseudokod metody przetwarzania obrazu na potrzeby detekcji oczu Dla każdego piksela obrazu p(i,j): { ¬ p(i,j) Gamma(p(i,j), 2.7) } Progowanie Binarne(p(i,j), próg = 170) Dylatacja(p(i,j), powtórzenia = 2) Przy pomocy histogramów bocznych określamy pozycję oczu. Informacja ta jest wykorzystywana do aktualizacji całego obszaru twarzy, a w konsekwencji do aktualizacji informacji dotyczącej pozycji pól poszukiwania poszczególnych cech, w przestrzeni dwuwymiarowej obrazu. 49 Rysunek 3.1: Proces przetwarzania oczu 3.4.2. Detekcja brwi Podobnie jak w poprzednich przypadkach wyznaczamy podobszar dla brwi. Obszar ten obejmuje górną część oczodołu oraz czoło. Jest to obszar wynoszący 3/4 szerokości oraz 1/ 4 wysokości obszaru detekcji Haar’a. Poszczególne operacje wykonywane na obrazie celem segmentacji brwi została opisana przy użyciu pseudokodu 3.3. Algorytm 3.3: Pseudokod metody przetwarzania obrazu na potrzeby detekcji brwi Dla każdego piksela obrazu p(i,j): { Zwiększ kontrast(1.2,p(i,j)) { Erozja(p(i,j), powtórzenia = 1) Dla każdego piksela obrazu p(i,j): { Gamma(p(i,j), 3.0): } Progowanie Binarne(p(i,j), próg = 30) Dla każdego piksela obrazu p(i,j): { ¬ p(i,j)} Skutki operacji 3.3 krok po kroku przedstawia rysunek 3.2. Pozostaje kwestia opisu kształtu poszczególnych brwi. Obliczany podobszar ograniczamy z dolnej, lewej oraz prawej krawędzi o 1/16 pola detekcji brwi. Ma to na celu poprawę odczytu cechy. Obszar ich detekcji 50 jest obliczany na podstawie poziomego histogramu bocznego. Ich zaznaczenie obliczamy na podstawie binarnego zapisu jego kształtu, poprzez odszukanie pikseli o wysokich wartościach, które mieszczą się powyżej progu wyznaczonego przez pionowy histogram boczny. Następnie, aby opisać pojedynczą brew, dzielimy szerokość obszaru brwi na N punktów, warunkujących szczegółowość opisu. Próbkujemy następnie tylko te piony obrazu, które zostały wyznaczone przez segment s ∈ [0, N ] i nalezą do obszaru wyznaczonego przez histogramy boczne. Następnie łączymy je linią dla wizualnego opisu kształtu brwi. Na potrzeby analizy emocji wykorzystywać będziemy jedynie informacje o wybranych punktach z przedziału [0, N ]. Rysunek 3.2: Proces przetwarzania brwi 3.4.3. Detekcja Ust Obszar detekcji ust został zmieniony w porównaniu do pierwszej metody i w przeciwieństwie do metody jego detekcji w obrazach barwnych wykracza on nieznacznie poza obszar wyznaczony przez algorytm Viola-Jones. Obszar ten wynosi 3/5 szerokości oraz 2/4.75 wysokości. Obejmuje on obszar poniżej końca nosa, wraz z ustami oraz brodą człowieka. Operacje wykonywane na tym obszarze są opisane przy pomocy pseudokodu 3.4: Algorytm 3.4: Pseudokod metody przetwarzania obrazu na potrzeby detekcji ust Wyrównaj Histogram dla podobszaru ust Progowanie ucięte(próg = 90) Dla każdego piksela obrazu p(i,j): { ¬ p(i,j) Gamma(p(i,j), 2.0): } Progowanie binarne(próg = 180) Dylatacja(powtórzenia = 2) 51 Rysunek 3.3: Proces przetwarzania ust Skutki operacji 3.4 krok po kroku przedstawia rysunek 3.3. W powyższej metodzie wykorzystanie operacji wyrównywania histogramu może zaskakiwać, ponieważ istnieje szansa na wystąpienie błędów przy detekcji cechy. Skutkiem tej operacji jest natomiast mocno podniesiony kontrast obrazu, a tym samym uwidoczniona przestrzeń pomiędzy wargami ust. Więcej na temat problemów związanych z tą metodą, ująłem w sekcji 3.4.5. Operację progowania dokonujemy dwukrotnie. Pierwsze progowanie ma za zadanie możliwie oczyścić obraz z informacji dotyczących skóry. Dopiero, po operacji negacji i zwiększeniu gammy obrazu druga operacja progowania wydobywa informację o kształcie ust na podstawie obszaru pomiędzy wargami. Detekcję pozycji cechy w obrazie wykonujemy jak w poprzednich przypadkach przy pomocy histogramów bocznych. Na jego podstawie, wyszukujemy od środka wyznaczonego obszaru przez histogramy boczne czterech punktów, które będą opisywać kształt ust. Punkty opisujące krawędź wargi górnej oraz dolnej wyznaczamy, dzieląc szerokość obszaru na pół i wyszukując ostatniego wystąpienia pikseli o wysokich wartościach, na górze lub odpowiednio na dole od środka wysokości wspominanego obszaru, wyznaczonego przez histogram boczny. Kąciki ust są oznaczane przez ostatnie wystąpienie piksela o wysokich wartościach na brzegach obszaru detekcji. 3.4.4. Wnioski z zastosowanej metody Nowa metoda pozwoliła na rozwiązanie problemów występujących przy detekcji cech w obrazach barwnych. Kosztem utraty informacji w treści obrazu udało się uzyskać relatywnie 52 stabilną detekcję cech oraz kluczowych punktów na rzecz detekcji emocji. Niestety nie udało mi się rozwiązać problemu detekcji cech, w przypadku wystąpienia mocnych cieni na twarzy ludzi, które nadal mogą w niektórych przypadkach fałszować wyniki rozpoznawania emocji. Dodatkowo kontrowersyjne może wydawać się także zastosowywanie operacji dylatacji i erozji. Kosztem precyzji informacji, uniewrażliwiono detekcję cechy na możliwie występujący szum elektroniczny lub drobne błędy w kształcie ust wynikające z punktowego charakteru operacji progowania obrazu. Badania skuteczności detekcji cech przeprowadzono na grupie badawczej liczącej 10 osób, różniących się budową twarzy, wiekiem oraz aparycją. Opracowana metoda detekcji okazała się skuteczna dla większości z nich. Ze względu na oparcie detekcji cech o różnice kontrastu, wystąpiły problemy w opisie ust oraz brwi u osób posiadających bardzo jasne włosy w tym u osób starszych o siwych włosach. W przypadku gwałtownych ruchów głowy dochodziło do sytuacji, w których obszar wyszukiwania był gubiony z powodu efektu rozmycia w pojedynczej klatce obrazu. W przypadku detekcji ust bujna broda zdołała skutecznie uniemożliwić opis warg. U osób posiadających delikatny zarost detekcja pozostawała poprawna. W przypadku opisu brwi wystąpił problem związany z końcami brwi od strony zewnętrznych krawędzi twarzy. U części badanych osób końcówki brwi okazały się słabo zarysowane, co powodowało utratę części informacji dotyczących ich kształtu. 3.4.5. Problem uniewrażliwienia obrazu na zmiany jasności Metody segmentacji opisane w 3.4 są ściśle związane z poziomem jasności obszaru twarzy obrazu. W konsekwencji obraz niedoświetlony lub nieznacznie prześwietlony może w dużym stopniu wpłynąć na jakość detekcji cech. Tymczasem maszynowa detekcja powinna być możliwie najbardziej odporna na wszelkie zmiany środowiskowe oświetlenia. Jednym ze sposobów wyrównywania poziomu jasności w obrazie są operacje na histogramach obrazu. Nie możemy ich stosować wobec całego obrazu, z uwzględnieniem jego tła. Generować on będzie wartości niezwiązanych z jasnością twarzy zbiorów pikseli, których zawsze będzie więcej, a tym samym w konsekwencji wpłynie znacząco na operację rozciągnięcia lub wyrównania obrazu. Można temu zaradzić, ograniczając obszar w każdej klatce obrazu tylko do obszaru uwzględnionego przez klasyfikator Haara. W ten sposób obraz ten będzie w dużej większości zawierać w treści samą twarz, wraz z jej cechami oraz małymi skupiskami tła. W praktyce zdawało się, iż pomysł wydawał się słuszny, niestety finalnie zdarzało się, iż okazał się on fatalny w skutkach dla detekcji poszczególnych cech. Powodami był zróżnicowany wygląd u badanej grupy ludzi oraz tło środowiskowe w treści obrazu. Operacja wyrównywania histogramu dawała obiecujące rezultaty niezależnie od takich różnic jak: długości i tonu włosów, brody, czy też nieco ciemniejszej karnacji skóry, jednak w niektórych przypadkach powodowała całkowity zanik pikseli cechy. Przykładem takiej sytuacji jest ob- 53 raz w którym dobrze oświetlona postać znajduje się na ciemnym tle. Dominujące ciemne piksele w obrazie powodują w konsekwencji operacji wyrównywania histogramu rozjaśnienie niektórych obszarów twarzy zawierających pożądane cechy. Tym samym utracone zostały niezbędne kontrasty pomiędzy cechami a ich najbliższym otoczeniem, co w wyniku zastosowanych operacji na potrzeby segmentacji doprowadziło do utraty informacji zawierającej opis cechy. Najwięcej problemów stworzyły także warunki środowiskowe w trakcie pobierania obrazu. W pewnych przypadkach operacja wyrównywania histogramu obrazu monochromatycznego powodowała, iż w wyniku występowania skrajnych zbiorów pikseli zbliżonych do czerni lub bieli całkowicie przejaskrawiała, lub zacieniała badany obszar twarzy w sposób uniemożliwiający poprawną segmentację cech. Innymi słowy, opisane powyżej operacje dążące do zmian intensywności pikseli nie generowały dostatecznych różnic w kontraście, aby było możliwe ich rozróżnienie. Co więcej, wyniki wyrównywania histogramu tego samego obrazu dla każdej klatki były zróżnicowane, co powodowało brak stabilności w detekcji cech. W przypadku analizy pojedynczych obrazów nie jest to problemem, jednak w przypadku analizowania sekwencji obrazów, w którym każda zmiana kształtu cechy może zostać później odczytana jako zmiana emocji, co jest efektem niepożądanym. W ostatecznej wersji projektu magisterskiego mechanizm nieuwrażliwiania na zmiany jasności pikseli dla wszystkich cech został wyłączony. Jedynym wyjątkiem pozostał pod obszar detekcji ust, który ograniczony do niewielkiego fragmentu pozwalał na bardzo dobre opisanie ich kształtu. 54 ROZDZIAŁ 4 Teoria i zastosowane techniki w detekcji emocji W niniejszym rozdziale przedstawiony jest aspekt teoretyczny odczytywania ludzkich emocji, jak i dotychczasowych badań w tym zakresie. Detekcja emocji jest opracowana na podstawie prac Paula Ekmana (7,8,9), dotyczących odczytywania emocji na podstawie ruchów mimicznych mięśni twarzy. Sekcja 4.2 przedstawia terminy, zastosowania i metody obliczeń związanych ze zbiorami rozmytymi, natomiast w sekcji 4.3 omówione zostaną zasady działania sterowników rozmytych. 4.1. Podstawy teoretyczne Detekcja emocji człowieka jest procesem skomplikowanym, który można jednak sprowadzić do zagadnienia analizy twarzy. We wstępie omówiono podejścia do metod detekcji emocji przy użyciu zmian mobilizacyjnych. Jednak ich zastosowanie w praktyce jest uciążliwe dla człowieka, z powodu konieczności użycia dodatkowych receptorów np. mierzących ciśnienie, potliwość, zmiany w oddechu itp. W latach siedemdziesiątych XX wieku psycholodzy Paul Ekman oraz Wallance V. Friesen (9) przeprowadzili kompleksowe badania nad pracą mięśni twarzy podczas występowania emocji. Prowadzili obserwacje podstawowych emocji u dużej grupy ludzi. Zaczęli zauważać pewne podobieństwa w występowaniu ruchów mimicznych twarzy, w zależności od wyrażanej emocji. Jako pierwsi opisali oni uniwersalny model, zawierający wspólne cechy u ludzi znajdujących się w określonym stanie emocjonalnym. Model pozwala sklasyfikować mimikę twarzy człowieka do jednej z sześciu podstawowych emocji. Tymi emocjami są: radość, smutek, wściekłość, zniesmaczenie, strach, zaskoczenie. Badacze rozwinęli także model dla reprezentacji bardziej zaawansowanych emocji np. zaciekawienia, jednak najczęściej przy ich wyszukiwaniu wykorzystuje się emocje podstawowe określone przez Ekmana. Na przykład detekcja emocji irytacji może składać się z emocji wściekłości oraz zniesmaczenia, jak miało to miejsce w przypadku rozwiązania firmy PSA Peugeot, opisanego w sekcji1.2.1.1. 4.1.1. Anatomiczna plastyka twarzy człowieka Aby dobrze zrozumieć procesy składające się na wyrażanie emocji w mimice twarzy człowieka, przyjrzyjmy się plastyce mięśni twarzy. Mechanika działania mięśni opiera się na skurczach i rozluźnieniach określonych partii mięśni. Posiadają one przyczepy przylegające do określonych kości i chrząstek ludzkiego ciała. Poprzez ściągniecie poszczególnych parti mięśni, wprawiają 55 elementy stałe takie jak np. kości w ruch. Mając na uwadze mięśnie odpowiedzialne za wyrażanie emocji, ograniczymy się jedynie do znajomości mięśni odpowiedzialnych za ruch powiek, brwi, czoła oraz ust. Najważniejsze mięśnie odpowiedzialne za ruchy mimiczne są oznaczone kolorem czerwonym na rysunku 4.1, a zaznaczone mięśnie są szczegółowo opisane w tabeli 4.1: Rysunek 4.1: Mięśnie mimiczne twarzy człowieka - ilustracja na podstawie rysunków 31 Mięsień M. occipito- Przyczep począt- Przyczep kowy wy Brzusiec czołowy Brzusiec potylicz- frontalis M. procerus końco- Rola Poruszanie skórą głowy ny Kość nosowa, Skóra gładzizny chrząstka boczna nosa 56 Obniżanie skóry czoła i brwi M. depressor supercilii Część nosowa ko- Przyśrodkowa ści czołowej, część trzecia powierzchni mię- skóry brwi śnia Obniżanie skóry czoła i brwi część okrężnego oka M. corrugator Część nosowa ko- Przyśrodkowa supercilii ści czołowej trzecia część skó- Obniżanie skóry czoła i brwi ry brwi, czepiec scięgnisty M. orbicularis Część oculi (pars orbi- kości talis) wyrostek nosowa czołowej, czoło- Więzadło powiek, ucisk woreczka łzowego, ruszanie włókna układają brwiami. się łzowa, pętli dło Zamykanie wiekowe boczne, wy szczeki, kość więza- po- w kształcie powiekowe przyśrodkowe, woreczek łzowy M. orbicularis Brzusiec czołowy oculi (pars pal- Brzusiec potylicz- Poruszanie skórą głowy ny pebralis) M. M. leva- tor labii supe- Wyrostek czoło- wy szczęki Skrzydła i warga nosa Poruszanie wargami, skrzy- górna, dłami nosa, policzkami i skórą rioris alaeque włókna głębokie: nasi boczny i obwód nozdrzy bródki. tylny przednich M. levator an- Dół guli oris szczęki nadkłowy Kąt ust Poruszanie wargami, skrzydłami nosa, policzkami i skórą bródki. M. zygomati- Kość jarzmowa w Warga górna, kąt Poruszanie wargami, skrzy- cus minor pobliżu szwu jarz- ust dłami nosa, policzkami i skórą mowoskroniowego bródki. M. zygomati- Kość jarzmowa w Warga górna, kąt Poruszanie wargami, skrzy- cus major pobliżu szwu jarz- ust dłami nosa, policzkami i skórą mowoskroniowego bródki. 57 M. buccinator Tylna część Kąt ust, w okolicy Mięsień synergistyczny pod- wyrostka zębodo- wargi górnej i dol- czas wzrostu ciśnienia w ja- łowego nej mie ustnej np. podczas dmu- szczęki, szew skrzydłowożuchwowy, tylna chania. część wyrostka zębodołowego żuchwy M. depressor anguli oris Podstawa żuchwy Warga dolna, po- Poruszanie wargami, skrzy- poniżej liczek bocznie od dłami nosa, policzkami i skórą kąta ust, warga bródki. otworu bródkowego górna M. depressor labii inferioris Podstawa żuchwy Warga dolna, wał Poruszanie wargami, skrzy- przyśrodkowo bródkowy, włók- dłami nosa, policzkami i skóra na bródki. poniżej M. mentalis i otworu głębokie do bródkowego błony śluzowej Łęk warga górna, kąt Poruszanie wargami, skrzy- ust dłami nosa, policzkami i skórą zębodołowy dolnego bocznego siekacza M. risorius bródki. Powięź Warga dolna, wał Poruszanie wargami, skrzy- przyuszniczo- bródkowy, włók- dłami nosa, policzkami i skórą żwaczowa na bródki. głębokie do błony śluzowej M. platysma Podstawa chwy, żupowięź Skóra żej poniobojczyka, przyusznicza powieź piersiowa M. orbicularis Część brzeżna i Główna oris część warg wargowa: Napinanie skóry szyi. część Ruszanie wargami, skrzydłami nosa, policzkami i skórą bocznie od kąta bródki. ust M. masse- ter(mięśien Łuk jarzmowy, grzbiet twarzowy, żwacz) M. Dolny brzeg wyrostka Unoszenie żuchwy. kątowego żuchwy diga- strius(mięśień Wcięcie sutkowe Kość gnykowa kości skroniowej, Opuszczanie żuchwy, unoszenie kości gnykowej dwubrzuścowy) 58 M. nasalis (pars alaris) Łęk zębodoło- Łęk zębodołowy Poruszanie skrzydełkami no- wy bocznego kła sa, a także nosem Chrząstka boczna Poruszanie skrzydełkami no- nosa, sa, a także nosem siekacza, M. (pars nasalis Łęk transver- kła zębodołowy sa) M. rozcięgno grzbietu nosa levator palpebrae mniejsze skrzydło skóra powieki gór- kości klinowej, nej oraz tarczki superioris ruch powiek górnej Tabela 4.1: Mięśnie mimiczne twarzy 4.1.2. System FACS Po raz pierwszy system FACS (ang. Facial Action Coding System) (10) został opublikowany przez szwedzkiego anatoma Carl-Hermana Hjorsj’o (13). Przedstawiona w nim została idea opisywania emocji za pomocą ruchów mimicznych twarzy. Pomysł ten został zaadaptowany i w kluczowym stopniu rozwinięty przez Paula Ekmana, Vallace Friesena oraz Josepha C. Hagera (11). Obecnie przyjmowany system FACS został zaktualizowany w 2002 r. System przypisuje ruchy mięśni mimicznych do poszczególnych kodów systemu FACS. W ten sposób powstał relatywnie obiektywny i usystematyzowany model wyrażania emocji przez człowieka. Wystąpienie określonego stanu emocjonalnego wymaga opisania twarzy, przy użyciu kilku jednostek akcji (ang. “Action Units AU”). System obejmuje tak zwane deskryptory akcji (ang. Action Descriptors (ADs)). Są to unikalne ruchy, które wynikają z ruchów wielu mięśni jednocześnie. Dodatkowo uaktualniona wersja systemu obejmuje obok kodów akcji, wartości intensywności wyrażania danej emocji, za pomocą liter z zakresu [A : E], gdzie A to śladowe występowanie, natomiast E najintensywniejsze. Wyróżniamy obecnie ponad 90 różnych kodów akcji, pogrupowanych względem obszaru występowania ruchów mimicznych np.: na obszar oczu, ust, nosa itp. Jednak większość z nich są akcjami słabo widocznymi dla człowieka, nie wspominając o detekcji maszynowej. Tabela 4.2 opisuje wybrane kody akcji. Na potrzeby pracy ograniczono liczbę kodów do jedynie kodów do najważniejszych i najbardziej widocznych mięśni mimicznych. Action Nazwa FACS Tłumaczenie unit AU Odpowiedzialny mięsień mimiczny 59 za emocję 0 (ang. Neutral face) Neutralna twarz 1 (ang. Inner brow ra- Podniesienie iser ) wnętrznej — we- Frontalis (pars medialis) części brwi 2 (ang. Outer brow ra- Podniesienie iser ) wnętrznej ze- Frontalis (pars medialis) części brwi 4 (ang. Brow lowerer ) Obniżenie brwi Depressor glabellae, Depressor supercilii, corrugator supercilii 5 6 (ang. Upper lid ra- Uniesienie górnych Levator palpebrae superioris, iser ) powiek superior tarsal muscle (ang. Cheek raiser ) Uniesienie policzków Orbicularis oculi (pars orbitalis) 7 (ang. Lid tightener ) Uniesienie policzków Orbicularis oculi (pars palpebralis) 8 9 (ang. Lips toward Sciśnięcie warg do each other similar to siebie, jeśli wargi są AU 24 ) rozdzielone. (ang. Nose wrinkler ) Marszczenie nosa Orbicularis oculi Levator labii superioris alaeque nasi 10 11 12 13 (ang. Upper lip ra- Uniesienie górnej po- Levator labii superioris, Ca- iser ) wieki put infraorbitalis (ang. Nasolabial de- Pogłębienie epener ) nosowo-wargowej (ang. Lip corner pul- Ściągniecie kącików ler ) ust (ang. Sharp lip pul- Wydecie policzków Levator anguli oris Ściągnięcie kącików Buccinator części Zygomaticus minor Zygomaticus minor ler ) 14 (ang. Dimpler ) ust do “dołków” 15 16 (ang. Lip corner de- Obniżenie pressor ) ust (ang. Lower lip de- Obniżenie pressor ) wargi 60 kącików dolnej Depressor anguli oris Depressor labii inferioris 17 (ang. Chin raiser ) Uniesienie podbród- Mentalis ka 18 (ang. Lip pucker ) Wydęcie ust Incisivii labii superioris 20 (ang. Lip stretcher ) Rozciągnięcie ust Platysma 22 (ang. Lip funneler ) Otwarcie ust Orbicularis oris 23 (ang. Lip tightener ) Zwężenie ust Orbicularis oris 24 (ang. Lip pressor ) Ściśnięcie ust, wargi Orbicularis oris stykają się ze sobą 25 (ang. Lips part) Wargi rozwarte Depressor labii inferioris, jednoczesne rozluźnienie mięśni: mentalis lub orbicularis oris 26 (ang. Jaw drop) Opadnięcie szczęki Masseter rozluźnienie mięśni: temporalis oraz internal pterygoid 27 (ang. Mouth stretch) Rozciągniecie ust Pterygoids, digastric 28 (ang. Lip suck ) Wessanie wargi Orbicularis oris 29 (ang. Jaw thrust) Wysunięcie szczęki — Wysunięcie szczęki w — do przodu 30 (ang. Jaw sideways) bok 31 (ang. Jaw clencher ) Ruch policzków przy Masseter przełknięciu 32 (ang. Lip bite) Nadgryzienie wargi — 33 (ang. Cheek blow ) Wydmuchanie — po- liczków 34 (ang. Cheek puff ) Nadęcie policzków — 35 (ang. Cheek suck ) Zassanie policzków — 36 (ang. Tongue bulge) Wewnętrzne — tknięcie do- językiem policzka 37 (ang. Lip wipe) Dotkniecie językiem — wargi ust 38 (ang. Nostril dilator ) Rozszerzenie nosa Nasalis (pars alaris) 39 (ang. Nostril com- Zwężenie nosa Nasalis (pars transversa) pressor ) 61 41 (ang. Glabella lowe- Opuszczenie powiek rer ) 42 43 oddzielny przypadek AU4, procerus (ang. Inner eyebrow oczy w formie ‘szpar- Oddzielny przypadek AU4, lowerer ) ki’ depressor supercilii (ang. Eyes closed ) Zamknięte oczy Rozluźnienie mięśnia: levator palpebrae superioris 44 45 (ang. Eyebrow gathe- Ściągniecie brwi do Oddzielny przypadek AU4, rer ) środka twarzy corrugator supercilii (ang. Blink ) Zmrużone oczy Rozluźnienie mięśnia: levator palpebrae superioris, skurcz: orbicularis oculi (pars palpebralis) 46 (ang. Wlink ) Mrugnięcie oczami Orbicularis oculi Tabela 4.2: Kody FACS 4.1.3. Przełożenie teoretyczne w obrazie cyfrowym Model teoretyczny FACS jest idealną podstawą dla detekcji emocji. Pozwala on na rozróżnienie głównych ruchów mimicznych, występujących przy danej emocji w przejrzystej formie. Niestety szczegółowy opis ruchów tkanek w większości przypadków, jest zbyt trudny dla wykrycia przez komputer. Jednym z rozwiązań jest stosowane od wielu lat podejście w technologii motion-capture. Na twarz nakładane są wyraźnie znaczniki w kluczowych miejscach wyróżnionych przez model FACS. W ten sposób maszyna może w bardzo prosty sposób wyrysować na podstawie markerów siatkę twarzy i przenieść ją na wirtualny model. Podobną strategię, można wykorzystać przy analizie emocji, jednak byłoby to uciążliwe dla badanej osoby. Innym podejściem jest wyselekcjonowanie głównych cech odpowiedzialnych za emocje, które są możliwie najintensywniejsze według modelu FACS. Spośród nich, za najważniejsze dla detekcji emocji twarzy, przy założeniach eksperymentu wyróżniono: Kształt brwi — po przetworzeniu obrazu wejściowego, w sposób opisany w poprzednim w rozdziale, z przedziału [0, N ] opisu brwi składającego się z N punktów, wyróżniono trzy punkty kluczowe. Wyróżnionymi zostały punkty skrajne oraz punkt znajdujący się w odległości 2/3 pomiędzy punktami skrajnymi, od zewnętrznej części twarzy. Punkt ten pozwala na wyróżnienie ruchów brwi mięśni frontalis (pars lateralis) i rozróżnienie ich 62 kształtu dla podstawowych emocji zdefiniowanych przez Paula Ekmana. Każda brew jest rozpatrywana indywidualnie. Opis wysokości oczu — w wyniku zastosowanej metody przetwarzania obrazu tracimy informacje o różnicy między białkiem oka a jego źrenicą. Wynika to z faktu, że dla stabilności wykrywania wzroku obszar źrenic został pogrubiony przy użyciu operacji morfologicznych. W ten sposób w niektórych przypadkach tracimy informacje dotyczące kształtu oka, na rzecz stabilnego algorytmu śledzenia wzroku. Opis ust — emocja na podstawie ust jest wykrywana na podstawie trzech czynników: — Wysokości ust — przy pomocy dwóch punktów opisujących górna część wargi górnej w środkowym punkcie detekcji oraz dolna krawędź wargi dolnej w środkowym punkcie detekcji. — Szerokości ust — na podstawie detekcji kącików ust, przy użyciu dwóch punktów. — Wysokości kącików ust — przy pomocy tych samych punktów, co w przypadku pomiaru szerokości ust. Wysokość kącików ust jest mierzona względem średniej wysokości punktów, które opisują górną oraz dolną wargę. Alternatywnym sposobem byłby pomiar względem czubka nosa, który wydaje się na pierwszy rzut oka naturalny. Jednak przy ruchach głowy w osi poziomej, różnica między czubkiem nosa lub nozdrzami a kącikiem ust zmienia się zbyt szybko, co mogłoby fałszować wyniki. Dodatkowo wystąpił problem z detekcją nosa w niektórych przypadkach np. gdy czubek nosa nachodzi na usta przy głowie pochylonej w dół. 4.2. Zbiory Rozmyte W jaki sposób możemy powiedzieć maszynie, iż np. brew jest uniesiona ‘wysoko’ lub kąciki ust są ‘mocno’ obniżone, używając matematyki? W sekcji 2.6 wykorzystywano interpretacje obrazu jako zbioru, w rozumieniu klasycznego rachunku zbiorów na potrzeby operacji morfologicznych. Jednakże tym razem klasyczne zbiory nie znajda zastosowania ze względu na ostre granice zbiorów. Możemy np. przyjąć, iż piksel tworzący jeden z kącików ust k(i, j) znajdują się ‘wysoko’, jeśli q(i, j) ∈ A(i, j), będącego zbiorem o granicach ostrych A ograniczonego Aimin < i < Aimax , Ajmin < j < Ajmax , Aj, Ai ∈ A. Poprzez zmienne Ai, Aj rozumiemy granice zbioru znajdującego się w obrazie, ograniczonego przez dwie wartości wysokości oraz szerokości obrazu. Jednakże czy możemy powiedzieć to samo, jeśli piksel ten znajduje się zaledwie jeden piksel niżej lub wyżej od wyznaczonego przez zbiór przedziału? Odpowiedz naturalna dla człowieka, brzmi tak: przecież to jest niewielka różnica, kącik ust jest nadal ‘wysoko’. W rozumieniu matematycznym jednak odpowiedź jest przeciwna. Wyznaczanie ostrych granic przedziałów dla przynależności piksela do termów: ‘nisko’, ‘wysoko’, ‘mocno’, 63 ‘słabo’, ‘prawie równo’ nie ma sensu. Należy poszukać innych rozwiązań, które umożliwiłyby modelowanie intensywności występowania kodów akcji systemu FACS. Jedną ze struktur matematycznych pozwalających na tego typu operacje, są zbiory rozmyte (ang. fuzzy sets). 4.2.1. Teoria zbiorów rozmytych Lofiego Zadeh’a Lofi Zadeh w swoich publikacjach (16) wprowadził po raz pierwszy pojęcie zbioru nieostrego — (ang. fuzzy set). W użyciu funkcjonują także określenia takie jak podzbiór rozmyty lub nieostry w zadanym uniwersum M. Niech A, B, C · · · ∈ M to podzbiory uniwersum zbioru. Niech podzbiór należący do uniwersum D ∈ M: 1 LDx = 0 gdy x ∈ D gdy x ∈ /D Dowolnym zbiorem zawierającym funkcje przynależności M → [0, 1] nazywamy zbiorem rozmytym. Nośnikiem (ang. support) nazywamy taki zbiór, który zawiera przynależności do zbioru rozmytego M większe niż 0: supp(A) = {x ∈ M : A(x) > 0} T-przekrojem nazywamy zbiór, który zawiera przynależności większe od wartości t. Jądrem ker(A) zbioru rozmytego nazywamy zbiór, który przyjmuje jedynie elementy posiadające wartości funkcji przynależności równe 1: At = {x ∈ M : A(x) t} ker(A) = A1 Parametr t jest progiem istotności należenia elementu do zbioru A, takim że t ∈ (0, 1]. Zbiór At składa się z elementów, które w istotnym stopniu należą do A lub których wartość elementów jest dostatecznie wysoka. Wyróżniamy: At = A−1 ([t, 1]) — przeciwobraz zbioru [t, 1], ker(A) = {x ∈ M : A(x) = 1} Zbiór rozmyty A uznajemy za zbiór skończony, gdy jego nośnik supp(A) jest zbiorem skończonym. Jeżeli zbiór jadra zbioru rozmytego jest niepusty, czyli ker(A) ∈ / ∅, wtedy taki zbiór nazywamy normalnym. Przeciwnym przypadku zbiór A nazywamy subnormalnym. Jeśli |supp(A)| = 1, to taki nośnik nazywamy singletonem. Singletony zapisujemy symbolem a/x , gdzie x ∈ M, a ∈ (0, 1]. Singleton jest zbiorem rozmytym postaci: a a /x (z) = 0 gdy x = z gdy x 6= z Każdy zbiór rozmyty A możemy przedstawić jako sumę singletonów: A = {x1 , x2 , x3 , . . . , xn }, jeśli supp(A) = {x1 , x2 , x3 , . . . , xn }, n > 1. Taką notację nazywamy Singletonową. Pozwala ona na bardzo wygodny i czytelny sposób opisu zbioru nieostrego. 64 A= Pn i=1 A(xi )/xi Notację singletonową można rozszerzyć na zbiory nieostre o przeliczalnym nośniku A = P x∈supp(A) A(x)/x oraz o nieprzeliczalnym nośniku A = R A(x)/x. 4.2.2. Operacje na zbiorach rozmytych Podstawowe operacje przeprowadzane na zbiorach rozmytych są podobne jak w konwencjonalnej teorii mnogości. Tymi operacjami są: dopełnienie, przecięcie i suma zbiorów. Wyrażamy je jednak przy pomocy funkcji przynależności A(x). Dopełnienie zbioru rozmytego A określonego w uniwersum M oznaczamy jako ¬(A) i definiujemy jako: ¬A(x) = (1 − A(x)), ∀x ∈ M Przecięciem zbiorów rozmytych A, B określonych w uniwersum M oznaczamy przy użyciu symbolu A ∩ B i definiujemy jako: A ∩ B(x) = A(x) ∧ B(x), ∀x ∈ M Gdzie operacja ∧ jest operacją minimum, czyli a ∧ b = min(a, b). Przekrój zbiorów rozmytych odpowiada spójnikowi i lub stosując nazewnictwo angielskie AN D. Sumą zbiorów rozmytych A, B określonych w uniwersum M oznaczamy jako A ∨ B i definiujemy jako: A ∪ B(x) = A(x) ∨ B(x), ∀x ∈ M Gdzie operacja ∨ jest operacją maksimum, czyli a ∨ b = max(a, b). Suma zbiorów rozmytych odpowiada spójnikowi “lub” albo stosując nazewnictwo angielskie OR. Operacje dopełnienia, przecięcia oraz sumy są podstawowymi operacjami na zbiorach rozmytych zaproponowanymi przez Lofiego Zadeha. Nazywane są dziś klasycznymi lub mnogościowymi, przy czym dopiero później udowodniono, iż dwuargumentowe operacje na zbiorach rozmytych spełniają zbiór aksjomatów algebry de Morgana. Operatorów można wyprowadzić więcej, rozważmy jednak możliwie najogólniejsze definicje operacji na zbiorach rozmytych, które pozwoliłyby rozszerzyć zakres operacji. Wśród takich operacji wyróżniamy t-normy oraz s-normy nazywane także jako t-konormy. 4.2.3. Operacje triangularne: t-normy i t-ko normy Dwuargumentowa operacje t : [0, 1] × [0, 1] → [0, 1] nazywamy normą triangularna lub trójkątna, w skrócie t-normą, jeżeli dla każdego ∀a, b, c, d ∈ [0, 1] spełnione są poniższe warunki: 65 T1 t-norma jest przemienna: atb = bta T2 t-norma jest łączna: at(btc) = (atb)tc T3 t-norma jest niemalejąca: atb ¬ ctd jeśli a ¬ c oraz b ¬ d T4 t-norma posiada 1 jako element strukturalny t: at1 = a Jeśli natomiast operacja s : [0, 1] × [0, 1] → [0, 1] spełnia warunki T1-T3 oraz poniższy warunek: T5 s-norma posiada 0 jako element strukturalny t at0 = a. Operacje nazywamy s-norma lub konorma triangularna, lubkonorma trójkątna, w skrócie t-konorma. Spośród przykładowych t-norm oraz t-konorm wyróżniamy: Normy minimum i maximum — t-norma minimum: ∧ : a ∧ b := min(a, b). — s-norma maximum: ∨ : a ∨ b := max(a, b). Normy drastyczne — t-norma drastyczna: td a∧b atd b = 0 a∧b=1 w przeciwnym wypadku — s-norma drastyczna: sd a∨b atd b = 1 a∨b=1 w przeciwnym wypadku Normy algebraiczne — t-norma algebraiczna ta : ata b := ab — s-norma algebraiczna sa : asa b := a + b − ab Normy Łukasiewicza — t-norma Łukasiewicza t : atb := 0 ∨ (a + b − 1) — s-norma Łukasiewicza s : asb := 1 ∧ (a + b) Dla dowolnej t-normy t oraz t-konormy s i x, y, z ∈ [0, 1] spełnione są następujące własności 66 at0 = 0, as1 = 1 atd b ¬ atb ¬ a ∧ b ¬ a ∨ b ¬ asb ¬ asd b ata ¬ a ¬ asa atb = 1 ⇔ a = b = 1 asb = 0 ⇔ a = b = 0 (∀a ∈ [0, 1] : ata = a) ⇔ t = ∧ (∀a ∈ [0, 1] : asa = a) ⇔ s = ∨ [∀a, b, c ∈ [0, 1] : as(btc) = (asb)t(asc)] [∀a, b, c ∈ [0, 1] : at(bsc) = (atb)s(atc)] 4.2.4. Zmienna lingwistyczna Zmienna lingwistyczna jest jednym z głównych elementów służących do opisu zjawisk przy modelowaniu zbiorów rozmytych. Zaproponowana została w 1973 r. przez Lofiego Zadeha (16) jako element podejścia lingwistycznego do analizy systemowej. Zmienna lingwistyczną nazywamy czwórkę elementów hX, M, A, Ax i, które oznaczają: Nazwę zmiennej lingwistycznej X. Uniwersum M opisujące zakres wartości dla zmiennej lingwistycznej. Zbiór termów A , będących wartościami lingwistycznymi przyjmowanymi przez zmienną X, takie jak np.: ‘wysoki’, ‘niski’, ‘około połowy’ itd. Interpretacji Ax termów A , służących do opisu przy użyciu zbiorów rozmytych. 4.2.5. Relacje rozmyte Budowanie relacji znajduje ważne zastosowanie w procedurze wnioskowania w sterowniku rozmytym. Relację rozmytą pomiędzy dwoma zbiorami rozmytymi A = {x}, B = {y} określamy jako zbiór rozmyty określony w iloczynie kartezjańskim X × Y : R = (U r(x, y), (x, y)) = (U r(x, y)/(x, y)), gdzie Ur (x, y) ∈ A × B. Funkcja Ur A×B → [0, 1], Ur ∈ R jest funkcją przynależności relacji rozmytej R, natomiast Ur (x, y) ∈ [0, 1] jest stopniem, w jakim elementy x ∈ A i y ∈ B przynależą do siebie w relacji R . Domyślnie jest to podstawowy typ relacji określony w iloczynie dwóch zbiorów, który 67 nazywamy binarnym. Jego definicje jednak możemy określić w iloczynie kartezjańskim k zbiorów, czyli A1 × A2 × · · · × Ak . W takim przypadku relacje nazywamy k-narną. Postacią macierzową relacji nazywamy macierz relacji dwóch zbiorów rozmytych A, B, które przy pomocy elementów macierzy określamy relacje pomiędzy tymi zbiorami. Posłużmy się przykładem relacji o etykiecie “podobieństwa” dwóch zbiorów A = (a, b), C(c, d) zapisanego w postaci singletonowej: R = “podobiestwo00 = 0.2/a,c + 0.5a, d + 0.7b, c + 0.9b, d. Macierz przyjmuje postać: R =“podobieństwo” = a b c 0, 2 0, 5 d 0, 7 0, 9 4.2.6. Rozmyte zdania warunkowe i złożeniowa reguła wnioskowania Rozmyte zdania warunkowe służą do reprezentacji zależności pomiędzy zmiennymi lingwistycznymi. Niech L, K będą zmiennymi lingwistycznymi, natomiast A, B to zbiory rozmyte, określone w odpowiednio zmiennych lingwistycznych L, K. Zdanie warunkowe opisujące zależność między wartościami A, B zmiennych lingwistycznych L, K możemy zdefiniować jako: IF L = A T HEN K = B Alternatywnie możemy zapisać powyższy wzór w skrócie: IF A T HEN B Każde rozmyte zdanie warunkowe jest równoważne iloczynowi kartezjańskiemu dwóch zbiorów rozmytych A i B, które są relacją rozmytą. Zapisujemy wtedy zdanie warunkowe jako: IF A T HEN B = A × B. Taką definicje można z łatwością rozwinąć uwzględniając wielokrotne wartości AiB: IF A1 T HEN B1 ELSE . . . IF An T HEN Bn = A1 × B1 + . . . + A1 × B1 Powyższe definicje rozważają jedynie przypadki, w której zmienna lingwistyczna przyjmuje jakąś wartość. Istotne jest również przypadek przeciwny, w którym zmienna lingwistyczna nie przyjmuje danej wartości. Wtedy zdanie warunkowe przyjmuje postać: IF A1 T HEN B1 ELSE C Który definiujemy jako: IF A1 T HEN B1 ELSE C = A × B + ¬A × C 68 Złożeniową regułą wnioskowania nazywamy relację R w X × Y , która reprezentuje złożoność pomiędzy dwoma zdaniami warunkowymi jako rozmyte zdanie warunkowe. Jeżeli pierwsza ze zmiennych lingwistycznych przyjmuje wartość rozmytą A0 w X , to implikowana druga wartość zmiennej lingwistycznej B 0 w Y jest określona przez złożenie: B 0 = A0 ◦ R. Jeżeli przyjmiemy najpopularniejsze złożenie maksy minowe, wtedy przyjmuje ono postać: B 0 Ur (y) = maxx∈X [A(x) ∧ Ur (x, y)]∀y ∈ Y . Powyższa operację maksyminową możemy zastąpić w złożeniowej regule wnioskowania dowolną regułą typu s-normy oraz t-normy, będącą typem maksyiloczynowym. 4.2.7. Liczby rozmyte Liczbę rozmytą określa się jako zbiór rozmyty w R, osi liczb rzeczywistych. Przyjmuje się, że taki zbiór jest zbiorem wypukłym oraz normalnym. Funkcja przynależności jest ściśle związana z osią liczb rzeczywistych x, dla której wybieramy tak zwane wartości szczytowe. Są to takie pojedyncze liczby rzeczywiste lub przedziały, dla których liczba rozmyta przyjmuje wartość 1 lub 0. Liczby rozmyte służą do określania takich termów jak np. ”około 3”, ”mniej więcej między 4 i 5”, ”mniej więcej 6”. Wśród zbiorów rozmytych opisujących liczbę, rozróżniamy odpowiednio funkcje trójkątne 4.2, trapezoidalne 4.3 oraz dzwonokształtne 4.4: Rysunek 4.2: Liczba rozmyta trójkątna “około 6” 69 Rysunek 4.3: Liczba rozmyta trapezoidalna, “mniej więcej między 4 i 5” Rysunek 4.4: Liczba rozmyta dzwonokształtna “mniej więcej 6” Na liczbach rozmytych możemy wykonywać operacje arytmetyczne. Niech A, B będą zbiorami rozmytymi w R = x, opisanymi przy użyciu funkcji przynależności Ua (x) oraz Ub (x). Definiujemy podstawowe operacje matematyczne na liczbach rozmytych: Dodawanie: U a + b = maxx+y=z [Ua (x) ∧ Ub (y)], ∀z ∈ R Odejmowanie: U a − b = maxx−y=z [Ua (x) ∧ Ub (y)], ∀z ∈ R Mnożenie: U a ∗ b = maxx∗y=z [Ua (x) ∧ Ub (y)], ∀z ∈ R Dzielenie: U a/b = maxx/y=z,y∈0 / [Ua (x) ∧ Ub (y)], ∀z ∈ R 4.3. Sterowanie rozmyte Sterowanie rozmyte, znane szerzej jako (ang. fuzzy control ) jest jedną z obecnie najpowszechniejszych metod prowadzenia obliczeń, przy użyciu termów nieostrych. Stanowi ono propozycję naśladowania ludzkich umiejętności, rozwiązywania skomplikowanych problemów w 70 sposób nieprecyzyjny. Sterowanie rozmyte jest coraz powszechniej z powodzeniem stosowane w systemach eksperckich, czy regulatorach urządzeń lub pojazdów. 4.3.0.1. Działanie sterownika rozmytego Sterownik rozmyty składa się z czterech komponentów: bloku rozmywania, bazy wiedzy, maszyny wnioskującej i bloku wyostrzania. Sterownik otrzymuje na wejściu wartości opisujące stan urządzenia lub systemu, natomiast na wyjściu generuje ostre wartości sterujące systemem oraz opisujące zależność pomiędzy kilkoma zmiennymi logicznymi. Jego poprawne funkcjonowanie zależy głównie od poprawnego doboru zmiennych lingwistycznych, modelujących pożądane cechy na wejściu oraz wyjściu sterownika rozmytego. Co więcej, dane wejściowe i wyjściowe interpretujemy przy pomocy zmiennych lingwistycznych dlatego, aby móc opisywać zdarzenia systemu rozmytego nie tylko przy użyciu ostrych wartości, lecz ich termów oraz ich interpretacji będących zbiorami rozmytymi. Wybór termów zmiennej lingwistycznej dla sterowania rozmytego zwykle jest podyktowany znaczeniem odpowiednich wartości w świecie rzeczywistym. W kontekście tematu pracy mogą być to termy np. opisujące usta. Kąciki ust mogą być ’wysoko’, ’nisko’, a także kąciki mogą być rozwarte ’szeroko’, ’wąsko’. Termy mogą także przyjmować abstrakcyjne z matematycznego punktu widzenia interpretacje, które wydają się naturalne dla człowieka, np. usta mogą być: ‘otwarte’, ‘zamknięte’. Termy opisują relację pozycji górnej wargi w stosunku do jej dolnej. Określenie każdego termu zmiennej lingwistycznej wymaga określenia interpretacji przy pomocy liczby rozmytej. Wskazania wartości maksymalnej lub jądra liczby rozmytej, w postaci przedziału oraz nośnika. Ważnym aspektem w sterowaniu rozmytym jest, aby interpretacje sąsiadujących ze sobą termów należących do tej samej zmiennej lingwistycznej zachodziły na siebie. Takie granice nadchodzących na siebie zbiorów rozmytych, ustala się na początku ogólnie zgodnie z wiedzą człowieka. Później na etapie strojenia sterownika rozmytego zmienia się rozlokowanie wartości szczytowych oraz uniwersum zbiorów rozmytych sterownika. Proces przetwarzania informacji został przedstawiony na rysunku 4.5. 71 Rysunek 4.5: Konstrukcja sterownika rozmytego. Rysunek na podstawie (18). 4.3.0.2. Rozmywanie Blok rozmywania, znany także jako (ang. fuzz, fuzzyfier ) lub fuzzyfication polega na zastąpieniu każdej ostrej wartości liczbowej danych wejściowych na jej rozmytą interpretację dla danej zmiennej lingwistycznej do termu, do którego należy interpretacja. Najczęstszym podejściem jest zastąpienie każdej wartości ostrej odpowiednim singletonem rozmytym, innymi słowy zbiorem rozmytym o funkcji przynależności wynikającej z interpretacji zmiennej lingwistycznej. Każda wartość ostra otrzymuje w tej postaci swoją wartość, dla każdego termu należącego do zmiennej lingwistycznej, nawet gdy funkcja przynależności do danego zbioru rozmytego wynosi 0. Najczęściej wykorzystywane w interpretacji są liczby rozmyte o kształcie ostrym lub trapezoidalnym. 4.3.0.3. Zbiór reguł i wnioskowanie Baza reguł (ang. fuzzy rule base) reprezentuje wiedzę maszynowego eksperta o możliwych wartościach termów zmiennych lingwistycznych, zachowania się urządzenia pod wpływem zmian sterowania oraz o pożądanym termie systemu i najlepszej metodzie doprowadzenia go do wybranego termu zmiennej sterowania. Baza ta składa się z reguł rozmytych. Wiedza za- 72 warta w bazie reguł jest reprezentowana w postaci koniunkcji pojedynczych faktów rozmytych tworzących złożone zdanie warunkowe: IF [xi1 , Ai1 ]AN D[xi2 , Ai2 ]AN D . . . AN D[xip , Aip ]T HEN [y, B], w którym para [zi , Ai ] jest złożona ze zmiennej lingwistycznej i oznaczenia zbioru rozmytego termu zi ∈ Ai . Zakładamy, iż każde Aij odpowiada termowi ze zbioru termów T (xij ), natomiast B odpowiada termowi ze zbioru T (y) zmiennej sterowania. Regułą sprzeczną nazywamy regułę, która posiada w bazie reguł regułę, która posiada takie same przesłanki, ale różne wnioski dotyczące tej samej składowej zmiennej sterowania. Baza reguł rozmytych powinna być bazą bezsprzeczną. Baza reguł nie musi być bazą pełną. Innymi słowy, nie ma wymagania, aby każda kombinacja ostrych wartości reguły musiała spełniać przesłanki wybranej reguły. Wnioskowanie jest głównym procesem operacyjnym sterownika, który jest wykonywany przez maszynę wnioskującą (ang. inference engine). Maszyna działa na podstawie schematu wnioskowania przez złożenie. Wzór na obliczenie zbioru wynikowego zmiennej sterującej zależy jedynie od wyboru t-normy. Schemat wnioskowania przez złożenie rozumiemy jako schemat postaci: ([(x1 , x2 , . . . xn ), (C1 , C2 , . . . , Cn )]) × ([(x1 , x2 , . . . xn , y)φ]) ([y, D]) (4.1) W schemacie (C1 , C2 , . . . , Cn ) są wartościami rozmytymi odpowiadającym (x1 , x2 , . . . , xn ), przy ustalonej normalnej, niesprzecznej bazie reguł rozmytych φ. Pierwsza przesłanka jest koniunkcją faktów rozmytych [xi , Ci ], jest ona relacją rozmytą łączącą ostre wartości zmiennych stanu iloczynu U1 × U2 × · · · × Un z ostrymi własnościami uniwersum sterowania. Powyższą relację tworzą wszystkie reguły bazy φ. Tym samym wniosek schematu jest rozmytą wartością sterowania. Skuteczne działanie sterownika polega na znalezieniu poprawnego określenia powyższej relacji. W ciągu wielu lat badań zdefiniowano ich ponad 40. Na potrzeby projektu magisterskiego skupiono się na relacji schematu wnioskowania określonej przez implikację rozmytą Mamdaniego: UA⇒B (u, v) = min(Ua (u), Ub (v)) 4.3.0.4. Wyostrzanie Moduł wyostrzania (ang. defuzzifier, defuzzification module) konwertuje zbiory rozmyte na ostre wartości liczbowe. Jeżeli zbiór rozmyty, który ma zostać zmieniony na wartość ostrą, posiada jedynie jeden element szczytowy i nie posiada maksimów lokalnych, to najrozsądniejszym rozwiązaniem jest wybranie właśnie tego elementu szczytowego jako wartości ostrej 73 zmiennej wyjściowej. Zwykle w wyniku działania implikacji Mamdaniego zbiór rozmyty ma znacznie bardziej skomplikowany kształt i osiąga na wielu odcinkach lokalne maksima. Jedną z metod obliczania ostrej wartości sterowania dla zbiorów o skomplikowanych kształtach jest metoda środka grawitacji COG. Obliczamy wartość ostrą zmiennej sterującej według wzoru: n P xi Ua (xi) a = i=0 n P Ua (xi) i=0 Zmienna a jest liczbą rzeczywistą a ∈ [x1 , xn ], która najlepiej reprezentuje zbiór A określony w X = x1 , x2 , x3 , . . . , xn , natomiast Ua (xi ) jest funkcją przynależności termu xi . 74 ROZDZIAŁ 5 Autorska metoda detekcji emocji W rozdziale przedstawiono konstrukcję sterowników rozmytych na potrzeby detekcji wybranych emocji oraz wyniki i testy analizy emocji twarzy człowieka przeprowadzone na grupie badawczej. Sekcje 5.1 oraz 5.2 opisują dwa podejścia detekcji emocji które, pomimo iż wykorzystują dokładnie takie same metody od strony technicznej, różniły się znacząco skutecznością oraz założeniami dotyczących sposobu klasyfikacji poszczególnych cech do wzorców emocji. Sekcja 5.3 zawiera wyniki badań detekcji emocji przeprowadzonych na grupie badawczej. 5.1. Opis pierwszej koncepcji sterownika rozmytego Na potrzeby detekcji emocji, analizie zostały poddane łącznie trzy cechy twarzy: oczy, brwi i usta. W przypadku ust będziemy wykorzystywać jedynie cztery znaczniki, wykrywające pozycję środka wargi górnej, wargi dolnej, oraz kącików ust. W przypadku analizy brwi sytuacja jest nieco bardziej skomplikowana. Opis brwi stanowią jedynie trzy punkty: dwa skrajne opisujące końce brwi oraz punkt kluczowy znajdujący się w odległości 1/3 szerokości detekcji brwi, od strony zewnętrznej twarzy. W ten szybki sposób, maszyna jest w stanie szybko rozpoznać charakterystyczne kształty brwi dla podstawowych emocji określonych przez Paula Ekmana (4.1). Jak opisać emocje na twarzy człowieka przy wykorzystaniu powyższych punktów? Dla każdej cechy będziemy modelować pewną ilość zmiennych lingwistycznych. Pierwszym problemem przy definicji zmiennych, wydaje się ustalenie wartości uniwersum zmiennych. W przypadku pracy badawczej wartością tą zawsze będzie przedział [0, 100] lub przedział stanowiący procent szerokości lub wysokości detekcji obszaru Haara. W zależności od zmiennej lingwistycznej oraz opisywanej cechy, wartości uniwersum zbioru, jak i zmiennych ostrych są normalizowane do wartości zakresu przedziału. Wynika to z faktu, iż nie ma możliwości odgórnego zdefiniowania np. maksymalnej szerokości brwi, podczas gdy rozmiary obszarów detekcji mogą być zróżnicowane. Następnym problemem jest ustalenie poprawnego modelu takich zdarzeń jak np. “szerokość ust jest duża”, “kąciki ust są wysoko”, brwi są “ściągnięte”. Opisanie niektórych z tych zdarzeń jest naturalne np. dla szerokości ust. Wystarczy w postaci znormalizowanej określić termy ‘dużo’,‘mało’ na podstawie odległości między punktami kącików ust. Podobnie można opisać wysokość obszaru ust na podstawie punktów opisujących wargi górne oraz dolne, a 75 w konsekwencji określić czy usta są rozwarte lub zamknięte. Określenie wysokości kącików ust lub wzajemnych relacji punktów kształtów brwi jest o wiele bardziej skomplikowane. W pierwszej wersji sterownika dla obu problemów zastosowane zostały termy, których interpretacje dzieliły w sposób rozmyty maksymalny obszar detekcji ust lub brwi. Następnie program obliczał funkcję przynależności punktu do każdego z tych przedziałów i w ten sposób szacował relację tych punktów względem siebie. W przypadku określenia wysokości kącików ust obszar ten został podzielony na trzy przecinające się zbiory będące interpretacją termów: ‘nisko’, ‘neutralnie’, ‘wysoko’. W przypadku opisu kształtu brwi w wyniku kalibracji maksymalny możliwy obszar czoła dla ruchu brwi został podzielony na pięć zbiorów rozmytych. 5.1.1. Wykorzystane zmienne lingwistyczne dla detekcji emocji radości w sterowaniu rozmytym Zmienne lingwistyczne zastosowane na potrzeby detekcji emocji radości mają postać: Szerokość ust, uniwersum [0, 40] — term: ‘wąska’ = 0/0 + 1/5 + 1/22 + 0/24 — term: ‘neutralna’= 0/0 + 1/5 + 1/22 + 0/24 — term: ‘szeroka’= 0/22 + 1/24 + 1/27 + 0/30 Wysokość ust, uniwersum [0, 50] — term: ‘wąska’= 0/0 + 1/1 + 1/12 + 0/15 — term: ‘rozwarta’= 0/12 + 1/15 + 1/49 + 0/50 Kąciki ust, uniwersum [0, 50] — term: ‘wysokie’= 0/0 + 1/1 + 1/8 + 0/10 — term: ‘neutralna’= 0/8 + 1/10 + 1/16 + 0/18 — term: ‘niskie’= 0/16 + 1/20 + 1/48 + 0/50 Punkt brwi, uniwersum [0 : 100]. Każdy punkt lewego i prawego oka to oddzielna zmienna lingwistyczna. — term: ‘bardzo nisko’= 0/0 + 1/1 + 1/15 + 0/20 — term: ‘nisko’= 0/15 + 1/20 + 1/35 + 0/40 — term: ‘neutralnie’= 0/35 + 1/40 + 1/55 + 0/60 — term: ‘wysoko’= 0/55 + 1/60 + 1/75 + 0/80 — term: ‘bardzo wysoko’= 0/75 + 1/80 + 1/99 + 0/100 Zmienną sterującą, która będzie generować ostrą wartość wynikową, definiujemy jako: 76 Emocja, uniwersum [0, 100] — term: ‘nie radosny’= 0/0 + 1/30 + 0/60 — term: ‘neutralny’= 0/25 + 1/50 + 0/75 — term: ‘radosny’= 0/50 + 1/70 + 0/99 + 0/100 5.1.2. Opis zbioru reguł Reguły bazy wiedzy ‘eksperta’ sterownika rozmytego są opisane w 5.1. Wnioskowanie odbywa się przy wykorzystaniu implikacji Mamdaniego w sposób opisany w rozdziale wcześniejszym. Poniższe zasady są powtórzone czterokrotnie ze względu na konieczność rozpatrzenia wszystkich podział obszarów rozmytych brwi. Innymi słowy, zamiast określenia pozycji punktów brwi oka jako kolejno: ‘bardzo nisko’,‘nisko’,‘bardzo nisko’ wszystkie poniższe zasady są powtórzone dla opisu obszarów leżących powyżej, czyli: ‘nisko’,‘neutralnie’,‘nisko’, ‘neutralnie’,‘wysoko’,‘neutralnie’ itd. Algorytm 5.1: Baza wiedzy sterownika rozmytego if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is wysoko) and (LeweOkoPA is bardzo nisko) and (LeweOkoPB is nisko) and (LeweOkoPC is bardzo nisko) and (PraweOkoPA is bardzo nisko) and (PraweOkoPB is nisko) and (PraweOkoPC is bardzo nisko) then Emocja is radosny if (Szerokość ust is normalna) and (Wysokość ust is wąska) and (Kąciki ust is wysoko) and (LeweOkoPA is bardzo nisko) and (LeweOkoPB is nisko) and (LeweOkoPC is bardzo nisko) and (PraweOkoPA is bardzo nisko) and (PraweOkoPB is nisko) and (PraweOkoPC is bardzo nisko) then Emocja is radosny if (Szerokość ust is szeroka) and (Kąciki ust is neutralne) and ((Wysokość ust is wąska) or (Wysokość ust is rozwarta)) and (LeweOkoPA is bardzo nisko) and (LeweOkoPB is nisko) and (LeweOkoPC is bardzo nisko) and (PraweOkoPA is bardzo nisko) and (PraweOkoPB is nisko) and (PraweOkoPC is bardzo nisko) then Emocja is neutralna if (Szerokość ust is neutralna) and (Kąciki ust is neutralne) and ((Wysokość ust is wąska) or (Wysokość ust is rozwarta)) and (LeweOkoPA is bardzo nisko) and (LeweOkoPB is nisko) 77 and (LeweOkoPC is bardzo nisko) and (PraweOkoPA is bardzo nisko) and (PraweOkoPB is nisko) and (PraweOkoPC is bardzo nisko) then Emocja is neutralna if (MouthWidth is wąska) and (Kąciki ust is nisko) and ((Wysokość ust is wąska) or (Wysokość ust is rozwarta)) and (LeweOkoPA is bardzo nisko) and (LeweOkoPB is nisko) and (LeweOkoPC is bardzo nisko) and (PraweOkoPA is bardzo nisko) and (PraweOkoPB is nisko) and (PraweOkoPC is bardzo nisko) then Emocja is nie radosny if (MouthWidth is wąska) and (Kąciki ust is nisko) and ((Wysokość ust is wąska) or (Wysokość ust is rozwarta)) and (LeweOkoPA is bardzo nisko) and (LeweOkoPB is nisko) and (LeweOkoPC is bardzo nisko) and (PraweOkoPA is bardzo nisko) and (PraweOkoPB is nisko) and (PraweOkoPC is bardzo nisko) then Emocja is nie radosny 5.1.3. Wyniki i problemy Prace nad koncepcją sterownika rozmytego były testowane jedynie przez autora pracy. Niestety okazało się, iż pomysł ten był niewystarczający dla rozpoznania emocji. Głównym problemem w trakcie testów okazała się ocena kształtu brwi i doboru liczby pod obszarów klasyfikacji. Na potrzeby projektu magisterskiego wykorzystano gotową bibliotekę dla obsługi sterowania rozmytego (ang. “Fuzzy Logic Library for Microsoft .NET”). Sterownik bardzo często zwracał wartość N aN , nie mogąc obliczyć ostrej wartości kształtu brwi przy użyciu powyższej wiedzy eksperta. Po wyłączeniu zasad służących do opisu brwi sterownik zaczął działać sprawnie, jednak był to prosty detektor uśmiechu, a nie emocji radości. Udział brwi w detekcji emocji jest o tyle ważny, iż pozwala rozróżnić zwykły uśmiech od emocji radości człowieka, czy też efektu ‘małpich min’ które miałyby na celu siłowe wymuszenie detekcji emocji. Ciekawą sytuację w tym momencie zauważono w przypadku oceny ust. Jego obszarowy charakter nie zawsze był trafnym wyborem przy ocenie wysokości kącików ust, ponieważ nie uwzględniał kąta nachylenia głowy w stosunku do oka kamery cyfrowej. Tym samym można było fałszować wyniki sterownika, pochylając głowę ku szyi lub ku górze, a w konsekwencji fałszywie ocenić ich prawdziwą wysokość w polu wyszukiwania wyznaczonego przez algorytm Viola-Jones (2.8). Można pokusić się o dodatkową kalibrację i np. zwiększenie liczby obszarów, jednakże spowodować to możne zbyt poważne skomplikowanie sterownika rozmytego. Jak możemy zauważyć, liczbę powyższych sześciu reguł, należy przemnożyć przez 78 pięć dla pełnego pokrycia wszystkich możliwych przedziałów dla pojedynczego kształtu brwi. Zwiększenie obszarów przynależności punktu brwi lub ust spowodowałoby drastyczne zwiększenie liczby zasad. Rośnie więc ryzyko stworzenia zasad sprzecznych, które, co gorsza, nie pokrywają wszystkich wzorców dla detekcji emocji. Z tego powodu w trakcie prac powyższa konstrukcja sterownika rozmytego została porzucona. 5.2. Opis drugiej koncepcji sterownika rozmytego Nowy pomysł na konstrukcję sterownika rozmytego jest w większości podobny do wcześniejszego z jedną kluczową różnicą. Zamiast dzielić cechy twarzy na dyskretne pod obszary i badać przynależność punktu do nich, będziemy oceniać pozycję poszczególnych punktów opisu cech w relacji do pozostałych. W przypadku ust wysokość kącików będzie obliczana względem średniej wysokości punktu opisującego wargę górną i wargę dolną. Jest to mechanizm wystarczający na potrzeby oceny wysokości kącików ust, biorąc pod uwagę, iż przy detekcji nie uwzględniamy przechyleń głowy w polu wyszukiwania. W przypadku brwi jednak głównym punktem będzie zawsze punkt środkowy opisu ich kształtu. W ten sposób kształt brwi uzależniamy od punktów skrajnych i ich pozycji w relacji do środkowego. Dla emocji wściekłości brwi są mocno ściągnięte przez mięśnie mimiczne twarzy w stronę nosa, natomiast od zewnętrznej strony twarzy są uniesione wysoko. Taki wzorzec możemy opisać w powyższy sposób, nadając punktowi leżącemu po zewnętrznej strony twarzy term ‘wyżej’, natomiast leżącemu punktowi skrajnemu od strony nosa termu ‘niżej’. Dla trójpunktowego opisu w tym momencie znacznie zmniejszeniu uległa liczba zasad sterownika rozmytego, będąca jedną z głównych problemów koncepcji opisanej w 5.1. 5.2.1. Wykorzystane zmienne lingwistyczne dla detekcji emocji radości w sterowaniu rozmytym Zmienne lingwistyczne dla drugiej koncepcji sterownika opisanego w 5.2: Szerokość ust, uniwersum [0, 40] — term: ‘wąska’ = 0/0 + 1/5 + 1/22 + 0/24 — term: ‘neutralna’= 0/0 + 1/5 + 1/22 + 0/24 — term: ‘szeroka’= 0/22 + 1/24 + 1/27 + 0/30 Wysokość ust, uniwersum [0, 50] — term: ‘wąska’= 0/0 + 1/1 + 1/12 + 0/15 — term: ‘rozwarta’= 0/12 + 1/15 + 1/49 + 0/50 79 Kąciki ust, uniwersum [−100, 100] — term: ‘wysoko’= 0/−100 + 1/99 + 1/−8 + 0/0 — term: ‘neutralne’= 0/−8 + 1/−3 + 1/3 + 0/8 — term: ‘nisko’= 0/0 + 1/8 + 1/99 + 0/100 Punkt brwi, uniwersum [0 : 100]. Każdy punkt lewego i prawego oka to oddzielna zmienna lingwistyczna. — term: ‘wyżej’= 0/−100 + 1/−99 + 1/−6 + 0/3 — term: ‘neutralny’= 0/−6 + 1/0 + 1/4 + 0/6 — term: ‘niżej’= 0/0 + 1/6 + 1/99 + 0/100 Zmienną sterującą, która będzie generować ostrą wartość wynikową, definiujemy: Emocja, uniwersum [0, 100] — term: ‘nie radosna’= 0/0 + 1/30 + 0/60 — term: ‘neutralna’= 0/25 + 1/50 + 0/75 — term: ‘radosna’= 0/50 + 1/70 + 0/99 + 0/100 Alternatywnie w przypadku emocji smutku: Emocja, uniwersum [0, 100] — term: ‘nie smutna’= 0/0 + 1/30 + 0/60 — term: ‘neutralna’= 0/25 + 1/50 + 0/75 — term: ‘smutna’= 0/50 + 1/70 + 0/99 + 0/100 5.2.2. Zbiór reguł dla emocji: Sekcja zawiera bazę wiedzy sterownika rozmytego dla dwóch emocji: emocji radości opisanej w sekcji5.2.2.1 oraz emocji smutku opisanej w sekcji 5.2.2.2. Oba sterowniki korzystają ze zmiennych lingwistycznych 5.2.1. 5.2.2.1. Emocja Radości Algorytm 5.2: Baza wiedzy drugiej koncepcji sterownika rozmytego dla emocji radości if (Szerokość ust is wąska) and (Wysokość ust is rozwarta) and (Kąciki ust is wysoko) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) 80 or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is radosna if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is wysoko) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is radosna if (Szerokość ust is neutralna) and (Wysokość ust is wąska) and (Kąciki ust is wysoko) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is radosna if (Szerokość ust is neutralna) and (Wysokość ust is rozwarta) and (Kąciki ust is neutralne) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) 81 or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is neutralna if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is neutralne) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is neutralna if (Szerokość ust is neutralna) and (Wysokość ust is wąska) and (Kąciki ust is neutralne) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is neutralna if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is niska) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) 82 or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is nie radosna if (Szerokość ust is neutralna) and (Wysokość ust is wąska) and (Kąciki ust is niska) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is nie radosna 5.2.2.2. Emocja Smutku Algorytm 5.3: Baza wiedzy drugiej koncepcji sterownika rozmytego dla emocji smutku if (Szerokość ust is neutralna) and (Wysokość ust is wąska) and (Kąciki ust is niska) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is smutna if (Szerokość ust is neutralna) and (Wysokość ust is rozwarta) and (Kąciki ust is neutralne) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) 83 or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is neutralna if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is neutralne) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is neutralna if (Szerokość ust is neutralna) and (Wysokość ust is wąska) and (Kąciki ust is neutralne) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is neutralna if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is niska) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) 84 or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is smutna if (Szerokość ust is wąska) and (Wysokość ust is rozwarta) and (Kąciki ust is wysoko) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is nie smutna if (Szerokość ust is szeroka) and (Wysokość ust is wąska) and (Kąciki ust is wysoko) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is nie smutna if (Szerokość ust is neutralna) and (Wysokość ust is wąska) and (Kąciki ust is wysoko) and ( ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is niżej) and (LeweOkoPunktC is neutralny)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is niżej)) or ((LeweOkoPunktA is neutralny) and (LeweOkoPunktC is neutralny)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is niżej)) or ((PraweOkoPunktA is niżej) and (PraweOkoPunktC is neutralny)) or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is niżej)) 85 or ((PraweOkoPunktA is neutralny) and (PraweOkoPunktC is neutralny)) ) then Emocja is nie smutna 5.3. Wyniki Powyższa wersja sterownika została przetestowana na autorze pracy oraz grupie badawczej w liczbie 10 osób. Każda z badanych poniżej osób zgodziła się na udostępnienie swojego wizerunku na potrzeby pracy magisterskiej, których kopie znajdują się w dodatku A. Dokładny opis przebiegu eksperymentu oraz opis aplikacji do detekcji emocji został zawarty w dodatku B. Wyniki zostały opisane w tabeli 5.1. Pierwsza kolumna tabeli zawiera zrzuty ekranu przedstawiające najlepsze detekcje cech w trakcie badania. W drugiej opisane są najbardziej problematyczne błędy w detekcji cech u badanej osoby. Trzecia kolumna zawiera krótki opis emocji, które odczuwała badana osoba w trakcie badania. Wyniki detekcji programu są przedstawione w ostatniej kolumnie tabeli i uwzględniają detekcję emocji tylko w momentach, w których opis cech był prawidłowy. Zrzut ekranu Znaczące proble- Emocje my detekcji uczestnika Mały według Detekcja przy użyciu programu obszar detekcji dla pierwszej Brak pro- rozpoznania Badana osoba pierwszej poprawnego opisała swoje drugiej projekcji program opisu kształtu odczucia ust podczas ‘mieszane’. jekcji. Problem jako określił projekcji. dla emocję spowodowanej cieniem. 86 badanej osoby jako ‘nie radosną’ lub ‘neutralną’. drugiej projekcji, Dla Przeprowadzono jedy- nie jedną projekcję. Na początku sterownik rozProblem myty wskazał ‘smutek’, w po- prawnego opisu Badana osoba kształtu ust pod- opisała swoje czas odczucia pierwszej jako projekcji, spowo- ‘niepokojące’ dowanej ostrym oraz ‘smutne’. cieniem. momentach poprawnego opisu ust. następnie stany neutralne. W połowie projekcji sterownik został zmieniony na detekcję radości, jednak z powodu zaniku obszaru ust, w wyniku przetwarzania obrazu osoby, nie można określić detekcji emocji. Dla pierwszej emocji de- Problem z opisem prawej brwi, Podczas wynikający szej projekcji nie jasnych z włosów była pierw- w stanie oraz ich cienia jednoznacznie na czole badanej wskazać emocji, osoby. Badana w której się znaj- osoba podczas dowała. Badana projekcji w spo- osoba opisała sób swoje odczucia znaczący przechyliła wę, gło- chwilowo uniemożliwiając podczas projekcji drugiej jako ‘rozbawiona’. detekcję. tekcji dominowała wartość ‘neutralna’ z detekcją radości na poziomie 71 procent. Dla drugiej projekcji mającej wywołać smutek detekcja wykazała smutek lub stan neutralny w pierwszych projekcji, w stan minutach przechodząc ‘nie smutny’. Zmieniono sterownik na detekcję radości, lecz nie udało się otrzymać wiarygodnego pomiaru. 87 Podczas szej pierwprojekcji badana osoba Dla pierwszej emocji de- nie była w stanie tekcji dominowała wartość Problem z opi- jednoznacznie ‘neutralna’ z krótkotrwałą sem lewej brwi, wskazać emocji, detekcją smutku na pozio- wynikający z w której badana mie 74 procent. Dla drugiej ciem- osoba się znajdo- projekcji mającej wywo- włosów wała. Za powód łać radość detekcja przez oraz ich cienia uznała zbyt krót- znaczną większość czasu na czole badanej ki czas projekcji. stan ‘neutralny’, z krótki- osoby. Badana osoba mi momentami detekcji ra- opisała swoje dości na poziomie 72 pro- obecności nych odczucia podczas cent. drugiej projekcji jako ‘śmieszne’. Dla pierwszej emocji detekcji dominowała wartość Podczas pierw- ‘neutralna’ oraz ‘radosna’ projekcji na poziomie 72-84 procent. oso- Kilkukrotnie emocja zosta- określiła ła określona jako ‘nie ra- Duży cień w oko- szej licach oczodołów badana uniemożliwiający ba śledzenie twarzy. swój Problem z detek- ‘momentami cent. Podczas drugiej pro- cją lewego kącika rozśmieszoną’. jekcji dominowała wartość ust powodu Podczas drugiej nieokreślona, z powodu za- cienia na lewym projekcji główną wodnego algorytmu śledze- policzku. emocją nia oczu. Zgłaszane przez z stan ‘znużenie’. na było dosna’ na poziomie 30 pro- aplikację jednak były wartości emocji ’smutna’ oraz ’neutralna’. 88 Opis ust, względu bujna ze na brodę, w sposób uniemożliwiający detekcję emocji. Ze względu na problemy detekcji zapre- zentowano jedną projekcję, jej po obejrzeniu badana osoba opisując swoje odczucia, stwierdziła, iż Nie udało się odczytać emocji przez większość czasu. Pojedyncze pomiary wskazywały na emocje radości o wartości ok. 70 procent. jest ‘rozbawiona’. Po pierwszej projekcji badana Opis brwi, ze osoba stwierdzi- względu na ich ła, iż odczuwała brak, oraz zazna- emocje czenie linii brwi oraz przy użyciu sła- W bo drugiej projekcji widocznego odcienia kredki. ‘złości’ ‘smutku’. przypadku nie była w stanie określić odczuć. 89 swoich Detekcja maszynowa wskazała stan ‘neutralny’ lub ‘nie radosny’ na poziomie 35 do 46 procent przy użyciu sterownika detekcji radości. W przypadku drugiej projekcji dominowała emocja smutku, którego detekcja wyniosła około 74 procent. Detekcja maszynowa wskaPo pierwszej projekcji ba- cie projekcji stan ‘smutny’. osoba W przypadku drugiej pro- iż jekcji dominowała emocja odczuwała emo- smutku, którego detekcja cje ‘zaskoczenia’, wyniosła około 74 procent. ‘smutku’, ‘prze- W przypadku drugiej pro- oraz jekcji osoba znajdowała się dana Problemy z opisem kształtu brwi, ze względu na losowo występujący cień. zała dominujący w trak- stwierdziła, rażenia’ ‘obrzydzenia’. w stanie: ‘neutralny’. Je- W przypadku dynie pod koniec projek- drugiej projekcji cji występowały pojedyn- opisała swój stan cze stany ‘radosny’ na po- jako ‘wesoły’. ziomie 69-74 procent detekcji emocji radości. Po Widoczne, ne, sil- zmienne oświetlenie de- pierwszej projekcji badana osoba określiła swój stan jako Dominującą detekcją był stabilizujące ‘trochę rado- stan ‘neutralny’ na pozio- detekcję wszyst- sny’. Z powodu mie około 60 procent. Wy- kich cech. Cień problemów stępowały pojedyncze sta- wokół oczodołów zmiennym oświe- uniemożliwiający tleniem detekcję twarzy. detekcja się nie odbyła. 90 ze druga ny ‘nie radosny’. Po Opis kącików brwi od strony zewnętrznej twarzy, ze względu na ich słabą widoczność w obrazie cyfrowym. pierwszej projekcji badana Dominującą detekcją był osoba określiła stan ‘neutralny’ oraz ‘ra- swój stan jako dosny’ na poziomie około ‘rozbawiony’. 60 do 74 procent detek- Po drugiej pro- cji radości. Podczas drugiej jekcji osoba projekcji dominowały sta- opisała swoje ny ‘neutralny’ i ‘nie smut- jako ny’ przy użyciu sterownika odczucia ‘współczująca’ detekcji smutku na pozio- oraz mie 30 do 60 procent. ‘miejscami rozbawiona’. Tabela 5.1: Wyniki badań dotyczących detekcji emocji 91 ROZDZIAŁ 6 Podsumowanie W toku realizowanego projektu magisterskiego udało się stworzyć system, zdolny do wiarygodnej detekcji dwóch podstawowych emocji człowieka. Dzięki poznanym w trakcie studiów strukturom oraz poznanym rozwiązaniom informatycznym okazało się, iż nadal łatwiej jest stworzyć system zdolny do klasyfikacji czy oceny uprzednio przygotowanych danych wejściowych, niż system, który w czasie rzeczywistym przetwarzał dane na potrzeby ich ewaluacji. Problem skutecznego odczytywania pożytecznych informacji z treści obrazu cyfrowego, nadal pozostaje problemem otwartym dla rozwiązań informatycznych. Zaprezentowane rozwiązanie nadal wymaga udoskonalenia na polu detekcji cech, uwzględniając zróżnicowanie budowy twarzy człowieka. Należy zauważyć, iż system operujący na różnicach kontrastów może działać znacznie gorzej u ludzi o ciemniejszej karnacji skóry, których zabrakło w mojej grupie badawczej. Najważniejszym celem byłoby znalezienie metody, która w sposób stabilny i odporny na zmiany środowiskowe opisywałaby wybrane cechy twarzy, niezależnie od ich indywidualnych cech budowy, pod warunkiem zachowania proporcji wynikających z anatomii. Pozytywnym zaskoczeniem okazała się skuteczność rozwiązań rozmytych dla detekcji emocji. Pozwoliła ona w sposób naturalny dla percepcji człowieka na określenie stanu emocjonalnego osoby. Jednakże, podczas rozmów z osobami zainteresowanymi moją pracą spotkałem się z krytyką wynikającą z kontrowersji wokół badań Paula Ekmana i systemu FACS, na podstawie którego oparłem swoje rozwiązania. Dotyczyły one między innymi braku uniwersalności oraz ponadkulturowego okazywania przez ludzi niektórych określonych przez Ekmana emocji podstawowych. Kontrowersyjnym pomysłem jest także ocenianie emocji człowieka, bez poznania kontekstu sytuacji, w której się znajduje. Człowiek jest w stanie przetwarzać jednocześnie wiele bodźców, wpływających na jego osąd oraz proces emocjonalny, którego określenia podjął się między innymi Janusz Reykowski. Nie istnieje obecnie system zdolny do pobrania i przetworzenia tego typu informacji. Model FACS i jego anatomiczny opis akcji ruchów mimicznych występujących podczas stanu emocjonalnego pozostają optymalną propozycją bazy dla opisu emocji człowieka. 92 DODATEK A Oświadczenia osób biorących udział w badaniach naukowych 93 94 95 96 97 98 DODATEK B Zapis wideo z eksperymentu Zapis wideo obejmuje przyspieszony zapis przebiegu eksperymentu, przedstawiający widok głównego okna aplikacji do badania emocji człowieka. Udostępnione zostały jedynie materiały z wizerunkami osób, które wyraziły zgodę na ich publikację. Łącznie znajduje się dziesięć dokumentacji z przebiegu eksperymentu, pomimo iż chęć w badaniu zadeklarowała większa liczba osób, w tym osoby starsze aniżeli prezentowana grupa badawcza. Badanie jednej osoby trwało około 15 minut, natomiast sam zapis wideo został przyspieszony pięciokrotnie do około 3 min. Badanie było przeprowadzane w możliwie kontrolowanych warunkach, jednakże przy problematycznym oświetleniu. W zapisie wideo z eksperymentu można zauważyć wyraźny cień w oczodołach wybranych osób, który w niektórych momentach uniemożliwiał automatyczne śledzenie wzroku. W konsekwencji koniecznym okazało się ręczne wyszukiwanie obszaru twarzy przy pomocy algorytmu Viola-Jonesa (2.8) w klatce zapisu sekwencyjnego. Badanie składa się z dwóch części. Najpierw ocenie podlega poprawność detekcji cech. Osoby biorące udział w badaniu były proszone o spojrzenie w stronę kamery internetowej, podczas gdy autor dostrajał poziomy ekspozycji i jasności dla optymalnej detekcji cech twarzy. Jeśli zauważono krytyczne błędy w detekcji cech, takie jak niemożliwość opisania wybranej cechy, to wtedy badana osoba nie mogła brać udziału w drugiej części eksperymentu. Druga część eksperymentu polegała na ocenie emocji u badanej osoby. W tym celu badane osoby oglądały dwa krótkie, trwająca do 5 minut filmy, mające za zadanie wprowadzić widza w wybrany stan emocjonalny. Z założenia osoby badane były pytane, czy znają materiał filmowy przed jego wyświetleniem. W przypadku odpowiedzi twierdzącej pokazywany był inny materiał. Filmy zostały podzielone na dwa zestawy. Pierwszym zestawem były niezależne i ogólnodostępne komediowe filmy animowane, mające za zadanie wprowadzić widza w stan radości. Drugim zestawem były filmy animowane zawierające sceny mające na celu wprowadzić widza w smutny nastrój. Zawierały one sceny śmierci, tęsknoty do drugiej osoby, problemu wykluczenia czy nieszczęśliwej miłości. Badane osoby po obejrzeniu każdej projekcji mieli za zadanie określić własnymi słowami emocje, które odczuwali w trakcie przebiegu eksperymentu. Następnie ich odczucia były konfrontowane z detekcją emocji z użyciem wybranego przez autora pracy sterownika rozmytego. Zapis wideo prezentowanych osób ukazuje główne problemy cech występujące w trakcie badania, jak i ewaluację emocji w trakcie prezentowanych materiałów filmowych. Dla lepszego zrozumienia załączonych materiałów filmowych, na rysunku B.1 została opisana struktura aplikacji. 99 Rysunek B.1: Zrzut ekranu przedstawiający strukturę aplikacji 1. Obszar obrazu cyfrowego pobieranego przez kamerę. 2. Histogramy boczne pojedynczej cechy 3. Panel wyboru źródła obrazu cyfrowego 4. Panel edycji ustawień kamery. Niektóre opcje mogą nie działać prawidłowo, w zależności od ograniczeń sterownika urządzenia. 5. Panel z przyciskami detekcji oraz obsługi video. — Detect single frame — jest to opcja wywołująca jednorazowo wyszukiwanie twarzy przy pomocy algorytmu Viola-Jonesa i kaskadowego klasyfikatora Haar’a. — Face Detect — uaktywnia śledzenie i przetwarzanie cech twarzy człowieka. — Pozostałe przyciski wczytywania i odtwarzania materiału zapisu sekwencyjnego obrazu. 6. Pasek postępu odtwarzania umożliwia skok do wybranej klatki w przypadku korzystania z zapisu sekwencyjnego. 7. Obszar pomocniczy detekcji ust. 8. Obszar pomocniczy detekcji oczu. 9. Obszar pomocniczy detekcji brwi. 100 DODATEK C Podziękowania W toku realizowanej pracy pragnąłbym złożyć podziękowania dla: — Prof. Dr. Hab. Krzysztofa Jassema za szczególną cierpliwość i wyrozumiałość w trakcie realizacji projektu badawczego dla sytuacji studenta oraz wartościową korektę i opiekę nad realizacją pracy magisterskiej. — Dr. Krzysztofa Dyczkowskiego za pomoc i cenne rady podczas realizacji projektu magisterskiego. — Dr. Pawła Kaszczyńskiego oraz Dr. Wojciecha Dudy, wykładowców Uniwersytetu Artystycznego w Poznaniu, za możliwość zorganizowania badań naukowych z udziałem osób zainteresowanych tematyką pracy. — Studentów I pracowni malarstwa oraz IV pracowni rysunku Uniwersytetu Artystycznego w Poznaniu, za udostępnienie wizerunków na potrzeby realizowanej pracy badawczej. — Dr. Maksymiliana Skorwidera za nieocenioną pomoc i wsparcie. — Moich rodziców. 101 Bibliografia 1. Archeim Rudolf, Sztuka i percepcja wzrokowa-Psychologia twórczego widzenia, Wydawnictwa artystyczne i filmowe, Warszawa 1978 r. 2. Błodak Cezary: Cyfrowe Przetwarzanie Obrazów, Politechnika Białostocka 2008, na licencji (ang. GNU Free Documentation Licence). Dostęp do edycji cyfrowej: http: //aragorn.pb.bialystok.pl/~boldak/ [dostęp 12.07.2014] 3. Cocpit voice recorder database-Flight Fedex express 705 http://www.tailstrike. com/070494.htm [dostęp 1.07.2014] 4. Davies Roy Edward: (ang. Machine vision: theory, algorithms, practicalities), Wyd. Elsevier, San Francisco, 2005 5. Driankov Dimiter,Hellendoorn Hans, Rein Michael: Wprowadzenie do sterowania rozmytego, Warszawa 1996 r. Wyd. Wydawnictwa Naukowo-Techniczne 6. Carl-Herman Hjortsjo, (ang. Man’s face and mimic language) Wyd. Studentlitteratur, 1969 7. . Ekman Paul: (ang. Handbook of cognition and emotion, Chapter 16: Facial Expressions), artykuł z Dalgleish T. , Power M., Wyd. John Wiley & Sons Ltd, Nowy York, 1999 r. 8. Ekman Paul, Davidson Richard: (ang. The Nature of Emotion: Fundamental Questions), 1994 r. 9. Ekman Paul, Wallace V. Friesen: (ang. Unmasking the face), Wyd. Prentice-hall, inc. Englwood cliffs, New Jersey, 1975 r. 10. Ekman Paul, Wallace V. Friesen, Joseph C. Hager, (ang. Facial Action Coding System — Investigator’s Guide), edycja cyfrowa, fragmenty: http://face-and-emotion.com/ dataface/facs/guide/InvGuideTOC.html [Dostęp 28.07.2014] 11. Ekman Paul, Wallace V. Friesen, Hager Joseph C.: (ang. Facial Action Coding System Manual ), Wyd. (ang. Research Nexus division of Network Information Research Corporation),2002 r. 12. (ang. EmguCV Library Documentation) http://www.emgu.com/wiki/files/2.4.2/ document/Index.html [Dostęp 30.07.2014] 102 13. Hjortsjo Carl-Herman, (ang. Man’s face and mimic language) Wyd. Studentlitteratur, 1969 14. Kerminen Petteri, Gabbouj Moncef, artykuł “(ang. Image retrieval based on color matching”), 1999 rok. 15. Korzyńska Anna, Przytulska Małgorzata: Przetwarzanie obrazów — ćwiczenia, Wyd. PJWSTK, Warszawa 2005 16. Kasprzyk Janusz: Wieloetapowe sterowanie rozmyte, Warszawa 2001 r. Wyd. Wydawnictwa Naukowo-Techniczne. 17. Licencja MIT: http://opensource.org/licences/MIT/ [dostęp 19.09.2014] 18. Łachwa Andrzej: Rozmyty Świat Zbiorów, liczb, relacji, faktów, reguł i decyzji, Warszawa 2001, Wyd. Akademicka Oficyna Wydawnicza EXIT 19. Malina Witold, Śmiatacz Maciej: Cyfrowe przetwarzanie obrazów, Akademicka oficyna wydawnicza EXIT, 2008 20. Massachusetts Institute of Technology Affective Computing Media Lab: http://affect. media.mit.edu/ [dostęp 30.06.2014] 21. Massachusetts Institute of Technology Media Lab https://www.media.mit.edu/about [dostęp 30.06.2014] 22. Matheron George: Random Sets and Intergral Geometry, 1975 r. Wyd. John Wiley & Sons 23. Pavlidis Theo: Grafika i przetwarzanie obrazów — Algorytmy, Wyd. Wydawnictwa Naukowo-Technicznego, Warszawa 1987 r. 24. Putz R., Pabst R.: Sobotta—Atlas anatomii człowieka Tom 1, Wyd. Urban & Partner, Wrocław 1997 r. 25. Pratt William K.: (ang. Digital Image Processing: PIKS inside, Third Edition), Wyd. John Wiley & Sons Ltd, Nowy York, 2001 r. 26. Reuters Video, Agencja Reuters — Witryna ReutersTV, Prototype emotion detector targets tired, angry drivers, 14.04.2014, http://www.reuters.com/video/2014/04/ 27/reuters-tv-prototype-emotion-detector-targets-tired?videoId=312738915 27. Reykowski Janusz: Eksperymentalna psychologia emocji. KiW, Warszawa 1974. 28. (ang. OpenCV Library Documentation) http://docs.opencv.org/index.html [Dostęp 30.07.2014] 103 29. Serra Jean, (ang. Image Analysis and Mathematical Morphology), Academic Press, NewYork, 1982 r. 30. Szeliski Richard, Computer Vision: Algorithms and Applications, Springer Verlag 2010 r. 31. Prof. Dr. Med. Stelmasiak Mieczysław: Atlas anatomii człowieka tom pierwszy — nauka o kosciach, nauka o miesniach. Wyd. Państwowy zakład wydawnictw lekarskich, Warszawa 1966 r. 32. Witryna biblioteki Auduno, profil serwisu GitHub https://github.com/auduno [dostęp 8.07.2014] 33. Witryna firmy Emotient, dostawcy API na potrzeby detekcji emocji http://www. emotient.com [dostęp 8.07.2014] 34. Witryna ‘Glad or Sad’ — strony społecznościowej, umożliwiającej określenie stanu emocjonalnego człowieka na mimiki podstawie twarzy http://www.gladorsad.com [dostęp 7.07.2014] 35. Witryna międzynarodowej komisji ds. illuminacji, (ang. International Commision on Illumination), www.cie.co.at [dostęp 7.07.2014] 36. Witryna (ang. Signal Processing Laboratory) Politechniki Federalnej w Lozannie, http: //lts5www.epfl.ch/ [dostęp 7.07.2014] 37. Witryna projektu start-up “Real Eyes” http://www.realeyesit.com [dostęp 1.07.2014] 38. Witryna projektu Visual Recognition, laboratorium systemów inteligentnych na uniwersytecie w Amsterdamie http://www.visual-recognition.nl [dostęp 7.07.2014] 39. Wygralak Maciej: Cardinales of fuzzy sets. Springer 2003. 40. Viola Paul, Jones Michael: (ang. Rapid Object Detection using a Boosted Cascade of Simple Features), Publikacja w ramach (ang. Accepted conference on computer vision and pattern recognition), 2001 r. https://www.cs.cmu.edu/~efros/courses/LBMV07/ Papers/viola-cvpr-01.pdf [dostęp 28.07.2014] 41. Tao Jianhua,Tan Tieniu: (ang. Affective Information Processing) Wyd. Springer-Verlag London Limited, 2009 42. Zagadka lotu MH370, program Discovery Channel Flight MH370-The Missing Links, 2014, [3: 00-15: 00] 104 Spis tabel 4.1. Mięśnie mimiczne twarzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.2. Kody FACS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.1. Wyniki badań dotyczących detekcji emocji . . . . . . . . . . . . . . . . . . . . 91 105 Spis rysunków 1.1. Zrzut ekranu z prezentacji działania systemu PSA . . . . . . . . . . . . . . . 9 1.2. Zrzut ekranu systemu Real Eyes . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3. Detekcja emocji używając biblioteki Auduno . . . . . . . . . . . . . . . . . . 12 2.1. Próbkowanie obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2. Kwantowanie i zapis dyskretny . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3. Model CIE—xyY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4. Model RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5. Operacja negacji i jej konsekwencje w obrazie . . . . . . . . . . . . . . . . . . 26 2.6. Przykładowe elementy strukturalne . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7. Histogram RGB przykładowego obrazu . . . . . . . . . . . . . . . . . . . . . . 35 2.8. Wyrównywanie histogramu i jego konsekwencje . . . . . . . . . . . . . . . . . 37 2.9. Rozciąganie histogramu i jego konsekwencje . . . . . . . . . . . . . . . . . . . 39 2.10. Przykład zastosowania histogramów bocznych. . . . . . . . . . . . . . . . . . 41 2.11. Wzór falki Haara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.12. Cechy krawędziowe Haar’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.13. Cechy liniowe Haar’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.14. Cechy podziału cztero-kwadratowego Haar’a . . . . . . . . . . . . . . . . . . . 42 2.15. Ilustracja pomysłu obrazu integralnego zastosowanego w algorytmie Viola-Jonesa 43 2.16. Przykład wyszukiwania obrazu przy pomocy cech Haar’a . . . . . . . . . . . 44 3.1. Proces przetwarzania oczu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2. Proces przetwarzania brwi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3. Proces przetwarzania ust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.1. Mięśnie mimiczne twarzy człowieka . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2. Liczba rozmyta trójkątna “około 6” . . . . . . . . . . . . . . . . . . . . . . . . 69 4.3. Liczba rozmyta trapezoidalna, “mniej więcej między 4 i 5” . . . . . . . . . . . 70 4.4. Liczba rozmyta dzwonokształtna “mniej więcej 6” . . . . . . . . . . . . . . . 70 4.5. Konstrukcja sterownika rozmytego . . . . . . . . . . . . . . . . . . . . . . . . 72 B.1. Zrzut ekranu przedstawiający strukturę aplikacji . . . . . . . . . . . . . . . . 100 106