Metoda Violi Jonesa
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.
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
- ↑ Szybkie wykrywanie obiektów przy użyciu wzmocnionej kaskady prostych funkcji oraz Viola, Jones: Robust Real-time Object Detection , IJCV 2001
- ↑ Thorsten Ball: Wytrenuj własny klasyfikator włosów OpenCV. W: Coding Robin. 22 lipca 2013, obejrzano 2 listopada 2018 .
- ↑ 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 .
- ↑ 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.]).
- ^ Rainer Lienhart: dane OpenCV / kaskady włosów /. W: GitHub , OpenCV. Intel, dostęp 4 listopada 2018 r .
- ↑ Wikimania2009 Beatrice Murch: Deutsch: Jimmy Wales odpowiada na pytania na konferencji prasowej Wikimania 2009. 25 sierpnia 2009. Źródło 4 listopada 2018 .
- ↑ Tobias Weis: Szkolenie kaskad do wykrywania samochodów. Źródło 4 listopada 2018 r .
- ↑ Andrews Cordolino Sobral, Ph.D .: Wykrywanie pojazdów z kaskadami włosów. Źródło 4 listopada 2018 r .