Metrica Intersection over Union (IoU) – Cos'è e perché è importante?
Intersection over Union (IoU) – Cos'è e perché è importante?
Intersection over Union (IoU) è una metrica chiave in computer vision utilizzata per valutare la qualità delle predizioni di un modello di object detection. Essa misura la sovrapposizione tra la bounding box predetta dal modello e la bounding box reale (ground truth).
📏 Come si calcola IoU?
IoU è definita come il rapporto tra l'area dell'intersezione e l'area dell'unione tra le due bounding box:
IoU = Area dell'Intersezione / Area dell'Unione
Dove:
- L’intersezione è l’area comune tra la bounding box predetta e la ground truth.
- L’unione è la somma delle due aree, sottraendo l’intersezione per evitare duplicati.
🔹 Valori tipici di IoU
- IoU = 0 → Nessuna sovrapposizione
- IoU tra 0 e 0.5 → Predizione scarsa
- IoU tra 0.5 e 0.7 → Predizione accettabile
- IoU > 0.7 → Predizione molto buona
🎯 Perché è importante IoU?
IoU è fondamentale in diversi compiti di object detection, tra cui:
- ✅ Valutazione delle prestazioni di modelli come Faster R-CNN, SSD e YOLO.
- ✅ Non-Maximum Suppression (NMS) → Filtraggio delle predizioni duplicate.
- ✅ Mean Average Precision (mAP) → Misurazione della precisione media di un modello.
🏆 Esempio di utilizzo in pratica (Python & OpenCV)
Un semplice esempio per calcolare IoU tra due bounding box:
import cv2
import numpy as np
def iou(boxA, boxB):
# Coordinate delle bounding box
xA = max(boxA[0], boxB[0])
yA = max(boxA[1], boxB[1])
xB = min(boxA[2], boxB[2])
yB = min(boxA[3], boxB[3])
# Calcolo area intersezione
interArea = max(0, xB - xA) * max(0, yB - yA)
# Calcolo area unione
boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1])
boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1])
unionArea = boxAArea + boxBArea - interArea
# Calcolo IoU
return interArea / float(unionArea)
# Esempio di bounding box (x1, y1, x2, y2)
box_pred = [50, 50, 200, 200]
box_true = [100, 100, 250, 250]
iou_score = iou(box_pred, box_true)
print(f"IoU Score: {iou_score:.2f}")
🎯 Conclusione
IoU è una metrica essenziale per valutare l'accuratezza della object detection. Se vuoi approfondire, prova a esplorare metriche avanzate come Mean Average Precision (mAP) che si basano su IoU per il calcolo della performance complessiva di un modello! 🚀

Commenti
Posta un commento