Interpretacja gestów dłoni w sekwencji obrazów cyfrowych autor: Karol Czapnik opiekun: prof. dr hab. Włodzimierz Kasprzak
Plan prezentacji Cel pracy magisterskiej Zastosowanie pracy Założenia projektowe Podstawowe problemy i ograniczenia Ogólny opis funkcji systemu Przegląd metod i algorytmów Przedstawienie własnych rozwiązań Zaplanowane zadania Środowisko programistyczne 2/20
Cel pracy magisterskiej Aplikacja przeznaczona do śledzenia dłoni w sekwencji obrazów i interpretowania gestów dawanych ręką: wykrywanie układu dłoni na statycznych obrazach cyfrowych interpretacja gestu śledzenie dłoni, czyli wyznaczenie trajektorii jej ruchu stworzenie kilkuetapowego sytemu wizyjnego do rozpoznawania gestów języka migowego w warunkach naturalnych interpretacja znaków Polskiego Alfabetu Palcowego (PAP) oraz gestów z Polskiego Języka Miganego (PJM) 3/20
Zastosowania pracy komunikacja między człowiekiem a komputerem sterowanie różnymi urządzeniami gospodarstwa domowego (RTV/AGD) wydawanie poleceń maszynom (np. w fabryce lub w środowisku uniemożliwiającym komunikację dźwiękową) stworzenie systemów nadążnych stosowanych do manipulacji zdalnych maszyn czy robotów ułatwianie pracy oraz kontaktu z otoczeniem osobom niepełnosprawnym i w podeszłym wieku automatyczne tłumaczenie gestów języka migowego na język mówiony lub pisany (np. w urzędach, w pracy) 4/20
Język migowy język naturalny i podstawowe narzędzie komunikacji dla osób głuchoniemych Polski Alfabet Palcowy (PAP) i Polski Język Migany (PJM) oparty na gramatyce języka polskiego gesty statyczne i dynamiczne odpowiadają jednoznacznie znakom ideograficznym (wyrażenia i słowa) oraz znakom daktylograficznym (litery, liczby) niektóre znaki dynamiczne są ruchomą wersją swoich odpowiedników statycznych, np. Ń jest ruchomą wersją znaku N Zestaw znaków PAP 5/20
Założenia projektowe rozpoznawanie poszczególnych znaków PAP ze szczególnym uwzględnieniem gestów dynamicznych rozpoznawanie sekwencji obrazów z kamery cyfrowej testowanie w warunkach naturalnych (dowolne tło i oświetlenie) niezbyt szybkie i starannie wykonywane gesty poszukiwanie dłoni jako obiektu pierwszoplanowego widoczna cała dłoń, niezasłonięta detekcja swobodnie rozmieszczonej dłoni na obrazie kolorowym określenie wzajemnego położenia części anatomicznych dłoni 6/20
Podstawowe problemy i ograniczenia akwizycja obrazów (rozdzielczość, jasność, dynamizm) szybkość rejestrowania, przetwarzania i rozpoznawania gestów wyodrębnienie dłoni z dowolnego tła rozróżnienie znaków statycznych i dynamicznych ograniczenie związane z ruchem, czyli ze znakami dynamicznymi: śledzenie dłoni (cały czas kontakt z obiektem) deformacje dłoni (nie uwzględnianie stanów pośrednich) określenie kształtu trajektorii zakreślanej przez dłoń właściwa interpretacja gestu (stworzenie odpow. wektora cech) poprawna klasyfikacja układów dłoni (gestów) 7/20
Ogólny opis funkcji systemu (1) akwizycja obrazów pozyskiwanie obrazów cyfrowych segmentacja wydzielenie dłoni na obrazie kolorowym, czyli uzyskanie obrazu binarnego ewentualna poprawa jakości powstałego obrazu wykrywanie konturów dłoni (określenie położenia, kształtu, układu i orientacji dłoni oraz widocznych palców) modelowanie dłoni stworzenie wektora cech (baza wiedzy) interpretacja i klasyfikacja gestu porównanie układu dłoni z modelami w bazie wiedzy rozróżnienie gestu dynamicznego od statycznego śledzenie dłoni wyznaczenie trajektorii ruchu dłoni 8/20
Ogólny opis funkcji systemu (2) Analiza barw (segmentacja) Wykrywanie konturów dłoni (znalezienie konturów dłoni i detekcja obwiedni śródręcza) Modelowanie dłoni (wektor cech) Interpretacja i klasyfikacja gestu Piotr Skrzyński Wykrywanie i interpretacja układu dłoni na obrazie IAiIS Warszawa 2005 9/20
Przegląd metod i algorytmów (1) Rozpoznawanie pojedynczych znaków PAP Segmentacja (uzyskanie obrazu binarnego): MBS metoda oparta na modelu barwy skóry ludzkiej w przestrzeni barw znormalizowanych RGB MKR obraz konturowy i wypełnienie konturu MSN model oparty na sieci neuronowej Wnioski: wrażliwość na warunki oświetlenia i jednorodność tła Joanna Marnik Rozpoznawanie znaków Polskiego Alfabetu Palcowego, 2003 10/20
Przegląd metod i algorytmów (2) Modelowanie (tworzenie wektora cech): morfologiczne przekształcenie trafi nie trafi (oparte na elementach strukturalnych wzorcach) wektor cech: powierzchnia, kąt nachylenia, odległość od środka ciężkości dłoni Klasyfikacja: ostateczne rozpoznanie znaku PAP za pomocą sieci neuronowej Rozpoznanie trajektorii ruchu dłoni: śledzenie ruchu wybranego punktu dłoni w kolejnych klatkach Wyniki: prosta metoda, ale wolna (5 klatek/s) duża skuteczność rozpoznawania (ok. 90%) Joanna Marnik Rozpoznawanie znaków Polskiego Alfabetu Palcowego, 2003 11/20
Przegląd metod i algorytmów (3) Rozpoznawanie wyrazów i całych zdań PJM (gesty dynamiczne wykonywane dwoma rękami) Segmentacja: MBS model barwy skóry ludzkiej Modelowanie (tworzenie wektora cech): identyfikacja pozycji dwóch dłoni i twarzy na obrazie analiza pola powierzchni obiektów, ich pozycji oraz zakresu ruchu wektor cech: środek ciężkości i powierzchnia obiektów, kształt, orientacja i położenie dłoni oraz korelacje między nimi Klasyfikacja: statystyczne przewidywanie następnego ruchu oparte na ukrytych modelach Markowa (HMM) poprzez funkcje gęstości prawdopodobieństw kolejnych stanów Tomasz Kapuściński Rozpoznawanie polskiego języka miganego w systemie wizyjnym, 2006 12/20
Przegląd metod i algorytmów (4) Rozpoznawanie pojedynczych umownych znaków (podobne do PAP) Segmentacja: analiza barw obrazu na podstawie wykrywania koloru skóry w przestrzeni barw YCbCr lub YCgCr Modelowanie (tworzenie wektora cech): metoda aktywnych konturów automatyczne zliczanie widocznych palców wektor cech: ilość widocznych wyprostowanych palców, widoczność kciuka, wymiary dłoni i śródręcza, kąt pod jakim widoczna jest dłoń, odległości punktów dwóch konturów względem środka masy dłoni Klasyfikacja: proces interpretacji układu dłoni na podstawie kombinacji wartości tych wszystkich cech Piotr Skrzyński Wykrywanie i interpretacja układu dłoni na obrazie IAiIS Warszawa 2005 13/20
Metoda aktywnych konturów (1) Cechy charakterystyczne: zbiór uszeregowanych punktów opisujących kontur, na który oddziałują różne siły dążące do zminimalizowania swojej energii Siły: zewnętrzne (związane z własnościami obiektu) wewnętrzne (zachowanie ciągłości i gładkości krzywej) wspólnie działają prowadząc do dopasowania się krzywej do krawędzi poszukiwanego obiektu wprowadzenie zewnętrznych sil gradientowych (GVF) tradycyjna postać energii obrazu pozostawia dużą odległość od wklęsłości U-kształtnych obiektów (słaba zbieżność konturu) 14/20
Metoda aktywnych konturów (2) Zalety: bardzo dobre wyniki rozpoznawanie gestów wykorzystanie GVF duża dokładność i efektywność (nawet w warunkach naturalnych niekoniecznie jednolite tło) Wady: procesy kosztowne obliczeniowo: zastosowanie GVF (duża liczba iteracji) iteracyjny proces przemieszczania punktów kontrolnych proces interpolacji punktów kontrolnych zastosowanie obliczeń GVF nie nadaje się do rozpoznawania gestów dynamicznych 15/20
Modyfikacje metody Wprowadzone modyfikacje: zmniejszenie liczby iteracji obliczeń GVF (tylko do 1): brak prawidłowego odzwierciedlania U-kształtów nie przeszkadza w poprawnym określeniu ilości palców (krawędź konturu niedokładnie odzwierciedla krawędź poszukiwanego obiektu) nadal uzyskanie poprawnego rozpoznawania znaków 240 iteracji obliczeń GVF 1 iteracja obliczeń GVF zmniejszenie liczby iteracji rozmieszczania punktów kontrolnych: mały wpływa na wygląd zewnętrznego konturu zastosowanie metody aktywnych konturów do rozpoznawania gestów dynamicznych bez obliczeń GVF 16/20
Proponowane rozwiązania przygotowanie dokładnej segmentacji obrazu (redukcja szumów) wyznaczanie krawędzi obiektu bez korzystania z aktywnych konturów, wykorzystanie filtru Sobela (do wykrywania krawędzi) i zastosowanie tylko kilku punktów kontrolnych wyznaczanie środka ciężkości i środka geometrycznego dłoni wyznaczanie prostej łączącej środek ciężkości z punktami kontrolnymi zastosowanie niezmienników momentowych wektor cech: długość, kierunek i kąt nachylenia tej prostej, niezmienniki momentowe oraz ilość widocznych palców śledzenie środka ciężkości do ogólnego wyznaczenia kierunek ruchu śledzenie dłoni z wykorzystaniem ukrytych modeli Markowa (HMM) 17/20
Zaplanowane zadania pobieranie obrazu z kamery cyfrowej oraz segmentacja i analiza poszczególnych klatek poprawianie skuteczności, wydajności i szybkości wykrywania konturów zastosowanie niezmienników momentowych śledzenie ruchu ręki według przemieszczającego się punktu środka ciężkości lub środka geometrycznego śledzenie dłoni z wykorzystaniem HMM rozpoznawanie kierunków ruchu ręki (lewo-prawo, góra-dół) tło jednolite albo tło bez elementów o barwie skóry wykorzystanie aktywnych konturów do rozpoznawania PAP na dowolnym tle 18/20
Środowisko programistyczne stworzenie własnej obsługi kamery cyfrowej (internetowej) zastosowanie języka Java z wykorzystaniem dwóch bibliotek: JAI Java Advanced Imaging (zaawansowana obsługa obrazów cyfrowych) JMF Java Media Framework (pakiet do przetwarzania obrazów oraz strumieni danych, np. przechwytywanie obrazu z kamery cyfrowej) zastosowanie języka C++ z biblioteką Video for Windows (Windows API) możliwość implementowania najważniejszych operacji związanych z obrazami statycznymi i dynamicznymi możliwość wykorzystania biblioteki OpenCV 19/20
Dziękuję za uwagę