Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Non-max Suppressie (NMS) | Objectdetectie
Essentiële Computer Vision

bookNon-max Suppressie (NMS)

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.

Werking van Non-Max Suppression

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

  • Score sortering: alle voorspelde begrenzingskaders rangschikken in aflopende volgorde op basis van hun betrouwbaarheidscores;
  • Selecteren van de beste box: het kader met de hoogste score kiezen en toevoegen aan de uiteindelijke lijst met detecties;
  • IoU-berekening: de Intersection Over Union (IoU) berekenen tussen het geselecteerde kader en alle overige kaders;
  • Drempelwaarde toepassen: kaders onderdrukken (verwijderen) die een IoU boven een ingestelde drempelwaarde hebben (bijvoorbeeld 0,5), omdat deze waarschijnlijk hetzelfde object voorstellen;
  • Herhalen: dit proces herhalen 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 betrouwbare 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 de verwerking versnellen voor toepassingen in real-time.

Non-Max Suppression is een essentiële techniek in objectdetectie om overbodige begrenzingskaders te verwijderen en de nauwkeurigheid van het model te verbeteren. Standaard NMS elimineert 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 4. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

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

Awesome!

Completion rate improved to 3.45

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.

Werking van Non-Max Suppression

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

  • Score sortering: alle voorspelde begrenzingskaders rangschikken in aflopende volgorde op basis van hun betrouwbaarheidscores;
  • Selecteren van de beste box: het kader met de hoogste score kiezen en toevoegen aan de uiteindelijke lijst met detecties;
  • IoU-berekening: de Intersection Over Union (IoU) berekenen tussen het geselecteerde kader en alle overige kaders;
  • Drempelwaarde toepassen: kaders onderdrukken (verwijderen) die een IoU boven een ingestelde drempelwaarde hebben (bijvoorbeeld 0,5), omdat deze waarschijnlijk hetzelfde object voorstellen;
  • Herhalen: dit proces herhalen 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 betrouwbare 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 de verwerking versnellen voor toepassingen in real-time.

Non-Max Suppression is een essentiële techniek in objectdetectie om overbodige begrenzingskaders te verwijderen en de nauwkeurigheid van het model te verbeteren. Standaard NMS elimineert 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 4. Hoofdstuk 5
some-alt