Regionsbasierte Convolutional Neural Networks (R-CNN) sind eine Familie von maschinellen Lernmodellen für die Computer Vision, insbesondere für die Objekterkennung und -lokalisierung. Das ursprüngliche Ziel von R-CNN war es, ein Eingabebild zu verarbeiten und eine Menge von Begrenzungsrahmen als Ausgabe zu erzeugen, wobei jeder Begrenzungsrahmen ein Objekt sowie die Kategorie (z. B. Auto oder Fußgänger) des Objekts enthält. Im Allgemeinen führen R-CNN-Architekturen eine selektive Suche über Feature-Maps durch, die von einem CNN ausgegeben werden.
R-CNN wurde erweitert, um andere Computer-Vision-Aufgaben zu bewältigen, wie das Verfolgen von Objekten mit einer Drohnenkamera, das Lokalisieren von Text in einem Bild und die Ermöglichung der Objekterkennung in Google Lens. Mask R-CNN ist außerdem eine von sieben Aufgaben im MLPerf-Training-Benchmark, einem Wettbewerb zur Beschleunigung des Trainings neuronaler Netze.
Geschichte
Die Entwicklung von R-CNN umfasst mehrere wichtige Versionen. Das ursprüngliche R-CNN wurde im November 2013 eingeführt, gefolgt von Fast R-CNN im April 2015 und Faster R-CNN im Juni 2015. Mask R-CNN kam im März 2017 hinzu und erweiterte das Framework um die Instanzsegmentierung. Im Dezember 2017 wurde Cascade R-CNN vorgeschlagen, das mit zunehmenden Intersection-over-Union-Schwellenwerten (IoU, auch bekannt als Jaccard-Index) trainiert wird, wodurch jede Stufe selektiver gegenüber nahegelegenen falsch positiven Ergebnissen wird. Im Juni 2019 fügte Mesh R-CNN die Fähigkeit hinzu, ein 3D-Mesh aus einem 2D-Bild zu erzeugen.
Architektur
Die R-CNN-Familie teilt eine gemeinsame Architektur, die auf Regionsvorschlägen und konvolutionaler Feature-Extraktion basiert. Die Kernidee besteht darin, Kandidatenobjektregionen zu erzeugen, Merkmale mithilfe eines CNNs zu extrahieren und jede Region zu klassifizieren.
Selektive Suche
Bei einem gegebenen Bild (oder einer bildähnlichen Feature-Map) segmentiert die selektive Suche (auch hierarchische Gruppierung genannt) das Bild zunächst mit dem Algorithmus von Felzenszwalb und Huttenlocher (2004). Anschließend werden ähnliche benachbarte Regionen iterativ auf der Grundlage von Farb-, Textur-, Größen- und Formkompatibilität zusammengeführt, wodurch eine Menge von Hypothesen zur Objektposition erzeugt wird. Der Algorithmus läuft wie folgt ab:
- Segmentiere das Bild in anfängliche Regionen R = {r1, ..., rn}.
- Initialisiere eine Ähnlichkeitsmenge S = ∅.
- Berechne für jedes benachbarte Regionspaar (ri, rj) die Ähnlichkeit s(ri, rj) und füge sie zu S hinzu.
- Solange S nicht leer ist:
- Nimm die höchste Ähnlichkeit s(ri, rj) = max(S).
- Führe die entsprechenden Regionen rt = ri ∪ rj zusammen.
- Entferne Ähnlichkeiten, die ri und rj betreffen, aus S.
- Berechne Ähnlichkeiten zwischen rt und seinen Nachbarn und füge sie zu S hinzu.
- Füge rt zu R hinzu.
- Extrahiere Objektlokalisierungsrahmen L aus allen Regionen in R.
R-CNN
Beim ursprünglichen R-CNN folgt die Vorhersage einem zweistufigen Prozess. Ein Vorverarbeitungsschritt der selektiven Suche erzeugt eine große Menge von Kandidatenobjekten (typischerweise bis zu 2000), die als Regions of Interest (ROI) bezeichnet werden. Diese werden an ein CNN weitergeleitet, das für jede ROI unabhängig eine Objektklassenbewertung und eine Begrenzungsrahmenschätzung vorhersagt. Wichtig ist, dass die ROIs stark gefiltert werden, um überschüssige Kandidaten zu entfernen. Die Filterung beginnt mit dem Entfernen von ROIs, die der Hintergrundkategorie zugeordnet sind, einer speziellen Kategorie, die vom CNN neben anderen Kategorien bewertet wird. Verbleibende ROIs leiden oft unter starker Duplizierung, da mehrere ROIs, die dasselbe Objekt abdecken, alle Nicht-Hintergrundkategorien zugewiesen bekommen. Dies wird durch einen heuristischen Schritt der Nicht-Maximum-Unterdrückung (NMS) gelöst.
Fast R-CNN
Während das ursprüngliche R-CNN neuronale Netzwerkmerkmale für jede der bis zu zweitausend Regions of Interest unabhängig berechnete, führt Fast R-CNN das neuronale Netzwerk einmal auf dem gesamten Bild aus. Am Ende des Netzwerks befindet sich ein ROIPooling-Modul, das jede ROI aus dem Ausgabetensor des Netzwerks herausschneidet, umformt und klassifiziert. Wie beim ursprünglichen R-CNN verwendet Fast R-CNN die selektive Suche, um seine Regionsvorschläge zu erzeugen.
Faster R-CNN
Faster R-CNN integriert die ROI-Erzeugung direkt in das neuronale Netzwerk und macht die externe selektive Suche überflüssig. Dadurch ist das Modell vollständig end-to-end trainierbar und deutlich schneller.
Mask R-CNN
Während sich frühere Versionen auf die Objekterkennung konzentrierten, fügt Mask R-CNN die Instanzsegmentierung hinzu und erzeugt für jedes erkannte Objekt eine Segmentierungsmaske. Mask R-CNN ersetzte außerdem das ROIPooling durch eine neue Methode namens ROIAlign, die Bruchteile eines Pixels darstellen kann, was die Lokalisierungsgenauigkeit verbessert.
Anwendungen und Auswirkungen
R-CNN-Modelle wurden in Computer-Vision-Anwendungen weit verbreitet eingesetzt, darunter autonomes Fahren, Überwachung und Bildsuche. Die Architektur hat nachfolgende Objekterkennungsmodelle beeinflusst und bleibt ein grundlegendes Konzept im Deep Learning für die Bildverarbeitung. Der MLPerf-Benchmark enthält Mask R-CNN als Standardaufgabe zur Bewertung der Trainingsleistung, was seine praktische Bedeutung unterstreicht.
Siehe auch
Referenzen
- Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. CVPR.
- Girshick, R. (2015). Fast R-CNN. ICCV.
- Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. NeurIPS.
- He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask R-CNN. ICCV.
Weiterführende Literatur
- Parthasarathy, Dhruv (2017-04-27). "A Brief History of CNNs in Image Segmentation: From R-CNN to Mask R-CNN". Medium. Abgerufen am 11.09.2024.