AI-For-Beginners/translations/de/lessons/4-ComputerVision/11-ObjectDetection/README.md

12 KiB
Raw Blame History

Objekterkennung

Die Bildklassifikationsmodelle, die wir bisher behandelt haben, nahmen ein Bild und lieferten ein kategorisches Ergebnis, wie beispielsweise die Klasse "Zahl" in einem MNIST-Problem. In vielen Fällen möchten wir jedoch nicht nur wissen, dass ein Bild Objekte darstellt wir möchten auch deren genaue Position bestimmen können. Genau darum geht es bei der Objekterkennung.

Quiz vor der Vorlesung

Objekterkennung

Bild von YOLO v2 Webseite

Ein naiver Ansatz zur Objekterkennung

Angenommen, wir wollten eine Katze auf einem Bild finden, dann wäre ein sehr naiver Ansatz zur Objekterkennung folgender:

  1. Zerlege das Bild in eine Anzahl von Kacheln.
  2. Führe eine Bildklassifikation auf jeder Kachel durch.
  3. Die Kacheln, die eine ausreichend hohe Aktivierung ergeben, können als die Kacheln betrachtet werden, die das gesuchte Objekt enthalten.

Naive Objekterkennung

Bild aus Übungsnotebook

Dieser Ansatz ist jedoch alles andere als ideal, da er es dem Algorithmus nur erlaubt, die Begrenzungsbox des Objekts sehr ungenau zu lokalisieren. Für eine präzisere Lokalisierung müssen wir eine Art Regression durchführen, um die Koordinaten der Begrenzungsboxen vorherzusagen und dafür benötigen wir spezifische Datensätze.

Regression für Objekterkennung

Dieser Blogbeitrag bietet eine großartige Einführung in die Erkennung von Formen.

Datensätze für Objekterkennung

Für diese Aufgabe könnten Sie auf die folgenden Datensätze stoßen:

  • PASCAL VOC 20 Klassen
  • COCO Common Objects in Context. 80 Klassen, Begrenzungsboxen und Segmentierungsmasken

COCO

Metriken für Objekterkennung

Intersection over Union

Während es bei der Bildklassifikation einfach ist, die Leistung des Algorithmus zu messen, müssen wir bei der Objekterkennung sowohl die Korrektheit der Klasse als auch die Präzision der vorhergesagten Begrenzungsbox-Position messen. Für Letzteres verwenden wir die sogenannte Intersection over Union (IoU), die misst, wie gut sich zwei Boxen (oder zwei beliebige Bereiche) überlappen.

IoU

Abbildung 2 aus diesem ausgezeichneten Blogbeitrag über IoU

Die Idee ist einfach wir teilen die Fläche der Überschneidung zwischen zwei Figuren durch die Fläche ihrer Vereinigung. Für zwei identische Flächen wäre IoU 1, während es für vollständig getrennte Flächen 0 wäre. Ansonsten variiert es zwischen 0 und 1. Wir betrachten typischerweise nur die Begrenzungsboxen, für die IoU über einem bestimmten Wert liegt.

Durchschnittliche Präzision

Angenommen, wir möchten messen, wie gut eine bestimmte Objektklasse C erkannt wird. Um dies zu messen, verwenden wir die Durchschnittliche Präzision (Average Precision, AP), die wie folgt berechnet wird:

  1. Betrachte die Precision-Recall-Kurve, die die Genauigkeit in Abhängigkeit von einem Erkennungsschwellenwert (von 0 bis 1) zeigt.
  2. Abhängig vom Schwellenwert werden mehr oder weniger Objekte im Bild erkannt, und es ergeben sich unterschiedliche Werte für Präzision und Recall.
  3. Die Kurve sieht wie folgt aus:

Bild aus NeuroWorkshop

Die durchschnittliche Präzision für eine gegebene Klasse C ist die Fläche unter dieser Kurve. Genauer gesagt wird die Recall-Achse typischerweise in 10 Teile unterteilt, und die Präzision wird über alle diese Punkte gemittelt:


AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})

AP und IoU

Wir betrachten nur die Erkennungen, für die IoU über einem bestimmten Wert liegt. Beispielsweise wird im PASCAL VOC-Datensatz typischerweise \mbox{IoU Threshold} = 0.5 angenommen, während im COCO-Datensatz AP für verschiedene Werte von \mbox{IoU Threshold} gemessen wird.

