Intersection over Union (IoU) och Utvärderingsmetoder
Intersection over Union (IoU) är ett mått som mäter noggrannheten hos förutsagda avgränsningsrutor genom att beräkna förhållandet mellan det överlappande området mellan den förutsagda och den faktiska rutan och området för deras union.
Hur det beräknas
Matematiskt ges IoU av:

Där:
- Överlappningsyta är skärningsytan mellan den predikterade och den faktiska avgränsningsrutan;
- Unionsyta är den totala ytan som täcks av båda rutorna.
12345678910111213141516171819202122232425262728import 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 som ett mått på avgränsningsrutans noggrannhet
IoU används ofta för att utvärdera hur väl en predikterad avgränsningsruta överensstämmer med det faktiska värdet. Högre IoU-värden indikerar bättre överensstämmelse, där ett IoU på 1.0
betyder perfekt överlappning och 0.0
betyder ingen överlappning alls.
Tröskelvärde för IoU för sanna och falska positiva
För att avgöra om en detektion är korrekt (sant positiv) eller felaktig (falskt positiv) sätts vanligtvis ett tröskelvärde för IoU. Vanligt förekommande tröskelvärden inkluderar:
- IoU > 0,5: betraktas som Sant Positiv (TP);
- IoU < 0,5: betraktas som Falskt Positiv (FP).
Att sätta högre IoU-tröskelvärden ökar precisionen men kan minska återkallelsen eftersom färre detektioner uppfyller kriterierna.
Utvärderingsmått: Precision, Recall och mAP
Utöver IoU används andra utvärderingsmått för att bedöma objektigenkänningsmodeller:
- Precision: mäter andelen korrekt förutsagda avgränsningsrutor bland alla förutsägelser;
- Recall: mäter andelen korrekt förutsagda avgränsningsrutor bland alla faktiska objekt;
- Mean Average Precision (mAP): beräknar den genomsnittliga precisionen över olika IoU-tröskelvärden och objektkategorier, vilket ger en omfattande utvärdering av modellens prestanda.

123456789def 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 fungerar som en grundläggande mätvärde vid utvärdering av objektigenkänningsmodeller och hjälper till att bedöma noggrannheten hos förutsagda avgränsningsrutor. Genom att kombinera IoU med precision, recall och mAP kan forskare och ingenjörer finjustera sina modeller för att uppnå högre detekteringsnoggrannhet och tillförlitlighet.
1. Vad mäter Intersection over Union (IoU) inom objektigenkänning?
2. Vilket av följande betraktas som ett falskt negativt resultat inom objektigenkänning?
3. Hur beräknas precision inom objektigenkänning?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 3.45
Intersection over Union (IoU) och Utvärderingsmetoder
Svep för att visa menyn
Intersection over Union (IoU) är ett mått som mäter noggrannheten hos förutsagda avgränsningsrutor genom att beräkna förhållandet mellan det överlappande området mellan den förutsagda och den faktiska rutan och området för deras union.
Hur det beräknas
Matematiskt ges IoU av:

Där:
- Överlappningsyta är skärningsytan mellan den predikterade och den faktiska avgränsningsrutan;
- Unionsyta är den totala ytan som täcks av båda rutorna.
12345678910111213141516171819202122232425262728import 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 som ett mått på avgränsningsrutans noggrannhet
IoU används ofta för att utvärdera hur väl en predikterad avgränsningsruta överensstämmer med det faktiska värdet. Högre IoU-värden indikerar bättre överensstämmelse, där ett IoU på 1.0
betyder perfekt överlappning och 0.0
betyder ingen överlappning alls.
Tröskelvärde för IoU för sanna och falska positiva
För att avgöra om en detektion är korrekt (sant positiv) eller felaktig (falskt positiv) sätts vanligtvis ett tröskelvärde för IoU. Vanligt förekommande tröskelvärden inkluderar:
- IoU > 0,5: betraktas som Sant Positiv (TP);
- IoU < 0,5: betraktas som Falskt Positiv (FP).
Att sätta högre IoU-tröskelvärden ökar precisionen men kan minska återkallelsen eftersom färre detektioner uppfyller kriterierna.
Utvärderingsmått: Precision, Recall och mAP
Utöver IoU används andra utvärderingsmått för att bedöma objektigenkänningsmodeller:
- Precision: mäter andelen korrekt förutsagda avgränsningsrutor bland alla förutsägelser;
- Recall: mäter andelen korrekt förutsagda avgränsningsrutor bland alla faktiska objekt;
- Mean Average Precision (mAP): beräknar den genomsnittliga precisionen över olika IoU-tröskelvärden och objektkategorier, vilket ger en omfattande utvärdering av modellens prestanda.

123456789def 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 fungerar som en grundläggande mätvärde vid utvärdering av objektigenkänningsmodeller och hjälper till att bedöma noggrannheten hos förutsagda avgränsningsrutor. Genom att kombinera IoU med precision, recall och mAP kan forskare och ingenjörer finjustera sina modeller för att uppnå högre detekteringsnoggrannhet och tillförlitlighet.
1. Vad mäter Intersection over Union (IoU) inom objektigenkänning?
2. Vilket av följande betraktas som ett falskt negativt resultat inom objektigenkänning?
3. Hur beräknas precision inom objektigenkänning?
Tack för dina kommentarer!