Maksimum Olmayan BastırmaNMS)
Non-Maximum Suppression (NMS) özelliğinin nesne algılamada yinelenen sınırlayıcı kutuları nasıl ortadan kaldırdığını öğrenin. Ultralytics nasıl yerel uçtan uca NMS sağladığını keşfedin.
Maksimum Olmayan Bastırma (NMS), nesne algılamada
modelin yaptığı ham tahminleri iyileştirmek için kullanılan bir son işlem tekniğidir
. Bir nesne algılama modeli bir görüntüyü analiz ettiğinde, genellikle tek bir nesne için birden fazla örtüşen
sınırlayıcı kutu oluşturur ve her birinin
ilişkili bir güven puanı vardır. Bu gereksiz tahminler
, modelin detect biraz farklı ölçeklerde veya konumlarda detect nedeniyle ortaya çıkar. NMS , her nesne için yalnızca en doğru sınırlayıcı kutuyu tutarak ve diğerlerini atarak bu çıktıyı NMS ve nihai
çıkışın temiz, kesin ve yinelemelerden arındırılmış olmasını sağlar.
Non-Maximum Suppression Nasıl Çalışır
NMS , aday sınırlayıcı kutuların listesi ve bunlara karşılık gelen güven puanları üzerinde çalışır. Amaç,
bir nesne için en iyi kutuyu seçmek ve bununla önemli ölçüde örtüşen diğer kutuları bastırmak (kaldırmak)tır, çünkü
bunlar aynı nesnenin yinelenen algılamaları olabilir. Süreç genellikle şu adımları izler:
-
Filtreleme: Belirli bir eşik değerinin (örneğin,
0,25) altındaki güven puanlarına sahip tüm sınırlayıcı kutuları ortadan kaldırarak zayıf tahminleri hemen kaldırın.
- Sıralama: Kalan kutuları güvenilirlik puanlarına göre azalan sırada sıralayın.
- Seçim: En yüksek güven puanına sahip kutuyu geçerli bir algılama olarak seçin.
-
Karşılaştırma: Seçilen bu kutuyu, diğer tüm kutularla
Birleşim Üzerine Kesişim (IoU) kullanarak karşılaştırın.
Bu, iki kutu arasındaki örtüşmeyi ölçen bir metriktir.
-
Bastırma: Seçilen kutu ile başka bir kutu IoU önceden tanımlanmış bir eşiği aşarsa
(örneğin, 0,45), daha düşük puanlı kutu yinelenen olarak kabul edilir ve kaldırılır.
-
Yineleme: Henüz bastırılmamış veya seçilmemiş en yüksek puanlı bir sonraki kutu ile işlemi tekrarlayın.
Tüm kutular işlenene kadar bu işlemi tekrarlayın.
Gerçek Dünya Uygulamaları
NMS , hassasiyetin çok önemli olduğu ve yinelenen tespitlerin aşağı akış sistemlerini karıştırabileceği senaryolarda çok NMS .
-
Otonom Sürüş: Otonom araç sistemlerinde, kameralar detect , diğer araçları ve
trafik işaretlerini detect . Bir model, tek bir yaya için üç farklı kutu öngörebilir. NMS ,
araç planlama sisteminin o yaya için yalnızca bir koordinat almasını NMS , "hayalet" engellerin neden olduğu düzensiz frenleme veya yol
planlama hatalarını önler.
-
Perakende Envanter Yönetimi:
Bilgisayar görüşünü kullanarak raftaki ürünleri sayarken,
ürünler genellikle birbirine yakın bir şekilde paketlenir. NMS olmadan, tek bir soda kutusu, üst üste binen tahminler nedeniyle iki kez sayılabilir
ve bu da stok seviyelerinin yanlış olmasına neden olabilir. NMS , envanter sayımının gerçeklerle eşleşmesini sağlamak için bu algılamaları NMS
PyTorch ile NMS
Birçok modern çerçeve NMS işlerken, uygulamanın anlaşılması parametrelerin ayarlanmasına yardımcı olur.
Aşağıdaki örnek, PyTorch NMS nasıl uygulanacağını gösterir:
PyTorch :
import torch
import torchvision.ops as ops
# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
[
[100, 100, 200, 200], # Box A
[105, 105, 195, 195], # Box B (High overlap with A)
[300, 300, 400, 400], # Box C (Distinct object)
],
dtype=torch.float32,
)
# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)
# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)
print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.
NMS Uçtan Uca Algılama Karşılaştırması
Geleneksel olarak, NMS ana sinir ağının dışında yer alan ve
çıkarım gecikmesini artıran zorunlu bir "temizleme" adımı NMS . Ancak, bu alan uçtan uca mimarilere doğru
gelişmektedir.
-
Standart NMS: IoU manuel olarak ayarlanmasını gerektiren sezgisel bir süreçtir.
Eşik çok düşükse, birbirine yakın geçerli nesneler gözden kaçabilir (düşük
geri çağırma). Çok yüksekse, yinelenenler kalır (düşük
hassasiyet).
-
Uçtan Uca Modeller: YOLO26 gibi yeni nesil modeller
doğal olarak uçtan uca olacak şekilde tasarlanmıştır. Eğitim sırasında nesne başına tam olarak bir kutu tahmin etmeyi öğrenirler ve
NMS etkili bir şekilde içselleştirirler. Bu,
dışarıdan son işlem yapma ihtiyacını ortadan kaldırarak, Ultralytics daha hızlı çıkarım hızları ve daha basit dağıtım süreçleri sağlar.
Ultralytics .
İlgili Kavramlar
-
NMS:
Üst üste binen kutuların tamamen kaldırılmadığı, ancak güven puanlarının düşürüldüğü bir varyasyon. Bu,
biraz üst üste binen nesnelerin (kalabalıktaki insanlar gibi) puanları düşüşten sonra yeterince yüksek kalırsa yine de algılanmasını sağlar.
-
Anchor Boxes: Nesne boyutunu tahmin etmek için birçok dedektör tarafından kullanılan önceden tanımlanmış kutu şekilleri. NMS , bu anchor'lardan rafine edilen nihai tahminlere NMS .
-
Kesişim Üzerinde Birlik (IoU):
NMS tarafından iki kutunun ne kadar örtüştüğünü belirlemek NMS kullanılan matematiksel formül, bastırma için karar eşiği görevi görür.
.