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

bookNon-maks Undertrykking (NMS)

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:

  • Ankerbokser: noen modeller, som Faster R-CNN og YOLO, bruker forhåndsdefinerte ankerbokser i ulike størrelser, noe som fører til flere deteksjoner av samme objekt;
  • Sliding window-metoder: enkelte deteksjonsmetoder skanner et bilde i små regioner, noe som gir gjentatte deteksjoner av et objekt i 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 undertrykkelsesprosess 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 på prosesseringen 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 konfidensscore i stedet for å fjerne dem helt. 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 4. Kapittel 5

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

Awesome!

Completion rate improved to 3.45

bookNon-maks 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:

  • Ankerbokser: noen modeller, som Faster R-CNN og YOLO, bruker forhåndsdefinerte ankerbokser i ulike størrelser, noe som fører til flere deteksjoner av samme objekt;
  • Sliding window-metoder: enkelte deteksjonsmetoder skanner et bilde i små regioner, noe som gir gjentatte deteksjoner av et objekt i 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 undertrykkelsesprosess 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 på prosesseringen 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 konfidensscore i stedet for å fjerne dem helt. 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 4. Kapittel 5
some-alt