Orange Discrimination Automatic System - Università degli studi di Catania Facoltà di Ingegneria Informatica - Mazza Dario Merlino Sebastiano ...
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli studi di Catania Facoltà di Ingegneria Informatica Orange Discrimination Automatic System Mazza Dario Merlino Sebastiano Monaco Davide Giuseppe Priscimone Eugenio Giuseppe
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
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
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
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
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
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
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
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
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