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

Saliency Maps

Os mapas de saliência são mapas de calor que indicam quanto cada píxel influenciou a previsão de um modelo. Métodos baseados em gradientes, CAM e perturbações, as suas limitações e aplicações.

Um mapa de saliência é um mapa de calor que avalia quanto cada píxel de uma imagem de entrada influenciou a saída de uma rede neural, geralmente a pontuação de uma classe prevista. É uma das ferramentas mais comuns de IA explicável (XAI) em visão computacional: um mapa que destaca o objeto dá suporte à previsão, enquanto um que destaca uma marca de água, o fundo ou a borda da imagem revela um atalho. Um mapa de saliência relaciona a saída aos píxeis de entrada, o que o distingue dos mapas de características internos de uma rede e dos pesos de atenção de um transformer de visão, que mostram onde uma camada recolhe informações. A investigação sobre perceção usa o termo para uma ideia relacionada: um mapa dos pontos para os quais os olhos humanos são atraídos numa cena, como no modelo de atenção visual de Itti-Koch.

Como funciona a saliência por gradiente#

O mapa de saliência por gradiente de Simonyan, Vedaldi e Zisserman (2013) usa a retropropagação para calcular o gradiente de uma pontuação de classe em relação à imagem de entrada, em vez de aos pesos do modelo. A magnitude do gradiente num píxel indica quanto uma pequena alteração nesse ponto mudaria a pontuação, e o maior valor absoluto entre os três canais de cor fornece um valor por píxel. Para um classificador ImageNet, o cálculo exige uma passagem para a frente e outra para trás no PyTorch:

import urllib.request

from PIL import Image
from torchvision.models import ResNet50_Weights, resnet50
from torchvision.utils import save_image

# Load an ImageNet classifier and track gradients on the input pixels
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg"))
x = weights.transforms()(image).unsqueeze(0).requires_grad_()

# Backpropagate the top class score to the pixels
scores = model(x)
top = scores.argmax().item()
scores[0, top].backward()

# Saliency: largest absolute gradient across the color channels, scaled for display
saliency = x.grad.abs().amax(dim=1)
save_image((saliency / saliency.quantile(0.99)).clamp(max=1), "saliency.png")
print(f"Explained class: {weights.meta['categories'][top]}")

Imprime Explained class: minibus e guarda um mapa granulado de 224 × 224 do recorte central visto pelo classificador: os gradientes brutos são ruidosos de píxel para píxel, um efeito que os métodos posteriores reduzem calculando médias ou trabalhando com mapas de características.

Métodos de saliência#

  • SmoothGrad: Calcular a média dos mapas de gradientes de várias cópias da imagem com ruído adicionado elimina grande parte do granulado.
  • Gradientes integrados: Acumular gradientes ao longo de um percurso desde uma referência, como uma imagem preta, até à entrada faz com que as pontuações dos píxeis correspondam à diferença entre as pontuações das duas classes.
  • Grad-CAM: Ponderar os mapas de características da última camada convolucional pela média dos seus gradientes e aumentar a resolução do resultado produz regiões grosseiras, mas específicas da classe. O LayerCAM (2021) pondera cada posição separadamente, pelo que as camadas anteriores, de maior resolução, também produzem mapas úteis.
  • Oclusão e outros métodos de perturbação: Ocultar partes da imagem e medir quanto a pontuação diminui dispensa gradientes, mas exige uma passagem para a frente por parte.

O Ultralytics YOLO calcula mapas LayerCAM para deteção de objetos e outras tarefas: com visualize=True no modo de previsão, pondera cada posição dos mapas de características que entram na cabeça de deteção de acordo com o gradiente positivo em relação à pontuação de classe de cada previsão confiante e guarda um mapa de calor combinado por imagem.

from ultralytics import YOLO

# Guardar um mapa de calor LayerCAM das evidências por trás das deteções do YOLO26
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg", visualize=True)

Guarda bus_cam.jpg no diretório de gravação da execução, que explica até 16 das previsões brutas mais fortes do YOLO26 acima do limiar de confiança, antes de o NMS remover as duplicatas; acrescentar classes=[0] gera mapas apenas para as pessoas.

Limitações dos mapas de saliência#

Um mapa de saliência mostra onde a saída é sensível, não como o modelo raciocina — esse é o objetivo da interpretabilidade mecanística. As verificações de sanidade de Adebayo e colegas, de 2018, constataram que alguns métodos populares, como a retropropagação guiada, produzem mapas quase idênticos mesmo depois de se aleatorizarem os pesos do modelo; assim, esses mapas refletem mais as bordas da imagem do que o modelo treinado. Os mapas também podem mudar acentuadamente com pequenas perturbações da entrada que não alteram a previsão.

Aplicações no mundo real#

  • Deteção de atalhos: Os mapas de calor mostraram que um classificador treinado com o conjunto de dados PASCAL VOC reconhecia cavalos, em parte, através de uma indicação de direitos de autor presente em muitas fotografias de cavalos — um comportamento do tipo «Hans, o Esperto» invisível na sua precisão.
  • Imagiologia médica: Os programadores de classificadores de radiografias torácicas verificam se as evidências estão nos pulmões, e não no texto do scanner ou em dispositivos de tratamento, como drenos torácicos, nos quais já se demonstrou que os classificadores de pneumotórax se baseiam.
  • Recorte de imagens: O Twitter recortava pré-visualizações de imagens em torno do ponto para onde um modelo de saliência da atenção humana previa que os utilizadores olhariam primeiro; uma auditoria de 2021 dos investigadores da empresa concluiu que os recortes favoreciam sistematicamente alguns grupos de pessoas em detrimento de outros.

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