Sztuczna inteligencja w rozpoznawaniu gestów

Rozwój technik rozpoznawania gestów zrewolucjonizował dziedzinę interfejsów użytkownika, zwiększając intuicyjność ich obsługi i zapewniając wrażenie imersji. Wykorzystują one różne czujniki wykrywające ruchy dłoni i algorytmy, które je analizują, ostatnio coraz częściej także te oparte na sztucznej inteligencji. Na tej podstawie gesty są interpretowane i przekształcane w polecenia dla urządzenia, z którym w ten sposób użytkownik wchodzi w interakcję.

Posłuchaj
00:00

W detekcji gestów wykorzystywane są różne rozwiązania pomiarowe, w tym sensory podczerwieni, czujniki ultradźwiękowe, kamery 3D oraz sensory wbudowane w rękawice. Przykładowo systemy rozpoznawania ruchów dłoni z czujnikami podczerwieni są popularne w przemyśle, zastosowaniach konsumenckich i wyposażeniu samochodów. Wynika to stąd, że w oparciu o nie łatwo i tanim kosztem można realizować systemy wykrywania prostych gestów.

Czujniki w detekcji gestów

Przykład to interfejsy użytkownika w urządzeniach audio w samochodach, które obsługują zmianę kanału radiowego przez przesunięcie dłoni lewo–prawo i regulację poziomu głośności przez jej przemieszczenie góra–dół. Układ pomiarowy w takim przypadku składa się przeważnie z dwóch nadajników podczerwieni (zwykle diod LED IR), umieszczonych w określonej odległości od siebie w jednej płaszczyźnie i detektora (fotodiodę) znajdującego się między nimi.

Wzór promieniowania nadajników podczerwieni jest silnie kierunkowy. Gdy przesuwa się nad nimi dłoń, sygnał mierzony w detektorze zmienia się. Jeżeli ręka przemieszcza się z lewej do prawej, sygnał z lewego nadajnika będzie się zwiększał, zaś tego z prawej – malał i odwrotnie, w przypadku ruchu ręki z prawej do lewej. Dane z detektora są analizowane w sterowniku, który na podstawie zmiany natężenia promieniowania określa, czy został wykonany gest przesunięcia, a jeżeli tak, to w jakim kierunku. Uzupełniając układ pomiarowy o dodatkowe nadajniki i odbiorniki podczerwieni można również wykrywać ruchy ręki góra–dół.

Ważne kwestie do rozważenia podczas projektowania systemu rozpoznawania gestów z sensorami podczerwieni to zasięg wykrywania w stosunku do poboru prądu i umiejscowienie diod LED IR. Zwiększenie odległości, z której będzie można wykryć gest, oznacza konieczność zwiększenia mocy wyjściowej nadajników podczerwieni. Z tym wiąże się wzrost poboru prądu, co jest niekorzystne w urządzeniach zasilanych bateryjnie. Oznacza to jednocześnie większą ilość ciepła, które musi zostać rozproszone. To potencjalnie zwiększa rozmiar oraz koszt urządzenia docelowego. Rozmieszczenie diod zależy natomiast głównie od potrzeb konkretnego zastosowania. Na przykład większy odstęp pomiędzy detektorem a diodami LED IR zwiększa zasięg detekcji.

Urządzenia noszone, jak rękawiczki z wbudowanymi czujnikami, wyróżnia z kolei duża dokładność rozpoznawania gestów, ponieważ pozwalają na śledzenie ruchu dłoni na poziomie poszczególnych palców. Uzyskuje się to dzięki wykorzystaniu kombinacji wielu sensorów różnych typów, w tym najczęściej akcelerometrów, żyroskopów i magnetometrów, które rejestrują przemieszczenie i orientację ręki.

Etapy rozpoznawania gestów

Popularnym sposobem rozpoznawania gestów jest też wykorzystanie systemów wizyjnych. W tym przypadku ruchy ręki są rejestrowane przez kamery, zazwyczaj 3D. Następnie obrazy i/lub wideo są poddawane obróbce i analizie. Są to procesy wieloetapowe.

Przetwarzanie wstępne obejmuje usunięcie z obrazów szumów i wyodrębnienie na nich przedmiotu zainteresowania w ramach segmentacji. Ma ona na celu odróżnienie dłoni od tła.

Prawidłowa segmentacja obrazu warunkuje właściwą interpretację gestu.

