Come ben sappiamo, Matlab è un potente strumento informatico che permette la simulazione di praticamente qualsiasi sistema che sia modellabile matematicamente. Oltre alle routine che gli utenti possono scrivere nel linguaggio fornito dal software esistono molti toolboxes che facilitano l'utilizzo per i meno avezzi nella programmazione. In questo articolo abbiamo deciso di soffermarci sulle capacità di questo software di operare nell'ambito del riconoscimento e dell'elaborazione delle immagini. Per meglio comprendere l'argomento partiremo con una breve descrizione dei principi di base della materia, per poi illustrare una routine che consentirà al nostro calcolatore di riconoscere ed individuare particolari oggetti all'interno di un'immagine.
Introduzione al riconoscimento
Il riconoscimento e l'elaborazione delle immagini è affidato a quelle che tecnicamente vengono definite macchine di percezione. Le macchine di percezione sono dei sistemi in grado di riconoscere dei pattern, ovvero degli schemi ricorrenti. Esempi di macchine di percezione possono essere i sistemi per il riconoscimento vocale o per le impronte digitali, ovvero sistemi che dopo un'opportuno training sono in grado di riconoscere e classificare gli oggetti di riferimento, in maniera automatica.
Coloro che insegnano questa materia utilizzano un esempio pratico per meglio descrivere ciò di cui si occupano:
- supponiamo di avere una fabbrica in cui venga inscatolato del pesce.
- all'interno della fabbrica, un nastro trasportatore fa scorrere pesci di due tipologie (salmoni e branzini) verso l'inscatolamento.
- una telecamera ed un computer devono essere in grado di distinguere le tue tipologie e di indirizzare ogni pesce verso la scatola giusta.
In questo caso telecamera, computer ed eventuale sistema di indirizzamento dei pesci rappresentano una macchina di percezione.
Lo schema a blocchi di un generico sistema di percezione di modelli (pattern) viene riportato di seguito.
Ogni blocco si riferisce ad una particolare fase all'interno della catena del riconoscimento, che andiamo ad illustrare.
- Il blocco Sensing comprende tutto ciò che consente di acquisire informazioni dall'esterno come i sensori o la telecamera, nonchè la fase di trasduzione in forma di segnale digitale. Parametri come la risoluzione hanno un grosso impatto sull'intero processo di riconoscimento.
- Il blocco Segmentazione comprende la fase di pre-processing per il miglioramento della qualità dell'immagine e la fase di separazione dei modelli da ricercare, sia dal background che tra di loro.
- Il blocco di Estrazione features si occupa di estrarre delle caratteristiche significative dai modelli separati. Questo blocco utilizza strumenti matematici relativamente complessi, come l'analisi wavelet, l'analisi di fourier o la PCA.
- Le varie classi di modelli si accumulano nello spazio delle features scelte e vengono separate dal blocco Classificazione, per mezzo di funzioni discriminanti. Anche in questo caso la matematica richiesta è relativamente pesante, si va dall'uso delle reti neurali a tecniche statistiche (stima Bayesiana) e cosi via.
In questo nostro articolo vedremo un esempio molto semplice di sistema di riconoscimento, evitando in tal modo di addentrarci nella complessità dei blocchi Estrazione e Classificazione.
Proprietà immagine digitale
Un'immagine digitale è costituita da un insieme di pixel. Ogni pixel può assumere solo un determinato set di valori [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2230 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Stupendo articolo !!!!
grazie molto
Complimenti anche da me, cercavo giusto documentazione in merito
La potenza di elaborazione di matlab è decisamente impressionanente. Alcuni script di imaging vengono utilizzati nella guida automotive automatica. Un altro comando, per esempio, è “contour”, che traccia il contorno (isolinee) della matrice (una immagine per esempio acquisita dalla CCD). Attraverso questo comando (e non solo) ho realizzato un programma per stimare in real time la focalizzazione di un fascio laser NdYAG.