Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Mateusz Wawrzyniak & Michał Warzocha
Rozpoznawanie twarzy Mateusz Wawrzyniak & Michał Warzocha
2
Rozpoznawanie twarzy Może się wydawać, że nie ma nic prostszego niż rozpoznanie twarzy. My, ludzie, rutynowo rozpoznajemy znajomych nawet po wielu latach. Potrafimy błyskawicznie wyłowić te cechy danego oblicza, które są charakterystyczne dla danej osoby. Dla komputera nie jest to jednak zadanie oczywiste. Stworzenie algorytmu, realizującego tę funkcję, okazuje się skomplikowane. W ostatnim czasie technologie komputerowego rozpoznawania twarzy zaczęły być powszechnie dostępne i wykorzystywane
3
Zagadnienie automatycznego wykrywania przedmiotem badań od wielu lat
Zagadnienie automatycznego wykrywania przedmiotem badań od wielu lat. Osiągnięto w tej dziedzinie znaczny postęp i wydaje się, że współczesne algorytmy detekcji twarzy są już całkiem dojrzałe i skuteczne, a jednocześnie szybkie. Implementuje się je nawet w aparatach fotograficznych czy telefonach komórkowych (jest to implementacja sprzętowa, a więc z definicji szybka). Algorytmy detekcji twarzy (czy innych dość charakterystycznych obiektów) opierają się na wykrywaniu pewnych prostych wzorców geometrycznych o wysokim kontraście (ciemne i jasne plamy).
4
OpenCV OpenCV (ang. Open Source Computer Vision Library) jest biblioteką do przetwarzania obrazów w czasie rzeczywistym. Obecnie udostępniana jest na licencji BSD i wspiera wszystkie najważniejsze platformy programowe. Napisana jest w C, ale istnieją nakładki na inne języki. Możliwości biblioteki są ogromne, począwszy od prostych operacji na pojedynczych pikselach przez zaawansowane algorytmy przetwarzania obrazów, po algorytmy uczenia maszynowego, wykorzystywane w takich zagadnieniach jak detekcja twarzy. Niewątpliwą zaletą jest możliwość wykonywania wszystkich operacji "w locie", bezpośrednio na strumieniu wideo. Biblioteka składa się z czterech głównych komponentów: CV - przetwarzanie obrazów i algorytmy wizyjne. MLL - klasyfikatory i narzędzia grupujące. HighGUI - GUI oraz wejście/wyjście dla obrazów i wideo. CXCORE - podstawowe struktury danych i algorytmy.
5
Klasyfikator Haara OpenCV używa wykrywacza twarzy nazywanego klasyfikatorem kaskad Haar'a(Haar Cascade Classifier). Wykrywacz ten, na podanym obrazku przeprowadza analizę każdej części obrazka i klasyfikuje ją jako zawierającą twarz bądź nie. Klasyfikator przybiera stałą skalę dla twarzy(jej rozmiar na obrazku) Twarze na obrazku mogą być większe lub mniejsze od tej stałej skali, co w praktyce oznacza, że algorytm klasyfikatora musi być wykonany kilkakrotnie na danym obrazku, aby w końcu mógł wyodrębnić poszukiwane twarze. Klasyfikator wyodrębnia twarze na podstawie danych zapisanych w pliku XML, w którym to znajdują się definicje poszukiwanych przez nas twarzy
6
Jak właściwie działa wykrywanie twarzy?
Detektor twarzy zastosowany w bibliotece OpenCV używa metody Paul'a Viola i Michael'a Jones'a – w skrócie Viola- Jones. Metoda ta zawiera w sobie cztery kluczowe koncepcje: szukanie prostokątnych kształtów, zwanych cechami Haar'a, integralność obrazu, aby bardzo szybko móc wyszukać daną cechę, algorytm zawiera metodę uczenia się AdaBoost, klasyfikator łączy ze sobą wiele cech w sposób efektywny(nakładanie się, zachodzenie, zawieranie się w sobie, części wspólne).
7
Cechy Haara Cechy Haara wykorzystywane w detekcji twarzy (lub innych obiektów). 1- cechy krawędziowe, 2 - cechy liniowe, 3 - cechy centralne
8
Klasyfikator jest uczony na podstawie setek lub tysięcy przykładowych obiektów o znormalizowanych wymiarach (zwanych przykładami pozytywnymi) oraz setek czy tysięcy przykładowych obrazów niezawierających poszukiwanych obiektów (zwanych przykładami negatywnymi). Klasyfikator, po zaprezentowaniu tysięcy obrazów pozytywnych i negatywnych odpowiednio buduje swoje drzewa decyzyjne wykrywające poszczególne wzorce podstawowe. Dobrze wytrenowany klasyfikator pozwala na wykrycie obecności nauczonego obiektu w obrazie. Działanie takiego detektora polega w przybliżeniu na tym, że po obrazie przesuwane jest okienko o rozmiarze wzorca uczącego i rejestrowana jest "odpowiedź" klasyfikatora ("znaleziony" lub "nie znaleziony") w danym obszarze.
9
Znaleziona twarz
10
Biblioteka FANN Biblioteka Fast Artificial Neural Network (FANN) została ona udostępniona w listopadzie 2003 roku przez duńskiego informatyka Steffena Nissena. Do najistotniejszych właściwości FANN należą: możliwość zastosowania wraz z 15 językami programowania, wielowarstwowość sieci neuronowych, szkolenie wsteczne z propagacją błędów, łatwa obsługa danych treningowych, ewolucja kształcenia topologii sieci neuronowych, możliwość użycia do zastosowań komercyjnych na licencji LGPL, dobrze rozbudowana dokumentacja projektowa,
11
Nasza sieć neuronowa Nasza sieć neuronowa składa się z 3 warstw. W warstwie wejściowej jest 1600 neuronów ponieważ te zdjęcia które są przez nas używane są w rozmiarach 40x40 pikseli, w warstwie ukrytej posiada 55 neuronów, a w warstwie wyjściowej trzy. Ta architektura sieci została dobrana metodą prób i błędów ponieważ nie ma konkretnej ujednoliconej zasady na dobranie rozmiarów warstwy ukrytej. Sieć posiada trzy wyjścia dlatego , że została dopasowana do naszych twarzy za co odpowiadają dwa pierwsze wyjścia , trzecie wyjście odpowiada za nierozpoznanie żadnego z nas. W przypadku gdy sieć miałaby rozpoznawać więcej osób to ilość wyjść = n+1, gdzie n = ilość twarzy do rozpoznania.
12
Przykład działania naszego programu
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.