W tym zakresie stosuje się różne podejścia. Na przykład dłoń od tła rozróżnia się na podstawie koloru skóry z wykorzystaniem metod progowania obrazów. W wykrywaniu konturów ręki znajdują również zastosowanie techniki detekcji krawędzi oraz dopasowania wzorca. Następny krok to ekstrakcja, obejmująca identyfikację i rozróżnienie cech, które zostaną wykorzystane do zrozumienia znaczenia ruchu dłoni.

Wyodrębnienie cech, które najlepiej reprezentują gest na obrazie, jest kluczowe w etapie ekstrakcji. Od ich wyboru zależy stopień skomplikowania systemu i jego wydajność w czasie rzeczywistym, a także prawidłowość interpretacji ruchów ręki. Główne kategorie to cechy globalne oraz lokalne.

Pierwsze charakteryzują budowę oraz ruch całej dłoni. Przykładowe cechy to: wymiary dłoni, jej kształt, kierunek, prędkość, przyspieszenie, kąt obrotu. Dostarczają ogólnych informacji i zwykle są wystarczające w analizie prostych gestów. Cechy lokalne dotyczą konkretnych części dłoni (palców, nadgarstków, jej wewnętrznej części). Przykładami są: kąt obrotu nadgarstka, stopień wypukłości dłoni, krzywizna palców. Zapewniają one szczegółowe informacje, mają zazwyczaj mniejszą korelację międzypikselową w porównaniu z cechami globalnymi i są odporniejsze na zmiany otoczenia, jak oświetlenie, dzięki czemu są kluczowe w interpretacji bardziej złożonych gestów.

Wyodrębnione cechy stanowią źródło danych algorytmu klasyfikacji. Wykorzystując m.in. techniki uczenia maszynowego, rozpoznaje on na ich podstawie konkretny gest.

Na czym polega SVM?

Przykładem jest SVM (Support Vector Machines). Technikę tę zalicza się do algorytmów uczenia maszynowego nadzorowanego. Jest wykorzystywana głównie w zadaniach klasyfikacji. Algorytm SVM jest popularny w różnych dziedzinach, oprócz rozpoznawania wzorców w analizie obrazów również m.in. w przetwarzaniu języka naturalnego. W skrócie polega on na znalezieniu optymalnej hiperpłaszczyzny, która dzieli dane na klasy. Kluczowe znaczenie dla zrozumienia algorytmu SVM ma wyjaśnienie kilku terminów. Takim jest wspomniana hiperpłaszczyzna.

Jest to granica decyzyjna, która klasyfikuje dane w przestrzeni wielowymiarowej. W przestrzeni 2D jest to po prostu linia, zaś w przestrzeni trójwymiarowej – płaszczyzna. W obu przypadkach dzielą one punkty danych na dwie grupy. Generalnie w przestrzeni N-wymiarowej hiperpłaszczyzna ma N – 1 wymiarów. Wykorzystuje się ją do dokonywania przewidywań dotyczących nowych punktów danych poprzez ocenę, po której stronie hiperpłaszczyzny się one znajdują (rys. 1).

Rys. 1. Kluczowe terminy algorytmu SVM

Margines to z kolei odległość pomiędzy granicą decyzyjną a najbliższymi danymi z każdej grupy. Jest miarą tego, jak dobrze rozdzielone są klasy w przestrzeni cech. Algorytmy SVM projektuje się tak, by znajdowały hiperpłaszczyznę maksymalizującą tę odległość przy jednoczesnym ograniczeniu błędów podziału. Im bowiem większa jest odległość pomiędzy granicą decyzyjną a najbliższymi punktami danych każdej klasy, tym pewniejsza klasyfikacja

Kolejny kluczowy termin to wektory nośne. Są to punkty danych znajdujące się najbliżej granicy decyzyjnej. Są ważne, ponieważ określają położenie i orientację hiperpłaszczyzny ("podtrzymują", definiują granicę decyzyjną) i są używane do obliczania marginesu. Tym samym mają wpływ na dokładność klasyfikacji.

