Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Intersection Over Union (IoU) og Evalueringsmetrikker | Objektdeteksjon
Grunnleggende Datamaskinsyn

book
Intersection Over Union (IoU) og Evalueringsmetrikker

Hvordan det beregnes

Matematisk er IoU gitt ved:

Hvor:

  • Area of Overlap er skjæringsområdet mellom den predikerte og den faktiske avgrensningsboksen;

  • Area of Union er det totale området dekket av begge boksene.

import numpy as np

def compute_iou(boxA, boxB):
# Extract coordinates
xA = max(boxA[0], boxB[0])
yA = max(boxA[1], boxB[1])
xB = min(boxA[2], boxB[2])
yB = min(boxA[3], boxB[3])
# Compute intersection area
interArea = max(0, xB - xA) * max(0, yB - yA)
# Compute areas of both boxes
boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1])
boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1])
# Compute union area
unionArea = boxAArea + boxBArea - interArea
# Compute IoU
iou = interArea / unionArea
return iou

# Example usage
box1 = [50, 50, 150, 150] # [x1, y1, x2, y2]
box2 = [100, 100, 200, 200]
iou_score = compute_iou(box1, box2)
print("IoU Score:", iou_score)
12345678910111213141516171819202122232425262728
import numpy as np def compute_iou(boxA, boxB): # Extract coordinates xA = max(boxA[0], boxB[0]) yA = max(boxA[1], boxB[1]) xB = min(boxA[2], boxB[2]) yB = min(boxA[3], boxB[3]) # Compute intersection area interArea = max(0, xB - xA) * max(0, yB - yA) # Compute areas of both boxes boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1]) boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1]) # Compute union area unionArea = boxAArea + boxBArea - interArea # Compute IoU iou = interArea / unionArea return iou # Example usage box1 = [50, 50, 150, 150] # [x1, y1, x2, y2] box2 = [100, 100, 200, 200] iou_score = compute_iou(box1, box2) print("IoU Score:", iou_score)
copy

IoU som en metrikk for nøyaktighet av avgrensningsbokser

IoU brukes ofte for å vurdere hvor godt en predikert avgrensningsboks samsvarer med fasiten. Høyere IoU-verdier indikerer bedre samsvar, der en IoU på 1.0 betyr perfekt overlapp og 0.0 betyr ingen overlapp i det hele tatt.

Terskling av IoU for sanne og falske positive

For å avgjøre om en deteksjon er korrekt (sann positiv) eller feil (falsk positiv), settes det vanligvis en terskel for IoU. Vanlige terskelverdier inkluderer:

  • IoU > 0.5: regnes som en True Positive (TP);

  • IoU < 0.5: regnes som en False Positive (FP).

Å sette høyere IoU-terskler øker presisjonen, men kan redusere tilbakekallingen siden færre deteksjoner oppfyller kriteriene.

Evalueringsmetrikker: presisjon, tilbakekalling og mAP

I tillegg til IoU hjelper andre evalueringsmetrikker med å vurdere objektdeteksjonsmodeller:

  • Presisjon: måler andelen korrekt predikerte avgrensningsbokser blant alle prediksjoner;

Precision=TPTP+FP\text{Precision}=\frac{\text{TP}}{\text{TP}+\text{FP}}
  • Tilbakekalling: måler andelen korrekt predikerte avgrensningsbokser blant alle fasitobjekter;

Recall=TPTP+FN\text{Recall}=\frac{\text{TP}}{\text{TP}+\text{FN}}
  • Mean Average Precision (mAP): beregner gjennomsnittlig presisjon på tvers av ulike IoU-terskler og objektkategorier, og gir en helhetlig vurdering av modellens ytelse.

def precision_recall(tp, fp, fn):
precision = tp / (tp + fp) if (tp + fp) > 0 else 0
recall = tp / (tp + fn) if (tp + fn) > 0 else 0
return precision, recall

# Example usage
tp, fp, fn = 50, 10, 20
precision, recall = precision_recall(tp, fp, fn)
print(f"Precision: {precision:.2f}, Recall: {recall:.2f}")
123456789
def precision_recall(tp, fp, fn): precision = tp / (tp + fp) if (tp + fp) > 0 else 0 recall = tp / (tp + fn) if (tp + fn) > 0 else 0 return precision, recall # Example usage tp, fp, fn = 50, 10, 20 precision, recall = precision_recall(tp, fp, fn) print(f"Precision: {precision:.2f}, Recall: {recall:.2f}")
copy

IoU fungerer som en grunnleggende metrikk for evaluering av objektdeteksjonsmodeller, og hjelper til med å vurdere nøyaktigheten til predikerte avgrensningsbokser. Ved å kombinere IoU med presisjon, tilbakekalling og mAP, kan forskere og ingeniører finjustere modellene sine for å oppnå høyere deteksjonsnøyaktighet og pålitelighet.

1. Hva måler Intersection over Union (IoU) i objektdeteksjon?

2. Hvilket av følgende regnes som en falsk negativ i objektdeteksjon?

3. Hvordan beregnes presisjon i objektdeteksjon?

question mark

Hva måler Intersection over Union (IoU) i objektdeteksjon?

Select the correct answer

question mark

Hvilket av følgende regnes som en falsk negativ i objektdeteksjon?

Select the correct answer

question mark

Hvordan beregnes presisjon i objektdeteksjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

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

We use cookies to make your experience better!
some-alt