"<div style=\"text-align: justify\">Rozpoznawanie emocji jest podstawą skutecznej sztucznej empatii. Aby możliwe było \"współodczuwanie\", konieczne jest wykrycie i nazwanie emocji, które są odczuwane. Co więcej, emocje stanowią dużą część przekazu, nadawanego przez użytkownika. Aby dokładnie zrozumieć jego intencje, system musi potrafić połączyć treść przekazu wraz z emocjami mu towarzyszącymi. Aby móc w odpowiedni sposób zareagować na sygnał od użytkownika, system potrzebuje zarejestrować i przetworzyć sygnał emocjonalny. Najpłynniejsza komunikacja następuje wtedy, kiedy sygnał taki jest wykrywany w czasie rzeczywistym, a reakcja na niego następuje bardzo szybko. Jednak nie zawsze taka sytuacja jest możliwa. Co więcej, problem stanowi różnorodność emocji człowieka, różnice kulturowe w sposobie wyrażania emocji, wiele dróg ich wyrażania (treść wypowiedzi, mimika, ton głosu, język ciała). Wszystkie te problemy, skumulowane, powodują, iż rozpoznanie i przetwarzanie emocji nie jest prostym zagadnieniem. Jednakże jego ujarzmienie przynosi wiele korzyści.\n",
"</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Obecnie badania w dziedzinie rozpoznawania emocji skupiają się na [13]:</div>\n",
"\n",
" * korelacji pomiędzy różnymi rodzajami sygnałów fizycznych a emocjami\n",
"<div style=\"text-align: justify\"> W informatyce i sztucznej inteligencji emocje określa się jako [6]:</div>\n",
"\n",
" * przybliżone: szybkie reakcje uwzględniające pamięć (ale nie skomplikowane procesy poznawcze na dostępnych danych)\n",
" * reaktywne: wykonywane automatycznie w razie potrzeby;\n",
" * adaptacyjne: dynamicznie dostosowujące się do środowiska;\n",
" * ewolucyjne: tymczasowe, z możliwością nauczenia się ich;\n",
" * zbiorowe: np. emocje tłumu;\n",
" * zaraźliwe: np. reakcje na emocje innych osób generowane przez neurony lustrzane. \n",
"\n",
"<div style=\"text-align: justify\">Dla kontrastu: humory są dłuższe i stabilne, moga wynikać z procesów kognitywnych; myśli są kognitywnie racjonalne a uczucia są złożone i rozmyte.</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Jednym z głównych pytań przy konstruowaniu systemów rozpoznania emocji jest to, co tak naprawdę chcemy wykrywać. Czy emocje, które odczuwa użytkownik, czy też te, które pokazuje? Nie zawsze przecież stan emocjonalny człowieka zgadza się z tym, co mówi jego mowa ciała. Problematycznym jest już sam sarkazm.</div>\n",
"<div style=\"text-align: justify\">Inne pytanie brzmi, kiedy stosować emocjonalne maszyny. Nie każde ich zastosowanie jest przecież pozytywnie odbierane przez użytkownika (patrz Clippy Microsoftu). Istnieje też problem z możliwością manipulacji emocjami ludzkimi, zwłaszcza w marketingu. Inne znane problemy to niedostateczny wachlarz rozpoznawanych emocji, różnice kulturowe w ich okazywaniu, dyskryminacja (np. przy profilowaniu pracowników czy przydzielaniu kredytu).</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Formalnie, aby móc stworzyć model umożliwiający analizę i zarządzanie emocjami, należy przyjąć pewne założenia [13]:</div>\n",
"\n",
" * emocje są instynktowne\n",
" * różni ludzie w tych samych sytuacjach odczuwają te same emocje\n",
" * różni ludzie wyrażają te same proste emocje w ten sam sposób\n",
" * podczas odczuwania podstawowych emocji, wzorce reakcji fizjologicznych różnych ludzi są takie same\n"
"### Metody rozpoznawania emocji <a name=\"Paragraph2\"></a>\n",
"<br>\n",
"<blockquote><div style=\"text-align: justify\">Głównym celem badań nad rozpoznawaniem emocji jest uzyskanie bardziej naturalnego, harmonijnego i przyjaznego interfejsu HCI oraz przekształcenie komputera z logicznej maszyny obliczeniowej w intuicyjny perceptron, przechodząc w ten sposób do projektowania maszyn zorientowanego na człowieka [13].</div></blockquote>\n",
"<br>\n",
"<div style=\"text-align: justify\">Rozpoznawanie emocji, czyli automatyczna identyfikacja emocji człowieka przez system, działa najlepiej, kiedy rozważany jest więcej niż jeden kanał komunikacji. Przedmiotem rozpoznania moga być zdjęcia, pliki video, audio, tekst, czy sygnały fizjologiczne (EEG, przewodnictwo skórne, pocenie się, puls, ruchy szkieletowe [11], etc.).</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Techniki rozpoznania emocji łączą ze sobą dziedziny przetwarzania sygnałow, uczenia maszynowego, widzenia komputerowego i przetwarzania mowy. Wykorzystują w tym celu takie metody jak np. sieci Baysa, ukryte modele markowa, konwolucyjne sieci neuronowe, itd. Ogólnie wyróżnia się trzy podajścia - oparte na wiedzy, na statystyce i mieszane.</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Podejście oparte na wiedzy może używać wiedzy z danej dziedziny do stworzenia modelu, może być oparte a ustalonym słowniku emocji bądź też może powstać na podstawie informacji wyinferowanych z dużego korpusu danych. Podejście statystyczne opiera się na uczeniu maszynowym (np. Support Vector Machines) i deep learningu (np. konwolucyjne sieci neuronowe, Long Short-Term Memory). Możliwe są również metody mieszane.</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Jednym z największych wyzwań ER jest działanie w czasie rzeczywistym. Najczęściej wykorzystuje się w tym celu rozpoznanie wyrazów twarzy (FER). Dużą przeszkodą w tym są nieidealne warunki rozpoznawania - światło, okulary, zarost. Powoduje to, iż rozpoznanie emocji w czasie rzeczywistym, szczególnie przy bardziej skomplikowanych modelach wykorzystywanych w dalszych celach, np. empatii, jest trudne. Problem ten rozwiązuje się między innymi poprzez zmiejszenie ilości cech wyciąganych z sygnału nadawanego przez użytkownika. Zmniejsza to skomplikowanie modelu oraz czas potrzebny na jego wykonanie.</div> \n",
" \n",
"<div style=\"text-align: justify\">Techniki stosowane w FER to między innymi [4]: </div>\n",
"\n",
" * rozpoznanie na podstawie pikseli\n",
" * local binary pattern (LBP) - oparte na histogramach map binarnych, które są lokalną reprezentacją relacji pomiędzy pikselem a jego sąsiadami\n",
" * wavelet transform\n",
" * dyskretna transformacja kosinusowa\n",
" * Gabor feature extraction (GFE) - używa filtrów Gabora, metoda odporna na światło, skalę i przesunięcie\n",
" * wykrywanie krawędzi i skóry\n",
" * wykrywanie konturu twarzy\n",
" * metody logiki rozmytej (np. FURIA)\n",
"\n",
"<div style=\"text-align: justify\">Zwykle emocje są opisywane przez jednostki akcji (Action Units, AU) albo określone jako punkt w przestrzeni wartościowość-pobudzenie (Valence-Arousal, V-A). Metoda AU nie definiuje emocji bezpośrednio, ale podaje zbiór stanów dla każdej części twarzy (np. otwarte usta, podniesiona brew, zmarszczony nos). Emocje są określone jako grupy różnych AU. W metodzie V-A, emocje są zdefiniowane na podstawie wiedzy psychologicznej w przestrzeni kartezjańskiej w ten sposób, że podobne emocje znajdują się blisko siebie [12].</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Jako klasyfikatory w FER wykorzystuje się [12]:</div>\n",
"\n",
" * algorytm k-najbliższych sąsiadów\n",
" * naiwne sieci Bayesa\n",
" * Space-Representation based Classifier (SRC)\n",
" * Support Vector Machine (całkiem dobrze wyjaśnione w [13])\n",
"\n",
"<div style=\"text-align: justify\">Rozpoznanie audio działa niestety trochę gorzej. System rozpoznania emocji w mowie to aplikacja przetwarzania mowy, która wywodzi z niej wzorce takie jak współczynnik mel-frequency cepstral (MFCC) czy też wysokość głosu. Wzorce te sa następnie mapowane przez klasyfikator w fazie trenowania i testowania, przy użyciu algorytmów rozpoznawania wzorców, w celu rozpoznania emocji dla każdego ze wzorców [5].</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Ogólny schemat działania takiego systemu ma postać:</div>\n",
"<br>\n",
"<div style=\"text-align: center\"><b>dane wejściowe (mowa) --> ekstrakcja cech --> wybór cech do analizy --> klasyfikacja --> rozpoznanie emocji</b></div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Na wstępnym etapie mowa jest obrabiana w celu usunięcia szumów. Następnie wyodrębniane są jej cechy (ton, barwa głosu, wysokość, szybkość i inne) i wybierane są cechy, które będą wchodziły w skład wektórów tworzących przestrzeń emocji (w podejściu wektorowym). W tym celu plik audio jest dzielony na segmenty oraz filtrowany. Tak przetworzony sygnał jest następnie reprezentowany w postaci n-wymiarowego wektora cech. Wektory te są przechowywane w celu późniejszej analizy przez kalsyfikator.</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Klasyfikatorem może być sieć neuronowa czy tez drzewo decyzyjne. Klasyfikatory są uczone na danych treningowych (dużej ilości), a następnie na ich podstawie do wyuczonych wzorców porównywane są wektory wyodrębnione z danych wejściowych. Skuteczność obecnych metod to średnio 80%. </div>"
"<div style=\"text-align: justify\">Rozpoznawanie emocji znajduje coraz szersze zastosowania w wielu dziedziniach życia. Warto tutaj wspomnieć między innymi o:</div>\n",
"\n",
" * zastosowaniach w marketingu - dostosowanie treści do reakcji użytkownika; celowane reklamy; prognozowanie rynku\n",
" * zastosowanie w samochodach - kontrola stanu kierowcy, pasażera\n",
" * Snapchat\n",
" * szeroko rozumiane zbieranie informacji zwrotnej od użytkownika\n",
" * API\n",
" * edukacja - dostosowanie do stanu emocjonalnego uczącego się\n",
" * gry komputerowe - immersja\n",
" * zdrowie i medycyna\n",
" * monitorowanie obywateli (!)\n",
" \n",
" <div style=\"text-align: justify\">Na ten moment ER jest najbardziej rozpowszechnione w dziedzinie sprzedaży i promowania produktów.</div>\n",
"<br>\n",
" <div style=\"text-align: justify\">Jednym z popularniejszych rozwiązań w ER w marketingu jest wspominana już na tych zajęciach Affectiva. Systemy Affectivy rozpoznają emocje z użyciem smartfonów oraz kamerek internetowych. Algorytm najpierw odnajduje twarz wykrywając jej cechy charakterystyczne, a następnie mapuje je na wyrazy twarzy, te natomiast na emocje (rozłożone w czasie). Affectiva bada reakcje użytkowników na reklamy i produkty, pomagając budować bazę klientów [3]. Więcej o Affectivie można znaleźć w materiałach szóstych. </div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Na rynku dostępne są również roboty, które wkorzystują emocje w trochę inny sposób. Zamiast antropomorficznie upodabniać się do człowieka, wykorzystują one do komunikacji inne formy przekazu - na przykład wyrażanie emocji przy pomocy koloru [8].</div>"
"### Rozpoznawanie emocji a sztuczna empatia<a name=\"Paragraph4\"></a>\n",
"<br>\n",
"<div style=\"text-align: justify\">Rozpozanwanie emocji jako narzędzie do obsługi sztucznej empatii jest stosowane w robotach służących do interakcji z człowiekiem, w celu zwiększenia ich akceptacji. Badania wskazują, iż jej zastosowanie w znacznym stopniu poprawia interakcję z robotem, nawet jeżeli nie jest on antropomorficzny [7].</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Jednakże sztuczna empatia wymaga trochę innego podejścia niż tylko proste rozpoznanie emocji. Empatia zakłada nawiązanie pewnego rodzaju łączności z drugim podmiotem - oznacza ona interakcję w czasie a nie tylko wywołanie pojedynczej emocji. Oznacza to, iż w takim przypadku konieczne jest rozważanie kontekstu i historii interakcji, w celu określenia procesu emocjonalnego rozmówców. Takie podejście do rozpoznawania emocji można spotkać w przypadku ER w konwersacjech. W przypadku rozmowy pomiędzy dwoma podmiotami, emocje są rozpoznawane w pewnym kontekście, z uwzględnieniem historii, emocji drugiego podmiotu, stanu mówiącego i treści samej wypowiedzi [9]. Takie podejście umożliwia implementację inercji emocjonalnej, znanej z psychologii [14]. Stosowane rozwiązania to np. Long Short-Term Memory (LSTM) czy Conversational Memory Networks (CMN).</div>\n",
"<br>\n",
"<div style=\"text-align: justify\">Badania wskazują również, iż właściwie rozpoznane i wyrażone emocje pozytywnie wpływają na empatię użytkownika wobec AI. Według badań aktywności mózgu, wyrazy twarzy robota są odbierane przez mózg tak samo, jak wyrazy twarzy człowieka. Ludzi nie mają problemów z rozpoznaniem u robota takich emocji jak radość, zaskoczenie czy złość, nie potrafią natomiast rozpoznać strachu czy zniesmaczenia! Podobnie, pozytywnie odbierana jest mowa ciała robota. Szczególnie pozytywnie na emocjonalne roboty reagują dzieci. Co ciekawe, ludzie wykazują też większą agresję wobec emocjonalnych robotów niż wobec tych bez emocji [10].</div>"
"<div style=\"text-align: justify\"><b>Zadanie 1 </b> Zrób sobie 6 zdjęć przedstawiających różne emocje: złość, strach, szczęście, smutek, zaskoczenie, neutralny wyraz twarzy. Następnie spróbuj rozpoznać emocje przy pomocy następującego kodu (wymagane openCV, TensorFlow, fer). Możesz skorzystać z przykładu w [1]. Wykonaj poniższe kroki, wpisując odpowiedni kod w puste miejsca:</div>"
"<div style=\"text-align: justify\"><b>Zadanie 2 </b> Nagraj krótki film ze swoją twarzą przedstawiający jakąś emocję. Następnie użyj tej samej biblioteki fer i sprawdź, czy emocja została dobrze rozpoznana. Jako wynik kodu powinna powstać kopia filmiku z zaznaczoną twarzą oraz przynależność do każdego z rodzaju emocji. Może to chwilę potrwać.</div>"
"<div style=\"text-align: justify\"><b>Zadanie 3 </b> Ostatnie zadanie będzie polegało na wykrywaniu emocji w mowie. Naszym zadaniem jest stworzyć sieć neuronową, którą nauczymy rozpoznawać emocję z plików dźwiękowych. Możesz wspierać się przykładem z [2]. Poniżej przedstawiona jest lista koniecznych kroków. Wpisz odpowiedni kod w pola pod każdym z kroków.</div>"
"3) W następnym kroku definujemy funkcje, które będą wyodrębniać cechy z pliku dźwiękowego: mfcc, chroma i mel. Funkcje te odpowiadają cechom mowy, które chemy wyodrębnić. Otwieramy plik dźwiękowy przy pomocy Soundfile. Dla każdej cechy, jeżeli istnieje, odwołaj sie do właściwej funkcji z librosa.feature i znajdź wartosć średnią."
"6) Wczytujemy dane. Z nazw plików dźwiękowych wyodrębniamy fragment będący etykietą emocji. Wybieramy tylko te 3, które chcemy obserwować. Tworzymy dwie listy. Jedna zawiera cechy, a druga emocje. Wywołujemy funkcję train_test_split."
"WARNING:py.warnings:c:\\Users\\jadamski\\.conda\\envs\\empatia\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:686: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.\n",
" learning_rate='adaptive', max_iter=500)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MLPClassifier</label><div class=\"sk-toggleable__content\"><pre>MLPClassifier(alpha=0.01, batch_size=256, hidden_layer_sizes=(300,),\n",
"[4] Bahreini, K., Van der Vegt, W., & Westera, W. (2019). A fuzzy logic approach to reliable real-time recognition of facial emotions. Multimedia Tools and Applications, 78(14), 18943-18966.\n",
"\n",
"[5] Lanjewar, R. B., & Chaudhari, D. S. (2013). Speech emotion recognition: a review. International Journal of Innovative Technology and Exploring Engineering (IJITEE), 2(4), 68-71.\n",
"\n",
"[6] Franzoni, V., Vallverdù, J., & Milani, A. (2019, October). Errors, biases and overconfidence in artificial emotional modeling. In IEEE/WIC/ACM International Conference on Web Intelligence-Companion Volume (pp. 86-90).\n",
"\n",
"[7] James, J., Watson, C. I., & MacDonald, B. (2018, August). Artificial empathy in social robots: An analysis of emotions in speech. In 2018 27th IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN) (pp. 632-637). IEEE.\n",
"\n",
"[8] Terada, K., Yamauchi, A., & Ito, A. (2012, September). Artificial emotion expression for a robot by dynamic color change. In 2012 IEEE RO-MAN: The 21st IEEE International Symposium on Robot and Human Interactive Communication (pp. 314-321). IEEE.\n",
"\n",
"[9] Poria, S., Majumder, N., Mihalcea, R., & Hovy, E. (2019). Emotion recognition in conversation: Research challenges, datasets, and recent advances. IEEE Access, 7, 100943-100953.\n",
"\n",
"[10] Hortensius, R., Hekele, F., & Cross, E. S. (2018). The perception of emotion in artificial agents. IEEE Transactions on Cognitive and Developmental Systems, 10(4), 852-864.\n",
"\n",
"[11] Sapiński, T., Kamińska, D., Pelikant, A., & Anbarjafari, G. (2019). Emotion recognition from skeletal movements. Entropy, 21(7), 646.\n",
"\n",
"[12] Domnich, A., & Anbarjafari, G. (2021). Responsible AI: Gender bias assessment in emotion recognition. arXiv preprint arXiv:2103.11436.\n",
"\n",
"[13] Zhang, J., Yin, Z., Chen, P., & Nichele, S. (2020). Emotion recognition using multi-modal data and machine learning techniques: A tutorial and review. Information Fusion, 59, 103-126.\n",
"\n",
"[14] Hazarika, D., Poria, S., Zadeh, A., Cambria, E., Morency, L. P., & Zimmermann, R. (2018, June). Conversational memory network for emotion recognition in dyadic dialogue videos. In Proceedings of the conference. Association for Computational Linguistics. North American Chapter. Meeting (Vol. 2018, p. 2122). NIH Public Access.\n",