Algorytm SVM można wyjaśnić przez odniesienie do przykładu z życia codziennego. Załóżmy, że płaszczyzna dwuwymiarowa to mapa, zaś dwie klasy to różne miasta. Odpowiednikiem punktów danych są budynki w tych miejscowościach. Zadaniem władz lokalnych jest zbudowanie objazdu, który zmniejszy ruch samochodowy w tych miastach. Niestety dysponują wyłącznie ograniczonym terenem pomiędzy nimi, który mogą przeznaczyć pod taką inwestycję. Celem projektantów takiej drogi jest ograniczenie natężenia ruchu w miastach poprzez zmaksymalizowanie jej szerokości. Pod uwagę biorą więc najszerszy pas ziemi między dwoma miastami. Budynki stojące po bokach drogi to odpowiednik wektorów nośnych. Autostrada jest ustawiona pod kątem, aby miasta miały równą przestrzeń do rozbudowy wzdłuż niej. Centralna linia jej podziału reprezentuje granicę decyzyjną, a jej krawędzie – hiperpłaszczyzny różnych klas. Szerokość autostrady to margines.

W rozpoznawaniu gestów, jak i w innych zadaniach, algorytm SVM jest najpierw trenowany na danych testowych. Proces uczenia się na podstawie zbioru danych treningowych jest nadzorowany. Oznacza to, że zawczasu znane są prawidłowe odpowiedzi, a algorytm iteracyjnie w oparciu o dane treningowe przedstawia swoje wersje odpowiedzi i jest poprawiany do czasu, aż osiągnięty zostanie zakładany poziom zgodności.

Jak działają CNN?

Kolejnym przykładem są konwolucyjne (splotowe) sieci neuronowe CNN (Convolutional Neural Networks), które są zaliczane do algorytmów głębokiego uczenia (deep learning). Ich działanie jest inspirowane procesami biologicznymi, które zachodzą w korze wzrokowej, w związku z czym ich główne zastosowanie to przetwarzanie obrazów. Dzięki temu odgrywają także coraz większą rolę w rozpoznawaniu gestów. W tym przypadku są wykorzystywane m.in. do ekstrakcji cech z obrazów dłoni i w klasyfikacji jej ruchów. CNN składają się z wielu warstw (rys. 2).

Rys. 2. Sieć CNN

W pierwszej warstwie wykonywana jest operacja splotu danych wejściowych z funkcją filtrującą. Filtry te, na przykład przesuwając się po szerokości i wysokości obrazu dłoni, wykrywają jej kontury. W ten sposób tworzona jest mapa lokalizacji rozpoznanych cech. Łącząc wiele warstw splotowych, można wykrywać cechy bardziej złożone. Między nie wstawiane są warstwy łączące (pooling). Ich zadaniem jest zmniejszenie ilości danych wejściowych przez ich uśrednienie albo wybór wartości maksymalnej lub innej najbardziej reprezentatywnej dla na przykład grupy kilku sąsiadujących ze sobą pikseli na przetwarzanym obrazie. Zmniejsza to obciążenie obliczeniowe. W kolejnym kroku, w uproszczeniu dane wyjściowe końcowej warstwy splotowej zostają spłaszczone do pojedynczego wektora i przekazane do warstwy, która wykonuje sumę ważoną, by wygenerować ostateczny wynik klasyfikacji. Sieci splotowe mają wiele zalet.

Mogą rozpoznawać obiekty na obrazie niezależnie od ich lokalizacji, rozmiaru, orientacji, co czyni je dobrze przystosowanymi do zadania rozpoznawania gestów. Sprawdzają się też w przetwarzaniu obrazów zaszumionych. To jest ważną zaletą w tytułowym zastosowaniu ze względu na to, że dane pozyskiwane przez urządzenia przenośne wyposażone w kamery nie zawsze są najlepszej jakości. Ponadto sieci CNN mogą wykorzystywać wstępnie wyszkolone modele, dzięki czemu ilość danych treningowych i zasoby obliczeniowe wymagane do wyszkolenia nowego modelu są mniejsze.

Z drugiej strony CNN są podatne na nadmierne dopasowanie, zwłaszcza jeśli zostaną wytrenowane na małych zestawach danych, a model zapamięta dane treningowe, zamiast jedynie je generalizować na nowych danych. Ponadto najlepiej sprawdzają się w przypadku danych ustrukturyzowanych.

Potencjał i wyzwania

Interfejsy użytkownika z możliwością rozpoznawania gestów mają olbrzymi potencjał w licznych zastosowaniach, m.in. w branży gier komputerowych i w technologii rzeczywistości wirtualnej i rozszerzonej, gdzie pozwalając na interakcję za pomocą ruchów dłoni, zwiększają intuicyjność obsługi i zacierają bariery między światem cyfrowym i tym prawdziwym. To z kolei przekłada się na lepsze wrażenia osób, które z nich korzystają.

