Intersezione su Unione (IoU) e Metriche di Valutazione
Intersection over Union (IoU) è una metrica che misura l'accuratezza dei riquadri di delimitazione previsti calcolando il rapporto tra l'area di sovrapposizione tra il riquadro previsto e quello reale e l'area della loro unione.
Come viene calcolato
Matematicamente, l'IoU è dato da:

Dove:
- Area di Sovrapposizione è l'intersezione tra il riquadro predetto e quello reale;
- Area di Unione è l'area totale coperta da entrambi i riquadri.
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 come metrica per l'accuratezza dei riquadri di delimitazione
IoU è comunemente utilizzato per valutare quanto bene un riquadro predetto si allinea con il ground truth. Valori di IoU più alti indicano un allineamento migliore, con un IoU di 1.0
che indica una sovrapposizione perfetta e 0.0
che indica nessuna sovrapposizione.
Soglia IoU per Veri Positivi e Falsi Positivi
Per determinare se un rilevamento è corretto (vero positivo) o errato (falso positivo), viene solitamente impostata una soglia per l'IoU. Le soglie comunemente utilizzate includono:
- IoU > 0,5: considerato un Vero Positivo (TP);
- IoU < 0,5: considerato un Falso Positivo (FP).
Impostare soglie IoU più elevate aumenta la precisione ma può ridurre il richiamo, poiché meno rilevamenti soddisfano i criteri.
Metriche di Valutazione: Precisione, Richiamo e mAP
Oltre all'IoU, altre metriche di valutazione aiutano a valutare i modelli di rilevamento oggetti:
- Precisione: misura la proporzione di riquadri previsti correttamente tra tutte le previsioni;
- Richiamo: misura la proporzione di riquadri previsti correttamente tra tutti gli oggetti di verità a terra;
- Mean Average Precision (mAP): calcola la precisione media su diverse soglie IoU e categorie di oggetti, fornendo una valutazione completa delle prestazioni del modello.

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}")
L'IoU rappresenta una metrica fondamentale per la valutazione dei modelli di object detection, aiutando a misurare l'accuratezza delle bounding box predette. Combinando IoU con precision, recall e mAP, ricercatori e ingegneri possono ottimizzare i loro modelli per ottenere una maggiore accuratezza e affidabilità nel rilevamento.
1. Cosa misura l'Intersection over Union (IoU) nell'object detection?
2. Quale delle seguenti opzioni è considerata un falso negativo nel rilevamento degli oggetti?
3. Come viene calcolata la Precision nel rilevamento degli oggetti?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 3.45
Intersezione su Unione (IoU) e Metriche di Valutazione
Scorri per mostrare il menu
Intersection over Union (IoU) è una metrica che misura l'accuratezza dei riquadri di delimitazione previsti calcolando il rapporto tra l'area di sovrapposizione tra il riquadro previsto e quello reale e l'area della loro unione.
Come viene calcolato
Matematicamente, l'IoU è dato da:

Dove:
- Area di Sovrapposizione è l'intersezione tra il riquadro predetto e quello reale;
- Area di Unione è l'area totale coperta da entrambi i riquadri.
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 come metrica per l'accuratezza dei riquadri di delimitazione
IoU è comunemente utilizzato per valutare quanto bene un riquadro predetto si allinea con il ground truth. Valori di IoU più alti indicano un allineamento migliore, con un IoU di 1.0
che indica una sovrapposizione perfetta e 0.0
che indica nessuna sovrapposizione.
Soglia IoU per Veri Positivi e Falsi Positivi
Per determinare se un rilevamento è corretto (vero positivo) o errato (falso positivo), viene solitamente impostata una soglia per l'IoU. Le soglie comunemente utilizzate includono:
- IoU > 0,5: considerato un Vero Positivo (TP);
- IoU < 0,5: considerato un Falso Positivo (FP).
Impostare soglie IoU più elevate aumenta la precisione ma può ridurre il richiamo, poiché meno rilevamenti soddisfano i criteri.
Metriche di Valutazione: Precisione, Richiamo e mAP
Oltre all'IoU, altre metriche di valutazione aiutano a valutare i modelli di rilevamento oggetti:
- Precisione: misura la proporzione di riquadri previsti correttamente tra tutte le previsioni;
- Richiamo: misura la proporzione di riquadri previsti correttamente tra tutti gli oggetti di verità a terra;
- Mean Average Precision (mAP): calcola la precisione media su diverse soglie IoU e categorie di oggetti, fornendo una valutazione completa delle prestazioni del modello.

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}")
L'IoU rappresenta una metrica fondamentale per la valutazione dei modelli di object detection, aiutando a misurare l'accuratezza delle bounding box predette. Combinando IoU con precision, recall e mAP, ricercatori e ingegneri possono ottimizzare i loro modelli per ottenere una maggiore accuratezza e affidabilità nel rilevamento.
1. Cosa misura l'Intersection over Union (IoU) nell'object detection?
2. Quale delle seguenti opzioni è considerata un falso negativo nel rilevamento degli oggetti?
3. Come viene calcolata la Precision nel rilevamento degli oggetti?
Grazie per i tuoi commenti!