2
La sequenza logico-funzionale delle operazioni descritte è mostrata dal seguente schema a blocchi.
Acquisizione delle
immagini ai raggi X
Immagine alla
terza tensione
Immagine alla
prima tensione
Immagine
allineata
Riconoscimento
del prodotto
Allineamento Allineamento
Classificazione tramite l’uso
di una rete neuronale
Immagine alla
seconda tensione
Allineamento
1. Il riconoscimento di prodotti alimentari
Il problema del riconoscimento di prodotti alimentari è, attualmente, molto richiesto sul mercato.
Prima le normative prevedevano l’uso di metal detector per analizzare i prodotti ma, come si può
facilmente intuire, il loro uso limitava molto il campo di impiego. Con i metal detector, infatti, non
possono ovviamente essere analizzati prodotti contenuti in contenitori metallici.
Una soluzione alternativa che garantisce risultati migliori è l’analisi mediante scansione dei prodotti
ai raggi X (per approfondimenti vedere il capitolo 2).
La scansione ai raggi X non è una tecnica innovativa, in quanto viene costantemente utilizzata sia in
campo medico per effettuare le radiografie, che negli aeroporti per effettuare controlli sui bagagli
dei passeggeri durante la fase di check-in.
Tuttavia, questa metodologia assodata si presta molto bene al caso del riconoscimento di prodotti
alimentari.
Questo tipo di ispezione è totalmente sicuro nei confronti del cibo e permette di analizzare i prodotti
indipendentemente dalla fattura e dal materiale del contenitore.
Sfruttando i vantaggi dell’uso dei raggi X, questi risultati si possono conseguire con lo sviluppo di
un software dedicato che, nel caso di questa tesi, consiste nell’implementazione di un classificatore
neuronale.
Preliminarmente è necessario procedere con l’acquisizione delle immagini che saranno processate
con l’impiego di tale software.
A tale scopo ci si è avvalsi della collaborazione della ditta I.Ri.S. S.r.l (Istituto di Ricerca e
Sviluppo Hi-Tech), presso la Special Tubi Uno S.r.l.
L’I.Ri.S. opera nel settore della progettazione e costruzione di impianti e macchinari industriali per
le Medie e Grandi Imprese e il suo obiettivo principale è quello della risoluzione di problematiche
legate alla sicurezza e qualità alimentare.
Su queste basi, nasce la ISPRX-FBC (Flat Bed Compact) o “a tappeto”. Si tratta di una macchina
ispezionatrice ai raggi X (Figura 1.1), dotata di un unico sistema di scansione e rilevazione RX e di
un proprio nastro trasportatore interno sul quale transitano i prodotti da ispezionare. Il sensore RX
incorporato è di nuova generazione da 512 pixel, lineare, ad alto contrasto, con bassa richiesta di
emissione, lunga durata e risposta veloce.
Figura 1.1 – Macchina ispezionatrice ai raggi X.
I dati acquisiti dal sensore vengono convertiti in un’immagine rappresentante la scansione
radiografica del prodotto.
Il sensore è costituito da un array di 512 foto-diodi disposti verticalmente, davanti ai quali scorre il
prodotto. Di conseguenza la massima risoluzione verticale dell’immagine acquisita è di 512 pixel.
Dato che l’acquisizione viene fatta riga per riga, l’immagine radiografica viene composta come
affiancamento di linee verticali di 512 pixel di altezza.
Il sensore può essere calibrato opportunamente, in base al tipo di prodotto da ispezionare,
specificando il valore della potenza (kVolt · mAmpere). Dalla potenza impostata dipende la qualità
delle immagini scansionate: più potenza si dà al tubo, più la radiazione che attraversa il prodotto
produrrà immagini intense.
A seconda della calibrazione del sensore, nell’immagine si ha un diverso valore di radio-opacità
(capacità del prodotto di assorbire i raggi X che lo attraversano). Per avere un valore medio di
radio-opacità, si è pensato di sfruttare il metodo dell’acquisizione ripetuta delle immagini, che
consiste nell’acquisire più volte la stessa immagine settando, per ciascuna, il sensore a tensioni
differenti.
Per fare alcune valutazioni sul valore di luminosità del prodotto, è necessario operare una procedura
di allineamento (di cui si tratta nel capitolo 3) delle immagini considerate rispetto ad una stessa
immagine in modo da avere corrispondenza tra i pixel nelle varie acquisizioni. Tramite queste
valutazioni è possibile fare un’indagine per determinare quali sono le tensioni ottimali alle quali
acquisire le immagini. Le tensioni di acquisizione sono scelte secondo determinati parametri che
vengono discussi nel dettaglio nel capitolo 5.
Una volta pronto il set di immagini si può implementare un algoritmo di classificazione, che nel
caso di questa tesi, consiste in una rete neuronale.
Una rete neuronale è un sistema computazionale ispirato ai sistemi neuronali biologici, che si basa
sul modello del Multilayer Perceptron realizzato da Frank Rosenblatt alla Cornell University.
Riguardo all’obiettivo di questa tesi, una rete neuronale opera, sulla base di un set di esempi di
training, una classificazione dei vari prodotti analizzati. Il funzionamento di una rete neuronale
viene descritto approfonditamente nel capitolo 4.
Completata la fase di addestramento della rete, si procede con quella di verifica dell’algoritmo di
classificazione. In questa fase, si presenta alla rete un set di esempi di test per verificare il corretto
funzionamento dell’algoritmo. Tutti gli aspetti riguardanti questa parte di verifica sono trattati con
attenzione nel sesto capitolo.
A questo punto, prima di entrare nel dettaglio delle varie procedure, degli algoritmi di calcolo e del
software implementato, di cui sinora si è fatto cenno in sintesi, si approfondiranno alcuni aspetti
riguardo i raggi X.
2. I raggi X
Una radiazione è un agente che trasporta energia da un punto ad un altro attraversando lo spazio
o la materia.
Il percorso della radiazione sarà condizionato dalle interazioni con la materia che incontra. Ci sono
due tipi di radiazioni: radiazioni costituite da particelle che trasportano energia sotto forma di
energia cinetica (elettroni, protoni, neutroni, particelle alfa, ecc.) e radiazioni elettromagnetiche
(E.M.) che trasportano energia senza la presenza di particelle aventi massa (onde radio, luce visibile
e raggi X). La radiazione elettromagnetica consiste nel trasporto di energia in quantità discrete
chiamate “quanti” di energia, o fotoni (particelle di massa 0).
Due importanti caratteristiche della radiazione elettromagnetica sono: la traiettoria rettilinea e la
capacità di attraversare gli oggetti. La quantità di materiale che la radiazione può attraversare
dipende dalla composizione del materiale e dall’energia della radiazione. Le radiazioni di bassa
energia (come la luce visibile) non penetrano molto profondamente, ma i raggi X, a più alta energia,
possono attraversare notevoli spessori. Queste due caratteristiche (penetrazione e traiettoria
rettilinea) sono particolarmente evidenti nell’analisi radiografica. Quando i raggi X penetrano in un
oggetto, alcuni interagiscono con l’oggetto stesso, ma i rimanenti, sempre viaggiando in linea retta e
colpendo una superficie sensibile ai raggi, possono produrre un’immagine che dà indicazioni della
dimensione, della struttura e della composizione interna dell’oggetto.
I raggi derivano dal frenamento di elettroni ad alta velocità quando entrano in una sostanza. Questo
processo avviene in modo controllato in un tubo per raggi X, dove gli elettroni sono accelerati in
modo da raggiungere un’alta velocità e poi fatti urtare contro un “bersaglio”. L’interazione fra gli
elettroni incidenti e gli atomi del bersaglio determinano la formazione dei raggi X. L’energia totale
dell’elettrone incidente sarà convertita in fotoni X e in calore. L’efficienza di produzione dei raggi
X è molto bassa: infatti solo l’1% dell’energia cinetica prodotta incidente diventa raggi X, il resto si
trasforma in calore. E’ per questo necessario raffreddare costantemente il tubo tramite aria o liquidi.
2.1. Principi di formazione dell’immagine
I raggi X sono generalmente invisibili e viaggiano alla velocità della luce. Sebbene questi non
possano essere rilevati per mezzo di lenti o prisma, il fascio di raggi X può essere rilevato da
particolari materiali in grado di convertire la loro lunghezza d’onda in quella della luce visibile.
Viene qui in essere il principio delle macchine a raggi X: il fascio di raggi X generato dal tubo va a
colpire un elemento che ne carpisce l’intensità. Questo elemento in una prima fase storica era una
lastra sensibile ai raggi X, oggi diverse tecnologie trovano spazio in questo settore.
Il punto di partenza di tutte le nostre analisi è la frapposizione di un corpo solido fra la fonte e la
destinazione dei raggi X.
I raggi X sono fotoni come quelli della normale luce visibile, soltanto hanno più energia e una
lunghezza d’onda minore.
Questo processo ha la conseguenza che la luce non passa attraverso il corpo perché il corpo è
“troppo spesso”, mentre i raggi X, che hanno sufficiente energia, riescono a farlo. A questo punto è
facile intuire come mai nelle lastre (vedi Figura 2.1), quando si interpone un corpo fra fonte e
destinazione dei raggi X, ci sono parti più scure e parti più chiare: le zone della lastra colpite dai
raggi X diventano più scure. Questo significa che parti diverse della lastra ricevono differenti
quantità di raggi X.
Figura 2.1 - Lastra sensibile ai raggi X che ne carpisce l’intensità.
Questo spiega anche un’altra cosa: ogni volta che c’è più materia, sia che il corpo sia più spesso, sia
che abbia maggiore densità, arrivano meno raggi X.
Ad esempio nel campo medico, le ossa appaiono più chiare nelle immagini perché sono più dense
del resto del corpo ed attenuano la quantità di raggi che colpiscono la lastra.
2.1.1. Immagini digitali
Negli ultimissimi anni, sul mercato dell’imaging, si è affacciato qualcosa di radicalmente
innovativo, offrendo un nuovo standard nelle tecnologie di acquisizione tramite raggi X: i sensori
digitali per raggi X di tipo lineare e matriciale. I sensori lineari (512 pixel, ovvero 512 unità
elementari del sensore di dimensioni 0,4 mm per 0,4 mm) permettono di ottenere 512 rilevazioni di
raggi X lungo una linea, mentre i sensori matriciali (512 x 512 pixel) riescono ad ottenere 512 x 512
rilevazioni di raggi X per area quadrata. E’ facile capire come la qualità delle immagini ottenute sia
notevolmente migliorata.
Le immagini digitali sono caratterizzate dal fatto che il segnale, prima di essere utilizzato per la
generazione dell’immagine, subisce un processo di conversione da analogico a digitale, in modo
che solo un numero discreto di valori possa essere rappresentato sull’immagine finale. Per meglio
capire il processo, riportiamo la descrizione di quanto avviene in Figura 2.2: un fascio di raggi X
investe un corpo con all’interno parti più e meno dense. Il fascio di raggi, dopo aver attraversato la
materia, va a depositarsi su un sensore composto da tanti pixel con carica in stato 0. La quantità di
raggi X ricevuta viene tramutata dal pixel in carica elettrica, quindi il numero di cariche elettriche
risultanti sarà tanto più elevato quanto il pixel del sensore riceverà raggi X. In sintesi, se il fascio di
raggi X non attraversa materia, il pixel del sensore convertirà il segnale con picco massimo di carica
elettrica e nel punto in cui il fascio attraversa il punto più denso della materia, il pixel del sensore
convertirà il segnale nel picco minimo di carica elettrica.
Figura 2.2 - Funzionamento del sensore digitale.
Le informazioni che provengono dagli elementi sensibili (CCD) sono immagazzinati nella memoria
del PC attraverso una scheda di acquisizione immagini. Questa acquisizione avviene componendo i
dati in righe e colonne. Mentre le righe sono equivalenti alle dimensioni fisiche di ogni elemento
sensibile, le colonne rappresentano l’elaborazione delle informazioni provenienti all’area sensibile
in un arco di tempo ben determinato.
Le macchine sono capaci di acquisire ed elaborare 3000 informazioni al secondo provenienti
dall’area sensibile, generando un’immagine ad altissima risoluzione. A questo punto inizia
l’elaborazione dell’immagine ottenuta andando ad analizzare ogni singola cella della matrice
(righe/colonne) determinata (Figura 2.3).
Figura 2.3 - Matrice contenente le informazioni
provenienti dagli elementi sensibili del sensore.
2.2. Perché usare i raggi X
a) Vantaggi - La ragione più evidente per la quale un’azienda debba introdurre l’utilizzo di
macchine a raggi X è la risultante maggiore qualità dei propri prodotti. Usare i raggi X è
anche economicamente conveniente in quanto all’interno di questa tecnologia sono
raggruppate diverse caratteristiche che permettono l’unificazione di macchine che altrimenti
dovrebbero essere comprate separatamente per espletare ognuno alla propria funzione:
• Metal detector: è un prodotto capace di rilevare sottili quantità (da una frazione di
grammo in avanti) di metallo nel contenuto del prodotto;
• Check weigher: è un prodotto in grado di garantire al produttore di non immettere sul
mercato beni che abbiamo un peso inferiore a quello indicato;
• Optical inspection system: è in grado di analizzare contenitori trasparenti e vuoti
andando a riconoscere eventuali contaminanti nel prodotto trasparente.
b) Prestazioni - L’ispezione a raggi X permette un controllo di qualità che non può essere
raggiunto con altre tecnologie:
• tipo di packaging: tutti, i contenitori metallici non sono un problema;
• tipo di contenuto del prodotto: tutti (densità, temperatura, salinità, umidità del prodotto
non sono rilevanti);
• tipo di contaminanti: metallo, vetro, pietre, ossa, noccioli della frutta, plastica ad alta
densità, gomma ad alta densità, ceramica e vuoti (es. bolle d’aria);
• prestazioni di rilevamento: più alte sullo stesso tipo di contaminante (es. su acciaio
inox);
2.3. Caratteristiche del prodotto ispezionato
I risultati dell’ispezione dipendono dalle seguenti caratteristiche dei prodotti: spessore, omogeneità
e densità.
a) Variazione dello spessore - A parità di omogeneità e densità, un prodotto spesso è più
difficile da esaminare di un prodotto sottile; ciò accade perché i raggi X che giungono alla
parte sensibile del sistema per la rilevazione sono sicuramente superiori se hanno
attraversato un corpo sottile. Infatti nel caso in cui i raggi attraversino un corpo più spesso
parecchia energia sarà assorbita durante il tragitto. Un esempio di prodotto spesso e di
prodotto sottile è quello in Figura 2.4.
Figura 2.4 - Immagini relative a formaggio spesso (sulla sinistra)
e a formaggio sottile (sulla destra).
b) Variazione di omogeneità - A parità di spessore e densità, un prodotto omogeneo è più
facile da esaminare di uno non omogeneo, perché la prima immagine è meno “disturbata”
della seconda. Infatti ci sono punti in cui il cambiamento di omogeneità potrebbe ingannare
il sistema, facendo interpretare questo salto come contaminante. Un esempio di prodotto
omogeneo e di prodotto non omogeneo è quello in Figura 2.5.
Figura 2.5 - Immagini relative a hamburger (sulla sinistra)
e a bacon (sulla destra).
c) Variazione di densità - A parità di spessore e omogeneità, un prodotto con più alta densità
è molto più difficile da esaminare rispetto a uno meno denso in quanto il primo crea
un’immagine più scura della seconda, quindi più complicata da elaborare; ciò accade perché
l’energia dei raggi X, che risulta su un sensore dopo aver attraversato un prodotto con più
alta densità, è minore dell’energia dei raggi X che risulta su un sensore dopo aver
attraversato un prodotto a bassa densità. Un esempio di prodotto più denso e di un prodotto
meno denso è quello in Figura 2.6.
Figura 2.6 - Immagini relative a formaggio con alta densità (sulla sinistra)
e a formaggio con bassa densità (sulla destra).
3. Allineamento automatico di immagini RX
L’allineamento di tre immagini, che contengono lo stesso oggetto da esaminare, è propedeutico
all’obiettivo finale di questa tesi, ossia il riconoscimento di prodotti alimentari, e consiste nel creare
una nuova immagine in cui i tre oggetti assumono la medesima posizione.
La necessità di tale allineamento nasce dal fatto che gli oggetti, nel momento in cui le immagini
vengono acquisite, potrebbero trovarsi in posizioni diverse, quindi per poterli esaminare bisogna
sistemarli in modo che coincidano.
Il risultato di questa operazione è un’immagine a colori, quindi costituita da tre componenti RGB
(rosso, verde e blu): alla componente rossa viene assegnata una delle tre immagini da allineare, alla
componente verde viene assegnata la seconda immagine allineata rispetto alla prima e alla
componente blu l’immagine rimasta, allineata sempre rispetto alla prima. L’immagine finale,
dunque, contiene un unico oggetto il cui valore di intensità dipende dalla combinazione lineare dei
valori di intensità dei pixel corrispondenti nelle immagini a sfumature di grigio.
Adesso verrà illustrato il procedimento da seguire per allineare due immagini, poiché l’allineamento
viene eseguito sulla seconda immagine rispetto alla prima e sulla terza immagine rispetto alla
prima.
Per prima cosa bisogna estrarre dalle immagini gli oggetti d’interesse, separandoli da quelle che
sono le zone di non interesse, come per esempio lo sfondo o eventuale rumore. Ciò è possibile
applicando un’operazione di sogliatura globale ad ambedue le immagini.
La sogliatura è un metodo che, sulla base del valore di intensità dei pixel, suddivide l’immagine in
porzioni i cui pixel soddisfano la stessa caratteristica.
Per fare ciò, si visualizza l’istogramma dell’immagine, che rappresenta il numero di occorrenze dei
pixel che hanno lo stesso valore di intensità, e si scelgono due soglie rappresentanti due valori
d’intensità: tutti i pixel il cui valore d’intensità non appartiene all’intervallo vengono associati ad
una regione ed etichettati con 0; tutti i pixel il cui valore di intensità appartiene all’intervallo scelto
vengono associati ad un’altra regione ed etichettati con 1 o con il valore originario d’intensità. Nel
primo caso si ottiene un’immagine binaria con valori a 0 per lo sfondo ed a 1 per le regioni che si
intende selezionare (immagine segmentata binaria); nel secondo caso si ottiene un’immagine con
valori sempre a 0 per lo sfondo, ma alle regioni selezionate viene assegnato il valore d’intensità
originario del pixel (immagine segmentata con valori originari).
Indicando con s(x,y) il valore di intensità del pixel nell’immagine segmentata, con f(x,y) il valore di
intensità originario del pixel e con T
1
e T
2
le due soglie scelte dall’istogramma, questo metodo è
descritto dalla formula (3.1).
⎩
⎨
⎧
≤≤
><
=
21
21
),( ),( 1
),( ),( 0
),(
TyxfTseyxfo
TyxfoTyxfse
yxs
(3.1)
Un esempio di applicazione di sogliatura globale può essere fornito dalle immagini in Figura 3.1. In
tale Figura, (a) rappresenta l’immagine originaria a livelli di grigio; (b) raffigura l’istogramma
dell’immagine originaria, che rappresenta una descrizione in un certo senso globale delle
caratteristiche visuali dell’immagine e nel quale, sull’asse delle ascisse, sono rappresentati i livelli
di grigio (da 0 a 255) e sull’asse delle ordinate il numero di pixel dell’immagine con un determinato
livello di grigio; e (c) rappresenta l’immagine segmentata binaria. Si può notare come l’oggetto
viene selezionato e separato dalle informazioni di sfondo e di lieve rumore presenti nell’immagine
originaria.
(a) - Immagine originaria
rappresentante arachidi.
(b) - Istogramma dell’immagine
originaria.
(c) - Immagine
segmentata binaria.
Figura 3.1
Nonostante ciò, la sogliatura globale ha delle limitazioni, in quanto non è sempre facile scegliere le
due soglie, soprattutto nel caso in cui l’istogramma dell’immagine non è così semplice.
L’istogramma ideale è, infatti, quello bimodale, cioè costituito da due mode ben distinguibili tra di
loro, come quello mostrato in Figura 3.2 (a): in un istogramma di questo tipo una delle due soglie
può essere individuata tra una moda e l’altra.
(a) – Esempio di istogramma bimodale.
(b) – Esempio di istogramma non bimodale.
Figura 3.2
Quando invece si lavora con istogrammi come quello in Figura 3.2 (b), la scelta delle due soglie
non è più così facile, poiché le mode non sono separate e si sovrappongono. Non è il caso delle
immagini oggetto di questa tesi, poiché queste sono immagini in scala di grigio in cui l’oggetto
rappresentato è abbastanza scuro rispetto allo sfondo quasi uniformemente bianco. Per cui
nell’istogramma le occorrenze dei pixel rappresentanti lo sfondo sono notevolmente separate da
quelle che rappresentano l’oggetto. Un esempio di tale istogramma è quello in Figura 3.1 (b).
Dopo aver applicato la sogliatura globale ad ambedue le immagini ed ottenuto quelle segmentate,
sia quelle binarie che quelle col valore d’intensità originario dei pixel, per avere delle immagini
meno rumorose, si applica ad esse il filtro mediano, per effetto del quale un pixel è sostituito dal
valore mediano dei pixel nell’intorno.
Per esempio, dato un frammento di immagine come quello rappresentato in Figura 3.3, un filtro
mediano 3 x 3 opera nel modo illustrato nella stessa figura:
4057110
38107115
295235
⇒
4057110
3852115
295235
Figura 3.3 – Sulla sinistra è raffigurato un frammento di immagine e sulla destra
il risultato ottenuto dopo l’applicazione del filtro mediano.
Si ricorda che il mediano M di un insieme di valori è tale che metà dei valori sono minori di M e
metà dei valori sono maggiori di M. Pertanto, nell’intorno di ogni pixel, si devono ordinare i valori
dei pixel in esso contenuti, compreso quello centrale, ed il valore mediano di essi è assegnato al
pixel centrale. Considerando l’esempio in Figura 3.3 si ha:
29, 35, 38, 40, 52, 57, 107, 110, 115
dove 52 è il valore mediano.
Quindi l’effetto del filtro mediano è di forzare i pixel ad assumere un valore uguale a quello di uno
dei pixel circostanti, eliminando così eventuali spike isolati di intensità, che sono quelli con cui di
solito si manifesta il cosiddetto rumore impulsivo (o salt-and-pepper).
Il filtro mediano è un esempio di una classe di filtri nota come order-statistics: il loro effetto, in
generale, è di sostituire al pixel centrale della regione dell’immagine ricadente nell’area del filtro
uno degli altri pixel, determinato sulla base di un ranking dei loro valori.
In Figura 3.4 è illustrata l’immagine segmentata binaria, corrispondente a quella rappresentata in
Figura 3.1, ed il relativo risultato dell’applicazione del filtro mediano.
Come si può notare, l’applicazione del filtro mediano all’immagine segmentata binaria, ha ridotto il
rumore di quest’ultima vicino ai bordi dell’oggetto d’interesse.
(a) – Immagine segmentata binaria.
(b) – Immagine segmentata binaria dopo
l’applicazione del filtro mediano.
Figura 3.4
A questo punto si procede col calcolo dei baricentri degli oggetti, per poterli sovrapporre,
utilizzando le immagini binarie.
Il baricentro di un oggetto si può considerare come una sorta di centro di simmetria che tiene conto
della distribuzione dei valori d’intensità dei pixel dell’immagine. Inoltre, è una proprietà intrinseca
dell’oggetto che non varia per roto-traslazione.
Se N è il numero dei pixel dell’immagine, l’ascissa e l’ordinata del baricentro, indicate
rispettivamente con x
b
e y
b
, si ottengono dalle formule (3.2), in cui x
i
, y
i
e p
i
sono rispettivamente
l’ascissa, l’ordinata ed il valore d’intensità dell’i-esimo pixel.