Aplikacja MATLAB w rozpoznawaniu twarzy: kod, opis i składnia
Opublikowany: 2020-06-23Za każdym razem, gdy odblokowujesz telefon za pomocą twarzy lub przechodzisz przez zaawansowany technologicznie system nadzoru biurowego, w tle działa skomplikowana technologia rozpoznawania twarzy. Czym więc jest rozpoznawanie twarzy i jak można przeprowadzić rozpoznawanie twarzy za pomocą MATLAB ?
Rozpoznawanie twarzy to proces identyfikacji ludzkich twarzy za pomocą technologii. System rozpoznawania twarzy wykorzystuje widzenie komputerowe i techniki uczenia maszynowego do modelowania i klasyfikowania rysów twarzy wyodrębnionych z obrazów i filmów. Algorytmy do identyfikacji twarzy wyodrębniają i mapują rysy twarzy oraz porównują je z bazą danych znanych twarzy, aby znaleźć najlepsze dopasowanie.
Źródło
Spis treści
MATLAB w rozpoznawaniu twarzy
Możliwe jest uzyskanie rozpoznawania twarzy za pomocą kodu MATLAB. Wbudowana klasa i funkcja w MATLAB mogą być używane do wykrywania twarzy, oczu, nosa i ust. Object vision.CascadeObjectDetector System przybornika komputerowego systemu wizyjnego rozpoznaje obiekty w oparciu o algorytm wykrywania twarzy Viola-Jones.
Opis wykrywacza obiektów MATLAB
vision.CascadeObjectDetector wykorzystuje algorytm Viola-Jones do identyfikacji twarzy, oczu, ust, nosa lub górnej części ciała. Niestandardowy klasyfikator można wytrenować za pomocą programu MATLAB Image Labeler i używać wraz z obiektem System. Jak więc na zdjęciu wykrywane są rysy twarzy lub górna część ciała? Oto kroki:
- Pierwszym krokiem jest stworzenie obiektu vision.CascadeObjectDetector i ustawienie jego właściwości.
- W tym kroku obiekt jest wywoływany z argumentami (tak jakby zachowywał się jak funkcja).
Przeczytaj: 15 ciekawych pomysłów i tematów na projekty MATLAB dla początkujących

Składnia tworzenia detektora obiektów
Składnia użyta do stworzenia detektora obiektów jest następująca:
- detektor = wizja.CascadeObjectDetector
- detektor = wizja.CascadeObjectDetector(tryb1)
- Detektor = wizja.CascadeObjectDetector(Nazwa,Wartość)
- detektor = wizja.CascadeObjectDetector(XMLFILE)
Opis składni
- detektor = vision.CascadeObjectDetector: Ta składnia służy do tworzenia detektora wykrywającego obiekty przy użyciu algorytmu Viola-Jones.
- detektor = vision.CascadeObjectDetector(mode1): Ta składnia służy do tworzenia detektora skonfigurowanego do wykrywania obiektów zdefiniowanych przez wektor wejściowy – mode1.
- detektor = wizja.CascadeObjectDetector(Nazwa,Wartość): Ta składnia służy do ustawiania właściwości przy użyciu jednej lub więcej niż jednej pary nazwa-wartość, gdzie każda nazwa właściwości jest ujęta w cudzysłów. Na przykład: detektor = wizja.CascadeObjectDetector('ClassificationModel','UpperBody')
Sprawdź: Pomysły na projekty uczenia maszynowego
Nieruchomości
O ile nie określono inaczej, cechy kaskadowego detektora obiektów nie są przestrajalne, co oznacza, że po wywołaniu obiektu nie można zmienić ich wartości. Obiekty zostają zablokowane, gdy są wywoływane, a ich odblokowanie odbywa się za pomocą funkcji „uwolnienia”.
Z drugiej strony, przestrajalna właściwość oznaczałaby, że jej wartość można zmienić w dowolnym momencie. Przyjrzyjmy się więc niektórym funkcjom, zanim zrozumiemy rozpoznawanie twarzy za pomocą kodów MATLAB.
- ClassificationModel: Zdefiniowana jako wektor znaków, ta właściwość jest odpowiedzialna za kontrolowanie typu obiektu do wykrycia. Domyślna konfiguracja detektora wykrywa twarze.
- MinSize: Rozmiar najmniejszego rozpoznawalnego obiektu jest oznaczony jako wektor dwuelementowy [wysokość szerokość]. O ile nie określono wartości właściwości, detektor ustawia ją na rozmiar obrazu używany do uczenia modelu klasyfikacji.
- MaxSize: Rozmiar najmniejszego rozpoznawalnego obiektu jest oznaczony jako dwuelementowy wektor [wysokość szerokość] . O ile nie określono wartości właściwości, detektor ustawia ją na rozmiar (I).
- ScaleFactor: ma określoną wartość wyższą niż 1.0001. Ta właściwość służy do przyrostowego skalowania rozdzielczości wykrywania między MinSize i MaxSize.
- MergeThreshold: ma określoną wartość całkowitą równą 4. W przypadku wielu wykryć wokół obiektu docelowego, próg określa ostateczne kryteria wykrywania.
- UseROI: Określona jako false, ta właściwość może być ustawiona na true w celu wykrywania obiektów w prostokątnym obszarze zainteresowania w obrazie wejściowym.
Składnia korzystania z wykrywacza obiektów
- bbox = detektor(I)
- bbox = detektor(I,roi)
Opis składni
- bbox = detektor(I) zwraca bbox, macierz M -na-4, która definiuje ramki graniczne ' M ' zawierające wykryte obiekty.
- bbox = detektor(I,roi) służy do wykrywania obiektów w prostokątnym obszarze zainteresowania określonym przez roi.
Argumenty wejściowe

