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.