Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Non-Max Suppressie (NMS) | Sectie
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
Toegepaste Computer Vision

bookNon-Max Suppressie (NMS)

Veeg om het menu te tonen

Objectdetectiemodellen voorspellen vaak meerdere overlappende begrenzingskaders voor hetzelfde object. Dit gebeurt omdat modellen een afbeelding op verschillende schalen en posities scannen, wat leidt tot overbodige voorspellingen. Non-Max Suppression (NMS) is een essentiële nabewerkingsstap die deze detecties verfijnt door de meest relevante begrenzingskaders te selecteren en onnodige te verwijderen.

nms

Waarom meerdere overlappende kaders voorkomen

Objectdetectoren voorspellen meerdere begrenzingskaders voor één object vanwege:

  • Anchor boxes: sommige modellen, zoals Faster R-CNN en YOLO, gebruiken vooraf gedefinieerde anchor boxes van verschillende groottes, wat leidt tot meerdere detecties van hetzelfde object;
  • Sliding window-benaderingen: sommige detectiemethoden scannen een afbeelding in kleine regio's, waardoor herhaalde detecties van een object binnen overlappende gebieden ontstaan;
  • Hoge vertrouwensscores: het model kent vertrouwensscores toe aan elke voorspelling, en vergelijkbare voorspellingen met hoge scores kunnen aanzienlijk overlappen.

Als deze overbodige kaders niet worden gefilterd, kan dit de prestaties van objectdetectie negatief beïnvloeden door de computationele complexiteit te verhogen en het aantal objecten onbetrouwbaar te maken.

Hoe Non-Max Suppression Werkt

NMS wordt toegepast om dubbele detecties te verwijderen en de meest zekere begrenzingskader te behouden. Het volgt deze stappen:

  • Score sortering: rangschik alle voorspelde begrenzingskaders in aflopende volgorde op basis van hun betrouwbaarheidscores;
  • Selecteren van de beste box: kies het kader met de hoogste score en voeg deze toe aan de uiteindelijke lijst met detecties;
  • IoU-berekening: bereken de Intersection Over Union (IoU) tussen het geselecteerde kader en alle overige kaders;
  • Drempelwaarde: onderdruk (verwijder) kaders die een IoU boven een ingestelde drempelwaarde hebben (bijvoorbeeld 0,5), aangezien deze waarschijnlijk hetzelfde object voorstellen;
  • Herhalen: ga door met dit proces voor het volgende kader met de hoogste score totdat alle kaders zijn verwerkt.
import numpy as np

def non_max_suppression(boxes, scores, iou_threshold=0.5):
    # Sort boxes by confidence scores in descending order
    sorted_indices = np.argsort(scores)[::-1]
    selected_boxes = []
    
    while len(sorted_indices) > 0:
        # Pick the highest confidence box
        best_idx = sorted_indices[0]  
        selected_boxes.append(boxes[best_idx])
        
        # Compute IoU with the remaining boxes
        remaining_boxes = boxes[sorted_indices[1:]]
        ious = np.array([compute_iou(boxes[best_idx], box) for box in remaining_boxes])
        
        # Suppress boxes with IoU above threshold
        sorted_indices = sorted_indices[1:][ious < iou_threshold]
    
    return selected_boxes

Soft-NMS: Een Slimmer Alternatief

Standaard NMS verwijdert alle overlappende kaders boven een bepaalde IoU-drempel, wat soms nuttige detecties kan elimineren. Soft-NMS verbetert dit door de betrouwbaarheidscores van overlappende kaders te verlagen in plaats van ze direct te verwijderen. Deze methode zorgt voor een soepelere onderdrukking en kan de detectieprestaties verbeteren in scenario's met veel objecten.

Belangrijkste Verschillen Tussen Standaard NMS en Soft-NMS:

  • Standaard NMS: verwijdert overlappende kaders boven de IoU-drempel;
  • Soft-NMS: verlaagt de betrouwbaarheidscores van overlappende kaders in plaats van ze te elimineren, waardoor het flexibeler is voor het detecteren van gedeeltelijk overlappende objecten.

Balans Tussen Nauwkeurigheid en Snelheid in NMS

Het kiezen van de juiste IoU-drempel is cruciaal:

  • Hogere drempels (bijv. 0,6 - 0,7): agressievere filtering, waarbij alleen de meest zekere kaders behouden blijven maar mogelijk enkele geldige detecties worden gemist;
  • Lagere drempels (bijv. 0,3 - 0,4): behoudt meer overlappende kaders, wat nuttig kan zijn in drukke scènes maar het aantal fout-positieven kan verhogen.

Het gebruik van geoptimaliseerde implementaties, zoals de ingebouwde NMS-functies van TensorFlow of OpenCV, kan helpen om de verwerking te versnellen voor real-time toepassingen.

Non-Max Suppression is een essentiële techniek bij objectdetectie om overbodige begrenzingskaders te verwijderen en de nauwkeurigheid van het model te verbeteren. Standaard NMS verwijdert efficiënt dubbele detecties, terwijl Soft-NMS het proces verfijnt door de vertrouwensscores aan te passen in plaats van direct te verwijderen. Door het nauwkeurig afstellen van IoU-drempels kan de juiste balans worden gevonden tussen detectienauwkeurigheid en rekenefficiëntie.

1. Wat is het belangrijkste doel van Non-Max Suppression (NMS) bij objectdetectie?

2. Hoe bepaalt standaard NMS welke begrenzingskaders onderdrukt moeten worden?

3. Wat is het belangrijkste verschil tussen standaard NMS en Soft-NMS?

question mark

Wat is het belangrijkste doel van Non-Max Suppression (NMS) bij objectdetectie?

Select the correct answer

question mark

Hoe bepaalt standaard NMS welke begrenzingskaders onderdrukt moeten worden?

Select the correct answer

question mark

Wat is het belangrijkste verschil tussen standaard NMS en Soft-NMS?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 23

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 23
some-alt