Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Non-maksimal Undertrykking (NMS) | Seksjon
Anvendt Datamaskinsyn

bookNon-maksimal Undertrykking (NMS)

Sveip for å vise menyen

Objektdeteksjonsmodeller forutsier ofte flere overlappende avgrensningsbokser for det samme objektet. Dette skjer fordi modellene skanner et bilde i ulike skalaer og posisjoner, noe som fører til redundante prediksjoner. Non-Max Suppression (NMS) er et avgjørende etterbehandlingssteg som forbedrer disse deteksjonene ved å velge de mest relevante avgrensningsboksene og forkaste unødvendige.

nms

Hvorfor oppstår flere overlappende bokser

Objektdetektorer forutsier flere avgrensningsbokser for ett enkelt objekt på grunn av:

  • Anchor-bokser: noen modeller, som Faster R-CNN og YOLO, bruker forhåndsdefinerte anchor-bokser i ulike størrelser, noe som gir flere deteksjoner av samme objekt;
  • Sliding window-metoder: enkelte deteksjonsmetoder skanner et bilde i små regioner, noe som fører til gjentatte deteksjoner av et objekt innenfor overlappende områder;
  • Høye konfidensscore: modellen tildeler konfidensscore til hver prediksjon, og lignende prediksjoner med høy konfidens kan overlappe betydelig.

Hvis disse redundante boksene ikke filtreres, kan de påvirke ytelsen til objektdeteksjon negativt ved å øke beregningskompleksiteten og gjøre objekttellinger upålitelige.

Hvordan Non-Max Suppression fungerer

NMS brukes for å fjerne dupliserte deteksjoner samtidig som den mest pålitelige avgrensningsboksen beholdes. Prosessen følger disse trinnene:

  • Sortering etter score: arranger alle predikerte avgrensningsbokser i synkende rekkefølge basert på deres konfidensscore;
  • Valg av beste boks: velg boksen med høyest score og legg den til i den endelige listen over deteksjoner;
  • IoU-beregning: beregn Intersection Over Union (IoU) mellom den valgte boksen og alle gjenværende bokser;
  • Terskelverdi: undertrykk (fjern) bokser som har en IoU over en satt terskelverdi (f.eks. 0.5), siden de sannsynligvis representerer det samme objektet;
  • Gjenta: fortsett denne prosessen for neste boks med høyest score til alle bokser er behandlet.
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: Et smartere alternativ

Standard NMS fjerner alle overlappende bokser over en viss IoU-terskel, noe som noen ganger kan eliminere nyttige deteksjoner. Soft-NMS forbedrer dette ved å redusere konfidensscoren til overlappende bokser i stedet for å fjerne dem helt. Denne metoden gir en jevnere undertrykking og kan forbedre deteksjonsytelsen i tette objektscenarier.

Viktige forskjeller mellom standard NMS og Soft-NMS:

  • Standard NMS: fjerner overlappende bokser over IoU-terskelen;
  • Soft-NMS: reduserer konfidensscoren til overlappende bokser i stedet for å eliminere dem, noe som gjør den mer fleksibel for deteksjon av delvis tildekkede objekter.

Balansering av nøyaktighet og hastighet i NMS

Valg av riktig IoU-terskel er avgjørende:

  • Høyere terskler (f.eks. 0.6 - 0.7): mer aggressiv filtrering, kun de mest pålitelige boksene beholdes, men noen gyldige deteksjoner kan gå tapt;
  • Lavere terskler (f.eks. 0.3 - 0.4): flere overlappende bokser beholdes, noe som kan være nyttig i overfylte scener, men kan øke antall falske positiver.

Bruk av optimaliserte implementasjoner, som TensorFlow eller OpenCVs innebygde NMS-funksjoner, kan bidra til å øke hastigheten for sanntidsapplikasjoner.

Non-Max Suppression er en viktig teknikk innen objektdeteksjon for å fjerne overflødige avgrensningsbokser og forbedre modellens nøyaktighet. Standard NMS eliminerer effektivt dupliserte deteksjoner, mens Soft-NMS forbedrer prosessen ved å justere tillitsscorene i stedet for å fjerne dem direkte. Ved å finjustere IoU-grenseverdier kan man oppnå riktig balanse mellom deteksjonsnøyaktighet og beregningseffektivitet.

1. Hva er hovedformålet med Non-Max Suppression (NMS) i objektdeteksjon?

2. Hvordan avgjør standard NMS hvilke avgrensningsbokser som skal undertrykkes?

3. Hva er hovedforskjellen mellom standard NMS og Soft-NMS?

question mark

Hva er hovedformålet med Non-Max Suppression (NMS) i objektdeteksjon?

Select the correct answer

question mark

Hvordan avgjør standard NMS hvilke avgrensningsbokser som skal undertrykkes?

Select the correct answer

question mark

Hva er hovedforskjellen mellom standard NMS og Soft-NMS?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 23

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 23
some-alt