Glossario

Convoluzione

Scopri come la convoluzione alimenta l'intelligenza artificiale nella computer vision, consentendo di svolgere con precisione attività come il rilevamento di oggetti, il riconoscimento di immagini e l'imaging medico.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La convoluzione è un'operazione matematica fondamentale ampiamente utilizzata nell'intelligenza artificiale, soprattutto nel campo della computer vision (CV). Si tratta di un elemento fondamentale per le reti neurali convoluzionali (CNN), che permettono a queste reti di apprendere automaticamente modelli complessi e gerarchici direttamente da dati simili a griglie, come immagini o video. Il processo prevede l'applicazione di un piccolo filtro, noto come kernel, su un segnale o un'immagine in ingresso. Questa operazione genera un output chiamato mappa delle caratteristiche, che evidenzia modelli specifici (come bordi, texture o forme) che il kernel è progettato per rilevare.

Come funziona la convoluzione

Pensa al processo di convoluzione come allo scorrimento di una piccola lente di ingrandimento (il kernel o filtro) su un'immagine più grande (i dati di input). In ogni posizione, il kernel si concentra su una piccola porzione dell'input. L'operazione di convoluzione calcola quindi una somma ponderata dei valori dei pixel all'interno di questa zona, utilizzando i pesi definiti all'interno del kernel. Questo valore calcolato diventa un singolo pixel nella mappa di caratteristiche di uscita risultante. Il kernel si muove sistematicamente sull'intera immagine di ingresso, passo dopo passo, con la dimensione del passo determinata da un parametro chiamato"stride". A volte, per controllare le dimensioni dell'output, viene utilizzatoil "padding" (l'aggiunta di altri pixel di confine) intorno all'immagine di input. Applicando più kernel all'interno di un singolo strato convoluzionale, una CNN può estrarre simultaneamente una serie di caratteristiche diverse dall'input. Le spiegazioni visive, come quelle contenute negli appunti del corso CS231n di Stanford, possono fornire ulteriori intuizioni.

Componenti chiave della convoluzione

Diversi parametri definiscono un'operazione di convoluzione:

  • Kernel/Filtro: Una piccola matrice contenente pesi(pesi del filtro) che rilevano caratteristiche specifiche. La dimensione del kernel determina l'area locale elaborata a ogni passo.
  • Stride: Il numero di pixel che il kernel sposta sull'immagine di ingresso a ogni passo. Uno stride maggiore determina una mappa di caratteristiche in uscita più piccola.
  • Padding: Aggiunta di pixel (di solito a valore zero) intorno al bordo dell'immagine di input. Questo aiuta a controllare le dimensioni spaziali dell'output e permette ai kernel di elaborare in modo più efficace i pixel dei bordi.
  • Funzione di attivazione: In genere, l'uscita dell'operazione di convoluzione viene fatta passare attraverso una funzione di attivazione non lineare, come la ReLU (Rectified Linear Unit), per introdurre la non linearità nel modello, consentendogli di apprendere modelli più complessi.

Convoluzione e operazioni correlate

La convoluzione viene spesso utilizzata insieme ad altre operazioni all'interno delle CNN, ma ha uno scopo ben preciso:

  • Pooling: Operazioni come il max pooling o il average pooling vengono utilizzate per ridurre le dimensioni spaziali (larghezza e altezza) delle mappe di caratteristiche, rendendo il modello più efficiente dal punto di vista computazionale e robusto alle variazioni nella posizione delle caratteristiche. A differenza della convoluzione che estrae le caratteristiche, il pooling riassume le caratteristiche all'interno di una regione. Puoi trovare una panoramica dei metodi di pooling per maggiori dettagli.
  • Livelli completamente connessi: Mentre gli strati convoluzionali elaborano regioni locali utilizzando pesi condivisi(condivisione dei parametri) basati sul campo recettivo, uno strato completamente connesso collega ogni neurone in ingresso a ogni neurone in uscita. Questi strati sono tipicamente utilizzati alla fine di una CNN in una struttura di rete neurale standard (NN) per compiti finali di classificazione o regressione.

Applicazioni della convoluzione

Gli strati convoluzionali sono indispensabili in numerose applicazioni moderne di intelligenza artificiale:

1. Rilevamento degli oggetti

Nel rilevamento degli oggetti, le CNN impiegano strati convoluzionali per estrarre le caratteristiche dalle immagini, consentendo loro di identificare gli oggetti e di determinare la loro posizione utilizzando i riquadri di delimitazione. Modelli all'avanguardia come Ultralytics YOLO, incluse versioni come YOLO11dipendono fortemente dalle convoluzioni per analizzare le caratteristiche a varie scale per un rilevamento efficiente e accurato. Questo aspetto è fondamentale per le applicazioni di AI nel settore automobilistico, ad esempio per consentire alle auto a guida autonoma(vedi la tecnologia di Waymo) di percepire pedoni, veicoli e segnali stradali per una navigazione sicura, che spesso richiede un'inferenza in tempo reale.

2. Analisi delle immagini mediche

La convoluzione svolge un ruolo importante nell'analisi delle immagini mediche, assistendo gli operatori sanitari nell'interpretazione di scansioni come radiografie, TAC e risonanze magnetiche. I modelli di intelligenza artificiale costruiti con le CNN sono in grado di rilevare schemi sottili indicativi di malattie, come tumori o fratture, a volte superando la velocità e la precisione umana(Radiology: Artificial Intelligence). Ad esempio, i modelli possono essere addestrati per compiti specifici, come l'utilizzo di YOLO11 per il rilevamento dei tumori. Scopri di più sulle soluzioni di intelligenza artificiale nell'assistenza sanitaria.

Oltre a questi, la convoluzione è fondamentale per altre attività di visione come il riconoscimento e la segmentazione delle immagini.

Importanza nel Deep Learning

La convoluzione è una pietra miliare del moderno deep learning (DL), in particolare per i compiti che coinvolgono dati di tipo reticolare. La sua capacità di sfruttare la localizzazione spaziale (supponendo che i pixel vicini siano correlati) e di condividere i parametri tra diverse posizioni rende le CNN altamente efficienti ed efficaci nell'apprendimento delle gerarchie visive rispetto alle reti tradizionali completamente connesse.

Strumenti e formazione

L'implementazione e l'addestramento di modelli che utilizzano la convoluzione sono facilitati da diversi framework di deep learning. Librerie come PyTorchPyTorch sito ufficiale diPyTorch ) e TensorFlowTensorFlow sito ufficiale diTensorFlow ) forniscono strumenti robusti per la creazione di CNN. Piattaforme come Ultralytics HUB semplificano il processo di formazione dei modelli, consentendo agli utenti di sfruttare architetture precostituite che incorporano convoluzioni o di formare modelli personalizzati per applicazioni specifiche. API di alto livello come Keras semplificano ulteriormente lo sviluppo.

Leggi tutto