KI‑Kompass
Kompass

Objekterkennung

Boxen statt Etiketten: wie ein Modell mehrere Objekte gleichzeitig findet, was IoU und mAP bedeuten und warum NMS über die Zählung entscheidet.

·2 Min. Lesezeit·Von Fachredaktion Technik
DETAILGRAD
3 Abschnitte

Die Idee

Eine Klassifikation sagt „auf diesem Bild ist eine Palette". Eine Erkennung sagt „hier, hier und hier ist je eine Palette" und zeichnet Rechtecke darum. Damit lässt sich zählen, positionieren und prüfen, ob etwas fehlt.

Wozu es gut ist

  • Bestand in einem Lager zählen.
  • Fehlende Teile in einer Baugruppe finden.
  • Schutzausrüstung auf einer Baustelle prüfen.
  • Regalbestand gegen ein Planogramm abgleichen.

Die Nachverarbeitung

Ein Erkennungsmodell gibt zunächst tausende Kandidatenboxen aus. Zwei Regler machen daraus eine Zählung:

ReglerWirkung wenn zu niedrigWirkung wenn zu hoch
KonfidenzschwelleViele FehlalarmeObjekte werden übersehen
NMS-IoU-SchwelleEin Objekt wird mehrfach gezähltNahe beieinanderstehende Objekte verschmelzen
import numpy as np

def iou(a, b):
    """a, b als (x1, y1, x2, y2)."""
    x1, y1 = max(a[0], b[0]), max(a[1], b[1])
    x2, y2 = min(a[2], b[2]), min(a[3], b[3])
    schnitt = max(0, x2 - x1) * max(0, y2 - y1)
    fl_a = (a[2] - a[0]) * (a[3] - a[1])
    fl_b = (b[2] - b[0]) * (b[3] - b[1])
    return schnitt / (fl_a + fl_b - schnitt)

def nms(boxen, scores, schwelle=0.5):
    ordnung = np.argsort(scores)[::-1]
    behalten = []
    while len(ordnung):
        i = ordnung[0]; behalten.append(i)
        # Alle Boxen verwerfen, die zu stark mit der besten ueberlappen.
        ordnung = np.array([j for j in ordnung[1:]
                            if iou(boxen[i], boxen[j]) < schwelle])
    return behalten
  • Beide Schwellwerte gehören in die Betriebsdokumentation, weil sie das Ergebnis ändern.
  • Bei dicht stehenden Objekten Soft-NMS statt hartem NMS prüfen.
  • Die Konfidenzschwelle an der Kostenrechnung ausrichten, nicht an einem Standardwert von 0,25.

Die Formeln

Intersection over Union

IoU(A,B) = |A ∩ B| / |A ∪ B|

IoU ist die überlappende Fläche geteilt durch die gesamte von beiden Rechtecken bedeckte Fläche.

A, B
zwei Rechtecke
|A ∩ B|
Fläche der Überschneidung
|A ∪ B|
Fläche der Vereinigung

Durchgerechnet: A = (0,0,100,100), B = (50,50,150,150). Der Schnitt ist 50 × 50 = 2.500, die Flächen je 10.000, die Vereinigung 10.000 + 10.000 − 2.500 = 17.500. Also IoU = 2.500/17.500 = 0,143, trotz deutlicher sichtbarer Überlappung weit unter der üblichen Schwelle von 0,5. Das zeigt, wie streng das Maß ist.

Mean Average Precision

AP_c(τ) = ∫₀¹ p_c(r) dr mAP(τ) = (1/C) · Σ_c AP_c(τ) mAP@[.5:.95] = (1/10) · Σ_{τ=0,50; 0,55; …; 0,95} mAP(τ)

Für jede Klasse wird die Fläche unter ihrer Precision-Recall-Kurve bestimmt und über alle Klassen gemittelt.

AP_c
Fläche unter der Precision-Recall-Kurve für Klasse c
C
Anzahl der Klassen
τ
die IoU-Schwelle, ab der ein Treffer zählt

Die Architekturfamilien

FamilieIdeeStärke
Zweistufig (Faster R-CNN)Erst Vorschläge, dann KlassifikationHöchste Genauigkeit, langsam
Einstufig (YOLO, SSD)Boxen direkt aus dem GitterEchtzeitfähig
Ankerfrei (FCOS, CenterNet)Mittelpunkt statt AnkerboxenWeniger Hyperparameter
Transformerbasiert (DETR)Menge von Abfragen, kein NMSElegant, datenhungrig

Aufwand in der Praxis

Ein YOLO-Modell mittlerer Größe bei 640 × 640 benötigt rund 50 bis 80 GFLOPs je Bild. Auf einer Karte mit effektiv 30 TFLOP/s in float16 sind das theoretisch über 300 Bilder je Sekunde, praktisch je nach Vor- und Nachverarbeitung 60 bis 150. Für eine Kamera mit 25 Bildern je Sekunde reicht damit eine Karte für mehrere Ströme gleichzeitig, siehe Inferenz schneller machen.

Passende Kurse und Quellen

KursKostenlos1500 Min.EN

Hugging Face Computer-Vision-Kurs

Von der Bildvorverarbeitung über Faltungsnetze bis zu Vision Transformern, mit lauffähigen Beispielen zu Erkennung und Segmentierung.

Für Entwicklung mit Bilddaten; setzt Python voraus, liefert dafür lauffähige Beispiele.

Hugging FaceZum Angebot
StudieKostenlosEN

You Only Look Once

Erkennung in einem einzigen Durchlauf statt in Vorschlägen und Prüfungen. Der Grund, warum Objekterkennung in Echtzeit möglich wurde.

Für Objekterkennung in Echtzeit; erklärt, warum sie überhaupt möglich wurde.

War diese Seite hilfreich?
Objekterkennung