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

Podobne dokumenty