YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Hungarian Algorithm

Macar algoritması, bilgisayarlı görüde nesne takibi ve tespit eğitiminin temelini oluşturan, iki küme arasında minimum maliyetli bire bir eşleştirmeyi bulur.

Macar algoritması, iki kümeden küçük olanındaki her öğeyi eşleştiren, en düşük maliyetli bire bir eşleşmeyi bulan kesin bir optimizasyon yöntemidir. Seçilen tüm eşleşmelerin toplam maliyetini en aza indirir. Bilgisayarlı görüde tespitleri izlenen nesnelerle veya tahminleri eğitim hedefleriyle eşleştirir.

Harold W. Kuhn, algoritmayı 1955'te Atama Problemi için Macar Yöntemi başlıklı çalışmasında tanıttı. Macar yöntemi ve Kuhn–Munkres algoritması, aynı algoritma ailesinin alternatif adlarıdır. Yöntemin adı, çalışmaları bu yöntemin temelini oluşturan Macar matematikçiler Dénes Kőnig ve Jenő Egerváry'yi onurlandırır.

Macar Algoritması Nasıl Çalışır?#

Girdi bir maliyet matrisidir: Her satır bir kümedeki öğeyi, her sütun diğer kümedeki bir öğeyi temsil eder ve her hücre bu öğeleri eşleştirmenin maliyetini belirtir. Kare bir matriste çözüm, her satır ve sütundan tam olarak bir hücre seçer. Açgözlü bir strateji, tek tek cazip görünen eşleşmeleri seçer; Macar eşleştirmesi ise toplam maliyeti küresel olarak en aza indirir.

Klasik matris indirgeme yönteminde her satırın minimum değerini o satırdaki değerlerden, ardından her sütunun minimum değerini o sütundaki değerlerden çıkar. Her atama her satır ve sütunu bir kez kullandığından, bu indirgemeler en iyi tam atamayı korur. Tüm sıfırları mümkün olan en az sayıda yatay ve dikey çizgiyle kapat. n x n boyutundaki bir matris için n çizgi gerekiyorsa, aynı satırı veya sütunu paylaşmayan n sıfır seç. Aksi takdirde, kapatılmamış en küçük değeri kapatılmamış hücrelerden çıkar, bu değeri kapatma çizgilerinin kesişimindeki hücrelere ekle ve kapatma testini tekrarla. Atamanın maliyetini özgün matrisi kullanarak hesapla.

Verimli Macar algoritması uygulamaları, kare matrislerde n! olası tam atamaya kıyasla O(n³) zamanda çalışır.

Bilgisayarlı Görü Uygulamaları#

Çoklu nesne takibi. Özgün SORT tasarımı, her izinin konumunu tahmin eden bir Kalman filtresiyle Macar atamasını birleştirir. Kesişim birleşim oranı, tahmin edilen ve tespit edilen sınırlayıcı kutular arasındaki örtüşmeyi ölçer. SORT'un başvuru uygulaması, atamayı LAPJV veya SciPy kullanarak çözer, örtüşmesi düşük eşleşmeleri reddeder ve eşleşmeyen tespitlere kimlik atar.

Nesne tespiti eğitimi. DETR, sıralanmamış tahminleri etiketlenmiş nesnelerle eşleştirmek için Macar eşleştirmesini kullanır. Transformer, tahmin yuvaları üretir ve eşleştirme; sınıflandırma maliyetini kutu konumu maliyetiyle birleştirir. Yeterli sayıda yuva olduğunda her hedef bir tahmin alır; böylece kayıp fonksiyonu açıklama sırasından bağımsız olur ve eşleşmeyen yuvalar "nesne yok" sınıfını öğrenir. Ultralytics bu atama formülasyonunu RT-DETR içinde uygular: HungarianMatcher, sınıflandırma maliyetini, L1 koordinat mesafesini ve genelleştirilmiş IoU maliyetlerini birleştirir. Doğrusal atama arka ucu, eğitim eşleşmelerini seçmek için değiştirilmiş bir Jonker–Volgenant çözücüsü kullanır.

Python'da Macar Eşleştirmesi#

munkres Python paketi, Macar yöntemini uygular. Paketi pip install munkres ile yükle, ardından örnek maliyet matrisini çöz:

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}")

Çıktı Minimum total cost: 12 olur; bu, her satır ve sütundan bir hücre seçildiğinde elde edilebilecek en küçük toplamdır.

Atama problemi çözülecek görevdir; Macar algoritması ise bu görevi çözen yöntemlerden biridir. Maksimum olmayanların bastırılması, bir görüntüde birbiriyle yarışan tespitleri kaldırır. Nesne yeniden tanımlama, eşleştirme için görünüş bilgisi sağlar; bu bilgi çoğunlukla gömme vektörleri aracılığıyla elde edilir ve bu vektörler kosinüs benzerliği kullanılarak karşılaştırılır. Bu tür puanlar eşleştirme maliyetlerine dönüştürülebilir.

Küme boyutları eşit olmadığında dikdörtgen matrisler ortaya çıkar. İzleme, eksik tespitleri ve yeni ortaya çıkan nesneleri ele almak için ret kurallarına veya tanımlı eşleşmeme maliyetleri olan kukla öğelere de ihtiyaç duyar. Yanlış eşleştirme, kimlik değişimine yol açar: Bir iz kimliği başka bir nesneye aktarılır.

SciPy'nin doğrusal atama çözücüsü, aynı optimizasyon problemini değiştirilmiş bir Jonker–Volgenant algoritması kullanarak çözer. r x c boyutundaki dikdörtgen bir matris için, uygulanabilir bir tam atama varsa tam olarak min(r, c) eşleşme döndürür.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla