Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...

Pagina creata da Christian Ventura
 
CONTINUA A LEGGERE
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
Università degli studi di Catania
              Facoltà di Ingegneria Informatica

Orange Discrimination Automatic System

                                       Mazza Dario
                                 Merlino Sebastiano
                            Monaco Davide Giuseppe
                       Priscimone Eugenio Giuseppe
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
INDEX

		   1. Introduzione						               pag 3

		   2. Elaborazione delle immagini			   pag 6

		   3. Rete neurale FANN 				           pag 11

		   4. Implementazione hardware			      pag 15

		   5. Risultati ottenuti		   			       pag 17

		   6. Conclusioni			         			       pag 21

                                                  2
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
1. Introduzione

1. Introduzione

       Questo elaborato riguarda la realizzazione di un sistema per la rilevazione e il
riconoscimento automatico dei difetti presenti sulla buccia delle arance. L’obiettivo
principale è quello di migliorare il sistema FEDRAS (sviluppatto in MATLAB),
considerato come base di partenza del lavoro svolto, e fornire una soluzione più
performante in termini di efficacia, efficienza e affidabilità. Inoltre si vuole trovare
un sistema che possa essere implementato su FPGA, al fine di proporre anche una
soluzione hardware, aspetto completamente ignorato in FEDRAS.
         Si è realizzato quindi in linguaggio C, un sistema per l’acquisizione,
l’elaborazione e il riconoscimento dell’immagine, a cui segue la classificazione tramite
l’utilizzo di una rete neurale.
       Il sistema presentato riceve in ingresso l’immagine di un’arancia su sfondo
bianco, effettua un filtraggio, per isolare l’arancia dallo sfondo in modo da ridurre lo
spazio computazionale e favorire la rapidità di riconoscimento, l’ estrazione e l’analisi
delle imperfezioni.
       Per ricavare informazioni relative ai difetti, si provvede prima ad isolarli
utilizzando un algoritmo di path-finding e quindi ad estrarre le features che vengono
utilizzate per costituire gli ingressi della rete neurale. Per effettuare la classificazione,
si è utilizzata una rete multi-layer perceptron MLP sviluppata tramite la libreria FANN
(Fast Artificial Neural Network) scritta in C.
       Il regolamento CEE del 10 Aprile 1989 (N. 920) stabilisce le norme di
qualità per gli agrumi ed in particolare mette in evidenza le caratteristiche minime,
la classificazione e la calibratura. Quest’ultima è determinata secondo il diametro
massimo della sezione normale dell’asse del frutto: sono esclusi i frutti di diametro
inferiore ai 53 mm.

                                                                                                3
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
1. Introduzione

Per quanto riguarda le caratteristiche minime, in tutte le categorie, tenuto conto delle
disposizioni specifiche previste per ogni categoria e delle tolleranze ammesse, le
arance devono essere :
• intere;
• sane: sono esclusi i prodotti che presentino alterazioni tali da renderli inadatti al
   consumo;
• esenti da danni e/o alterazioni esterne dovuti al gelo;
• pulite: praticamente prive di sostanze estranee visibili;
• prive di umidità esterna anormale;
• prive di odore e/o sapore estranei.
Le arance devono essere state raccolte con cura e aver raggiunto un adeguato grado
di sviluppo e di maturazione, rispondente alle caratteristiche proprie della varietà e
della zona di produzione. Il loro grado di maturazione deve essere tale da consentire:
il trasporto, le operazioni connesse e l’arrivo al luogo di destinazione in condizioni
soddisfacenti. Secondo la suddetta norma le arance si classificano in tre categorie:

Categoria “Extra”
Le arance di questa categoria devono essere di qualità superiore. La loro forma,
l’aspetto esteriore, lo sviluppo e la colorazione devono presentare le caratteristiche
della varietà. Esse devono essere prive di difetti, fatti salvi leggerissimi difetti
superficiali purché non pregiudichino la qualità, l’aspetto generale del prodotto o la
presentazione dell’imballaggio.

                          Figure 1: Arance di categoria “Extra”

                                                                                           4
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
1. Introduzione

Categoria “I”
Le arance di questa categoria devono essere di buona qualità. Esse devono presentare
le caratteristiche tipiche della varietà o del tipo, tenuto conto dell’epoca di raccolta e
delle zone di produzione.
Sono ammessi tuttavia i difetti seguenti: lieve difetto di forma, lieve difetto di
colorazione, lievi difetti dell’epidermide congeniti alla formazione del frutto
(rameggiatura argentata, rugginosità, ecc), lievi difetti cicatrizzati dovuti a cause
meccaniche (grandine, sfregamento, urti durante la manipolazione, ecc).

                          Figure 2: Arance di categoria “I”

Categoria “II”
Questa categoria comprende le arance che nel loro insieme non possono essere
classificate nelle categorie superiori, ma che corrispondono alle caratteristiche minime
sopra definite.
Sono ammessi difetti di forma, di colorazione, di rugosità della buccia, alterazioni
superficiali e cicatrizzate dell’epidermide, lieve e parziale distacco del pericarpo.

                              Figure 3: Arance di categoria “II”

                                                                                             5
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
2. Elaborazione delle immagini

2. Elaborazione delle immagini

       La cattura dell’immagine non è considerata nel presente elaborato: questo
tuttavia non rappresenta una limitazione al lavoro, in quanto il sistema può accettare
immagini in formato BMP da diversi supporti.
       Come già accennato il sistema presentato riceve in ingresso l’immagine di
un’arancia su sfondo bianco, effettua un filtraggio, per isolare l’arancia dallo sfondo in
modo da ridurre l’area di lavoro e favorire la rapidità di riconoscimento, l’ estrazione
e l’analisi delle imperfezioni. Una volta acquisita l’imagine, si passa al processamento
della stessa, partendo dal Pattern Recognition, al fine di distinguere pattern di interesse
dalle osservazioni acquisite in precedenza e classificarli in maniera opportuna.
       La progettazione di un sistema di Pattern Recognition, per il riconoscimento di
immagini digitalizzate può essere scomposto in più fasi distinte:
•      acquisizione;
•      pre-elaborazione e normalizzazione;
•      rappresentazione;
•      decisione e classificazione;

                   Figure 4: Schema a blocchi di un sistema di pattern recognition.

                                                                                                   6
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
2. Elaborazione delle immagini

       Il blocco di Acquisizione è composto da tutte quelle fasi che portano da una
immagine ad una sua rappresentazione sotto forma di matrice numerica. Nel sistema
proposto l’immagine viene caricata in un vettore di unsigned char*; ogni pixel
dell’immagine è rappresentata nel vettore tramite le componenti RGB (rosso verde e
blu) caricate in tre celle adiacenti.

                               Figure 5: Acquisizione dell’immagine

       Fatto questo il vettore viene passato al blocco di Preprocessing. Questo permette,
attraverso una serie di elaborazioni, di rappresentare l’immagine originale in una
maniera più adatta ad essere trattata nelle successive fasi di elaborazione. In primo
luogo il numero di pixel da analizzare viene notevolmente ridotto, ritagliando solo
l’area d’interesse utilizzando un pattern geometrico.

           Figure 6: Rimozione dello sfondo per ridurre il numero di pixel da analizzare.

                                                                                                    7
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
2. Elaborazione delle immagini

         Successivamente eseguendo un analisi sullo spazio dei colori individuato da
un’arancia sana, si possono identificare i valori di rosso, verde e blu caratteristici di
un’arancia con epidermide priva di alterazioni.

                  Figure 7: Distribuizioni di Rosso, Verde e Blu in un’arancia sana.

         La figura 7 mostra come le componenti di rosso e verde sono quelle
predominanti. Un’analisi più attenta ha permesso la realizzazione di un filtro RG
composito che porti al riconoscimento e conseguente eliminazione dello sfondo e
all’individuazione dei difetti. Esso opera discriminando i pixel secondo la seguente
legge:

                               R - G < 50         &&       B < 100

         Una volta individuate le anomalie presenti sulla buccia, attraverso il blocco
di Estrazione delle features si ottiene una descrizione tramite primitive strutturali
dell’immagine originale. In questo modo si riesce a concentrare l’informazione in
pochi dati, ottenendo un maggiore potere discriminante ed una diminuzione dei
dati utilizzati. I difetti riscontrati vengono in primo luogo processati mediante
l’operatore morfologico di espansione, e infine vengono identificati come anomalie e
numerate, per poi essere classificati dalla rete neurale secondo le loro caratteristiche.
L’identificazione delle macchie avviene nuovamente tramite un algoritmo path-finding

                                                                                                    8
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
2. Elaborazione delle immagini

