Leseprobe
INHALTSVERZEICHNIS
1 Einführung i
2 GESICHTSDETEKTION
2.1 Verwandte Arbeiten
2.2 Funktionsweise der Viola-Jones Methode
3 prototyp
3.1 Konzept
3.2 Realisierung
4 evaluation und Ergebnisse
5 Zusammenfassung und Ausblick
Literatur
ZUSAMMENFASSUNG
In der Überwachungstechnik ist das maschinelle Sehen von großer Bedeutung, welches durch Computer Vision Methoden ermöglicht wird. Beim maschinellen Sehen wird zwischen der Lokalisierung (engl. detection) und der Erkennung (engl. recognition) unterschieden. Diese Arbeit beschäftigt sich mit der Lokalisierung von Gesichtern. Aus diesen Grund wird in dieser Arbeit ein Verfahren zur Detektion von Gesichtern in Drohnenaufnahmen vorgestellt. Als Drohne wurde die Ryze Tello Edu1 eingesetzt. Die Detektion von Gesichtern wurde mithilfe der Bibliothek OpenCV umgesetzt. Als Algorithmus zur Lokalisierung der Gesichter wurde die Viola-Jones Methode [VJoi] verwendet. Im Ergebnis hat sich gezeigt, dass das verwendete Verfahren bei frontalen Gesichtern stabil funktioniert, allerdings bei seitlichen Gesichtern Probleme aufweist. Außerdem konnte mithilfe einer Parameteroptimierung die Anzahl der False Positives deutlich reduziert werden.
ABBILDUNGSVERZEICHNIS
Abbildung 2.1 Integral-Bild (i. A. an [VJoi])
Abbildung 2.2 Kanten-Merkmale
Abbildung 2.3 Linien-Merkmale
Abbildung 2.4 Viereck-Merkmale
Abbildung 2.5 Beispielbild mit Basismustern
Abbildung 3.1 Aufbau des Prototyps
Abbildung 4.1 ROC Kurve ohne Optimierung
Abbildung 4.2 ROC Kurve mit Optimierung
Abbildung 4.3 Links (minNeighbors=3) und Rechts (minNeighbors=5)
EINFÜHRUNG
Diese Arbeit untersucht die Methode von Viola und Jones [VJoi] zur Gesichtsdetektion in Drohnenaufnahmen. Die Detektion von Gesichtern in Videoaufnahmen kann bspw. bei Konferenzen oder Großveranstaltungen genutzt werden, um die Anzahl der Teilnehmer zu zählen. Das Zählen der Teilnehmer könnte eine Drohne effizient lösen. In diesem Zusammenhang treten im Bereich des maschinellen Sehens oft die beiden Begriffe Lokalisation (engl. detection) und Erkennung (engl. recognition) eines Gesichts auf. Es wird zwischen der Lokalisation eines Gesichts in einem Bild und der Zuordnung eines Gesichts zu einer Person unterschieden. In dieser Arbeit wird sich auf die effiziente Lokalisation eines Gesichts fokussiert. In diesem Kontext treten einige Problemstellungen auf, die einen großen Einfluss auf die Genauigkeit der Detektion haben. Einerseits können Gesichter gedreht oder verdeckt sein, andererseits spielen aber auch der Gesichtsausdruck sowie Gesichtsmerkmale, wie bspw. eine Brille, eine zentrale Rolle. Im Weiteren müssen auch die Lichtbedingungen berücksichtigt werden, da sie einen großen Einfluss auf die Detektion haben.
Hieraus ergeben sich folgende Forschungsfragen:
- RQi: Wie gut funktioniert die Gesichtsdetektion mithilfe der ViolaJones Methode in Drohnenaufnahmen?
- RQ2: Wie robust ist das Verfahren von Viola und Jones auf einem Bilddatensatz anhand der ROC-Kurve?
Das Ziel dieser Arbeit ist es, die Viola-Jones Methode anhand eines Bilddatensatzes zu evaluieren und im praktischen Kontext mithilfe einer Drohne auszutesten.
2 GESICHTSDETEKTION
Im wissenschaftlichen Kontext gibt es viele Ansätze, die sich mit der Lokalisierung von Gesichtern beschäftigen. Im Allgemeinen kann eine Unterscheidung zwischen wissensbasierten Methoden (engl. Knowledge-Based Methods), Methoden mit invarianten Merkmalen (engl. Feature Invariant Approaches), vorlagenbasierten Methoden (engl. Template Matching Methods) und erscheinungsbasierten Methoden (engl. Appearance-Based Methods) vorgenommen werden [MKA02]. Das wissensbasierte Verfahren basiert auf typischen Gesichtsstrukturen. Bei Methoden mit invarianten Merkmalen werden die strukturellen Eigenschaften und Merkmale von Gesichtern verwendet. Vorlagenbasierte Methoden verwenden die Korrelation zwischen der Vorlage und dem zu untersuchenden Bildbereich, um Gesichter zu lokalisieren. Als erscheinungsbasierte Methoden bezeichnet man Verfahren aus der Statistik und des Maschinellen Lernens.
2.1 verwandte arbeiten
In wissenschaftlichen Arbeiten werden verschiedene Ansätze zur Detektion von Gesichtern aufgezeigt. Ein Ansatz für ein wissensbasiertes Verfahren zur Lokalisierung von Gesichtern mit einem komplexen Hintergrund ist ein hierarchisch wissensbasiertes Vorgehen [YH94]. Für die Microsoft HoloLens wurde ein Verfahren zur Gesichtsdetektion auf Basis der Viola-Jones Methode entwickelt. Die Viola-Jones Methode ist ein Verfahren, welches auf invarianten Merkmalen basiert [HSC19]. In der Vergangenheit wurden auch Verfahren verwendet, welche Template Matching zur Gesichtsdetektion verwendet haben [Jin+07]. Ein Ansatz für erscheinungsbasierte Verfahren sind neuronale Netze. In diesem Zusammenhang erbringen Faster R-CNNs sehr gute Ergebnisse [JL17].
In dieser Arbeit wird die Viola-Jones Methode verwendet, um Gesichter in Drohnenaufnahmen zu detektieren. Der Fokus dieser Arbeit liegt auf der Vorstellung der Viola-Jones Methode und einer Umsetzung anhand eines praxisnahen Anwendungsfalls.
2.2 Funktionsweise der viola-jones methode
Die Erklärung der Viola-Jones Methode basiert auf dem Paper [VJ01] von Viola und Jones. Der in dieser Arbeit untersuchte Objektdetektionsalgorithmus ermöglicht eine schnelle Verarbeitung der Bildern in Kombination mit einer hohen Detektionsrate. Die Viola-Jones Methode unterteilt sich in folgende drei Schlüsselkonzepte:
- Integralbild: Schnelle Auswertung der Bilder
- AdaBoost: Ermittlung von leistungsfähigen Merkmalen
- Kaskade: Kombination von Merkmalen in einer Kaskade
Im ersten Schritt muss das Bild in ein Grauwertbild umgewandelt werden. Der Grauwert wird mit der Formel Grauwert = 0.299 x Rotanteil + 0.587 x Gruenanteil + 0.114 x Blauanteil berechnet. Anschließend wird auf Basis des Grauwertbildes ein Integralbild berechnet. Die Abb. 2.1 zeigt eine schematische Darstellung mit vier Rechtecken. Der Wert eines Pixels (x,y) im Inte-
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.1: Integral-Bild (i. A. an [VJ01])
gralbild ergibt sich aus der Summe der Pixel oberhalb und links vom Pixel (x,y). Die Berechnung erfolgt mit folgender Formel:
Abbildung in dieser Leseprobe nicht enthalten
Das Integralbild kann mit den folgenden Rekursionen in einem Durchlauf berechnet werden. Hierbei bezeichnet ii(x,y) das Integralbild, i(x,y) das originale Bild und s(x, y) die kumulative Zeilensumme (s(x, — 1) = 0 und
Abbildung in dieser Leseprobe nicht enthalten
In diesem Zusammenhang würde an der Stelle 1 die Summe der Pixel von Rechteck A, an Stelle 2 die Summe von A + B, an Stelle 3 die Summe von A + C und an Stelle 4 die Summe aus A + B + C + D im Integralbild stehen. Die Summe von D wird mit 4 + 1 — (2 + 3) berechnet. Eine zentrale Erkenntnis aus der Berechnung des Integralbildes ist, dass je heller der Bildbereich ist, desto größer ist auch die Summe. Im Kontext von Gesichtern spielt diese Eigenschaft eine wichtige Rolle, da es dort typischerweise Helligkeitsunterschiede gibt. Die Augenbrauen sind beispielsweise dunkler als die Augen. Aus diesen Erkenntnissen über Gesichter stammen die Haar-like features, die in dieser Arbeit auch Basismuster genannt werden. In den Abbildungen 2.2, 2.3 und 2.4 sind einige Basismuster des Verfahrens zu sehen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.2: Kanten-Merkmale
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.3:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.4: Viereck-Merkmale
Die Summe der Pixel des jeweils schwarzen und weißen Bereichs können mithilfe des Integralbilds gebildet werden und die Differenz kann berechnet werden. Aus diesem Ergebnis der Berechnung wird schließlich ein Vergleichswert berechnet. Die Abb. 2.5 veranschaulicht ein Kantenmerkmal und ein Linienmerkmal anhand eines Beispielbilds aus dem FDDB (Face Detection Data set and Benchmark) Datensatz2.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.5: Beispielbild mit Basismustern
Nach der Berechnung des Vergleichswerts folgt im nächsten Schritt ein modifizierter AdaBoost Algorithmus. Als Boosting bezeichnet man einen Algorithmus, der mehrere schwache Klassifikatoren zu einen starken Klassifikator kombiniert. In der Viola-Jones Methode wird der AdaBoost Algorithmus angewendet, um die Klassifikatoren zu finden, deren Merkmale zu einer zuverlässigen Gesichtslokalisierung führen. Zum Finden der Klassifikatoren werden positive (Bsp.: Gesichter) und negative (Bsp.: einfarbige Hintergründe) Trainingsbilder benötigt. Wenn die Basisauflösung des Detektors 24x24 Pixel beträgt, dann ist der vollständige Satz an Rechteckmerkmalen mit über 180000 sehr groß. Es wird deutlich, dass es mehr Merkmale als Pixel gibt. Aus diesem Grund wurde der AdaBoost Algorithmus von Viola und Jones optimiert, indem nur eine kleine Merkmalsmenge kombiniert wird, um einen starken Klassifikator zu konstruieren.
Zur Steigerung der Leistung wird im dritten Schritt eine Kaskade verwendet. In diesem Zusammenhang werden mehrere starke Klassifikatoren trainiert und nacheinander in mehreren Stufen auf das Bild angewendet. Die Autoren Viola und Jones verwenden in ihrem Verfahren ca. 6000 Merkmale in 38 Stufen mit 1, 10, 25, 25, 50 Merkmalen in den ersten fünf Stufen [Ope]. In der ersten Stufe wird mit dem schlechtesten Klassifikator begonnen und nur mit den feineren Klassifikatoren bei einem positiven Ergebnis weiter gemacht. Ist das Ergebnis negativ wird abgebrochen und das Detektionsfenster wird weitergeschoben. Diese Kombination von Klassifikatoren in einer Kaskade dient zur Eliminierung von Hintergrundrauschen.
3. PROTOTYP
3.1 konzept
Dieser Abschnitt stellt das abstrakte Konzept der Arbeit vor. Das Vorgehen ist in vier Schritte unterteilt. Im ersten Schritt wird ein vortrainierter Classifier aus der OpenCV Bibliothek ausgewählt. Anschließend werden Gesichter in einem Beispieldatensatz bzw. in dem Videostream einer Drohne detektiert. In nächsten Schritt findet eine Markierung der Gesichter im Bild mithilfe einer Bounding Box statt. Im letzten Schritt werden einige Parameter des vortrainierten Classifiers optimiert, indem die optimalen Parameter für den Anwendungsfall empirisch ermittelt wurden.
3.2 Realisierung
Im Abschnitt Konzept wurde das theoretische Vorgehen vorgestellt, dieses wird in diesem Abschnitt prototypisch umgesetzt. Der Prototyp wurde in der Programmiersprache Python und mithilfe der Bibliotheken OpenCV (4.2.034) und TelloPy (0.6.0) umgesetzt. Im Weiteren wurde die Ryze Tel- lo Edu3 als Drohne, welche in Abbildung 3.1 zu sehen ist, verwendet. Die Drohne besitzt eine 5 MP Kamera mit einer Auflösung von 720p, welche horizontal nach vorne ausgerichtet ist.
[...]
1 https://www.ryzerobotics.com/de/tello-edu (Zugriff: 1o.o7.2o2o)
2 http://vis-www.cs.umass.edu/fddb/ (Zugriff: 14.07.2020)
3 https://www.ryzerobotics.com/de/tello-edu/specs (Zugriff: 16.07.2020)