Cursusinhoud
Essentiële Computervisie
Essentiële Computervisie
Overlapping over Union (IoU) en Evaluatiemaatstaven
Hoe het wordt berekend
Wiskundig wordt IoU gegeven door:
Waarbij:
Gebied van Overlap de doorsnede is van de voorspelde en werkelijke begrenzingsvakken;
Gebied van Unie het totale gebied is dat door beide vakken wordt bedekt.
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)
IoU als maatstaf voor nauwkeurigheid van begrenzingsvakken
IoU wordt vaak gebruikt om te beoordelen hoe goed een voorspeld begrenzingsvak overeenkomt met de grondwaarheid. Hogere IoU-waarden duiden op een betere overeenstemming, waarbij een IoU van 1.0
een perfecte overlap betekent en 0.0
geen enkele overlap.
Drempelwaarde voor IoU bij True Positives en False Positives
Om te bepalen of een detectie correct (true positive) of incorrect (false positive) is, wordt doorgaans een drempelwaarde voor IoU ingesteld. Veelgebruikte drempelwaarden zijn:
IoU > 0.5: beschouwd als een True Positive (TP);
IoU < 0.5: beschouwd als een False Positive (FP).
Het instellen van hogere IoU-drempels verhoogt de precisie, maar kan de recall verlagen omdat minder detecties aan de criteria voldoen.
Evaluatiemaatstaven: Precisie, Recall en mAP
Naast IoU helpen andere evaluatiemaatstaven bij het beoordelen van objectdetectiemodellen:
Precisie: meet het aandeel correct voorspelde begrenzingsvakken onder alle voorspellingen;
Recall: meet het aandeel correct voorspelde begrenzingsvakken onder alle grondwaarheidsobjecten;
Mean Average Precision (mAP): berekent de gemiddelde precisie over verschillende IoU-drempels en objectcategorieën, wat een uitgebreide evaluatie van de modelprestaties biedt.
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}")
IoU is een fundamentele maatstaf voor het evalueren van objectdetectiemodellen en helpt bij het beoordelen van de nauwkeurigheid van voorspelde begrenzingskaders. Door IoU te combineren met precisie, recall en mAP kunnen onderzoekers en ingenieurs hun modellen verfijnen om een hogere detectienauwkeurigheid en betrouwbaarheid te bereiken.
1. Wat meet Intersection over Union (IoU) bij objectdetectie?
2. Welke van de volgende wordt beschouwd als een false negative bij objectdetectie?
3. Hoe wordt precisie berekend bij objectdetectie?
Bedankt voor je feedback!