Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Saliency Maps

Le mappe di salienza sono mappe di calore che indicano quanto ogni pixel ha influenzato la predizione di un modello. Metodi basati su gradiente, CAM e perturbazioni, limiti e applicazioni.

Una mappa di salienza è una mappa termica che indica quanto ogni pixel di un'immagine di input abbia influenzato l'output di una rete neurale, di solito il punteggio di una classe prevista. È uno degli strumenti più comuni dell'IA spiegabile (XAI) nella visione artificiale: una mappa che evidenzia l'oggetto supporta la previsione, mentre una che evidenzia una filigrana, lo sfondo o il bordo dell'immagine rivela una scorciatoia. La mappa di salienza collega l'output ai pixel di input, distinguendosi dalle mappe delle caratteristiche interne della rete e dai pesi di attenzione di un vision Transformer, che mostrano dove un layer raccoglie informazioni. Nella ricerca sulla percezione, il termine indica un concetto affine: una mappa delle aree della scena verso cui è attirato lo sguardo umano, come nel modello Itti-Koch dell'attenzione visiva.

Come funziona la salienza basata sul gradiente#

La mappa di salienza basata sul gradiente di Simonyan, Vedaldi e Zisserman (2013) usa la retropropagazione per calcolare il gradiente del punteggio di una classe rispetto all'immagine di input, anziché rispetto ai pesi del modello. L'ampiezza del gradiente in un pixel indica quanto una sua piccola variazione sposterebbe il punteggio; il valore assoluto massimo tra i tre canali di colore fornisce un unico valore per pixel. Per un classificatore ImageNet, richiede un passaggio forward e uno backward in 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]}")

Stampa Explained class: minibus e salva una mappa sgranata di 224 × 224 del ritaglio centrale visto dal classificatore: i gradienti grezzi sono rumorosi da un pixel all'altro, un problema che i metodi successivi riducono calcolando medie o lavorando sulle mappe delle caratteristiche.

Metodi di salienza#

  • SmoothGrad: calcola la media delle mappe di gradiente ottenute da molte copie dell'immagine a cui è stato aggiunto rumore, eliminando gran parte della granulosità.
  • Gradienti integrati: accumula i gradienti lungo un percorso da un riferimento, come un'immagine nera, all'input; così i punteggi dei pixel sommano alla differenza tra i punteggi delle due classi.
  • Grad-CAM: applica un peso alle mappe delle caratteristiche dell'ultimo layer convoluzionale in base al gradiente medio e ingrandisce il risultato, ottenendo regioni grossolane ma specifiche per classe. LayerCAM (2021) assegna un peso a ogni posizione separatamente, così anche i layer precedenti a risoluzione maggiore producono mappe utili.
  • Occlusione e altri metodi di perturbazione: nascondere parti dell'immagine e misurare quanto diminuisce il punteggio non richiede gradienti, ma comporta un passaggio forward per ogni parte.

Ultralytics YOLO calcola mappe LayerCAM per il rilevamento degli oggetti e altre attività: con visualize=True in modalità di predizione, assegna un peso a ogni posizione delle mappe delle caratteristiche che entrano nella testa di rilevamento, in base al gradiente positivo rispetto al punteggio di classe di ogni previsione affidabile, e salva una mappa termica combinata per immagine.

from ultralytics import YOLO

# Salva una mappa termica LayerCAM delle evidenze alla base dei rilevamenti di YOLO26
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg", visualize=True)

Scrive bus_cam.jpg nella directory di salvataggio dell'esecuzione, evidenziando fino alle 16 previsioni grezze più forti di YOLO26 che superano la soglia di confidenza, prima che NMS rimuova i duplicati; aggiungendo classes=[0], le mappe evidenziano solo le persone.

Limiti delle mappe di salienza#

Una mappa di salienza mostra a quali input è sensibile l'output, non come ragiona il modello: quest'ultimo è l'obiettivo dell'interpretabilità meccanicistica. I controlli di sanità del 2018 di Adebayo e colleghi hanno rilevato che alcuni metodi diffusi, come la retropropagazione guidata, producono mappe quasi identiche anche dopo la randomizzazione dei pesi del modello; queste mappe riflettono quindi più i bordi dell'immagine che il modello addestrato. Le mappe possono inoltre cambiare drasticamente in seguito a piccole perturbazioni dell'input che non modificano la previsione.

Applicazioni nel mondo reale#

  • Individuare le scorciatoie: le mappe termiche hanno mostrato che un classificatore addestrato sul dataset PASCAL VOC riconosceva i cavalli anche grazie a un'etichetta di copyright presente in molte foto di cavalli: un comportamento da «Clever Hans» invisibile nell'accuratezza.
  • Imaging medico: gli sviluppatori di classificatori per radiografie toraciche verificano che le evidenze si trovino nei polmoni e non sul testo dello scanner o su dispositivi di trattamento come i drenaggi toracici, che è stato dimostrato essere utilizzati dai classificatori per il pneumotorace.
  • Ritaglio delle immagini: Twitter ritagliava le anteprime delle immagini attorno al punto in cui un modello di salienza basato sull'attenzione umana prevedeva che gli utenti avrebbero guardato per primo; una verifica del 2021 condotta dai ricercatori dell'azienda ha rilevato che i ritagli favorivano sistematicamente alcuni gruppi di persone rispetto ad altri.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning