• Nie Znaleziono Wyników

Edytor gestów

W dokumencie Index of /rozprawy2/10860 (Stron 91-96)

3. BUDOWA SYSTEMU TŁUMACZĄCEGO

3.2. Aplikacje narzędziowe

3.2.2. Edytor gestów

Rejestracja gestów w studiu motion capture wydaje się stosunkowo prostym zadaniem. Wystarczy znać gesty języka migowego, założyć listę migów, które chce się zarejestrować i nagrać je. Wykonanie tego zadania w praktyce znacznie odbiega od założeń. Dzieje się tak, ponieważ osoby używające na co dzień języka migowego posługują się gestami pochodzącymi z różnych źródeł. Oprócz gestów wyuczonych w szkole lub na kursach, przyswajają również te pochodzące od współrozmówców, a są one nierzadko regionalizmami lub uproszczeniami gestów książkowych. Dla osób komunikujących się w języku migowym ważne jest, by odbiorca zrozumiał komunikat, a nie to, czy został on przekazany podręcznikowo. Naleciałości te bardzo przeszkadzają przy rejestracji słownika gestów, w którym gesty muszą być zgodne z ich opisem tekstowym. Ujawnia się w ten sposób kwestia ich standaryzacji. Włączając w to niedoskonałości systemu rejestracji oraz zamieszanie, jakie powstaje w listach gestów rejestrowanych, nierejestrowanych, poprawnych i niepoprawnych, problem ten okazał się nieco kłopotliwy. Aby tego uniknąć, zaprojektowano narzędzie porządkujące proces rejestracji i ułatwiające obróbkę gestów. Edytor gestów jest kompleksowym narzędziem umożliwiającym rejestrację i obróbkę gestów języka migowego. Praca w aplikacji dzieli się na trzy etapy: rejestrację wzorców wideo-gestów, tworzenie i rejestrację sesji oraz obróbkę zarejestrowanych danych.

 Rejestracja wzorców wideo-gestów

Do rejestracji wzorców wideo-gestów służy zakładka Nagrywanie VIDEO zob. rysunek poniżej.

Wzorce te nagrywane są na podstawie opisów tekstowych gestów języka migowego, zebranych wcześniej w głównej bazie danych w oparciu o słowniki i materiały książkowe do języka migowego – literaturę na ten temat zawarto w bibliografii80. Nagrane wzorce wideo zapisywane są w głównej bazie danych jako obiekty binarne. Rys. 18 przedstawia przykładowo odtwarzanie wcześniej zarejestrowanego wzorca wideo-gestu, który jest zgodny z jego opisem tekstowy.

Wzorce wideo mają za zadanie wspomagać i przyspieszać proces rejestracji gestów 3D techniką motion capture. Animator przed pokazaniem gestu może w celu upewnienia się, że miga go poprawnie, przypomnieć sobie animację, odtwarzając wzorzec wideo-gestu danego migu.

 Nagrywanie sesji motion capture

Zakładka Nagrywanie MOTION CAPTURE pozwala zaprojektować sesję oraz wyznaczyć czas początku i końca dla poszczególnych gestów mieszczących się w sesji względem czasu rozpoczęcia jej rejestracji. Umożliwia to automatyczne pocięcie gestów we wstępnym procesie obróbki. Obsługa zakładki Nagrywanie MOTION CAPTURE obejmuje dwa etapy. Pierwszy z nich dotyczy planowania i tworzenia sesji motion capture. W ramach tworzenia nowej sesji podaje się jej nazwę oraz wybiera listę migów, które mają należeć do tworzonej sesji. Warto zauważyć, że aplikacja pozwala wybierać gesty dla sesji tylko ze zbioru migów posiadających wzorzec wideo. Zabieg ten jest celowy, wymusza bowiem przygotowanie danych, przyspiesza proces rejestracji, zapewnia poza tym lepszą jakość i poprawność merytoryczną nagranych gestów. Na rys. 19, poniżej pokazano proces tworzenia nowej sesji przed rejestracją systemem motion capture.

Rysunek 19: Tworzenie sesji motion capture.

80 Słownik gestów wraz z opisami tekstowymi powstał jako wynik prac mających na celu skompletowanie jak najobszerniejszej bazy gestów, ze słowników i materiałów książkowych jakimi dysponuje autor pracy, w jeden duży słownik 3D.