W dziedzinie robotyki, umożliwiając robotom zrozumienie ludzkich gestów, pozwalają na bardziej naturalną interakcję człowiek–maszyna. W opiece zdrowotnej rozpoznawanie gestów dłoni jest pomocne w rehabilitacji. Interfejsy tego rodzaju w systemach inteligentnego domu umożliwiają natomiast ich użytkownikom sterowanie wyposażeniem za pomocą prostych gestów.

Możliwościom wykorzystania technik rozpoznawania ruchów dłoni dorównują niestety wyzwania, jakie towarzyszą ich projektowaniu. Jednym z większych jest to, że różne osoby wykonują zwykle ten sam gest w nieco inny sposób, co utrudnia rozpoznanie. Zmienność ta jest wynikiem różnic w rozmiarze dłoni, szybkości jej ruchu, kącie jego wykonania i indywidualnych nawykach. Kolejny problem to wpływ czynników środowiskowych, takich jak warunki oświetleniowe i zakłócenia, czyli na przykład inne obiekty w tle albo te zasłaniające dłoń na obrazie.

Przetwarzanie w czasie rzeczywistym to kolejne poważne wyzwanie. Aby zapewnić płynny odbiór interakcji przez użytkownika, gesty muszą być natychmiastowo rozpoznawane i interpretowane. W przeciwnym razie zniechęci się on do tego sposobu sterowania. Ponieważ są to zadania bardzo obciążające obliczeniowo, do spełnienia tego warunku wymagane są zaawansowane rozwiązania sprzętowe i programowe. Oprócz tego używane czujniki mają ograniczenia, takie jak skończone pole widzenia, mała rozdzielczość, podatność na zakłócenia. Mogą one skutkować niedokładnym rozpoznawaniem gestów.

Problemem jest także brak standaryzacji. Różne systemy wykorzystują inne zestawy ruchów, co utrudnia użytkownikom przełączanie się między nimi. Brak standaryzacji uniemożliwia też opracowywanie uniwersalnych aplikacji. Ponadto w miarę jak technologia rozpoznawania gestów staje się coraz powszechniejsza, rosną obawy dotyczące prywatności oraz cyberbezpieczeństwa.

Te pierwsze wynikają stąd, że takie interfejsy użytkownika rejestrują duże ilości danych osobowych, w tym unikalne ruchy dłoni i palców, które potencjalnie mogą zostać wykorzystane do identyfikacji osób. Cyberprzestępcy mogą też manipulować danymi podczas ich przesyłania albo przechowywania, powodując, że system błędnie zinterpretuje gesty, pozwalając atakującemu na przejęcie kontroli nad urządzeniem.

Wyzwań w dziedzinie rozpoznawania gestów zatem nie brakuje. Przewiduje się, że wiele z nich może pomóc przezwyciężyć sztuczna inteligencja, która rozwija się obecnie w bezprecedensowym tempie. Można w związku z tym oczekiwać, że z czasem będzie w tym zadaniu wykorzystywana na coraz większą skalę.

Monika Jaworowska

Zobacz więcej w kategorii: Technika
PCB
Parametry podłoży obwodów drukowanych
Mikrokontrolery i IoT
Nowoczesne rozwiązania w zakresie interfejsu użytkownika w systemach embedded
Projektowanie i badania
Straty mocy w tranzystorach MOSFET
Projektowanie i badania
Projektowanie pod kątem testowania
Mikrokontrolery i IoT
Secure component jako podstawa bezpieczeństwa systemów cyfrowych
Zasilanie
Zasilanie FPGA – wybór optymalnej sprawności, zakresu napięć I/O, tolerancji i wymiarów podzespołów
Zobacz więcej z tagiem: Mikrokontrolery i IoT
Technika
Nowoczesne rozwiązania w zakresie interfejsu użytkownika w systemach embedded
Technika
Secure component jako podstawa bezpieczeństwa systemów cyfrowych
Gospodarka
Czołówka producentów mikrokontrolerów samochodowych
Zapytania ofertowe
Unikalny branżowy system komunikacji B2B Znajdź produkty i usługi, których potrzebujesz Katalog ponad 7000 firm i 60 tys. produktów