- I — Obraz wejściowy: jest określany jako prawdziwy kolor lub w skali szarości (RGB).
- model — Model klasyfikacji: jest określany jako wektor znaków i opisuje typ obiektu, który ma zostać wykryty.
- XMLFILE — niestandardowy model klasyfikacji: określony jako plik XML, można go utworzyć za pomocą funkcji szkoleniowej OpenCV lub funkcji trainCascadeObjectDetector.
- roi — Prostokątny obszar zainteresowania: czteroelementowy wektor [ x y szerokość wysokość ] jest używany do określenia tego argumentu wejściowego.
Argumenty wyjściowe
bbox — Wykrycia: Wykrycia są zwracane jako macierz M -na -4 elementów, której każdy wiersz zawiera czteroelementowy wektor [ x y szerokość wysokość ].
Funkcje obiektów wspólne dla wszystkich obiektów systemowych
- Krok: Do uruchomienia algorytmu obiektów systemowych
- release: Do zwalniania zasobów systemowych
- reset: Do resetowania wewnętrznych stanów obiektu systemowego.
Kod MATLAB do rozpoznawania twarzy
W tej sekcji zobaczymy przykład rozpoznawania twarzy za pomocą kodu MATLAB.
Wykrywanie twarzy
Źródło
Źródło
Krok(Detector,I) zwróci wartość Bounding Box zawierającą [x,y,Height,Width] obiektów objętych wykryciem:
Źródło
Wykrywanie nosa
Źródło
Źródło
Opis:
- Przekazanie argumentu „Nos” oznacza, że przedmiotem zainteresowania jest nos.
- Domyślną składnią wykrywania nosa jest wizja.CascadeObjectDetector('Nos')
- Domyślne wartości parametrów przekazywane do vision.CascadeObjectDetector można modyfikować na podstawie obrazu wejściowego.
- Wartość „MergeThreshold” można zastąpić, aby uniknąć wielokrotnych wykryć wokół obiektu docelowego (jak na powyższym obrazku).
Wykrywanie oczu
Źródło
Źródło

Wykrywanie ust
Źródło
Źródło
Przeczytaj także: Pętla While w MATLAB: Wszystko, co musisz wiedzieć
Zawijanie
Chociaż technologia rozpoznawania twarzy jest korzystna dla weryfikacji tożsamości osobistej, powoduje problemy z prywatnością. Ponieważ technologia wykorzystuje odcisk twarzy osoby, jest często uważana za naruszenie prywatności, bezpieczeństwa i ochrony. Rozpoznawanie twarzy przy użyciu MATLAB może być stosowane w kilku przypadkach, w których bezpieczeństwo jest sprawą najwyższej wagi. Od lotnisk i urzędów po smartfony, rozpoznawanie twarzy stało się integralną częścią wielu systemów i organizacji.
Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.
Co to jest rozpoznawanie twarzy?
Rozpoznawanie twarzy może służyć do ochrony przed kradzieżą tożsamości, a także do identyfikacji osób po imieniu. Jednak biorąc pod uwagę, że rozpoznawanie twarzy jest stosunkowo nowe i stale się rozwija, ważne jest, aby zrozumieć podstawy rozpoznawania twarzy, aby móc z niego efektywnie korzystać. Rozpoznawanie twarzy odnosi się do procesu określania, czy obraz twarzy należy do znanej osoby. Problem rozpoznawania twarzy można podzielić na dwa zadania: 1) Face Detection – zlokalizowanie twarzy na obrazie, 2) Face Recognition – identyfikacja osoby, której jest twarzą.
Co to jest Matlab?
Matlab to język programowania do obliczeń numerycznych. Zasadniczo jest to język programowania macierzowego. Jest często używany w obliczeniach naukowych i inżynierskich. W przeciwieństwie do innych języków programowania, MATLAB został zaprojektowany jako język macierzowy, odpowiedni do obliczeń na macierzach. Macierze są używane w wielu różnych równaniach, zwłaszcza w obliczeniach naukowych i inżynierskich. Matlab to język programowania wysokiego poziomu, który zawiera wiele funkcji. Służy do rozwiązywania problemów matematycznych, analizy danych i tworzenia wykresów.
Czym jest Viola Jones w Matlabie?
Algorytm Viola Jones służy do wykrywania twarzy i rozpoznawania mimiki. Algorytm Viola Jones jest oparty na histogramach zorientowanych gradientów (HOG), wprowadzonych po raz pierwszy przez Paula Violę i Michaela Jonesa w 2001 roku. Jest używany w wizji komputerowej, uczeniu maszynowym i przetwarzaniu obrazu. Algorytm Viola Jones zapewnia kompletny system wykrywania obiektów i może być używany do wykrywania pieszych, obiektów lub ludzi. Algorytm Viola Jones składa się z etapu wyodrębniania cech, etapu grupowania i etapu klasyfikacji obiektów.