che ricerca il colore e rileva i contorni. L’immagine in uscita al filtro RG composito
presenta infatti solo i colori bianco, per i difetti riscontrati a cui è già stata applicata
l’espansione, e nero per lo sfondo e per le aree di nessuno interesse.

                Immagine analizzata                        Eliminazione dello sfondo e
                                                            riconoscimento dei difetti
                                                              tramite RG composito

                       Figure 8: Immagine originale processata dal filtro RG.

       A questo punto, l’immagine verra analizzata partendo dal primo pixel in alto
a sinistra, scorrendo i pixel da sinistra verso destra finche non viene trovato un pixel
bianco, ossia l’inizio di un difetto. Se ciò avviene il pixel trovato verrà considerato
come kernel e si effettuerà una ricerca sui suoi otto pixel vicini per rilevare il contorno
del difetto. Tutto ciò avviene ricorsivamente ogni volta che viene individuato un pixel
bianco tra i vicini fino alla chiusura del contorno del’anomalia riscontrata.

                           Figure 9: Rilevazione del contorno dei difetti.

                                                                                                   9
Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
2. Elaborazione delle immagini

       Una volta individuato e marcato con un colore caratteristico il contorno
dell’anomalia si passa al riempimento della stessa, riga per riga da sinistra verso destra
con lo stesso colore del contorno. Lo stesso procedimento verrà effettuato per gli
altri difetti evidenziati dal filtro RG composito.

           Eliminazione dello sfondo e                           Estrazione delle features
            riconoscimento dei difetti
              tramite RG composito

                 Figure 10: Features estratte a partire dal filtraggio RG composito.

       Il blocco di Classificazione effettua il confronto tra la descrizione ottenuta a valle
delle precedenti fasi con un insieme di modelli possibili (presi come riferimento),
in modo da poter giungere all’attribuzione della componente in esame, come
appartenente ad una delle classi possibili.

                                                                                                     10
3. Rete neurale FANN

3. Rete neurale FANN

       Il blocco di Classificazione è rappresentato da una rete multi-layer perceptron
MLP. Una rete multistrato MLP è una rete di tipo feed-forward costituita da uno strato
di neuroni di input (ognuno dei quali corrisponde ad una variabile esplicativa), da uno
o più strati nascosti (hidden layers), ognuno dei quali composti da un certo numero di
neuroni e da uno strato di output, costituito da tanti neuroni quante sono le variabili
risposta.

                  Figure 11: Rete feed-forward MLP con uno strato nascosto.

       Tale rete è stata implementata usando la libreria FANN ed è costituita da
un input a quattro dimensioni, uno strato input di venticinque neuroni, uno strato
nascosto di quaranta neuroni e uno strato output a due neuroni. La rete è stata
allenata su un insieme campione composto da sessantaquattro immagini, da cui sono
state estratte, utilizzando l’algoritmo sviluppato in C, 286 anomalie che sono state
differenziate secondo tre tipi di feature e ad ognuna è stato assegnato un valore.

                                                                                                 11
3. Rete neurale FANN

Più precisamente si sono assegnati i valori:

• 1 - Assenza di anomalia nella buccia;
• 2 - Picciolo;
• 3 - Presenza di anomalie nella buccia;

       Come ingressi sono stati utilizzati la media del rosso, la media del verde, la
media del blu e il massimo del verde.
       Sono state effettuate diverse simulazioni variando le funzioni di attivazione
per gli strati nascosti e il numero di neuroni.
       I migliori risultati sono stati ottenuti utilizzando come funzione di attivazione
per i tre strati rispettivamente la funzione sigmoide simmetrica (tansig in MATLAB),
la funzione gaussiana (radbas) e la funzione sigmoidea (logsig).
       Nella seguente figura vediamo come le performance di training e di validation
hanno presentato errori molto bassi dell’ordine di 10-2.

                    Figure 12: Performance di training e validation della rete.

                                                                                                     12
3. Rete neurale FANN

       Un altro importante grafico è mostrato nella figura 13. Esso rappresenta
sull’asse delle ascisse il set dei dati forniti in ingresso e sull’asse delle ordinate i valori
1 (che indica l’assenza di difetti), 2 (che individua il picciolo) e 3 (che riguarda tutte
le altre imperfezioni). Il test è stato effettuato su un totale di 240 imperfezioni, le
restanti 46 sono state utilizzate in fase di validazione.

                              Figure 13: Risultati del test della rete.

       I dati relativi ai pesi dei collegamenti fra gli strati neurali ottenuti tramite training
utilizzando il Neural Network Toolbox di MATLAB sono stati esportati e riutilizzati per
inizializzare la rete implementata tramite la libreria FANN.
       Come si può notare la rete riconosce e distingue perfettamente il picciolo:
