Detekcja i śledzenie punktów chrakterystycznych twarzy metodami wizyjnymi do celów komunikacji człowiek-komputer
Detection and tracking of facial features using vision-based methods for human-computer interaction
Streszczenie
Rozpoznawanie i przetwarzanie obrazów to niesamowicie potężne i efektywne narzędzia, które w dzisiejszych czasach są stosowane praktycznie każdej dziedzinie ludzkiego życia. Jedną z najciekawszych i potencjalnie najbardziej rozwojowych gałęzi tych dziedzin wiedzy jest zagadnienie rozpoznawania twarzy. Aktualnie, każdy telefon komórkowy i praktycznie każdy komunikator wideo wyposażone są w algorytmy pozwalające na wykrycie twarzy na obrazie pobieranym przez kamerę. Jednakże, możliwości jakie opisywana technologia niesie za sobą, są znacznie bardziej niesamowite i zróżnicowane. Jednym z takich zagadnień są alternatywne interfejsy komputerowe, które nie opierają się na tradycyjnych urządzeniach peryferyjnych. Co ciekawe sam ten problem nie ogranicza się tylko do jednej dziedziny przemysłu czy nauki. Nawet dwie tak odległe od siebie branże jak medycyna i rozrywka mogą potencjalnie skorzystać na jego rozwiązaniu.
W niniejszej pracy zaprezentowano proces mający na celu opracowanie ujednoliconej i kompleksowej nakładki na interfejs użytkownika w systemie Windows, która byłaby sterowana za pomocą śledzenia ludzkiej mimiki. Cały projekt był zorientowany na wykorzystaniu oraz połączeniu prostych i dobrze poznanych metod przetwarzania obrazów w celu otrzymania w pełni funkcjonalnego narzędzia, za pomocą którego byłoby można sterować komputerem. W tym celu zastosowano rozwiązania z dziedzin uczenia maszynowego, rozpoznawania cech charakterystycznych twarzy oraz analizy matematycznej.
Jako podstawowe narzędzia wykorzystano w tym celu język programowania Python oraz bibliotekę OpenCV. Głównym celem niniejszego projektu było wykrywanie punktów charakterystycznych twarz celem śledzenia ruchu gałek ocznych oraz wykrywania mrugnięć.
Abstract
Computer vision and image processing techniques are powerful tools, that are applied in
almost every aspect of human daily life. One of the most astonishing and potentially
developmental of those is face recognition. Not only is every smartphone equipped with
algorithms responsible for such operations, but most of visual communicators used on the
daily basis provide such functionality. However, the applications of this achievement of
technology could be and already are far more vast. One of such issues is controlling the
common computer setup without using standard peripheral devices. This matter is especially
important for both medical and entertainment fields.
In the following thesis an attempt to develop comprehensive Microsoft Windows-based user
interface overlay controlled by facial expressions is presented. The whole project was focused
on researching and applying simple and open-source visual computing methods in order to
achieve fully functional tool capable of controlling the personal computer. For this purpose,
solutions from fields of machine learning, face and its region recognition as well as
mathematical analysis were applied. In order to develop said software Python programming
language and OpenCV toolkit were used. The main focus of the algorithm was detecting
characteristic points in facial region in order to track blinking and eyeball movements.