YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Hungarian Algorithm

Der ungarische Algorithmus findet die kostengünstigste Eins-zu-eins-Zuordnung zwischen zwei Mengen und ermöglicht so Objektverfolgung und Detektionstraining im Bereich Computer Vision.

Der ungarische Algorithmus ist ein exaktes Optimierungsverfahren, das die kostengünstigste Eins-zu-eins-Zuordnung findet, bei der jedes Element der kleineren von zwei Mengen zugeordnet wird. Er minimiert die Gesamtkosten aller ausgewählten Paare. In der Computer Vision verbindet er Detektionen mit verfolgten Objekten oder Vorhersagen mit Trainingszielen.

Harold W. Kuhn führte ihn 1955 in The Hungarian Method for the Assignment Problem ein. Ungarisches Verfahren und Kuhn-Munkres-Algorithmus sind alternative Namen für dieselbe Algorithmenfamilie. Der Name ehrt die ungarischen Mathematiker Dénes Kőnig und Jenő Egerváry, deren Arbeit die Grundlage des Verfahrens bildet.

So funktioniert der ungarische Algorithmus#

Die Eingabe ist eine Kostenmatrix: Jede Zeile steht für ein Element aus einer Menge, jede Spalte für ein Element aus der anderen Menge, und jeder Eintrag gibt die Kosten für ihre Zuordnung an. Bei einer quadratischen Matrix wählt die Lösung genau einen Eintrag pro Zeile und Spalte aus. Ein gieriges Verfahren legt sich auf attraktive Einzelpaare fest; das ungarische Zuordnungsverfahren findet das globale Minimum der Gesamtkosten.

Beim klassischen Matrixreduktionsverfahren ziehst du das Minimum jeder Zeile von allen Einträgen dieser Zeile ab und anschließend das Minimum jeder Spalte von allen Einträgen dieser Spalte. Diese Reduktionen erhalten die beste vollständige Zuordnung, da jede Zuordnung jede Zeile und jede Spalte genau einmal verwendet. Überdecke alle Nullen mit möglichst wenigen horizontalen und vertikalen Linien. Wenn für eine n x n-Matrix n Linien erforderlich sind, wähle n Nullen aus, von denen sich keine zwei eine Zeile oder Spalte teilen. Andernfalls ziehst du den kleinsten nicht überdeckten Wert von allen nicht überdeckten Einträgen ab und addierst ihn an den Schnittpunkten der deckenden Linien. Wiederhole anschließend die Überdeckungsprüfung. Berechne die Kosten der Zuordnung anhand der ursprünglichen Matrix.

Effiziente Implementierungen des ungarischen Algorithmus benötigen bei quadratischen Matrizen O(n³) Zeit, verglichen mit den n! möglichen vollständigen Zuordnungen.

Anwendungen in der Computer Vision#

Verfolgung mehrerer Objekte. Das ursprüngliche SORT-Design kombiniert die ungarische Zuordnung mit einem Kalman-Filter, der die Position jeder Spur vorhersagt. Der Intersection over Union-Wert misst die Überlappung zwischen vorhergesagten und detektierten Begrenzungsrahmen. Die Referenzimplementierung von SORT löst die Zuordnungsaufgabe mit LAPJV oder SciPy, verwirft Zuordnungen mit geringer Überlappung und erstellt Identitäten für nicht zugeordnete Detektionen.

Training zur Objekterkennung. DETR verwendet die ungarische Zuordnung, um ungeordnete Vorhersagen mit annotierten Objekten zu paaren. Sein Transformer erzeugt Vorhersageplätze, und die Zuordnung kombiniert Kosten für Klassifizierung und Boxposition. Bei ausreichend vielen Plätzen erhält jedes Ziel eine Vorhersage, sodass die Verlustfunktion unabhängig von der Reihenfolge der Annotationen ist; nicht zugeordnete Plätze lernen die Klasse „kein Objekt“. Ultralytics verwendet diese Zuordnungsformulierung in RT-DETR: Der HungarianMatcher kombiniert Klassifizierungskosten, L1-Koordinatenabstände und Kosten für generalisierte IoU. Das Backend für lineare Zuordnung verwendet einen modifizierten Jonker-Volgenant-Löser, um Trainingspaare auszuwählen.

Ungarische Zuordnung in Python#

Das Python-Paket munkres implementiert das ungarische Verfahren. Installiere es mit pip install munkres und löse dann die Beispielkostenmatrix:

from munkres import Munkres

costs = [
    [5, 9, 1],
    [10, 3, 2],
    [8, 7, 4],
]
solver = Munkres()
assignments = solver.compute(costs)
# Read costs from the original matrix.
minimum_cost = sum(costs[row][col] for row, col in assignments)
print(f"Minimum total cost: {minimum_cost}")

Die Ausgabe ist Minimum total cost: 12, die kleinstmögliche Summe, wenn pro Zeile und Spalte jeweils ein Eintrag ausgewählt wird.

Das Zuordnungsproblem ist die Aufgabe; der ungarische Algorithmus ist ein Lösungsverfahren. Nicht-Maximum-Unterdrückung entfernt konkurrierende Detektionen innerhalb eines Bildes. Die Wiedererkennung von Objekten liefert Informationen zum Erscheinungsbild für die Zuordnung, häufig über Embeddings, die anhand der Kosinusähnlichkeit verglichen werden. Solche Werte können als Zuordnungskosten dienen.

Unterschiedlich große Gruppen ergeben rechteckige Matrizen. Für die Objektverfolgung sind außerdem Zurückweisungsregeln oder Dummy-Einträge mit festgelegten Kosten für nicht zugeordnete Objekte erforderlich, um fehlende Detektionen und neu auftauchende Objekte zu berücksichtigen. Eine falsche Zuordnung führt zu einem Identitätswechsel: Eine Spur-ID wird auf ein anderes Objekt übertragen.

Der Solver für lineare Zuordnung von SciPy löst dasselbe Optimierungsproblem mit einem modifizierten Jonker-Volgenant-Algorithmus. Bei einer rechteckigen r x c-Matrix gibt er genau min(r, c) Paare zurück, sofern eine zulässige vollständige Zuordnung existiert.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens