Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Che cos'è il template matching? Una guida rapida

Esplora la tecnica di elaborazione delle immagini denominata "template matching", il suo funzionamento e la sua importanza nella storia della visione artificiale.

Le immagini spesso contengono molti dettagli minuziosi che gli esseri umani riescono a individuare facilmente. Tuttavia, per le macchine questo compito non è così semplice. Le macchine percepiscono un'immagine digitale come una griglia di valori di pixel e anche lievi variazioni di illuminazione, angolazione, scala o nitidezza possono creare confusione. 

Le capacità di analisi delle immagini di una macchina derivano generalmente da due campi dell'informatica strettamente correlati: l'elaborazione delle immagini e la visione artificiale. Sebbene spesso lavorino insieme, hanno scopi fondamentali diversi. 

L'elaborazione delle immagini si concentra sulle immagini come dati grezzi. Può migliorare le immagini, ma non cerca di comprenderne il contenuto. È qui che la visione artificiale fa la differenza. La visione artificiale è una branca dell'intelligenza artificiale (AI) che consente alle macchine di comprendere immagini e video. 

L'elaborazione di base delle immagini esiste da molti anni, ma le innovazioni all'avanguardia nel campo della visione artificiale sono molto più recenti. Un ottimo modo per comprendere la storia di questo settore è quello di guardare indietro a come risolvavamo questi problemi utilizzando metodi più tradizionali e datati.

Prendiamo ad esempio il confronto delle immagini. Si tratta di un'operazione visiva comune in cui un sistema deve individuare la presenza di un oggetto o di un motivo specifico all'interno di un'immagine più grande. 

Oggi questo può essere fatto facilmente e con precisione utilizzando l'intelligenza artificiale e il deep learning. Tuttavia, prima dell'avvento delle moderne reti neurali negli anni 2010, il metodo più utilizzato era una tecnica molto più semplice chiamata template matching. 

Fig. 1. Un esempio di corrispondenza dei modelli (Fonte)

Il template matching è una tecnica di elaborazione delle immagini in cui una piccola immagine modello viene fatta scorrere pixel per pixel su un'immagine più grande. Questo processo di scorrimento simile alla convoluzione consente all'algoritmo di trovare la posizione che corrisponde maggiormente a quel modello specifico.

In questo articolo esploreremo cos'è il template matching e come i recenti miglioramenti lo rendono più affidabile nelle situazioni reali. Cominciamo!

Che cos'è il template matching?

Il template matching può anche essere definito una tecnica classica di visione artificiale, nel senso che lavora direttamente con i pixel dell'immagine (la più piccola unità di un'immagine digitale). Viene utilizzato per trovare un motivo più piccolo all'interno di un'immagine più grande. 