Bild aus NeuroWorkshop

Mittlere Durchschnittliche Präzision mAP

Die Hauptmetrik für die Objekterkennung wird Mittlere Durchschnittliche Präzision (Mean Average Precision, mAP) genannt. Sie ist der Wert der Durchschnittlichen Präzision, gemittelt über alle Objektklassen und manchmal auch über \mbox{IoU Threshold}. Der Prozess zur Berechnung von mAP wird ausführlich beschrieben in diesem Blogbeitrag) und auch hier mit Codebeispielen.

Verschiedene Ansätze zur Objekterkennung

Es gibt zwei große Klassen von Objekterkennungsalgorithmen:

  • Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN). Die Hauptidee ist, Regions of Interest (ROI) zu generieren und CNN darüber laufen zu lassen, um maximale Aktivierung zu suchen. Es ist ein bisschen ähnlich wie der naive Ansatz, mit dem Unterschied, dass ROIs auf eine intelligentere Weise generiert werden. Ein Hauptnachteil solcher Methoden ist, dass sie langsam sind, da viele Durchläufe des CNN-Klassifikators über das Bild erforderlich sind.
  • One-pass (YOLO, SSD, RetinaNet) Methoden. In diesen Architekturen wird das Netzwerk so gestaltet, dass es sowohl Klassen als auch ROIs in einem Durchgang vorhersagt.

R-CNN: Region-Based CNN

R-CNN verwendet Selective Search, um eine hierarchische Struktur von ROI-Regionen zu generieren, die dann durch CNN-Feature-Extraktoren und SVM-Klassifikatoren geleitet werden, um die Objektklasse zu bestimmen, und durch lineare Regression, um die Koordinaten der Begrenzungsbox zu bestimmen. Offizielles Paper

RCNN

Bild von van de Sande et al. ICCV11

RCNN-1

Bilder aus diesem Blog

F-RCNN Fast R-CNN

Dieser Ansatz ähnelt R-CNN, aber die Regionen werden definiert, nachdem die Convolution-Schichten angewendet wurden.

FRCNN

Bild aus dem offiziellen Paper, arXiv, 2015

Faster R-CNN

Die Hauptidee dieses Ansatzes ist es, ein neuronales Netzwerk zu verwenden, um ROIs vorherzusagen das sogenannte Region Proposal Network. Paper, 2016

FasterRCNN

Bild aus dem offiziellen Paper

R-FCN: Region-Based Fully Convolutional Network

Dieser Algorithmus ist sogar schneller als Faster R-CNN. Die Hauptidee ist folgende:

  1. Wir extrahieren Features mit ResNet-101.
  2. Die Features werden durch Position-Sensitive Score Map verarbeitet. Jedes Objekt aus C Klassen wird in k\times k Regionen unterteilt, und wir trainieren, um Teile von Objekten vorherzusagen.
  3. Für jeden Teil aus den k\times k Regionen stimmen alle Netzwerke für Objektklassen ab, und die Objektklasse mit der maximalen Stimme wird ausgewählt.

r-fcn image

Bild aus offiziellem Paper

YOLO You Only Look Once

YOLO ist ein Echtzeit-Ein-Pass-Algorithmus. Die Hauptidee ist folgende:

  • Das Bild wird in S\times S Regionen unterteilt.
  • Für jede Region sagt CNN n mögliche Objekte, Koordinaten der Begrenzungsbox und Confidence=Wahrscheinlichkeit * IoU voraus.

YOLO

Bild aus offiziellem Paper

Andere Algorithmen

✍️ Übungen: Objekterkennung

Setzen Sie Ihr Lernen im folgenden Notebook fort:

ObjectDetection.ipynb

Fazit

In dieser Lektion haben Sie einen Überblick über die verschiedenen Möglichkeiten zur Objekterkennung erhalten!

🚀 Herausforderung

Lesen Sie diese Artikel und Notebooks über YOLO und probieren Sie sie selbst aus:

Quiz nach der Vorlesung

Überprüfung & Selbststudium

Aufgabe: Objekterkennung

Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.