Two-Stage Object Detectors
Zweistufige Objektdetektoren schlagen zunächst mögliche Bildbereiche vor und klassifizieren und verfeinern anschließend jeden davon. Erfahre, wie Faster R-CNN funktioniert, welche Modelle zur R-CNN-Familie gehören und welche Vor- und Nachteile es gibt.
Zweistufige Objektdetektoren sind Modelle zur Objekterkennung, die die Aufgabe in zwei Schritte aufteilen: Zunächst schlägt eine Stufe Bildbereiche vor, die möglicherweise ein Objekt enthalten. Anschließend klassifiziert eine zweite Stufe jeden Bereich und verfeinert dessen Begrenzungsrahmen. Die R-CNN-Familie prägte das Design zwischen 2014 und 2018 und führte jahrelang die Benchmarks für Erkennung und Instanzsegmentierung an. Einstufige Objektdetektoren überspringen den Vorschlagsschritt und sagen jeden Rahmen in einem Durchlauf anhand eines dichten Gitters voraus. Deshalb verwenden die meisten Echtzeitsysteme diese Modelle.
So funktionieren zweistufige Detektoren#
Ein Backbone, also ein Faltungsneuronales Netz, berechnet einmalig Merkmalskarten für das gesamte Bild, in der Regel mit einem darüberliegenden Merkmalspyramidennetzwerk (FPN). Die erste Stufe, ein Netzwerk zur Regionsvorschlagserzeugung (RPN), bewertet an jeder Position der Merkmalskarte eine Reihe von Ankerrahmen danach, ob sie ein Objekt enthalten, und sagt Versatzwerte voraus, mit denen die Rahmen angepasst werden. Faster R-CNN verwendet neun Anker pro Position: drei Größen mal drei Seitenverhältnisse. Non-Maximum Suppression (NMS) entfernt überlappende Vorschläge. Die Vorschläge mit den höchsten Bewertungen – im ursprünglichen Artikel 300 pro Bild während des Tests – gehen an die zweite Stufe. Dort schneidet RoI-Pooling oder dessen präzisere Weiterentwicklung RoIAlign für jeden Vorschlag ein Merkmalsraster fester Größe aus. Ein kleiner Erkennungskopf sagt für jeden Ausschnitt eine Klasse, einschließlich einer Hintergrundklasse, sowie klassenspezifische Rahmenversätze voraus.
Ein Forward-Hook am RPN des Faster R-CNN von torchvision zeigt, wie viel Arbeit die zweite Stufe übernimmt:
import urllib.request
from PIL import Image
from torchvision.models.detection import FasterRCNN_ResNet50_FPN_V2_Weights, fasterrcnn_resnet50_fpn_v2
# Load Faster R-CNN with a ResNet-50 FPN backbone, pretrained on COCO
weights = FasterRCNN_ResNet50_FPN_V2_Weights.DEFAULT
model = fasterrcnn_resnet50_fpn_v2(weights=weights).eval()
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg"))
# Report how many regions the first stage, the region proposal network, passes on
model.rpn.register_forward_hook(lambda module, inputs, output: print(f"Stage 1: {len(output[0][0])} proposals"))
# The second stage classifies and refines every proposal
detections = model([weights.transforms()(image)])[0]
labels = detections["labels"][detections["scores"] > 0.5]
print(f"Stage 2: {len(labels)} objects {[weights.meta['categories'][i] for i in labels]}")Die Ausgabe lautet Stage 1: 1000 proposals und Stage 2: 6 objects ['person', 'bus', 'person', 'person', 'person', 'tie']: torchvision behält bei der Inferenz 1.000 Vorschläge pro Bild bei, aus denen die zweite Stufe sechs sichere Erkennungen macht.
Die R-CNN-Familie#
- R-CNN (2014): Selective Search schlug etwa 2.000 Bereiche vor. Jeder Bereich wurde auf eine feste Größe verzerrt und einzeln durch das CNN geleitet. Support-Vektor-Maschinen klassifizierten die Merkmale. Mit einem VGG-16-Backbone dauerte die Erkennung auf einer GPU daher 47 Sekunden pro Bild.
- Fast R-CNN (2015): Durch die einmalige Berechnung der Merkmalskarte und das Pooling der Merkmale jedes Vorschlags daraus mit RoI-Pooling ließ sich VGG-16 neunmal schneller als R-CNN trainieren und 213-mal schneller testen.
- Faster R-CNN (2015): Das RPN ersetzte Selective Search und verwendet dieselben Merkmale wie das Backbone. Dadurch sind Vorschläge nahezu kostenlos, und der vollständige Detektor lief mit 5 Bildern pro Sekunde.
- Mask R-CNN (2017): Ein dritter Zweig sagt für jeden Bereich eine Pixelmaske voraus und macht den Detektor so zu einem Modell für Instanzsegmentierung. RoIAlign tastet Merkmale an exakten Bruchteilpositionen ab, an denen RoI-Pooling zuvor gerundet hatte.
- Cascade R-CNN (2018): Drei Köpfe der zweiten Stufe werden mit steigenden IoU-Schwellenwerten von 0,5, 0,6 und 0,7 trainiert. Jeder verfeinert die Rahmen des vorherigen Kopfes und verbessert so die Lokalisierung.
Zweistufige und einstufige Detektoren im Vergleich#
Das RPN verwirft den größten Teil des Hintergrunds, bevor der Klassifikator ihn sieht. Die zweite Stufe wird daher mit ausgewählten Bereichen trainiert, in denen Objekte einen festen Anteil ausmachen – bei Fast R-CNN sind es 25 % – und klassifiziert jeden Bereich anhand der Merkmale, die an seiner exakten Position zusammengefasst wurden. Einstufige Detektoren bewerten jede Position eines dichten Gitters, bei RetinaNet etwa 100.000 Kandidaten pro Bild, und lagen bei der Genauigkeit zunächst hinter den zweistufigen Modellen zurück. Das änderte sich 2017, als Focal Loss die Gewichtung einfacher Hintergrundkandidaten verringerte. Moderne einstufige Modelle erreichen oder übertreffen die Genauigkeit zweistufiger Modelle bei einem Bruchteil der Latenz. Außerdem lässt sich ein einzelnes Netzwerk leichter auf Edge-Hardware exportieren. Deshalb kommen zweistufige Modelle heute vorwiegend als Forschungsbaselines und in Bibliotheken wie Detectron2 vor. Ultralytics' auto_annotate nutzt dieselbe Aufteilung in Vorschlag und Verfeinerung über zwei Modelle hinweg für die Datenannotation: Ein YOLO26-Detektor schlägt Rahmen vor, und Metas Segment Anything Model (SAM) segmentiert das Objekt innerhalb jedes Rahmens, wenn es mit dem jeweiligen Rahmen abgefragt wird, und erstellt so Segmentierungslabels.
Anwendungen in der Praxis#
- Medizinische Bildgebung: Varianten von Mask R-CNN erkennen und umranden einzelne Zellen, Zellkerne und Läsionen in Mikroskopie- und CT-Aufnahmen. Für Zählungen und Messungen benötigt jede Instanz eine eigene Maske.
- Analyse des Dokumentlayouts: Mit dem PubLayNet-Benchmark aus mehr als 360.000 Seitenbildern wurden Faster-R-CNN- und Mask-R-CNN-Modelle trainiert, um Textblöcke, Überschriften, Listen, Tabellen und Abbildungen zu finden, bevor der Text erkannt wird.
- Luftbilder: Oriented R-CNN erweitert das RPN um Vorschläge für gedrehte Bereiche. Dadurch gibt die zweite Stufe orientierte Begrenzungsrahmen für Schiffe, Flugzeuge und Fahrzeuge im DOTA-Datensatz aus.










