Wie bringt man einem Computer bei, Elemente in einem Bild zu erkennen? Dieses Problem war Gegenstand umfangreicher Forschungen. Das Erscheinen von R-CNN war ein wichtiger Schritt auf diesem Gebiet.
Einen Computer mit Bildverarbeitung auszustatten ist eine Aufgabe, die sich über mehrere Jahrzehnte erstreckt. Wie kann man eine Maschine dazu bringen, zu unterscheiden, was was in einer von einer Kamera aufgenommenen Szene ist? Anwendungen zur Bilderkennung haben sich damit abgemüht, zu bestimmen :
die Elemente, die in einem Bild vorhanden sind, anhand von Merkmalen wie ihren Konturen ;
die Klassifizierung von unverwechselbaren Objekten: Personen, Tiere, Möbel, Fahrzeuge…
💡Auch interessant:
Es wurden verschiedene Technologien entwickelt, um diese Probleme zu lösen. CNN und später R-CNN gehören zu den effektivsten Antworten, die gegeben wurden.
Um besser zu verstehen, was diese Technologien bewirkt haben, kann es hilfreich sein, einen Blick auf den vorherigen Ansatz zu werfen.
Von SVM zu CNN
Der SVM-Ansatz (Support Vector Machine) basierte auf den Werten einzelner Pixel innerhalb eines Bildes. Der Entwickler musste die Merkmale der Daten, die für das Training des Algorithmus verwendet wurden, selbst auswählen und identifizieren.
Diese Aufgabe musste früher oder später automatisiert werden, ohne dass ein Mensch eingreifen musste. Zu diesem Zweck stellte der französische Forscher Yann Le Cun 1998 das Konzept der CNNs vor.
Gefaltete neuronale Netze (CNN)
NN können als automatische Extraktoren von Merkmalen innerhalb eines Bildes betrachtet werden. Wenn NN für Neural Network (neuronales Netz) steht, dann steht das C für Convolutive (Faltung).
Convolution ist eine Technik, die einen Filter verwendet, um ein Bild mithilfe mathematischer Operationen in ein anderes umzuwandeln.
AlexNet
Später, im Jahr 2012, schlugen die drei Ingenieure Alex Krizhevsky, Ilya Sutskever und Geoffrey Hinton ein ausgeklügeltes CNN, AlexNet, vor, das auf mehreren Faltungsschichten basierte. AlexNet gewann einen wichtigen Wettbewerb für Bilderkennung, die ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Seitdem war klar, dass CNNs in der Lage sind, herkömmliche Bilderkennungstechniken zu übertreffen.
R-CNN oder CNN auf der Grundlage von Regionen
Die CNNs waren immer noch begrenzt, da ihre Klassifizierung nur für ein einzelnes Objekt in einem Bild durchgeführt werden konnte. Aus diesem Grund schlug Ross Girshick 2014 einen weitergehenden Algorithmus zur Objekterkennung vor: R-CNN oder regionsbasierte CNN. Dieses bahnbrechende Modell hat stark dazu beigetragen, das Gebiet der Objekterkennung voranzubringen. Die R-CNN-Architektur extrahiert aus einem Eingangsbild Vorschläge für Regionen, berechnet dann ihre CNN-Merkmale und versucht, sie zu klassifizieren.
Wie funktioniert R-CNN?
Die Funktionsweise von R-CNN ist wie folgt.
Vorschlag für Regionen
R-CNN beginnt damit, das Eingabebild in mehrere potenzielle Regionen zu unterteilen. Die Merkmale, in denen ein Objekt lokalisiert werden kann, werden mithilfe von Methoden wie selective search (selektive Suche) ermittelt. Diese selektive Suche funktioniert, indem Bildsegmente nach verschiedenen Indizes zusammengeführt oder aufgeteilt werden: Farbe, Form, Textur…
Extraktion von Merkmalen
Nachdem diese Vorschläge für Regionen generiert wurden, werden einige 2.000 Regionen extrahiert und auf eine konsistente Größe verzerrt. Jede dieser Regionen wird dann in ein CNN-Modell eingegeben, das versucht, genaue Merkmale zu extrahieren.
Klassifizierung von Objekten
Die Merkmalsvektoren aus den Regionsvorschlägen werden in einen Klassifikator für maschinelles Lernen eingespeist, um zu bestimmen, ob der Regionsvorschlag eine Instanz einer vordefinierten Klasse enthält oder nicht.
Bounding Box Regression - Umfassende Box-Regression
R-CNN führt eine Regression der Bounding Box durch, um die Position und die Größe der Bounding Box um das erkannte Objekt herum zu verfeinern.
Non-Maximum Suppression (NMS) (Nicht-Maximale Unterdrückung)
Nachdem R-CNN die umschließenden Boxen klassifiziert und eine Regression für jede vorgeschlagene Region durchgeführt hat, wendet es einen Algorithmus der „nicht maximalen Entfernung“ an, der darauf abzielt, doppelte oder stark überlappende umschließende Boxen zu entfernen.
R-CNN: flexibel und robust
Die Veröffentlichung des Artikels von Ross Girshick auf R-CNN war ein wichtiger Meilenstein im Bereich der Computer Vision. Er zeigte, dass es möglich ist, eine hohe Leistung bei der Erkennung von Objekten in einem Bild zu erzielen, und ermöglichte es, diese Objekte mithilfe von umschließenden Boxen genau zu lokalisieren.
Die Erfahrung hat gezeigt, dass der R-CNN-Ansatz sowohl flexibel – anpassbar an verschiedenste Anwendungsfälle – als auch robust ist. Er wurde in zahlreichen Szenarien der realen Welt eingesetzt, wie z. B. bei der Identifizierung von verlassenen Objekten in öffentlichen Bereichen oder bei der Erkennung von Hindernissen durch autonome Fahrzeuge.
Der Fast R-CNN
Dennoch ist R-CNN nicht das schnellste Modell, das es gibt. Da jedes Bild 2000 Regionsvorschläge klassifizieren muss, braucht es eine gewisse Zeit, um das Netzwerk zu trainieren, und auch viel Speicherplatz, um die Merkmalskarte des Regionsvorschlags zu speichern.
R-CNN hat daher zwangsläufig den Weg für erhebliche Verbesserungen in Bezug auf die Geschwindigkeit bei der Erkennung von Objekten wie Fast R-CNN geebnet. Fast-CNN verarbeitet das Bild als Ganzes und nicht jeden einzelnen Regionenvorschlag. Es identifiziert Regionen von Interesse (RoI), die Objekte enthalten können, und extrahiert für jede Region die entsprechenden Merkmale. Nach der Größenänderung werden diese Merkmale zusätzlichen Schichten des Netzwerks unterzogen, die das Objekt in die Region von Interesse einordnen und die Koordinaten des umschließenden Kastens verfeinern. Das Ergebnis dieses Ansatzes ist eine schnellere Verarbeitung. Andere ähnliche Versuche sind wie Faster R-CNN erschienen.