Conteúdo do Curso
Fundamentos de Visão Computacional
Fundamentos de Visão Computacional
Interseção Sobre União (IoU) e Métricas de Avaliação
Como é Calculado
Matematicamente, o IoU é definido por:
Onde:
Área de Sobreposição é a interseção entre as caixas delimitadoras prevista e real;
Área de União é a área total coberta por ambas as caixas.
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 como Métrica de Precisão de Caixa Delimitadora
IoU é comumente utilizado para avaliar o quão bem uma caixa delimitadora prevista se alinha com o valor real (ground truth). Valores mais altos de IoU indicam melhor alinhamento, sendo que um IoU de 1.0
significa sobreposição perfeita e 0.0
significa nenhuma sobreposição.
Definição de Limiares de IoU para Verdadeiros Positivos e Falsos Positivos
Para determinar se uma detecção é correta (verdadeiro positivo) ou incorreta (falso positivo), normalmente é definido um limiar para o IoU. Limiares comumente utilizados incluem:
IoU > 0.5: considerado Verdadeiro Positivo (TP);
IoU < 0.5: considerado Falso Positivo (FP).
Definir limiares de IoU mais altos aumenta a precisão, mas pode diminuir a revocação, já que menos detecções atendem aos critérios.
Métricas de Avaliação: Precisão, Revocação e mAP
Além do IoU, outras métricas de avaliação auxiliam na análise de modelos de detecção de objetos:
Precisão: mede a proporção de caixas delimitadoras corretamente previstas entre todas as previsões;
Revocação: mede a proporção de caixas delimitadoras corretamente previstas entre todos os objetos reais;
Mean Average Precision (mAP): calcula a média da precisão em diferentes limiares de IoU e categorias de objetos, fornecendo uma avaliação abrangente do desempenho do modelo.
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 é uma métrica fundamental na avaliação de modelos de detecção de objetos, auxiliando na análise da precisão das caixas delimitadoras previstas. Ao combinar IoU com precisão, recall e mAP, pesquisadores e engenheiros podem ajustar seus modelos para alcançar maior precisão e confiabilidade na detecção.
1. O que a Interseção sobre União (IoU) mede na detecção de objetos?
2. Qual das alternativas a seguir é considerada um falso negativo em detecção de objetos?
3. Como a Precisão é calculada em detecção de objetos?
Obrigado pelo seu feedback!