A Support Vector Machine-Based Dynamic Network for Visual
Transkrypt
A Support Vector Machine-Based Dynamic Network for Visual
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 ▬ ▬ ▬ ● Użytego klasyfikatora ▬ ▬ ▬ ▬ ▬ ● Zewnętrzny kontur warg Rozkład szarości Jasności punktów 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 ▬ ▬ ● Zminimalizowanie kosztu operacji ▬ ● Rozróżniające visemy Niezależne od osoby 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 ▬ ▬ ▬ ● Powód dla którego SVM nie zostało użyte w rozpoznawaniu visemów to: ▬ ▬ ● Rozpoznawaniu wzorców Rozpoznawaniu, wykrywaniu i weryfikacji twarzy Rozpoznawaniu dźwięku 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 AE AH AO AW odd at hut ought cow AA D AE T HH AH T AO T K AW AY B CH D DH hide be cheese dee thee HH AY D B IY CH IY Z D IY 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 2 3 4 5 6 7 8 9 /F/; /V/ /TH/; /DH/ /S/; /Z/ /SH/; /ZH/ /P/; /B/; /M/ /W/ /R/ /G/; /K/; /N/; /T/; /D/; /Y/ /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 Two Three Four W-AH-N T-UW TH-R-IY 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 1 2 3 4 5 6 Notacja (W) (AO) (WAO) (AH) (N) (T) 7 8 9 (TH) (IY) (F) Opis okrągłe, mało otwarte usta okrągłe, bardziej otwarte usta okrągłe, średnio otwarte usta eliptyczne usta nieokrągłe, średnio otwarte usta z ząbkami nieokrągłe, średnio otwarte usta z ząbkami i językiem nieokrągłe, średnio otwarte usta podłużnie otwarte usta 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 1, 2, 3 * 1, 3 * 4 5 6 7 8, 4 * 9 Odpowiadające fonemy /W/, /UW/, /AO/ /R/ /AH/ /N/ /T/ /TH/ /IY/ /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 1 2 3 4 5 6 7 8 9 10 11 12 SVM 100 75 100 100 87.5 100 87.5 100 100 62.5 87.5 87.5 AAM & HMM 100 87.5 87.5 75 100 100 75 100 100 75 100 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 76 SVM+delta 90.6 AAM&HMM AAM&HMM+delta 87.5 90.6 HMM HMM+delta 60 89.93 Global GlobaI PCA&HMM CA&HMM 79.2 74 Blocked filter unblocked filter PCA/ICA PCA/ICA 85.4 91.7 diffusion network Shape + intensity 91.7 Macierze pomyłek One One 95.83 Two 0.00 Three 16.66 Four 0.00 Two 0.00 95.83 12.5 0.00 Three 0.00 4.17 70.83 0.00 Four 4.17 0.00 0.00 100 SVM One One 89.36 Two 1.39 Three 9.25 Four 4.17 Two 0.46 98.61 3.24 0.46 Three 8.33 0.00 85.64 1.85 Four 1.85 0.00 1.87 93.52 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) Po co SVM jak można PCA :) ● Z jednej pracy IBMa 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.