Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Confusion Matrix

Uma matriz de confusão contabiliza as previsões de um modelo em relação aos rótulos verdadeiros, classe por classe. Veja como interpretá-la, quais métricas ela fornece e como é sua versão para detecção.

Uma matriz de confusão é uma tabela que contabiliza a correspondência entre as previsões de um modelo de classificação e os rótulos verdadeiros. Um eixo apresenta as classes reais e o outro as classes previstas, e cada célula contabiliza os exemplos que pertencem a esse par. As previsões corretas ficam na diagonal e todos os erros ficam fora dela, na célula que indica exatamente qual classe foi confundida com outra. Por isso, a matriz de confusão é a primeira forma habitual de observar os erros de um modelo e a origem da precisão global, da precisão, da revocação e do F1-score.

Ler uma matriz de confusão binária#

Com duas classes, a matriz tem quatro células:

  • Verdadeiros positivos (TP): exemplos positivos previstos como positivos, como uma peça defeituosa assinalada como defeituosa.
  • Falsos positivos (FP): exemplos negativos previstos como positivos, também chamados erros de tipo I ou falsos alarmes.
  • Falsos negativos (FN): exemplos positivos previstos como negativos, também chamados erros de tipo II ou omissões.
  • Verdadeiros negativos (TN): exemplos negativos previstos como negativos.

A maioria das métricas binárias são rácios destes quatro valores. A precisão é TP / (TP + FP), a revocação é TP / (TP + FN) e a precisão global é (TP + TN) dividido pela soma dos quatro valores. A célula fora da diagonal que mais importa depende da aplicação: um rastreio de cancro é ajustado para manter os falsos negativos baixos, enquanto um filtro de spam é ajustado para manter os falsos positivos baixos.

Matrizes de confusão multiclasse#

Com N classes, a matriz é N × N. Na orientação usada pelo confusion_matrix do scikit-learn, cada linha corresponde a uma classe verdadeira e cada coluna a uma classe prevista. A leitura de uma linha mostra onde foram parar os exemplos dessa classe, pelo que a célula diagonal dividida pelo total da linha corresponde à revocação da classe. A leitura de uma coluna mostra o que eram realmente as previsões do modelo para essa classe, pelo que a célula diagonal dividida pelo total da coluna corresponde à precisão da classe. Algumas ferramentas apresentam a matriz transposta, por isso os rótulos dos eixos determinam como ler o gráfico.

from sklearn.metrics import confusion_matrix

# Rótulos verdadeiros e previstos para 10 imagens
y_true = ["cat", "cat", "cat", "dog", "dog", "dog", "dog", "fox", "fox", "fox"]
y_pred = ["cat", "cat", "dog", "dog", "dog", "dog", "cat", "fox", "dog", "fox"]

# As linhas são as classes verdadeiras e as colunas são as classes previstas, nesta ordem de rótulos
labels = ["cat", "dog", "fox"]
matrix = confusion_matrix(y_true, y_pred, labels=labels)
print(matrix)

As linhas apresentadas para cat, dog e fox são [2 1 0], [1 3 0] e [0 1 2]. A diagonal contém 7 das 10 imagens, pelo que a precisão global é 0.7. A coluna dog inclui um cat e um fox, o que resulta numa precisão de dog de 3 / 5 = 0.6; a linha dog perde uma imagem para cat, o que resulta numa revocação de dog de 3 / 4 = 0.75. Uma matriz normalizada divide cada célula pelo total da respetiva classe verdadeira, pelo que a diagonal apresenta a revocação por classe e as classes com dimensões muito diferentes se tornam comparáveis.

Matrizes de confusão para deteção de objetos#

A deteção acrescenta uma classe de fundo, porque um detetor pode apresentar uma caixa onde não existe nada ou não detetar um objeto. Primeiro, as previsões são associadas aos rótulos através da interseção sobre união (IoU) e, em seguida, contabilizadas: os pares associados ficam nas células das classes, as previsões sem correspondência contam como falsos positivos contra o fundo e os rótulos sem correspondência contam como falsos negativos previstos como fundo. A célula fundo-fundo permanece vazia, porque não é possível contabilizar regiões vazias da imagem; por isso, uma matriz de deteção não tem verdadeiros negativos. A validação do YOLO26 constrói esta matriz com uma linha e uma coluna adicionais para o fundo, associando previsões a rótulos com um IoU superior a 0.45, e guarda-a como confusion_matrix.png, com as classes previstas no eixo vertical e as classes verdadeiras no eixo horizontal.

from ultralytics import YOLO

# Load a pretrained YOLO26 nano detector
model = YOLO("yolo26n.pt")

# Validation builds the confusion matrix and saves it as confusion_matrix.png
metrics = model.val(data="coco8.yaml")
matrix = metrics.confusion_matrix.matrix  # rows: predicted class, columns: true class

# 80 COCO classes plus one background row and column
print(matrix.shape)

# Class 0 is "person": correct detections and people the model missed
print(f"Person TP: {matrix[0, 0]:.0f}, missed: {matrix[-1, 0]:.0f}")

A forma é (81, 81), e a última linha contabiliza as pessoas anotadas às quais nenhuma previsão correspondeu.

  • Curva ROC: um ponto por cada limiar de decisão; cada ponto resume a matriz de confusão desse limiar através da taxa de verdadeiros positivos e da taxa de falsos positivos.
  • Precisão média (mAP): a principal pontuação de deteção, calculada com as mesmas decisões de TP e FP ao longo de todos os níveis de confiança, sem mostrar quais as classes que se confundem.
  • Precisão global: a matriz reduzida a um número, a diagonal dividida pelo total. Num conjunto de dados com 95% de exemplos negativos, um modelo que prevê sempre "negativo" obtém uma precisão global de 95%, apesar de a matriz mostrar zero verdadeiros positivos.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina