Kursinnehåll
Grundläggande Datorseende
Grundläggande Datorseende
Icke-Maximal Undertryckning (NMS)
Objektdetekteringsmodeller förutspår ofta flera överlappande avgränsningsrutor för samma objekt. Detta sker eftersom modeller skannar en bild på olika skalor och positioner, vilket leder till redundanta förutsägelser. Non-Max Suppression (NMS) är ett avgörande efterbearbetningssteg som förfinar dessa detektioner genom att välja de mest relevanta avgränsningsrutorna och samtidigt kassera onödiga.
Varför flera överlappande rutor uppstår
Objektdetektorer förutspår flera avgränsningsrutor för ett enda objekt på grund av:
Anchor boxes: vissa modeller, såsom Faster R-CNN och YOLO, använder fördefinierade anchor boxes av olika storlekar, vilket leder till flera detektioner av samma objekt;
Sliding window-metoder: vissa detektionsmetoder skannar en bild i små regioner, vilket orsakar upprepade detektioner av ett objekt inom överlappande områden;
Höga konfidenspoäng: modellen tilldelar konfidenspoäng till varje förutsägelse, och liknande förutsägelser med höga poäng kan överlappa avsevärt.
Om dessa redundanta rutor inte filtreras kan de påverka objektdetektionens prestanda negativt genom att öka den beräkningsmässiga komplexiteten och göra objektantalet opålitligt.
Hur Non-Max Suppression fungerar
NMS används för att ta bort dubblettdetektioner samtidigt som den mest tillförlitliga avgränsningsrutan behålls. Den följer dessa steg:
Poängsortering: arrangera alla förutspådda avgränsningsrutor i fallande ordning baserat på deras konfidenspoäng;
Val av bästa ruta: välj rutan med högst poäng och lägg till den i den slutliga listan över detektioner;
IoU-beräkning: beräkna Intersection Over Union (IoU) mellan den valda rutan och alla återstående rutor;
Tröskelvärde: undertryck (ta bort) rutor som har en IoU över ett angivet tröskelvärde (t.ex. 0,5) eftersom de sannolikt representerar samma objekt;
Upprepa: fortsätt denna process för nästa högst poängsatta ruta tills alla rutor har bearbetats.
Soft-NMS: Ett smartare alternativ
Standard NMS tar bort alla överlappande rutor över ett visst IoU-tröskelvärde, vilket ibland kan eliminera användbara detektioner. Soft-NMS förbättrar detta genom att minska tillförlitlighetspoängen för överlappande rutor istället för att ta bort dem helt. Denna metod möjliggör en mjukare undertryckningsprocess och kan förbättra detektionsprestandan i täta objektscenarier.
Viktiga skillnader mellan Standard NMS och Soft-NMS:
Standard NMS: tar bort överlappande rutor över IoU-tröskelvärdet;
Soft-NMS: minskar tillförlitlighetspoängen för överlappande rutor istället för att eliminera dem, vilket gör den mer flexibel för att detektera delvis skymda objekt.
Balansera noggrannhet och hastighet i NMS
Att välja rätt IoU-tröskelvärde är avgörande:
Högre tröskelvärden (t.ex. 0.6 - 0.7): mer aggressiv filtrering, behåller endast de mest tillförlitliga rutorna men kan missa vissa giltiga detektioner;
Lägre tröskelvärden (t.ex. 0.3 - 0.4): behåller fler överlappande rutor, vilket kan vara användbart i trånga scener men kan öka antalet falska positiva.
Att använda optimerade implementationer, såsom TensorFlow eller OpenCV:s inbyggda NMS-funktioner, kan hjälpa till att snabba upp bearbetningen för realtidsapplikationer.
Non-Max Suppression är en viktig teknik inom objektdetektering för att ta bort redundanta avgränsningsrutor och förbättra modellens noggrannhet. Standard NMS eliminerar effektivt dubbla detektioner, medan Soft-NMS förfinar processen genom att justera tillförlitlighetspoängen istället för att ta bort dem helt. Genom att finjustera IoU-tröskelvärden kan man uppnå rätt balans mellan detektionsnoggrannhet och beräkningsmässig effektivitet.
1. Vad är huvudsyftet med Non-Max Suppression (NMS) inom objektigenkänning?
2. Hur avgör standard-NMS vilka avgränsningsrutor som ska undertryckas?
3. Vad är den viktigaste skillnaden mellan standard-NMS och Soft-NMS?
Tack för dina kommentarer!