Drugi etap dotyczy procesu rejestracji utworzonej wcześniej sesji, zob. rysunek poniżej. Po prawej stronie znajduje się lista gestów włączonych do sesji. Rozpoczęcie rejestracji sesji jest uruchamiane przyciskiem Rozpocznij rejestrację Motion Capture. Powoduje to wystartowanie zegara odliczającego czas trwania sesji, mierzony liczbą ramek zarejestrowanych przez system81. Istotne jest przy tym, by moment rozpoczęcia odmierzania czasu był zsynchronizowany z momentem rozpoczęcia rejestracji danych systemem motion capture. Również nazwa pliku z danymi zwróconymi przez system motion capture dla danej sesji powinna być identyczna z nazwą nagrywanej sesji. Są to warunki konieczne w procesie automatycznego cięcia gestów zawartych w sesji. Na poniższym rysunku widać, ze na liście obok słów (gestów) pojawiają się również wartości czasów początku i końca rejestracji, mierzonych liczbą klatek. Odmierzanie tych czasów odbywa się przy użyciu dwustanowego przycisku znajdującego się pod listą. Przycisk Play daje możliwość odtworzenia wzorca wideo-gestu przed jego rejestracją.

 Obróbka EMT

Zakładka Obróbka EMT (rys. poniżej) służy do wstępnej obróbki gestów zarejestrowanych podczas sesji. Z listy rozwijanej wybierana jest sesja, której lista gestów wyświetlana jest poniżej. Za pomocą przycisku Otwórz EMT i załaduj do bazy uruchamiany jest zestaw procedur dokonujących wstępnej obróbki gestów dla całej sesji. Na początku aplikacja wymaga wskazania lokalizacji pliku EMT82, następnie ładuje plik do pamięci i wykorzystując zarejestrowane wcześniej w ramach sesji czasy, dokonuje automatycznego pocięcia gestów należących do sesji. Pocięte migi trafiają do głównej

81 System motion capture używany do akwizycji gestów rejestruje klatki z częstotliwością 120 Hz.

82 Plik tekstowy o rozszerzeniu EMT, zawiera dane zarejestrowane przez system motion capture podczas sesji. Format pliku przedstawiono krótko w podrozdz. 3.3.8. (Import danych zarejestrowanych systemem motion capture do aplikacji Blender) w tabeli 5.

bazy danych jako surowe, tekstowe dane, które mogą być poddawane kolejnym procesom obróbki. Na poniższym rysunku przedstawiono wizualizację przykładowego gestu zarejestrowanego systemem motion capture. Pozycje przestrzenne markerów zobrazowano tutaj przy użyciu kropek, które zostawiają smugi, umożliwiając użytkownikowi śledzenie toru ruchu markerów. Po prawej stronie widać opis tekstowy dla wybranego gestu. W zakładce przewidziano również usuwanie uszkodzonych lub niepoprawnie zarejestrowanych gestów lub całych sesji z głównej bazy danych.

Dla wybranego gestu definiowane są odpowiednie układy dłoni. Na rys. 21, powyżej widać układy dłoni w formie symbolicznej83 dla gestu „do widzenia” w formie łańcucha:

LB → L5 – PA → PU. Kliknięcie na pole z układem dłoni spowoduje wyświetlenie

interfejsu do projektowania układów dłoni, co ukazuje rysunek zamieszczony poniżej. Zapis ten odczytywany jest następująco: Na początku animacji dłoń lewa ustawiona jest w układzie litery „B” (LB), a prawa dłoń w układzie litery „A” (PA). W trakcie trwania animacji następuje płynne przejście z początkowych układów dłoni do układów cyfry „5” (L5) dla lewej dłoni oraz układu litery „U” (PU) dla prawej dłoni. W takim przypadku czas przejścia obliczany jest na podstawie długości trwania gestu. Istnieje również możliwość definiowania czasu, w jakim ma być wykonane przejście układu dłoni poprzez podanie numeru klatki animacji, do której to stan ten ma być osiągnięty, zob. rys. 22.

83 Zob. oznaczenia układów dłoni języka migowego podrozdz. 2.3.6. (Cechy gestów języka migowego). Rysunek 21: Wstępna obróbka migów zarejestrowanych w sesji.

Istotną funkcję w zakładce „Obróbka EMT” pełni przycisk Eksportuj do BLENDERA. Uruchamia on aplikację Blender, przekazując jej dane niezbędne do wczytania w niej wybranego uprzednio migu (zob. rys. poniżej). W aplikacji Blender uruchamia się skrypt importujący z głównej bazy danych źródłową postać animacji w celu dalszej obróbki gestu, tj. interpolacji brakujących fragmentów sygnału oraz jego wygładzania.

Rysunek 23: Obróbka gestów w aplikacji blender.

Tutaj określany jest precyzyjnie początek i koniec animacji, pozwala to na zapisanie właściwej jej części w głównej bazie danych. Dokonywana jest również korekta animacji84. Po zakończeniu procesu obróbki animacja zapisywana jest do głównej bazy danych. Nie ma tu miejsca na dokładny opis procesu cięcia i obróbki gestów, warto jednak wspomnieć, że realizacja wszystkich tych czynności wymagała wykonania odpowiednich skryptów w języku Python. Skrypty te ze względu na swą obszerność nie będą omawiane w niniejszej pracy.

W dokumencie Index of /rozprawy2/10860 (Stron 91-96)