ciò accade perché è stato fornito alla rete un campione di training sufficientemente
omogeneo e presentante un’ampia gamma di piccioli e di altre imperfezioni per
consentire alla rete di capire quali caratteristiche contraddistinguono le features che
appartengono o meno al picciolo. Infatti non a caso uno dei valori di ingresso forniti
alla rete è proprio il massimo valore del verde che caratterizza principalmente il
picciolo.

                                                                                                   13
3. Rete neurale FANN

Il corretto funzionamento della rete è apprezzabile ed evidenziato dal grafico relativo
alla validation.

                              Figure 14: Validation della rete.

                                                                                          14
4. Implementazione hardware

4. Implementazione hardware

      A questo punto dell’elaborato si ha a disposizione un sistema funzionante in
modo corretto. Il prossimo step consiste nell’installazione di tale sistema su FPGA
per raggiungere lo scopo prefissato.
      Il sistema implementato è stato installato su NIOS II processor, un processore
creato appositamente per la progettazione di sistemi embedded in FPGA. Il codice è
stato compilato correttamente.
      Successivamente si è portato il codice su hardware, utilizzando la scheda
CYCLONE2 FPGA 2C20N.

                           Figure 15: CYCLONE2 FPGA 2C20N.

      Per quanto riguarda l’elaborazione delle immagini il sistema risulta funzionante
e l’esecuzione ha dato buoni risultati. Le immagini sono state passate tramite porta
seriale. Anche il blocco di classificazione risulta ben funzionante e i risultati sono
soddisfacenti.

                                                                                         15
4. Implementazione hardware

      Un unico difetto è stato riscontrato nella tempistica delle elaborazioni e delle
classificazioni. Queste operazioni vengono infatti eseguite nell’ordine di secondi,
al pari dell’esecuzione su calcolatore, e non di centinaia di millisecondi come ci si
aspettava.
      Tuttavia è necessario considerare che attualmente la EEPROM della scheda
non è stata programmata ma si è utiliazzata la funzionalità JTAG Programming. Questa
permette di eseguire un software senza programmare la scheda, risultando però
altamente penalizzante per i tempi di esecuzione.
      Inoltre la descrizione dell’hardware utilizzata non è ottimizzata per lo scopo
proposto, in quanto vengono modellate periferiche (LED, display esadecimale, VGA,
ecc.) che non sono effettivamente utilizzate dal software.
      Infine le dimensioni delle immagini analizzate sono maggiori di quanto
effettivamente necessario. Ciò è stato volutamente fatto al fine di poter apprezzare
maggiori dettagli, anche se ovviamente ha comportato un maggiore impiego di tempo
nell’elaborazione.

                                                                                         16
5. Risultati ottenuti

5. Risultati ottenuti

      Una volta che il sistema è stato installato su FPGA, si è proceduto ad una
nuova simulazione con il seguente set di venticique nuove immagini.

          Figure 16: Set di immagini utilizzato per vtestare il funzionamento su FPGA.

                                                                                                       17
5. Risultati ottenuti

     Sono stati ottenuti i seguenti risultati:

Nome            Anomalie Macchie            Tempo di          Tempo di        Anomalie
dell’immagine   riscontrate riscontrate     elaborazione      classificazione classificate
                                            (secondi)         (secondi)       in modo
                                                                              errato
 arancenew085          4            3            5,21199989     0,88999998         0
 arancenew098          4            3            5,40199995     1,19599997         0
 arancenew109          6            5            6,88100004     1,77999997         0
 arancenew111          6            3            5,92100000     1,49800002         0
 arancenew112          3            2            6,38000011     0,88800001         0
 arancenew113          4            0            6,86899995     1,47399997         1
 arancenew114          5            2            7,74800014     1,50600004         0
 arancenew143          2            1            6,14900016     0,29399999         0
 arancenew144          2            0            6,14499998     0,89700001         0
 arancenew145          2            1            5,44999980     0,59100002         0
 arancenew147          3            2            6,40399980     0,58499997         0
 arancenew148          1            1            5,47499990     0,29899999         0
 arancenew150          1            0            5,13299989     0,59600001         0
 arancenew151          0            0            5,06599998     0,00200000         0
 arancenew152          0            0            5,27400016     0,00200000         0
 arancenew153          1            1            5,33799982     0,29499998         0
 arancenew154          1            1            5,09600019     0,29499998         0
 arancenew155          1            0            5,37400007     0,29699999         0
 arancenew156          1            0            5,28299999     0,59299999         0
 arancenew174          6            2            6,30299997     0,90299999         0
 arancenew175          1            1            6,11199998     0,00200000         0
 arancenew176          1            1            5,21999979     0,00200000         0
 arancenew177          3            0            5,42100000     0,59299999         0
 arancenew178          6            1            5,53299999     1,18799996         0

     Anomalie totali                Macchie totali            Errori di classificazione
         64                             30                                1
    Minimo tempo di               Massimo tempo di                 Tempo medio di
     elaborazione                   elaborazione                    elaborazione
      5,06599998                     7,74800014                      5,799541648
    Minimo tempo di               Massimo tempo di                 Tempo medio di
     classificazione               classificazione                  classificazione
      0, 00200000                    1,77999997                       0,69441666

                                                                                              18
