Metoda Violi Jonesa

Metoda Violi Jones rozpoznała trzy z czterech twarzy.

Metoda Viola Jones to matematyczny proces rozpoznawania wzorców w obrazach cyfrowych. Został zaproponowany w artykule Paula Violi i Michaela Jonesa w 2001 roku i zyskał popularność na całym świecie dzięki swojej skuteczności. Metoda Viola Jones rozpoznaje uderzające obiekty, takie jak twarze na obrazie w czasie rzeczywistym.

tło

Na początku XXI wieku cyfrowe aparaty fotograficzne i kamery wideo stały się modne i powoli wyparły aparaty analogowe. Rosnący zalew obrazów cyfrowych stworzył zapotrzebowanie na techniczne rozpoznawanie twarzy, które było trudne do zrealizowania w przypadku mediów analogowych . Były to dwa kluczowe zastosowania:

  • Wykrywanie twarzy w celu automatycznej regulacji ostrości;
  • Analiza danych, aby móc przypisać określone twarze w bazach danych do innych danych.
Podstawowy wzór Viola-Jones

Paul Michael Jones Viola i opracowane metody ich z wolnej biblioteki programu OpenCV , który dostarcza algorytmów do przetwarzania obrazu i wizji komputerowej . Swoją metodę można znaleźć w OpenCV pod adresem CascadeClassifier::detectMultiScale(). Wcześniej najpopularniejszą metodą (a częściowo również stosowaną przez Violę-Jonesa) są falki z włosami opracowane przez Alfréda Haara w 1909 roku .

Viola-Jones nie składa się z klasycznego algorytmu, ale opiera się na kontrolowanym uczeniu się, tzw. Uczeniu maszynowym : program przegląda kilka obrazów i sam się uczy, aby znaleźć podobieństwa. Kaskady uczenia się są zgodne z meta-algorytmem AdaBoost z 2003 roku.

Głównymi zaletami tej metody w porównaniu z innymi metodami są jej szybkość i solidność; nie tylko twarze można bardzo skutecznie rozpoznać. Rozmiar obrazu też nie odgrywa żadnej roli; proces nie skaluje całego obrazu, tylko odpowiednią treść. Główną wadą jest to, że twarze muszą być widoczne z przodu i dobrze oświetlone. Aby ocenić półprofil, Viola-Jones jest zwykle połączona z narzędziem Kanade-Lucas-Tomasi Feature Tracker .

Przykład programu w Pythonie

Poniższy krótki przykład programu w języku programowania Python wymaga zainstalowania opencv-python . Ten kod programu i dwa wymagane pliki muszą znajdować się w tym samym katalogu. Przykładowy program rozpoznaje twarze na zdjęciu i zaznacza je kolorowymi ramkami. Plik „haarcascade_frontalface_default.xml” wygenerowany przez szkolenie pochodzi z kodu źródłowego OpenCV, obraz do zbadania „Jimmy_answering_questions.jpg” znajduje się na Commons.

import cv2  # pip install opencv-python

# Erzeugen der haar cascade
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

# Bild einlesen
image = cv2.imread("800px-Jimmy_answering_questions.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Gesichter im Bild erkennen
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30)
)

print("Anzahl gefundener Gesichter: {0} ".format(len(faces)))

# ein Rechteck um jedes gefundene Gesicht zeichnen
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)

cv2.imshow("gefundene Gesichter", image)
cv2.waitKey(0)

Inne obiekty można znaleźć na zdjęciach i filmach za pomocą innych plików z kaskadami włosów. Jedną z aplikacji jest wykrywanie poruszających się samochodów. Przykładowe programy robocze są dostępne na GitHub.

Indywidualne dowody

  1. Szybkie wykrywanie obiektów przy użyciu wzmocnionej kaskady prostych funkcji oraz Viola, Jones: Robust Real-time Object Detection , IJCV 2001
  2. Thorsten Ball: Wytrenuj własny klasyfikator włosów OpenCV. W: Coding Robin. 22 lipca 2013, obejrzano 2 listopada 2018 .
  3. Naotoshi Seo: Samouczek: Trening włosów OpenCV (Szybkie wykrywanie obiektów z kaskadą wzmocnionych klasyfikatorów opartych na cechach przypominających włosy) - Naotoshi Seo. 16 października 2008, obejrzano 2 listopada 2018 .
  4. Shantnu Tiwari: Rozpoznawanie twarzy w Pythonie, poniżej 25 linii kodu . Ed.: Prawdziwy Python. (W języku angielskim, realpython.com [dostęp 4 listopada 2018 r.]).
  5. ^ Rainer Lienhart: dane OpenCV / kaskady włosów /. W: GitHub , OpenCV. Intel, dostęp 4 listopada 2018 r .
  6. Wikimania2009 Beatrice Murch: Deutsch: Jimmy Wales odpowiada na pytania na konferencji prasowej Wikimania 2009. 25 sierpnia 2009. Źródło 4 listopada 2018 .
  7. Tobias Weis: Szkolenie kaskad do wykrywania samochodów. Źródło 4 listopada 2018 r .
  8. Andrews Cordolino Sobral, Ph.D .: Wykrywanie pojazdów z kaskadami włosów. Źródło 4 listopada 2018 r .