Die Objekterkennung ist einer der am häufigsten verwendeten Algorithmen in der Computervision und unterstützt die Klassifizierung und Lokalisierung von Zielobjekten. Bei der Recherche zur Objekterkennung werden Sie wahrscheinlich auf Begriffe wie AP (Average Precision), mAP (Mean Average Precision) und IoU (Intersection over Union) stoßen. Dabei handelt es sich um Metriken zur Objekterkennung, die beim Erstellen leistungsstärkerer Modelle helfen. IoU ist eine häufig gewählte Methode bei modernen Objekterkennungsaufgaben, auf die wir uns heute konzentrieren werden
Was ist Intersection over Union (IoU)
Intersection over Union (IoU) ist ein Maß, das zeigt, wie gut die Vorhersage-Begrenzungsbox mit der Ground-Truth-Box übereinstimmt. Es ist eine der wichtigsten Kennzahlen zur Bewertung der Genauigkeit von Objekterkennungsalgorithmen und hilft dabei, zwischen „korrekter Erkennung“ und „falscher Erkennung“ zu unterscheiden. Indem der IoU-Score misst, wie gut die Vorhersage des Modells den tatsächlichen Interessenbereich beschreibt, hilft er Forschern neben anderen Bewertungsmaßen dabei, die Wirksamkeit und Zuverlässigkeit ihrer Modelle einzuschätzen und fundierte Entscheidungen über die Leistung des Algorithmus zu treffen.
IoU verstehen
Schnittmenge über Vereinigung ist eigentlich eine sehr einfache und selbsterklärende Messung und basiert auf dem Jaccard-Index (ein Ähnlichkeitskoeffizient für zwei Datensätze). Angesichts der beiden Begrenzungsrahmen – der vorhergesagten und der Grundwahrheit – und ihrer Flächen ist die Berechnung des IoU ein Kinderspiel.
Auf den ersten Blick mag es so aussehen, als sei IoU ein Indikator dafür, wie eng der Begrenzungsrahmen ist, was, so ungern wir es Ihnen auch sagen, nicht ganz der Wahrheit entspricht. Was IoU stattdessen zeigt, ist, wie eng die vorhergesagten Begrenzungsrahmen an der Basislinie, also der Grundwahrheit, liegen. Intersection over Union (IoU) berechnet nun die Überlappung der beiden Begrenzungsrahmen geteilt durch ihre Vereinigung, um eine Genauigkeitsmetrik zu liefern. Um IoU zu berechnen, benötigen wir den Schnittbereich und den Vereinigungsbereich, wobei die Formel für IoU einfach lautet:
IoU-Berechnung
Lassen Sie uns nun die Berechnung der Schnittmenge über die Vereinigungsfläche geometrisch verstehen. Hier sind die Berechnungsschritte aufgeschlüsselt:
Um die IoU zu berechnen, benötigen wir die Koordinaten der Begrenzungsrahmen oder Interessensbereiche in Form ihrer x- und y-Koordinaten. Betrachten wir zwei Begrenzungsrahmen, Rahmen A und Rahmen B (die Reihenfolge spielt keine Rolle).
Die Koordinaten der Box A sind wie folgt definiert:
– Obere linke Ecke: (x0A, y0A)
– Untere rechte Ecke: (x1A, y1A)
Entsprechend werden die Koordinaten von Box B wie folgt definiert:
– Obere linke Ecke: (x0B, y0B)
– Untere rechte Ecke: (x1B, y1B)
Um den IoU zu berechnen, befolgen wir diese Schritte:
1. Bestimmen Sie die Koordinaten des Schnittbereichs Rechteck A ⋂ B:
– Ganz linke x-Koordinate der Schnittmenge: max(x0A, x0B)
– Oberste y-Koordinate des Schnittpunkts: max(y0A, y0B)
– Ganz rechte x-Koordinate des Schnittpunkts: min(x1A, x1B)
– Unterste y-Koordinate des Schnittpunkts: min(y1A, y1B)
2. Berechnen Sie die Fläche des Schnittrechtecks A ⋃ B:
Dies ist lediglich die Multiplikation der Breite und Höhe des Begrenzungsrahmens.
– Schnittfläche = (ganz rechtes x – ganz linkes x) * (unterstes y – oberstes y)
(Hinweis: Wenn der Schnittbereich negativ ist, bedeutet dies, dass es keine Überlappung zwischen den Feldern gibt und der IoU 0 ist.)
3. Berechnen Sie die Fläche von Box A und Box B:
– Fläche von Box A = (x1A – x0A) * (y1A – y0A)
– Fläche von Box B = (x1B – x0B) * (y1B – y0B)
4. Berechnen Sie die Union-Fläche:
– Vereinigungsfläche = Fläche von Box A + Fläche von Box B – Schnittfläche
5. Berechnen Sie abschließend den IoU:
– IoU = Schnittmenge / Vereinigungsmenge
1) Kreuzungsbereich I
2) Unionsbereich U
Hier ist eine einfachere Formel für IoU (A und B sind Grundwahrheit und vorhergesagte Begrenzungsrahmen).
Der IoU-Wert reicht von 0 bis 1, wobei 0 keine Überlappung zwischen den Boxen bedeutet und 1 eine vollständige Überlappung oder identische Bereiche darstellt. Höhere IoU-Werte weisen auf eine größere Ähnlichkeit oder Übereinstimmung zwischen den beiden Begrenzungsboxen hin.
Wir legen normalerweise einen Schwellenwert t für IoU fest und gemäß dem Schwellenwert gilt die Erkennung als korrekt, wenn IoU größer als t ist, andernfalls als falsch. Während ein IoU-Wert von 1 eine perfekte Ausrichtung zwischen den vorhergesagten und den tatsächlichen Begrenzungsrahmen anzeigt, ist dieser Fall bei praktischen Objekterkennungsaufgaben äußerst selten. Ein IoU-Wert von 0 bedeutet, wie Sie vielleicht vermuten, 0 Überlappung zwischen den beiden Rahmen. Sehen wir uns an, wie IoU in der Praxis funktioniert.
Verwirrung Matrix
Um das IoU-Konzept besser zu verstehen, sollten wir uns einige grundlegende Bewertungsmetriken für die Objekterkennung in Erinnerung rufen. Wir haben sie in unserem Artikel zur mittleren durchschnittlichen Präzision ausführlich behandelt, d. h. wahre Positivwerte, falsche Positivwerte und falsche Negativwerte.
Im Falle der Objekterkennung werden sie wie folgt interpretiert:
Richtig positiv: Das Modell hat den richtigen Objekttyp am richtigen Ort identifiziert.
Falsch-positiv: Das Modell hat ein Objekt identifiziert, das nicht vorhanden ist, oder ihm eine falsche Bezeichnung zugewiesen.
Falsch-negativ: Das Modell hat ein Objekt nicht identifiziert, das es hätte identifizieren sollen.
Wir werden diese Konzepte zusammen mit IoU verwenden, um anhand von Beispielen zu entscheiden, ob unsere Erkennungen korrekt sind oder nicht.
Wie funktioniert IoU?
Angenommen, Sie arbeiten an einem Autoerkennungsproblem und der Ground-Truth-Begrenzungsrahmen sieht wie folgt aus:
1. Lassen Sie uns nun verschiedene Szenarien diskutieren, wie das Modell das Auto erkennen könnte:
Im Fall der ersten Vorhersage liegt die vorhergesagte Begrenzungsbox ziemlich nahe an der Begrenzungsbox der Grundwahrheit. Wenn der Schnittpunktwert über der Vereinigungszahl höher als 0,5 ist, haben wir eine korrekte Erkennung.
Fazit: Echt positiver Nachweis
2. Lassen Sie uns zwei weitere Fälle diskutieren:
Sehen diese Fälle für Sie wie gute Vorhersagen aus? Im ersten Bild beobachten wir, dass unsere Vorhersage nur einen kleinen Teil der tatsächlichen Autoregion erfasst und die IoU-Metrik einen Wert von — hat, was uns zu dem Schluss führt, dass es sich um einen falsch positiven Fall handelt. Bei der zweiten Erkennung gibt es überhaupt keine Schnittmenge mit der Ground-Truth-Begrenzungsbox, da der IoU-Wert 0 beträgt. Beides sind falsche Erkennungen.
Fazit: Falsch-Positiv-Erkennung
Kommen wir zum letzten Beispiel:
Zunächst fällt uns auf, dass die vorhergesagten und die tatsächlichen Begrenzungsrahmen ziemlich gut übereinstimmen. Das Problem dabei ist, dass unsere vorhergesagte Bezeichnung „Fahrrad“ statt „Auto“ lautet, ein fälschlicherweise als falsch identifizierter Wert, oder, praktischer ausgedrückt, ein falsch-negatives Ergebnis.
Fazit: Falsch-Negativ-Erkennung
Fazit: Mustererkennung ist nicht so einfach. Die Wahrscheinlichkeit, dass die Koordinaten Ihres Begrenzungsrahmens genau übereinstimmen, ist nahezu gleich Null, aber darauf kommen wir gleich zurück.
Wo bekomme ich Ground-Truth-Daten?
Wenn Sie sich in der Phase der Modellbewertung befinden, haben Sie im Idealfall die Datenerfassung abgedeckt. Um ein Objekterkennungsmodell zu trainieren, benötigen Sie zunächst einen vormarkierten Datensatz, der wiederum in die folgenden Teilmengen unterteilt werden muss:
- Trainingssatz : der erste Datensatz, der in das Modell eingespeist wird .
- Testsatz: Wird zur Bewertung der Modellgenauigkeit verwendet .
- Validierungssatz (optional): wird zum Optimieren von Hyperparametern verwendet.
Die oben genannten Sätze sind Bestandteile der eigentlichen Daten und mit Kästchen versehen, d. h. (x,y-Koordinaten des Objekts in einem Bild).
Hinweis: 0,5 IoU wird normalerweise als „guter“ Wert angesehen, während 1 theoretisch perfekt ist.
Sie können Ground-Truth-Daten auf verschiedene Weise abrufen:
1) Manuell sammeln
2) Open-Source-Datensätze
3) Generieren Sie Ihren eigenen synthetischen Datensatz
Unabhängig davon, woher Sie die Ground-Truth-Daten beziehen oder wie sorgfältig Sie sie beschriften, ist es äußerst unwahrscheinlich, dass die vorhergesagte Ausgabe mit den Koordinaten des Ground-Truth-Begrenzungsrahmens übereinstimmt. Das liegt daran, dass die Parameter wie Bildpyramidenmaßstab, gleitende Fenstergröße usw. die Möglichkeit einer starken Überlappung ausschließen, was die theoretischen Anwendungen von Score 1 erklärt.
IoU in der Praxis
Um einen benutzerdefinierten Objektdetektor zu trainieren, der das Vorhandensein eines bestimmten Objekts in Bildern erkennt, verwenden wir Python.
Angenommen, wir haben zwei Begrenzungsrahmen, den Grundwert und den vorhergesagten. Wir weisen die Koordinaten für den Schnittbereich zu und berechnen die Fläche des Schnittrechtecks und der beiden Begrenzungsrahmen. Anschließend berechnen wir die IoU-Metrik mit der Formel, die wir gelernt haben.
Insgesamt bietet dieser Codeausschnitt eine Funktion, mit der der IoU zwischen zwei Begrenzungsrahmen auf Grundlage ihrer Koordinateninformationen berechnet werden kann.
Lassen Sie uns den Code in Teile zerlegen und erklären:
Der Code führt zunächst Behauptungen aus, um zu überprüfen, ob die Koordinaten der Begrenzungsrahmen in der richtigen Reihenfolge sind. Er stellt sicher, dass x1 kleiner als x2 und y1 kleiner als y2 ist , sowohl für bb1 als auch für bb2 . Diese Behauptungen helfen sicherzustellen, dass die Koordinaten der Begrenzungsrahmen gültig sind.
Als Nächstes ermittelt der Code die Koordinaten des Schnittrechtecks, indem er anhand der Eingabebegrenzungsrahmen die äußerste rechte x-Koordinate (x_right) , die oberste y-Koordinate (y_top), die äußerste linke x-Koordinate (x_left) und die unterste y-Koordinate (y_bottom) ermittelt.
Wenn das Schnittpunktrechteck eine nicht positive Fläche aufweist (d. h. x_left ist kleiner als x_right oder y_bottom ist kleiner als y_top ), bedeutet dies, dass sich die Begrenzungsrahmen nicht schneiden, und die Funktion gibt einen IoU von 0,0 zurück.
Wenn sich die Begrenzungsrahmen überschneiden, berechnet der Code die Fläche des Schnittpunktrechtecks (intersection_area) .
Anschließend berechnet es die Flächen von bb1 und bb2, indem es die Differenzen zwischen ihren x- und y-Koordinaten multipliziert.
Schließlich berechnet der Code den IoU, indem er den Schnittpunktbereich durch die Summe der Flächen von bb1 und bb2 minus Schnittpunktbereich dividiert . Er stellt sicher, dass der IoU im Bereich von 0,0 bis 1,0 liegt und gibt den berechneten IoU-Wert zurück.
Verallgemeinerte Schnittmenge über Vereinigung (GIoU)
Erinnern wir uns an das zweite Bild unseres falsch-positiven Falls, bei dem die vorhergesagte Begrenzungsbox keine Schnittmenge mit der Begrenzungsbox der Grundwahrheit hatte und der Schnittmenge-über-Vereinigung-Score 0 war. Der Nachteil des traditionellen IoU besteht darin, dass dieser 0-Score keine Informationen über die Vorhersagequalität liefert. Das bedeutet, dass IoU die beiden Fälle nicht unterscheiden kann, egal ob die vorhergesagte Begrenzungsbox unseres Modells Kilometer von der Begrenzungsbox der Grundwahrheit entfernt liegt oder direkt daneben. Mit anderen Worten: IoU kann nicht zwischen verschiedenen Graden der Nähe zur Grundwahrheit unterscheiden.
Hier kommt die verallgemeinerte Schnittmenge über Vereinigung (GIoU) ins Spiel. GIoU berücksichtigt nicht nur die Schnittmenge zwischen den vorhergesagten und den Ground-Truth-Boxen, sondern auch den umschließenden Bereich, der beide Boxen umfasst. Durch die Berücksichtigung des umschließenden Bereichs liefert GIoU eine informativere Bewertung der Nähe der Vorhersage zur Ground Truth, selbst in Fällen, in denen keine Schnittmenge vorhanden ist. Dies ermöglicht ein besseres Verständnis der Qualität von Vorhersagen und ermöglicht differenziertere Vergleiche zwischen verschiedenen Bounding-Box-Vorhersagen.
- Dabei sind A und B die tatsächlichen und vorhergesagten Begrenzungsrahmen und C die Fläche des umschließenden Rahmens (die Fläche des kleinsten Begrenzungsrahmens, der sowohl die vorhergesagten als auch die tatsächlichen Begrenzungsrahmen umschließt).
Folgendes sollten Sie sich über GIoU merken:
- Es ist robuster gegenüber falsch ausgerichteten Begrenzungsrahmen als Standard-IoU.
- Damit kann die Leistung von Objekterkennungsmodellen gemessen werden, die Begrenzungsrahmen unterschiedlicher Größe verwenden.
- Es handelt sich um eine differenzierbare Metrik, was bedeutet, dass sie mit gradientenbasierten Optimierungsalgorithmen verwendet werden kann.
Alternativen zu IoU
IoU ist nicht die einzige Messgröße zur Messung der Genauigkeit von Objektdetektoren. Average Precision (AP) oder Mean Average Precision (mAP) sind gängige Alternativen, die beide zur Bewertung von Modellen wie Faster RCNN, Mask RCNN und YOLO verwendet werden. AP wird für jede einzelne Klasse berechnet, d. h. die Anzahl der Klassen und AP-Werte sollten gleich sein.
Der mAP ist dann der Durchschnitt der AP-Werte aller Klassen zusammen:
Um AP und mAP besser zu verstehen und in der Praxis zu analysieren, sollten wir zunächst die Präzisions- und Rückrufkurve definieren und zeichnen. Dazu ist jedoch ein ganz eigener Artikel erforderlich: Bedenken Sie vorerst, dass es sich bei den beiden oben genannten Werten um analoge Metriken zur Objekterkennung handelt, denen Sie häufiger begegnen werden madrid open.
Schlußbemerkungen
Jeder Algorithmus, der eine Begrenzungsbox ausgibt, kann mithilfe eines IoU ausgewertet werden. Wir hoffen, dass dieser Artikel Ihnen Einblicke in IoU als Objektdetektormetrik gegeben hat, indem er Berechnungstechniken, Implementierung und alternative Metriken vorstellte. Wenn Sie diesen Artikel hilfreich finden und mehr über verschiedene Themen in Computer Vision und maschinellem Lernen erfahren möchten, hinterlassen Sie unten Ihre E-Mail-Adresse.