Metodi come questo vengono definiti utilizzando la geometria, l'ottica e regole matematiche piuttosto che addestrando modelli di grandi dimensioni su enormi set di dati. In altre parole, un sistema di corrispondenza dei modelli confronta la luminosità, il colore e altre informazioni sui pixel tra due input: l'immagine di input (l'immagine più grande) e un'immagine modello più piccola (il modello da trovare).

Fig. 2. L'immagine A e l'immagine B sono esempi di modelli. (Fonte)

L'obiettivo principale del template matching è individuare dove appare il modello nella scena più ampia e misurare quanto esso corrisponda alle diverse regioni dell'immagine. L'algoritmo di template matching lo fa facendo scorrere il modello sull'immagine più ampia e calcolando un punteggio di somiglianza in ogni posizione.

Le regioni con punteggi più alti sono considerate le più simili, ovvero quelle che più si avvicinano al modello. Poiché questo metodo si basa sul confronto pixel per pixel, funziona meglio in ambienti controllati, dove l'aspetto degli oggetti non cambia. 

Ad esempio, il template matching può essere utilizzato nelle attività di verifica delle etichette nel controllo qualità. È in grado di confrontare facilmente l'immagine del modello delle etichette con le immagini del prodotto finito per verificare la presenza o meno delle etichette.

Come funziona il template matching

Ecco una panoramica dettagliata di come funziona il template matching:

  • Fase 1 - Preparazione delle immagini: il processo inizia caricando l'immagine di input e l'immagine modello, quindi convertendo entrambe in immagini in scala di grigi. Poiché il template matching si basa sul confronto dei valori dei pixel, la rimozione delle informazioni sul colore riduce il rumore e velocizza l'elaborazione delle immagini. 
  • Fase 2 - Scorrimento del modello sull'immagine: Successivamente, l'algoritmo di corrispondenza dei modelli fa scorrere il modello sull'immagine più grande un pixel alla volta (partendo dall'angolo in alto a sinistra). Ogni fase di questo movimento è un'iterazione, in cui l'algoritmo estrae dall'immagine sorgente un frammento di immagine che corrisponde alle dimensioni del modello.
  • Fase 3 - Misurazione della qualità della corrispondenza: ogni patch dell'immagine viene confrontata con il modello utilizzando un metodo di corrispondenza matematico per generare una metrica di correlazione o un valore di correlazione per ogni posizione possibile. Gli approcci più comuni includono le differenze al quadrato (che misurano la distanza numerica tra le intensità dei pixel per calcolare la discrepanza totale), la correlazione incrociata normalizzata (che moltiplica i valori dei pixel per determinare quanto bene si allineano i modelli di luce e oscurità) e il coefficiente di correlazione (che sottrae la luminosità media per garantire che la corrispondenza rimanga accurata anche se l'illuminazione cambia leggermente).
  • Fase 4 - Identificazione della corrispondenza migliore: dopo aver valutato tutte le posizioni, l'algoritmo seleziona la corrispondenza migliore individuando il valore massimo o minimo, a seconda del metodo utilizzato. Spesso a questi risultati viene applicata una soglia per garantire che vengano accettate solo le corrispondenze con un punteggio di affidabilità sufficientemente elevato, filtrando i rilevamenti deboli o errati.
  • Fase 5 - Evidenziazione del risultato: infine, la posizione rilevata viene riportata sull'immagine originale. In genere, attorno alla regione corrispondente viene disegnato un riquadro che mostra chiaramente dove appare il modello. 

Esercitarsi con la corrispondenza dei modelli

Sebbene il template matching basato sull'elaborazione delle immagini non sia generalmente utilizzato nelle implementazioni dinamiche di soluzioni di visione artificiale nel mondo reale a causa degli svantaggi che comporta, se siete interessati a provarlo, Python come OpenCV rendono questo processo semplice e offrono anche tutorial facili da seguire. È dotata di una funzione matchTemplate integrata che gestisce i complessi confronti matematici. 

Inoltre, supporta altre funzioni che aiutano nelle operazioni semplici come il caricamento delle immagini utilizzando la funzione imread e la conversione del colore utilizzando la funzione cvtColor per trasformare le immagini in scala di grigi. La conversione del colore è un passaggio fondamentale perché ridurre un'immagine a un unico canale di intensità rende il confronto matematico all'interno di matchTemplate molto più veloce e meno sensibile al rumore cromatico.

Una volta generata la mappa di similarità, OpenCV include OpenCV una funzione minMaxLoc per finalizzare il rilevamento. Può essere utilizzata per scansionare l'intera mappa al fine di identificare i valori minimi e massimi globali insieme alle loro coordinate esatte. A seconda del metodo di corrispondenza utilizzato, minMaxLoc consente di individuare istantaneamente la posizione della corrispondenza migliore trovando la correlazione più alta o il valore di errore più basso nei dati.

Oltre a OpenCV, librerie come NumPy essenziali per gestire gli array di immagini e applicare una soglia ai risultati, mentre Matplotlib comunemente usato per visualizzare la mappa di similarità e il rilevamento finale. Insieme, questi strumenti forniscono un ambiente completo per la creazione e il debug di una soluzione di corrispondenza dei modelli.

Applicazioni reali del template matching

Ora che abbiamo una migliore comprensione di come funziona il template matching, diamo un'occhiata più da vicino alla sua applicazione in scenari reali. 

Identificazione degli stili architettonici tradizionali

Nel campo dei beni culturali e degli studi architettonici, i ricercatori devono analizzare fotografie di edifici storici, templi e monumenti per comprendere come i modelli di progettazione variano da una regione all'altra. Prima che i modelli avanzati di visione artificiale fossero ampiamente adottati, utilizzavano tecniche di corrispondenza delle immagini per studiare tali strutture.

Il template matching consente ai ricercatori di concentrarsi su specifici elementi architettonici quali il profilo dei tetti, la disposizione delle finestre o i motivi decorativi delle pareti. Facendo scorrere i modelli o le immagini di riferimento su immagini più grandi, è possibile identificare forme ricorrenti e ridurre l'analisi manuale delle immagini, che può richiedere ore.

