A Support Vector Machine-Based Dynamic Network for Visual Speech Recognition Applications Na podstawie pracy autorów: Mihaela Gordan, Constantine Kotropoulos, Ioannis Pitas
Sens tworzenia systemu rozpoznawania mowy opartego o rozpoznawanie obrazu Argumenty przeciw Wielowymiarowość danych Wolniejsze przetwarzanie Rozpoznawanie dźwięku jest wystarczające Argumenty za Paradoksalnie obraz zawiera mniej naturalnych szumów Możliwość połączenia obydwóch technik Wykazano, że w hałaśliwym otoczeniu zwiększa różnice sygnału do szumu o 12dB. Pomaga dla dużych słowników rozpoznawanych wyrazów (jeżeli wyrazy brzmią podobnie jest szansa, że zostaną rozróżnione na podstawie obrazu)
Podstawy systemu Każdemu układowi warg przypisane są głoski, które reprezentuje Nie jest to przypisanie 1 na 1, ale dla małego słownika wystarcza aby rozpoznawać tylko na podstawie kształtu ust.
Klasy podziału metod Zbiór cech Zewnętrzny kontur warg Rozkład szarości Jasności punktów Użytego klasyfikatora Sieci neuronowe opóźnione w czasie Dynamiczne modele (active shape models) Ukryty model Markov-a (HMM) SDE PCA Definicji klas Głoski Sylaby Słowa
Aktualne kierunki badań Znalezienie optymalnych cech klasyfikowania Rozróżniające visemy Niezależne od osoby Zminimalizowanie kosztu operacji Głównie dla zastosowań w czasie rzeczywistym Umożliwienie łatwego łączenia z systemem dźwiękowym Niskopoziomowe (poziom cech) Wysokopoziomowe (poziom klas) Prawo Mortona-Massaro
Zastosowanie Support Vector Machines SVM sprawdziło się w Rozpoznawaniu wzorców Rozpoznawaniu, wykrywaniu i weryfikacji twarzy Rozpoznawaniu dźwięku Powód dla którego SVM nie zostało użyte w rozpoznawaniu visemów to: Hiperpłaszczyzna jest statycznie wyliczona Mowa jest dynamicznym procesem, zawiera wiele tymczasowych danych Samo SVM nie wystarczy, wspomaga je się algorytmami takimi jak HMM Viterbi
Fonemy Fonem to najmniejsza akustyczna jednostka mowy, dla języka angielskiego jest to około: 10-15 samogłoskowych (lub samogłoskowo brzmiących) fonów 20-25 spółgłoskowych fonów W pracy został użyty publicznie dostępny słownik wymowy z Carnegie Mellon University Początkowe wpisy CMU wyglądają tak: AA odd AA D AE at AE T AH hut HH AH T AO ought AO T AW cow K AW AY hide HH AY D B be B IY CH cheese CH IY Z D dee D IY DH thee DH IY
Pomysł Visemów Visem to najmniejsza widzialna jednostka mowy Koncentruje się na wyrazie ust Zawiera dynamiczne informacje (ruch ust) Np w słowie oat (/OW T/) występuje głoska OW, której visem zawiera zapis przejścia wyrazu ust z /O/ do /W/ Na szczęście większość z nich można przybliżyć przez statyczne obrazki /O/ /F/
Mapowanie visemów na fonemy Idealnie byłoby mieć funkcję, która danemu visemowi przypisuje odpowiadający fonem Niestety nie tylko ustami człowiek mówi, artykułuje też organami wewnętrznymi (np. /P/, /B/ i /M/) Pozostaje relacja :( Tylko jak to zrobić... Nie istnieje pełen jednoznaczny zestaw grup visemek Tworzy się table poprzez tworzenie wszystkich słów typu samogłoska-spółgłoska-samogłoska i jeżeli 75% pytanych osób rozpozna tak samo to dane visemki są w tej samej grupie Lub używa się metod z NN takich jak Average linkage hierarchical clustering i map samoorganizujących
Klasyka grup visemów Większość prac zgodna jest co do wyróżnienia 9-ciu najbardziej używanych grup visemów 1 /F/; /V/ 2 /TH/; /DH/ 3 /S/; /Z/ 4 /SH/; /ZH/ 5 /P/; /B/; /M/ 6 /W/ 7 /R/ 8 /G/; /K/; /N/; /T/; /D/; /Y/ 9 /L/
Realizacja wizualnego problemu rozpoznawania mowy Dwupoziomowy algorytm Każdej z grup visemów jest rozpoznawana przez binarny klasyfikator SVM (należy do grupy/nie należy) W tymczasowej grupie grup visemów szukamy słów, które modelowane są kratami Viterbiego Niektóre systemy akustycznego rozpoznawania mowy są podobnie modelowane oczekujemy więc, że to podejście będzie mogło współpracować.
(poziom1) Problem rozpoznawania grup visemów jako problem rozpoznawania wzorca Każdy wyraz twarzy tworzy wektor cech Każdej z grup przypisany jest klasyfikator SVM, który określa czy dany wyraz twarzy należy do tej grupy (liczba klasyfikatorów równa liczbie grup)
(poziom 2) Model słowa rozpoznawanego przez kratę Viterbiego Dla grupy l_k b_{l_k} prawdopodobieństwo zauważenia obserwacji o_k a_{l_k,l_{k+1}} to prawdopodobieństwo przejścia z wierzchołka z przypisaną grupą l_k do wierzchołka z przypisaną grupą l_{k+1} l indeksuje wszystkie możliwe przejścia po kracie, nas interesuje maksymalne prawdopodobieństwo (czyli jak bardzo przypomina dane słowo)
Drobny zgrzyt z SVM SVM zostało przewidziane do rozpoznawania dwóch klas (-1 i +1) Jako że, gęstości po obydwu stronach są wykładnicze Bayes sugeruje użycie równania Co oznacza, że prawdopodobieństwo należenia próbki do danej klasy wynosi
To już koniec (teorii)
Eksperymenty praktyczne Testy zawierają rozpoznawanie pierwszych czterech angielskich cyfr dane zaczerpnięte z małej dźwiękowo-obrazowej bazy Tulips1 mimo tak małej ilości słów testowane jest 10 fonów Aby przeprowadzić takie testy należy zdefiniować relacje visemów z fonami stworzyć sieć SVM nauczyć sieć SVM wygenerować modele słów (kraty Viterbiego)
W poszukiwaniu visemów Fonetyczny zapis cyfr to: One W-AH-N Two T-UW Three TH-R-IY Four F-AO-R Staramy się uzyskać klasy visemów aby: Odpowiadały jak najmniejszej ilości fonów Zawierały jak najmniej różniących się realizacji (obrazków)
Znalezione grupy visemów Visemy zostały ręcznie pogrupowane Indeks Notacja Opis 1 (W) okrągłe, mało otwarte usta 2 (AO) okrągłe, bardziej otwarte usta 3 (WAO) okrągłe, średnio otwarte usta 4 (AH) eliptyczne usta 5 (N) nieokrągłe, średnio otwarte usta z ząbkami 6 (T) nieokrągłe, średnio otwarte usta z ząbkami i językiem 7 (TH) nieokrągłe, średnio otwarte usta 8 (IY) podłużnie otwarte usta 9 (F) prawie zamknięte usta z górnymi ząbkami i dolną wargą przesuniętą do środka
Relacja visemów z fonami Również ręcznie pogrupowane Indeks visemu Odpowiadające fonemy 1, 2, 3 * /W/, /UW/, /AO/ 1, 3 * /R/ 4 /AH/ 5 /N/ 6 /T/ 7 /TH/ 8, 4 * /IY/ 9 /F/ (*) Zbiory visemów powstały ze względu na różną wymowę kilku osób
Implementacja SVM Została użyta biblioteka SVMLight (w C) Jako wektory danych zostały użyte znormalizowane obrazki ust pomniejszone do rozmiaru 16x16! te same obrazki z dołączonymi różnicami miedzy kolejnymi klatkami (w sumie 32x16, cechy delta) Przetestowane zostały RBF i wielomiany stopnia 1-6 Wielomian stopnia 3 został wybrany jako jądro, RBF dawało podobne rezultaty ale wymagało więcej wektorów wspomagających
Uczenie/Testowanie SVM Baza Tulips1 zawiera 12 osób, 48 sekwencji wideo Testy na niezależność od osoby Zostało to przetestowane w 12 przebiegach (w każdym visemki jednej z osób były testowane przeciwko pozostałym uczącym) Ręczne etykietowanie każdej klatki Ręczne łączenie grup, jeżeli odpowiadające sobie visemki dwóch danych osób były podobne Po zakończonym etykietowaniu, w zbiorze uczącym znalazły się wektory nie podlegające żadnej wątpliwości Oczywiście było to uczenie nie zbilansowane (każdy SVM uczony był jedną klasą na +1, a pozostałymi na -1)
Tworzenie krat Viterbiego Krat jest tyle ile modeli słów Każdym model słowa to inna konfiguracja visemów Czyli, sumując powstały 3 modele słowa one 3 modele słowa two 4 modele słowa three 6 modeli słów four Np modele dla four powstały z kombinacji: Four = F-AO-R 9 1,3 1,2,3
Sposób obliczania wyników Do każdego z 12 wspomnianych testów, każde słowo posiada dwie wymowy. Głównym wskaźnikiem jest procentowy Stopień Rozpoznania Słowa jako średnia z 12*4*2 = 96 testów Wyniki pozostałych metod zostały zaczerpnięte z innych prac
SRS w zależności od osoby Osoba SVM AAM & HMM 1 100 100 2 75 87.5 3 100 87.5 4 100 75 5 87.5 100 6 100 100 7 87.5 75 8 100 100 9 100 100 10 62.5 75 11 87.5 100 12 87.5 87.5 AAM -Active Appearance Model dla wewnętrznych i zewnętrznych konturów ust HMM i SVM zawiera cechy delta
SRS dla porównywanych metod SVM SVM+delta AAM&HMM AAM&HMM+delta 76 90.6 87.5 90.6 HMM HMM+delta Global GlobaI PCA&HMM CA&HMM 60 89.93 79.2 74 Blocked filter unblocked filter diffusion network PCA/ICA PCA/ICA Shape + intensity 85.4 91.7 91.7
Macierze pomyłek One Two Three Four One 95.83 0.00 0.00 4.17 Two 0.00 95.83 4.17 0.00 Three 16.66 12.5 70.83 0.00 Four 0.00 0.00 0.00 100 One Two Three Four One 89.36 0.46 8.33 1.85 Two 1.39 98.61 0.00 0.00 Three 9.25 3.24 85.64 1.87 Four 4.17 0.46 1.85 93.52 SVM Człowiek
Podsumowanie SVM uzyskuje bardzo dobre wyniki, a nie korzysta z zaawansowanego preprocesingu, czy algorytmu Testy na ludziach wykazały następujące SRS 89.93% u ludzi nie uczonych czytać z ust 95.49% u ludzi głuchoniemych Napawa optymizmem fakt, że metoda która bada szarość 512 pikseli otrzymuje wyniki lepsze/prawie lepsze niż metody które są desygnowane do rozpoznawania mowy
Dziękuję za uwagę (reszta dla chętnych)
Z jednej pracy IBMa Po co SVM jak można PCA :)
Czy na pewno komputer musi czytać dokładnie aby nas rozumieć Zdognie z nanjwoymszi baniadmai perzporawdzomyni na bytyrijskch uweniretasytch nie ma zenacznia kojnoleść ltier przy zpiasie dengao sołwa. Nwajżanszyeim jest, aby prieszwa i otatsnia lteria była na siwom mijsecu, ptzosałoe mgoą być w niaedziłe i w dszalym cąigu nie pwinono to sawrztać polbemórw ze zozumierniem tksetu. Dzijee się tak datgelo, ze nie czamyty wyszistkch lteir w sołwie, ale cłae sołwa od razu. Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.