5. Risultati ottenuti

      Dai risultati ottenuti è possibile fare alcune importanti considerazioni:
• Buona parte del tempo viene utilizzata per la scansione dell’immagine, basti notare
   che anche nel caso in cui non sono presenti anomalie, l’elaborazione comporta
   l’impiego di più di cinque secondi (bisognerebe utilizzare le dimensioni ottimali
   dell’immagine per risparmiare più tempo possibile);
• In proporzione il tempo di classificazione è trascurabile: la rete neurale si dimostra
   già molto efficiente nonostante le penalizzazioni già elencate;
• Il tasso di errore è molto basso, sebbene per poter apprezzare una buona stima
   sarebbe necessario un set di immagini più ampio;

      I colori sono utilizzati nel seguente ordine:

		           1.     Rosso
		           2.     Viola
		           3.     Giallo
		           4.     Blue
		           5.     Celeste
		           6.     Verde
		           7.     Beige
		           8.     Verde scuro
		           9.     Rosa
		           10.    Arancio
		           11.    Amaranto
		           12.    Grigio

      Qualora siano presenti più di dodici macchie i colori si ripeteranno ciclicamente.

                                                                                            19
5. Risultati ottenuti

Qui di seguito alcuni esempi dei risultati ottenuti:

                              Arancianew109

                                                       Trovate 6 anomalie.
                                                       Anomalia 1: Tipo 3
                                                       Anomalia 2: Tipo 3
                                                       Anomalia 3: Tipo 3
                                                       Anomalia 4: Tipo 3
                                                       Anomalia 5: Tipo 2
                                                       Anomalia 6: Tipo 3

                              Arancianew113

                                                       Trovate 4 anomalie.
                                                       Anomalia 1: Tipo 1
                                                       Anomalia 2: Tipo 2
                                                       Anomalia 3: Tipo 2
                                                       Anomalia 4: Tipo 1

                              Arancianew148

                                                       Trovate 3 anomalie.
                                                       Anomalia 1: Tipo 3
                                                       Anomalia 2: Tipo 3
                                                       Anomalia 3: Tipo 1

                              Arancianew150

                                                       Trovate 1 anomalie.
                                                       Anomalia 1: Tipo 2

                                                                                    20
6. Conclusioni

6. Conclusioni

       Nel presente elaborato è stato trattato lo sviluppo di un nuovo sistema per il
riconoscimento automatico e la classificazione dei difetti presenti sulla buccia delle
arance.
       La soluzione proposta ha permesso di effettuare l’analisi, l’estrazione e la
successiva classificazione delle features da immagini ad alta definizione in maniera
rapida.
       La classificazione è stata effettuata da una rete neurale feed-forward MLP
implementata tramite la libreria FANN. Gli esperimenti eseguiti mostrano che
con l’utilizzo di questa rete neurale e senza aver adottato nessun accorgimento per
migliorarne le prestazioni, si è ottenuto un elevatissimo tasso di corretta classificazione
che dimostra chiaramente la validità delle caratteristiche estratte.
       In definitiva il sistema risulta soddisfacente da tutti i punti di vista, come si
desiderava esso è:
• Efficace - identifica e classifica correttamente i dati in ingresso;
• Efficiente - svolge il suo lavoro in tempi ragionevoli, il filtro per il riconoscimento
   delle features è più veloce della serie di filtri utilizzati in FEDRAS e la rete
   implementata tramite la libreria FANN è notevolmente più veloce di quella
   implementata in MATLAB;
• Affidabile - è stato testato, con buon esito, su alcuni casi limite che portavano
   FEDRAS allo stallo;

                                                                                              21
Puoi anche leggere