Un esempio interessante proviene da uno studio relativo alle case tradizionali indonesiane. I ricercatori hanno creato piccoli modelli delle caratteristiche principali e li hanno confrontati con fotografie in scala reale. Questo approccio è stato utilizzato per evidenziare le aree dell'immagine che corrispondevano maggiormente al modello e classify gli stili classify delle diverse regioni.

Fig. 3. Utilizzo del template matching per classify le case classify in Indonesia (Fonte)

Rilevamento di oggetti nei sistemi di visione industriale

Gli ambienti industriali possono trarre vantaggio dai sistemi di visione in grado di detect rapidamente detect , verificare gli assemblaggi o individuare i difetti. Prima che il deep learning diventasse diffuso nel settore manifatturiero, molti team hanno sperimentato metodi di corrispondenza delle immagini per automatizzare queste attività.

In parole povere, un modello di riferimento dei componenti può essere utilizzato per scansionare immagini da una linea di produzione ed evidenziare le aree che corrispondono al modello. Questo metodo funziona bene quando i componenti appaiono in posizioni costanti e l'illuminazione è stabile.

Corrispondenza dei modelli per il rilevamento dei tumori polmonari 

Nonostante l'impatto delle tecnologie all'avanguardia nel settore sanitario, la diagnosi dei problemi di salute tramite immagini mediche come le TAC rimane ancora difficile. Tradizionalmente, i radiologi dovevano esaminare manualmente ogni sezione della scansione, un processo che richiede estrema precisione e molto tempo. 

Prima che il deep learning fosse applicato in ambito sanitario, i ricercatori hanno tentato di utilizzare il template matching per semplificare il flusso di lavoro e facilitare l'identificazione delle anomalie. Un buon esempio di questa tecnica è legato al rilevamento di tumori o noduli polmonari. 

In questo metodo, i ricercatori creano modelli di riferimento che rappresentano la forma e l'intensità tipiche di un tumore. Il sistema fa poi scorrere questi modelli sulle scansioni dei pazienti, misurando la somiglianza in ogni coordinata.

Fig. 4. Rilevamento di tumori polmonari mediante template matching (Fonte)

Pro e contro dell'abbinamento dei modelli

Ecco alcuni dei principali vantaggi dell'utilizzo del template matching:

  • Intuitivo e semplice: il template matching è facile da comprendere e implementare, rendendolo un punto di partenza ideale per i principianti nel campo dell'intelligenza artificiale e della visione artificiale.
  • Affidabile in condizioni controllate: offre buone prestazioni su immagini in scala di grigi con illuminazione costante, fornendo risultati accurati quando i modelli e gli sfondi sono stabili.
  • Facile integrazione: utilizzando Python come OpenCV, il template matching può essere applicato rapidamente a progetti reali senza configurazioni complesse o calcoli pesanti.

Sebbene il template matching offra numerosi vantaggi, presenta anche alcune limitazioni. Ecco alcune difficoltà da tenere presenti:

  • Sensibile alla scala e alla rotazione: variazioni nelle dimensioni o nell'orientamento del modello possono ridurre la precisione.
  • Dipendenza dall'illuminazione e dal contrasto: variazioni nell'illuminazione o nel contrasto tra il modello e l'immagine possono causare corrispondenze errate o rendere più difficile il detect del modello.
  • Adattabilità limitata: a differenza dei metodi basati sull'intelligenza artificiale, il template matching non è in grado di apprendere dai dati né di migliorare nel tempo. Funziona al meglio in contesti controllati o ripetitivi.

Punti chiave 

La visione artificiale è un campo vasto che copre diverse tecniche. Imparare le tecniche tradizionali di elaborazione delle immagini, come il template matching, è un ottimo punto di partenza per capire come funziona l'analisi delle immagini. Le innovazioni all'avanguardia nell'ambito della visione artificiale si basano sugli stessi concetti fondamentali e risolvono problemi simili. 

Vuoi saperne di più sull'IA? Unisciti alla nostra community e dai un'occhiata al nostro repository GitHub. Scopri come l'IA nel settore retail e Vision AI nel settore manifatturiero stanno guidando il cambiamento. Esplora le nostre opzioni di licenza per iniziare a sviluppare con Vision AI oggi stesso!

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis