← Yazılara dön
21 Temmuz 2026 · 3 dk okuma

NMS ve güven eşiği: tespitin son ve hafife alınan adımı

Dedektörün kare başına binlerce aday kutu üretiyor. Ekrana ne düşeceğine iki ucuz son işlem kararı karar veriyor ve ikisi de hak ettiği ilgiyi görmüyor.

Eğitilmiş bir dedektör sana temiz kutular vermez. Kare başına binlerce örtüşen aday verir, çoğu çöptür ve ekrana gerçekte ne düşeceğine iki küçük son işlem adımı karar verir: güven eşiği ve non-maximum suppression. Bizim SUAS hava görüntüsü hattında bu iki ayar, saha davranışını eğitim kararlarının çoğundan daha fazla değiştirdi ve değiştirmesi hiçbir şeye mal olmadı.

Ham dedektör adayları: güven filtresi ve NMS öncesi ile sonrası Şekil: sentetik veri üzerinde kendi çizimim.

mAP senin yerine eşik seçmez

Dedektörümüz mAP50 = 0,904 raporluyor. Bu sayı güven değerleri taranarak hesaplanır; yani modelin tespitlerini iyi sıraladığını söyler. Sahada hangi tek eşikle koşacağını söylemez, çünkü sahada tarama şansın yok. Tek bir çalışma noktası seçersin ve onunla yaşarsın.

Doğru nokta, hattın devamında ne olduğuna bağlı. Havadan arama görevinde kaçan hedef sana görevi kaybettirir, yanlış alarm ise operatörün iki saniyesini alır. O yüzden recall tarafına yaslanır, düşük eşikle koşarsın. Çıktıyı bir takipçiye veriyorsan mantık yine döner: ByteTrack düşük güvenli kutuları bilerek ister, örtülmeleri onlarla köprüler. Takipçiden önce sert filtrelemek, tam da ihtiyacı olan bilgiyi silmektir. Bunu Nesne takibi ve ByteTrack yazısında anlattım; spor hattımızın dedektörü hava hattından daha açık koşmasının sebebi bu.

Eşiği her hata türünün bedeline göre seç. Demo ekran görüntüsünü derli toplu gösteren değere göre değil.

Tek IoU düğmesi, iki arıza modu

NMS aslında basit bir döngü: en yüksek skorlu kutuyu al, IoU eşiğinin üzerinde örtüşen her şeyi sil, tekrarla. Düğme iki yönde de bozulur. Fazla agresif ayarlarsan yan yana duran iki ayrı nesne tek kutuda birleşir: iki insan tek insana döner ve sayımın yanlış çıkar. Fazla gevşek ayarlarsan kopyalar hayatta kalır ve hayatta kalan her kopya bir hayalet nesneye, sonrasında bir hayalet takibe dönüşür.

Küçük nesneler bu düğmeyi daha da acımasız yapar. Küçük kutular arasında IoU hızla çöker: 20 piksellik bir kutuda birkaç piksel kayma büyük bir göreli kaymadır. Aynı küçük hedefin iki dürüst tespiti beklediğinden az örtüşür ve ikisi de bastırmadan sağ çıkar. Havadan tespit tam olarak bu boyutlarda yaşıyor. IoU eşiğini kendi gerçek nesne ölçeğinde ayarla, COCO sezgisiyle değil.

Kopyalar karo dikişlerinde doğar

4K kareleri %40 örtüşmeyle karoluyoruz; dikişe yakın her hedef iki kez tespit ediliyor, karo başına bir kez ve iki farklı yerel koordinat sisteminde. NMS’i karo bazında koşturup sonuçları yan yana yapıştırırsan dikiş kopyaları tanım gereği hayatta kalır: NMS onları aynı karede hiç görmedi.

Çözüm sıralamada. Önce her kutuyu küresel kare koordinatlarına geri dönüştür, sonra bütün kare üzerinde tek bir NMS geçişi koştur. Bir koordinat dönüşümü ve bir ek çağrı; hiçbir eşik ayarının dokunamadığı koca bir çift tespit sınıfını ortadan kaldırdı.

Son işlem, gecikme bütçesinin parçası

Jetson üzerinde TensorRT ile konuşlandırıyoruz ve NMS’in nerede koştuğu önemli: motorun içinde, dışa aktarılan grafiğin parçası olarak mı, yoksa çıkarımdan sonra CPU’da mı. Cevap batch boyutuyla ve aday sayısıyla değişiyor ve modelin kendisiyle aynı bütçe tartışmasına ait. Konuşlandırma tarafını TensorRT ve FP16 yazısında anlattım.

Genel ders sayı gerektirmiyor: tespit modelde bitmez. Hattın son santimetresi iki eşiktir ve eğittiğin herhangi bir katman kadar incelemeyi hak eder.

Kaynakça

NMSnesne tespitiYOLO