• Non ci sono risultati.

Analisi e tuning del sistema di elaborazione di una macchina di ispezione per il controllo di qualità del tubo vetro

N/A
N/A
Protected

Academic year: 2021

Condividi "Analisi e tuning del sistema di elaborazione di una macchina di ispezione per il controllo di qualità del tubo vetro"

Copied!
172
0
0

Testo completo

(1)

UNIVERSITÀ DI PISA

FACOLTÀ DI INGEGNERIA

Corso di Laurea Specialistica in

Ingegneria Informatica

Tesi di Laurea

Analisi e tuning del sistema di elaborazione di una

macchina di ispezione per il controllo di qualità

del tubo vetro

Laureando

G

IAN

M

ARIA

B

RUNI

R

ELATORI

:

P

ROF

.

C

OSIMO

A

NTONIO

P

RETE

D

R

.

P

IERFRANCESCO

F

OGLIA

D

R

.

M

ICHELE

Z

ANDA

A

NNO

A

CCADEMICO

2010-2011

T

UTOR

:

I

NG

.

F

EDERICO

G

ALEAZZI  

(2)

1 Analisi dello scenario 1

1.1 Descrizione dello scenario. . . 3

1.2 Sistemi di Visione . . . 5

1.2.1 Vantaggi . . . 6

1.2.2 Limitazioni tecnologiche . . . 8

1.3 Applicazioni industriali esistenti . . . 9

2 La macchina di ispezione 13 2.1 Acquisizione delle immagini . . . 21

2.1.1 Frequenza di campionamento . . . 25

2.2 Le librerie OpenCV . . . 26

2.2.1 Rappresentazione delle immagini . . . 28

2.3 Pre-elaborazione . . . 30

2.3.1 Filtraggio e attenuazione del rumore . . . 33

2.4 Edge detection: il Filtro di Canny . . . 34

2.5 Parametri di qualit`a . . . 40

3 Studio degli elementi critici del sistema 42 3.1 Movimento del tubo . . . 43

(3)

3.1.1 Movimento ondulatorio del tubo . . . 43

3.1.2 Curvatura del tubo . . . 44

3.2 Telecamere lineari . . . 45

3.2.1 Illuminazione non uniforme . . . 46

3.2.2 Messa a fuoco . . . 47 3.2.3 Sensori difettosi . . . 47 3.3 Polvere . . . 48 3.4 Temperatura . . . 50 3.5 Tempo di elaborazione . . . 51 4 Algoritmi proposti 52 4.1 La funzione IndividuaROIImmagine() . . . 53 4.1.1 Algoritmo 1 . . . 54

4.2 Movimento ondulatorio del tubo . . . 61

4.2.1 Algoritmo 2 . . . 62

4.2.2 Confronto tra gli algoritmi 4.1.1 e 4.2.1 . . . 68

4.3 Curvatura del Tubo . . . 69

4.3.1 Analisi del fenomeno di curvatura . . . 73

4.3.2 Filtro lineare con doppio smorzamento esponenziale . . 76

4.3.3 Filtro FIR digitale di tipo passa-basso . . . 77

4.4 Illuminazione non uniforme e Sensori difettosi . . . 89

4.4.1 Algoritmo di Smoothing proposto . . . 90

4.5 Sensori difettosi e Polvere . . . 101

4.5.1 Algoritmo 3 . . . 102

4.6 Temperatura . . . 103

(4)

5 Analisi delle prestazioni e Test 116

5.1 Test Effettuati: pre-elaborazione. . . 118

5.1.1 Numero di difetti e rumore . . . 120

5.1.2 Lunghezza dei difetti . . . 130

5.2 Prestazioni: tempi di elaborazione . . . 135

5.3 Test effettuati per la curvatura del tubo . . . 139

5.4 Sviluppi Futuri . . . 142

A IndividuaROIImmagine() 144

B IndividuaROIImmagineFiltraggio() 152 C Lettura delle temperature 158

(5)

1.1 Esempio di prodotti. . . 2

1.2 Schema della linea di produzione della vetreria . . . 4

2.1 Schema logico delle operazioni per il controllo qualit`a della macchina di ispezione . . . 14

2.2 Esempio di immagine acquisita 2048x1000 (a), estrapolazione del Tubo (b) e regione di interesse interna al tubo (c) . . . 15

2.3 Telecamera Basler L101K . . . 21

2.4 Paletta dei grigi a 8 bit . . . 23

2.5 Illuminatore LED CobraSlim Red . . . 25

2.6 Schema a blocchi delle librerie OpenCV . . . 27

2.7 Immagine di un cubo in 3 dimensioni (a) di cui si trova il punto h (nel caso monodimensionale) teorico (b) e nel caso reale dove l’intensit`a `e affetta da rumore (c). Esempio di filtro passa-alto per eliminare il rumore del caso reale (d) . . . 36

2.8 Distribuzione gaussiana di 2 variabili, G(x,y) con media (0,0) e varianza σ = 1 (a), kernel 5x5 (b) e kernel monodimensionale per la direzione x (c) . . . 39

(6)

3.1 Effetti del movimento ondulatorio del tubo . . . 44

3.2 Bordi del tubo estratti tramite operazione di soglia . . . 45

3.3 Esempio di aumento locale del contrasto . . . 46

3.4 Effetto della polvere sull’obbiettivo della telecamera . . . 49

3.5 Estrazione dell’anomalia dovuta al granello di polvere . . . 49

4.1 Assi di riferimento . . . 53

4.2 Operazioni di Soglia . . . 57

4.3 Istogramma immagine 3.1 . . . 64

4.4 Andamento dei Bordi reperiti con gli algoritmi 1 e 2 (a) e immagine originale ruotata (b). . . 70

4.5 Andamento dei Bordi reperiti con gli algoritmi 1 e 2 (a) e immagine originale ruotata (b). . . 71

4.6 Andamento del centro del tubo campionato a 800 Hz . . . 75

4.7 Segnale filtrato con media doppia esponenziale . . . 78

4.8 Ampiezza dello spettro del segnale Centrotubo e ingrandimen-to della banda 0-4 Hz in cui `e contenuingrandimen-to . . . 81

4.9 Parametri del filtro impostare per la sua realizzazione . . . 83

4.10 Filter Design and Analysis Tool di Matlab . . . 84

4.11 Modulo in frequenza del filtro . . . 85

4.12 Immagine 3.1 dopo il filtraggio. . . 99

4.13 Immagine 3.4 dopo il filtraggio. . . 99

4.14 Dettaglio dell’immagine prima e dopo il filtraggio . . . 100

4.15 Confronto tra l’immagine 3.1 originale e i risultati dell’algo-ritmo 4.5.1 . . . 104

4.16 Estratto del manuale delle telecamere Basler L101k . . . 106

4.17 Schema dei driver utilizzati per la comunicazione seriale con le telecamere . . . 109

(7)

4.18 Dettaglio manuale Basler . . . 111

5.1 Confronto tra i campioni originali del centro tubo e la sequenza filtrata con il filtro FIR passa-basso . . . 119

5.2 Risultati attesi . . . 122

5.3 Risultato della prova 1 (niente smoothing) . . . 123

5.4 Risultato della prova 2 (smoothing) . . . 123

5.5 Risultato della prova 3 (niente smoothing) . . . 125

5.6 Risultato della prova 4 (smoothing) . . . 125

5.7 Risultato della prova 5 (smoothing mediano) . . . 127

5.8 Risultato della prova 6 (smoothing mediano) . . . 127

5.9 Risultato della prova 7 (smoothing) . . . 129

5.10 Risultato della prova 8 (smoothing) . . . 129

5.11 Lunghezza delle righe d’aria presenti nelle immagini non ela-borate . . . 131

5.12 Lunghezza delle righe d’aria trovate nelle varie prove . . . 133

5.13 Diminuzione in pixel della lunghezza delle righe trovate in ogni test . . . 134

5.14 Confronto tra i campioni originali del centro tubo e la sequenza filtrata con il filtro FIR passa-basso . . . 139 5.15 Confronto tra i campioni originali del centro tubo e la sequenza

(8)

Analisi dello scenario

La tesi si inserisce in un progetto pi`u ampio di sviluppo, portato avanti dal Consorzio Pisa Ricerche1, che prevede la progettazione di una macchina di ispezione per il controllo di qualit`a automatico del tubo vetro in un’azienda che fornisce packaging primario per l’industria farmaceutica: flaconi, fiale, siringhe e carpule per uso farmaceutico, e per altri usi tecnici, come quelli mostrati in figura 1.1. Dopo uno studio preliminare del sistema esistente al momento di inizio del lavoro, si `e passati alla valutazione delle sue criticit`a e alla proposta di soluzioni per le medesime con lo scopo di rendere il sistema pi`u robusto: in alcuni casi si `e provveduto all’adeguamento degli algoritmi esistenti (tuning) e in altri si `e progettato e realizzato componenti del sistema ex novo. La tesi si articola essenzialmente su tre fronti: miglioramento delle immagini ottenute dal sistema di visione della macchina tramite filtri digitali realizzati ad hoc, in modo da rendere pi`u robusto il riconoscimento di even-tuali anomalie nel prodotto tubo vetro; controllo delle condizioni operative della macchina di ispezione tramite la lettura di sensori di temperatura posti sulla stessa, per scongiurare il danneggiamento dei componenti elettronici

(9)

della macchina, che opera nelle condizioni estreme tipiche di una fonderia di vetro; e infine campionamento e monitoraggio di dati inerenti alla produzio-ne con lo scopo di controllare alcuni parametri critici, come ad esempio un problema di curvatura del tubo.

Figura 1.1: Esempio di prodotti Una delle difficolt`a maggiori, nel

lavorare nel campo del controllo di qualit`a automatico, `e l’impossibilit`a di rendere misurabili e oggettive tut-te le peculiarit`a del prodotto che si vogliono tenere sotto controllo, cos`ı da poter testare il corretto funzio-namento del sistema, e apprezzarne le eventuali migliorie apportate, so-lo facendo funzionare direttamente il sistema, eseguendo numerose prove, e cercando di trarre esperienza dal

personale che negli anni si `e occupato di fare il controllo di qualit`a sulla pro-duzione. Da un punto di vista logico, le operazioni da svolgere per fare il tuning di un sistema possono essere riassunte nei seguenti punti:

1. Studio del processo di produzione

2. Valutazione delle prestazioni del sistema anche attraverso informazioni accumulate dal sistema stesso (nel nostro caso immagini e file di log) 3. Individuazione dei fattori critici e previsione delle possibili condizioni

di malfunzionamento del sistema

4. Proposte di modifica del sistema: nuovi algoritmi o variazione ai para-metri degli algoritmi gi`a implementati

(10)

5. Creazione di un prototipo degli algoritmi proposti

6. Test del sistema e valutazione delle migliorie effettivamente apportate, tramite un confronto con il comportamento del sistema nelle versioni precedenti alle modifiche

7. Implementazione finale del sistema

Queste operazioni andranno svolte ciclicamente per ogni fattore critico trovato e per ogni modifica che si intende apportare.

1.1

Descrizione dello scenario

L’ambiente in cui si inserisce la macchina di ispezione per il controllo di qualit`a `e la fonderia di vetro Gerresheimer a Pisa. Il gruppo Gerresheimer `e leader nel mondo per il packaging farmaceutico, ha un fatturato di oltre 1 Miliardo di Euro, impiega 10200 persone in 42 stabilimenti nel mondo in America, Europa Asia. Nello stabilimento pisano si hanno 3 forni e 7 linee di produzione in base al tipo di vetro da produrre. Ad esempio si ha la produ-zione di tubi di vetro con vario diametro e con varia composiprodu-zione chimica: vetro borosilicato neutro, nei colori bianco e ambrato2. Tutto il processo `e

interamente automatizzato dal ricevimento delle materie prime alla spedizio-ne del prodotto terminato In riferimento alla figura1.2 possiamo sintetizzare come segue le fasi di produzione. Come primo passo vengono miscelate le sabbie silecee e i rottami degli scarti di produzione, cio`e le materie prime, in base ad una determinata ricetta; quindi le sabbie vengono fuse in un forno a temperatura di 1600 ◦C circa. Il vetro fuso viene colato su un mandrino

ro-tante dove un soffio cosro-tante d’aria produce la formatura del tubo (processo

2I vetri per uso farmaceutico, ad esempio, devono poter resistere chimicamente al

(11)

Figura 1.2: Schema della linea di produzione della vetreria

Danner). Il tubo incandescente `e “tirato” da una macchina installata 60 m di distanza dal forno, sostenuto e guidato da rulli di grafite, fino alla macchi-na di tiro e taglio. Il diametro e spessore del tubo `e garantito dal controllo dell’aria di soffiaggio attraverso l’asse del mandrino e dalla regolazione della velocit`a della macchina tiratrice3 in cui passano circa 2 tubi/sec. La

macchi-na tagliatrice suddivide il tubo in segmenti di lunghezza standard di 1.57 m, detti canne. A questo punto il tubo viene rifilato, ovvero vengono ribruciate le estremit`a, al fine di eliminarne le crepe e portarlo ad una lunghezza di 1.5 m. I tubi vengono confezionati in scatole da 15-40 kg e stoccati magazzino pronti ad essere spediti ai clienti.

Durante il percorso di circa 60 m il vetro si raffredda e passa da una temperatura di circa 900◦C in uscita dal forno ad un temperature di circa

540◦C. Durante questo percorso che porta il vetro dalla tiratrice al taglio il

vetro subisce una serie di controlli di qualit`a che servono a stabilire le sorti delle canne di vetro tagliate. I controlli lungo questa linea sono di 3 tipi:

1. Controllo diametro 2. Controllo spessore

3a fronte di una velocit`a costante della macchina tiratrice, un aumento di aria produrr`a

tubi di diametro maggiore e di minor spessore, mentre un aumento della velocit`a della macchina tiratrice con aria costante produrr`a tubi di minor diametro e di maggiore spessore

(12)

3. Controllo cosmetico (righe ed impurit`a)

I controlli del diametro e delle righe e impurit`a sono uguali su tutte le linee e servono sempre per decidere se il vetro `e buono o deve essere scartato. A valle della tagliatrice si trova la macchina che scarta le canne appena tagliate sulla base delle informazioni ricevute dai controlli sopra descritti. Non sempre l’esito del controllo sullo spessore e sul diametro costituiscono motivi di scarto del vetro.

1.2

Sistemi di Visione

La fascia di prodotto nella quale si opera (tubi di vetro borosilicato), il seg-mento di mercato, e la continua evoluzione dei requisiti farmaceutici impon-gono una crescita continua della capacit`a di analizzare la qualit`a del prodotto. Per questo l’evoluzione dei sistemi di ispezione ha avuto negli anni, e conti-nua ad avere, un ruolo centrale nel miglioramento della Qualit`a. L’aumento della potenza dei sistemi di calcolo, unito alla loro diminuzione di prezzo, ha favorito l’introduzione di questi sistemi in fasce di applicazione sempre pi`u ampie e con costi per le aziende sempre minori. L’AIA (Automated Ima-ging Association), associazione che raggruppa i principali fornitori mondiali di prodotti e sistemi per la visione artificiale, stima che il mercato mondiale abbia avuto negli ultimi anni tassi di crescita, in termini di unit`a di sistemi venduti, superiori al 20%. Le grandi potenzialit`a applicative dei sistemi di visione artificiale ed i benefici che la loro introduzione in azienda pu`o portare in termini di:

• miglioramento della qualit`a dei prodotti che asintoticamente tendono a una produzione a difetti zero

(13)

• diminuzione dei costi dovuti alla perdita di prodotto difettoso • miglioramento delle condizioni di lavoro dei dipendenti

si traduce, in altre parole, in un complessivo aumento della capacit`a compe-titiva dell’impresa. La visione artificiale presenta comunque alcuni vantaggi rispetto a quella umana dal punto di vista della velocit`a di ispezione, della precisione, dell’affidabilit`a, della ripetibilit`a dell’osservazione. I SdV sono in grado di eseguire centinaia di misure al secondo senza neppure dover toc-care l’oggetto, possono eseguire controlli di qualit`a utilizzando sempre gli stessi criteri e senza registrare cali di attenzione, tipici invece del personale umano. Infine, dettaglio non trascurabile, consentono il miglioramento della situazione lavorativa del personale dell’azienda, che, nell’ambiente industriale oggetto di questa tesi, presenta condizioni molto sfavorevoli e problematiche. Si pensi, ad esempio, al calore molto elevato, al rumore dei macchinari e alla polvere. Allontanando gli operatori dal tubo fuso, in movimento su rulli di grafite, e mettendoli a debita distanza di fronte a un monitor, le condizioni generali in cui si trovano a dover affrontare il turno lavorativo risulteranno nettamente migliori.

1.2.1

Vantaggi

I principali vantaggi nell’utilizzo di un sistema di visione artificiale sono riassumibili nei seguenti punti:

Costanza delle Prestazioni Un operatore umano che lavori alla catena di produzione per il controllo di qualit`a dei prodotti4 per limiti fisici,

ese-guire un controllo al 100% su tutti i pezzi per periodi molto lunghi.

(14)

Si procede quindi con l’analisi solo su un campione di tutta la produ-zione. Rientrano in questa categoria anche la disomogeneit`a dei criteri di valutazione tra un’operatore e l’altro: `e impossibile che tutti abbia-no esattamente gli stessi criteri di valutazione, per cui il pezzo che un operatore avrebbe scartato potrebbe essere ritenuto idoneo da un altro. Possibilit`a di operare in ambienti ostili Negli ambienti industriali esi-stono molte aree dove un operatore non pu`o operare in condizioni di totale sicurezza e zone dove le condizioni ambientali sono al limite del-la sicurezza. Queste condizioni limite possono essere rappresentate da: temperatura eccessiva, polvere, rumore continuo e assordante, che im-pongono l’utilizzo di protezioni spesso scomode, come caschi, protezioni per le orecchie, guanti, e cos`ı via; e di accorgimenti volti ad assicurare la totale sicurezza del personale dell’azienda, come lastre protettive tra l’operatore e la produzione. Con l’utilizzo di macchine, ovviamente, i problemi di sicurezza per l’operatore si riducono notevolmente, poich´e l’operatore viene fisicamente allontanato dalle zone pi`u insicure. Velocit`a di controllo Le operazioni di verifica possono essere svolte in

fra-zioni di secondo anche su oggetti in movimento molto veloce come nel caso dei nastri trasportatori industriali. Questo aspetto genera due importanti opportunit`a fra loro correlate:

1. `e possibile ripensare il sistema di controllo della qualit`a passando da un controllo a campione ad un controllo totale della produzione (100% dei prodotti)

2. `e possibile ridisegnare i processi e le linee di produzione, evitando i polmoni intermedi in cui la velocit`a di trasporto e di produzione deve essere adeguata ai tempi di risposta dell’operatore umano

(15)

Generazione dati di processo Un sistema di visione posto in una certa fase del processo produttivo, oltre ad assolvere al suo compito specifico, `e in grado di produrre e memorizzare dati sul processo. Questo, con-sente di generare statistiche che permettono di individuare eventuali segnali o trend di peggioramento del processo stesso, aiutando cos`ı i gestori della linea di produzione ad intraprendere le azioni correttive prima che il processo produttivo subisca dei peggioramenti.

1.2.2

Limitazioni tecnologiche

Se da un lato i sistemi automatici di visione permettono di ottenere tutti i vantaggi elencati sopra, dall’altro bisogna dire che non rispondono a situazio-ni impreviste a cui non siano stati precedentemente addestrati e progettati, inoltre richiedono una lunga fase di tuning e perfezionamento prima di poter entrare in funzione correttamente, questo proprio perch´e risulta difficile po-ter parametrizzare tutte le variabili del processo di produzione che dovranno essere controllate dal sistema.

In generale i sistemi di visione presentano limitazioni quando devono operare con:

• grandi variet`a di pezzi da riconoscere

• pezzi di forme molto complesse da ispezionare su pi`u lati

• elevato numero di punti di vista (ad esempio per riscontrare sulla stessa parte difetti individuabili solo in controluce e difetti individuabili solo in trasparenza)

• impossibilit`a di portare il pezzo sotto un campo visivo predeterminato • valutazioni e scelte sulla base di parametri non facilmente codificabili

(16)

Particolari accorgimenti ed attenzioni devono essere prestate quando vi siano:

• ambienti sporchi e polverosi

• variazioni delle condizioni di illuminazione

• variazione delle condizioni con cui l’oggetto pu`o presentarsi

Da queste considerazioni possiamo prevedere fin da ora come le applica-zioni della computer vision al settore vetriero, come in altri settori, presen-tino un elevato grado di complessit`a. Infine si deve tenere conto del fatto che la produzione continua limita i tempi di risposta del sistema di visione, che dovr`a terminare le sue elaborazioni prima di una determinata deadline, dipendente dai tempi di avanzamento del prodotto sulla linea di produzio-ne. Per tali motivi l’applicazione dovr`a soddisfare le esigenze tipiche di un sistema soft real-time. Una eventuale violazione del tempo di deadline non avrebbe ripercussioni catastrofiche sul sistema, ma rappresenterebbe solo una diminuzione della sua efficienza, intesa come capacit`a di eseguire un corretto controllo di qualit`a sulla produzione.

1.3

Applicazioni industriali esistenti

Le numerose norme e gli alti requisiti di qualit`a richiesti per il tubo vetro, ed in particolare per il suo utilizzo in prodotti farmacologici, hanno spinto numerose aziende ad accostarsi alle tecnologie di automazione industriale per il controllo di qualit`a. Il limite delle tecnologie attualmente esistenti `e quello di non riuscire a controllare tutti questi sempre pi`u stringenti requisiti posti dal mercato.

(17)

AVM (Automatic Vision machine)

TIMM `e un’azienda italiana, attiva da decenni nel settore dell’ispezione del tubo vetro con la famiglia di macchine AVM che sviluppa dagli anni ’90 per Gerresheimer Pisa. Il sistema AVM `e essenzialmente un sistema a scansione laser a due assi. Il fascio di un laser a HeNe `e inviato a uno specchio scanner (4KHz), la cui ampiezza di scansione `e regolabile in funzione del diametro del tubo, e successivamente a un divisore di fascio che predispone due fasci di scansione indipendenti, inviati sul tubo in direzioni fra loro perpendico-lari. Ciascun fascio `e focalizzato sul tubo con un apposito sistema di lenti, in modo che la dimensione del fascio sul tubo sia minima (0.2 mm). In condizioni normali ciascun fascio attraversa il tubo sostanzialmente intatto, ovvero senza che una frazione rilevante della luce sia intercettata da alcuni sensori posti nelle vicinanze del tubo. In caso di difetto parte della luce vie-ne diffusa e li colpisce. I sensori sono posti in posizioni diverse, poich`e ogni sensore riconosce un determinato difetto, dal momento che ogni difetto causa un angolo di diffusione differente della luce. Il segnale ottenuto dai diversi sensori `e campionato 640 volte per ogni ciclo di scansione, i dati cos`ı ottenu-ti sono elaboraottenu-ti tramite reottenu-ti logiche o DSP, secondo algoritmi che tengono conto della presenza simultanea del difetto su pi`u sensori, cos`ı da identificare sia il tipo di difetto che la dimensione. Il sistema prende di conseguenza la decisione se il tubo va accettato o scartato.

Le direzioni di sviluppo previste per questi sistemi considerano la revisione delle sorgenti laser, l’ottimizzazione dei sistemi ottici di focalizzazione, lo studio di schemi di scansione innovativi, l’ottimizzazione degli algoritmi di riconoscimento.

(18)

Soluzione Vimec

Vimec `e una azienda olandese, con sede a Eindhoven, specializzata nella rea-lizzazione di sistemi di ispezione per il controllo qualit`a del vetro. I loro sistemi ispezionano contenitori in vetro per il settore farmaceutico, bottiglie di vetro per cibi, bevande e profumi, vetro per bicchieri, vetro per utilizzi tecnici. La loro macchina scansiona il tubo singolo dopo che `e stato tagliato dal tubo continuo che esce dal forno. Il tubo singolo, lungo circa 1.5 m, viene ispezionato da 4 telecamere lineari, per un totale di 16K pixel utili. I sensori lineari sono paralleli all’asse longitudinale del tubo vetro. Le teleca-mere lineari ed il relativo illuminatore in configurazione retroilluminazione. Telecamere ed illuminatore sono fisse, mentre il tubo ruota su se stesso in modo da essere ispezionato totalmente. La configurazione di questo sistema comporta una risoluzione massima sul tubo vetro di circa 50 µm. Il tubo viene fatto ruotare da 2 supporti posti alle sue estremit`a. Se il tubo ha una curvatura, alcune parti di esso non potranno essere ispezionate: solo se il tubo `e perfettamente rettilineo quando viene fatto ruotare lo si osserva com-pletamente. In sostanza, questo sistema di ispezione non ispeziona il tubo quando scorre in continuo, ha una capacit`a risolutiva non troppo elevata (50 µm), e se i tubi presentano curvature rischia di avere basse performance, in quanto alcune porzioni di tubo possono non essere ispezionate o ispezionate poco efficacemente.

Soluzione Fraunhofer

Fraunhofer `e un istituto di ricerca con sedi distribuite su tutto il territorio tedesco, e con diverse specializzazioni nei diversi istituti. Il Fraunhofer IPK ha realizzato e commercializzato una macchina di ispezione per tubo vetro. La macchina ha 6 assi di ispezione che incidono tra loro a centro tubo con

(19)

angoli di 60◦. Di questa macchina non siamo in grado di ricavare informazioni

tecniche approfondite in quanto protette da segreto industriale. Tuttavia la sua progettazione risalente a qualche anno fa, e l’utilizzo di illuminatori a LED di alcuni anni fa ci fanno stimare una capacit`a risolutiva non elevata, e performance complessivamente non allo stato dell’arte. La macchina del Fraunhofer `e inoltre stata progettata su commissione della TeluxSpezialGlass, che realizza tubi vetro per il settore dei dispositivi di illuminazione, un settore che ha requisiti qualitativi molto meno stringenti rispetto ai tubi vetro per utilizzo farmaceutico.

Soluzione JLI

JLI `e una azienda danese, anch’essa specializzata in sistemi di visione. Realiz-za sistemi di visione per svariate tipologie di produzione e svariati materiali. Relativamente al tubo vetro per uso farmaceutico realizza una macchina tra le migliori sul mercato. Il sistema SK3000 si compone di 3 assi di ispezione che incidono a centro tubo ogni 120◦, in cui ogni asse si compone di una

tele-camera lineare, ottica ad alta precisione, illuminatore in luce gialla altamente uniforme. La totalit`a del tubo viene ispezionata tramite il sistema a 3 assi. I sensori lineari sono ortogonali all’asse longitudinale del tubo, e ispezionano in continuo il tubo vetro che scorre dal forno verso il sistema di tagliatura che crea poi i singoli tubi. I sensori hanno pixel size 10x10 µm, 1024 pixel per telecamera, mentre l’ottica fornisce un rapporto di ingrandimento macro 1:3. Questo significa che la macchina ha una capacit`a risolutiva sul tubo di 30 micron ortogonalmente all’asse longitudinale del tubo. La capacit`a risolutiva lungo l’asse del tubo dipende dalla frequenza di scansione delle telecamere che `e di 8KHz e dalla velocit`a del tubo.

(20)

La macchina di ispezione

In questo capitolo analizzeremo la macchina di ispezione presente al momento di inizio di questo lavoro di tesi al fine di illustrarne il funzionamento, per poterne individuare nei capitoli successivi i punti deboli. La macchina `e ascrivibile alla categoria di macchine di ispezione visive, poich´e acquisisce dati sul tubo di vetro sotto forma di immagini digitali tramite 3 telecamere che analizzano il tubo da 3 assi che incidono a centro tubo ogni 120◦. ´E chiaro

come queste costituiscano l’unico mezzo tramite il quale la macchina ottiene informazioni sul tubo vetro. Ogni immagine pu`o essere scomposta come mostrato in figura2.2in una zona raffigurante il tubo e una zona esterna non di interesse. La parte che raffigura il tubo a sua volta `e divisibile in tre zone: quelle che rappresentano i due bordi del tubo 1, e facilmente individuabili a

occhio perch´e molto pi`u scure di tutto il resto, e la zona compresa tra i bordi che rappresenta la parte di interesse per il controllo di qualit`a. Chiameremo questa area dell’immagine ROI (Region Of Interest). Il compito del sistema di elaborazione della macchina `e quello di analizzare tutte le immagini che vengono acquisite per ogni tubo, da ogni angolazione, e verificare la presenza,

(21)

Figura 2.1: Schema logico delle operazioni per il controllo qualit`a della macchina di ispezione

all’interno della ROI, di pattern riconducibili ad uno dei possibili difetti che sono reperibili in un tubo di vetro: solitamente una riga d’aria, un’impurit`a o una qualunque combinazione degli stessi (pi`u righe, pi`u impurit`a, righe e impurit`a etc.). Si riporta in figura 2.1 una breve descrizione delle varie componenti della macchina, che verranno analizzate con maggior dettaglio nei paragrafi successivi, e delle operazioni che vengono eseguite dal sistema di elaborazione della macchina.

Sistema di Visione e Frame-grabber Il sistema di visione `e composto da telecamere e dall’illuminatore. La costanza della luce `e fondamentale per garantire condizioni di ripetibilit`a nell’acquisizione dell’immagine. La sorgente luminosa deve quindi essere stabile sia su intervalli brevi che nel tempo2. Il compito delle telecamere `e di acquisire immagini del

2Sorgenti alimentate direttamente dalla rete elettrica come le normali lampadine ad

incandescenza non possono essere utilizzate perch´e la loro intensit`a varia con la frequen-za di rete (50 Hz): a seconda dell’istante in cui si effettua l’acquisizione si otterrebbe un’immagine con luminosit`a diversa.

(22)

Figura 2.2: Esempio di immagine acquisita 2048x1000 (a), estrapolazione del Tubo (b) e regione di interesse interna al tubo (c)

(23)

tubo con frequenze di campionamento molto elevate. Il frame grabber `e una scheda di I/O specifica per ricevere in input il segnale dalle tele-camere. Telecamere e frame grabber comunicano tramite l’interfaccia Camera Link che permette una gestione ottimale delle comunicazioni e in ambienti industriali `e molto resistente alle interferenze. Nel det-taglio, il frame grabber adottato `e il SoliosCL prodotto da Matrox: il dispositivo ha gli unici due compiti di ricomporre le linee che rice-ve dalla telecamera lineare creando un’immagine completa, ed inviare l’immagine in DMA alla memoria del calcolatore senza chiedere risorse di calcolo alla CPU principale.

Gestore File ´E il modulo che ha il compito di prelevare le immagini salvate in memoria dal frame-grabber e di passarle, nell’ordine di acquisizione, ai successivi moduli di elaborazione e analisi dell’immagine.

Pre-elaborazione La pre-elaborazione `e la parte del sistema in cui si apre l’immagine e si analizza al fine di individuare gli indici di inizio e fine della ROI. Questa operazione viene effettuata ricercando i bordi del tubo, e isolando la parte centrale dello stesso. In questa fase dell’elabo-razione possono essere svolti anche compiti di miglioramento dell’im-magine volti a eliminare il rumore, fonte di disturbo per le operazioni successive, e possono essere compiute analisi dell’immagine stessa per ottenere dati di rilievo per la produzione: posizione del tubo, diametro etc.

Edge Detection Una volta nota la ROI, la si analizza in cerca di pattern anomali rispetto alla norma. Il tubo normale presenta infatti, nell’im-magine, un’area uniforme che denota l’omogeneit`a del vetro. Intrusioni di corpi estranei, come aria o impurit`a, generano invece nell’immagine

(24)

zone dalle forme irregolari a pi`u alto contrasto rispetto all’area della ROI. In particolare un’impurit`a genera una piccola macchia di pochi mm con lunghezza e altezza equiparabili, e con una tonalit`a pi`u o meno scura rispetto al vetro. La riga d’aria invece si protrae lungo l’altezza dell’immagine, a volte estendendosi anche su pi`u immagini di segui-to. Si caratterizza come una zona molto stretta e lunga, con contrasto molto pi`u elevato rispetto al resto della ROI. Il ricciolo invece `e pi`u complesso da individuare e consiste nel ripiegamento su se stesso di una parte del tubo di vetro, e come suggerisce il nome stesso, `e una macchia in trasparenza nella ROI con un andamento curvilineo. L’o-perazione di estrazione dei contorni delle anomalie `e molto costosa in termini di tempo di elaborazione, ritorneremo in seguito sull’algorit-mo implementato. Ogni difetto verr`a rappresentato nel sistema da una struttura come la seguente:

1 s t r u c t D i f e t t o { 2 3 CvRect r e c t a n g l e ; 4 i n t i n t e n s i t y ; 5 double a r e a ; 6 i n t n u m e r o C i c l i ; 7 f l o a t a n g o l o u p ; 8 f l o a t a n g o l o u p i n t e r n o ; 9 f l o a t a n g o l o d o w n ; 10 f l o a t a n g o l o d o w n i n t e r n o ; 11 12 s t r u c t t i m e b timestamp ; 13 long double i s t a n t e ; 14

15 // i l d i f e t t o non i n i z i a d a l l a cima e non a r r i v a i n f o n d o a l f r a m e

16 b o o l i s o l a t o ;

17 // i l d i f e t t o i n i z i a d a l l a cima e da un s o l o punto d e l f r a m e ma non a r r i v a i n f o n d o ad e s s o 18 b o o l s i n g o l o t a g l i o u p ; 19 // i l d i f e t t o non i n i z i a d a l l a cima d e l f r a m e ma a r r i v a i n f o n d o ad e s s o i n un s o l o punto 20 b o o l s i n g o l o t a g l i o d o w n ; 21 // i l d i f e t t o i n i z i a d a l l a cima t a g l i a n d o i l f r a m e i n 2 p u n t i . Non a r r i v a a l l a f i n e d e l f r a m e 22 b o o l d o p p i o t a g l i o u p ; 23 // i l d i f e t t o a r r i v a i n f o n d o a l f r a m e t a g l i a n d o l o i n 2 p u n t i . Non I n i z i a d a l l a cima d e l f r a m e

(25)

24 b o o l d o p p i o t a g l i o d o w n ;

25 // i l d i f e t t o p a r t e d a l l a cima e f i n i s c e n e l f o n d o d e l f r a m e . Per entrambe l e e s t r e m i n t `a t a g l i a i l rame i n un s o l o punto 26 b o o l t a g l i o u p d o w n 27 28 i n t max y ; 29 i n t min y ; 30 i n t max y x ; 31 i n t m i n y x ; 32 <... > 33 } ;

Riconoscimento e Classificazione Nel caso in cui siano stati rilevati cor-pi estranei nell’immagine, dopo averne isolato i contorni, questi vengo-no analizzati in modo tale da poter stabilire in prima istanza se l’area segnalata `e un difetto oppure no, e in caso affermativo, di quale tipo di difetto si tratta, si calcolano le sue dimensioni, e si tiene traccia di tutti i difetti trovati in ogni tubo. Alla fine, il tubo verr`a classifica-to idoneo oppure no per le sue trasformazioni successive in packaging farmaceutico. Noti i contorni dei difetti, e le loro caratteristiche, una funzione che classifica un’impurit`a o una riga d’aria `e la seguente:

1 i n t c l a s s i f i c a z i o n e ( CvRect <e d g e s d i f e t t o >){ 2 i n t t i p o D i f e t t o = 0 ; 3 4 CvRect r e t t a n g o l o = <e d g e s d e l d i f e t t o da c l a s s i f i c a r e >; 5 6 i f( r e t t a n g o l o . h e i g h t > 2 ∗ r e t t a n g o l o . w i d t h ) { 7 t i p o D i f e t t o = TIPO DIFETTO RIGA ;

8 <i n s e r i s c i i n f o r m a z i o n i n e l f i l e d i l o g > 9 }e l s e{

10 t i p o D i f e t t o = TIPO DIFETTO IMPURITA ; 11 <i n s e r i s c i i n f o r m a z i o n i n e l f i l e d i l o g > 12 } 13 14 return t i p o D i f e t t o ; 15 16 }

Tagliatore ed Eliminatore Il tubo continuo, dopo essere passato sotto al-le teal-lecamere, viene tagliato automaticamente per formare tubi di lun-ghezza standard pari a 1.57 m. Nel caso in cui il tubo sia stato

(26)

clas-sificato non idoneo a proseguire il ciclo di produzione, il sistema di elaborazione provvede a inviare un segnale ad un braccio meccanico che scarta il tubo, eliminandolo fisicamente dalla catena produttiva. File di log I risultati numerici delle operazioni eseguite dall macchina, come

gli indici dei bordi del tubo, le informazioni sui difetti reperiti, i dati relativi alla posizione del tubo sui rulli di grafite etc. vengono salvati su appositi file di log che tengono traccia di tutta l’evoluzione storica del sistema.

Analisi dati Questa grande mole di dati contenuta nei file di log `e utile sia per controllare in fase di debug se il sistema funziona correttamente, sia per analizzare i dati sulla produzione e migliorare ad esempio il processo produttivo. Un esempio `e l’analisi del problema della curvatura del tubo che verr`a analizzato nel capitolo successivo.

Controllo della Temperatura Un modulo a parte, che non ha a che vede-re con l’elaborazione delle immagini `e il modulo softwavede-re che si collega direttamente alle telecamere per leggere periodicamente il valore che ogni sensore di temperatura di cui `e equipaggiata la telecamera ha registrato. Questa operazione serve a monitorare le condizioni ope-rative della macchina, in particolare del sistema di visione, in modo tale che non si verifichino condizioni critiche per le quali le telecamere potrebbero danneggiarsi.

GUI (Graphic User Interface) L’interfaccia grafica ha il compito di sintetiz-zare tutti i dati relativi al processo e al controllo di qualit`a mostrandoli all’operatore umano in forma grafica e facilmente comprensibile anche a chi non conosca il sistema di elaborazione e il suo funzionamento al-goritmico. Tra i vari indicatori che vengono mostrati su uno schermo, si

(27)

trovano le statistiche sui difetti riscontrati nell’ultimo ciclo di produzio-ne, sui tubi scartati, sul tipo di tubo attualmente in produzioproduzio-ne, sulla temperatura del sistema etc. Il sistema mostra inoltre anche le imma-gini riprese dalla telecamera in modo che l’operatore possa visionare a distanza la produzione.

Il sistema di elaborazione, su cui verr`a eseguito il software di controllo, deve essere performante, in quanto deve elaborare in tempi ristretti le imma-gini provenienti dalle 3 telecamere, deve gestire in ingresso il segnale di centro taglio e di scarto tubo in uscita, e deve fornire l’interfaccia grafica per visua-lizzare lo stato della macchina e permettere di modificarne alcuni parametri di ispezione. Il sistema di elaborazione deve inoltre essere ragionevolmente robusto in quanto deve operare in un ambiente industriale abbastanza ostile, con vibrazioni e polveri che possono danneggiare le componenti elettroniche. In dettaglio il calcolatore industriale che `e stato utilizzato ha le seguenti caratteristiche:

Processore CPIN80601940 - Intel i7 - 940 (LGA1366) 2.93GHZ/8MB L2R

Cache

Memoria RAM: 3GB, DDR3-1333/PC3-10600, UNBUFFERED/NON-ECC (3X1GB)

HDD HD0320SATA - 320GB SATA 7200RPM

Inoltre, il calcolatore deve gestire le componenti software tradizionali le-gate all’acquisizione in tempo reale del segnale di taglio del tubo, per ricavare la velocit`a del tubo, deve inviare in tempo reale il segnale relativo al con-trollo dell’attuatore dello scarto in caso di tubo non conforme ai requisiti di qualit`a, e deve mostrare l’interfaccia GUI sul touch-screen per l’operatore

(28)

Figura 2.3: Telecamera Basler L101K

che vuole visualizzare lo stato della macchina o modificarne alcuni parametri di ispezione.

2.1

Acquisizione delle immagini

Come abbiamo detto, il primo passo che il sistema effettua per controlla-re la produzione `e quella di acquisicontrolla-re le immagini del tubo in tempo controlla-reale, durante il suo scorrimento nella linea produttiva. A questo compito sono delegate le tre telecamere lineari che compongono attualmente la macchina, e che in futuro potranno essere aumentate fino a 6. Le telecamere utilizza-te, modello L101K della Basler3 visibili in figura 2.3 che montano le lenti

Tamron AF SP90mm. Sono telecamere lineari progettate appositamente per l’utilizzo in campo industriale, in particolare per la web inspection 4.

Que-ste possono acquisire l’immagine alla ricezione di un trigger eQue-sterno, oppure in modo continuo con una certa frequenza, in base alle esigenze del

siste-3Maggiori informazioni reperibili sul sitohttp://www.baslerweb.com/

4La web inspection, in italiano lettura in continuo, consiste nella rilevazione di difetti

di oggetti posizionati su nastri trasportatori o lastre poste in scorrimento veloce. Questa analisi viene fatta tipicamente con telecamere lineari.

(29)

Basler L101K Dimensioni del sensore 1024 o 2048 pixel Tipo del Sensore CCD Lineare

Dimensioni del pixel 10.0µm x 10.0µm con 10.0µm pitch Dinamica 8 bit per pixel (256 livelli di tono) Pixel Speed 20 MHz

Max Line Rate 18.7 kHz Alimentazione 12 VDC max 6.5 W Lenti C-mount e F-mount Dimensioni 37.6mm x 62.0mm x 62.0mm Tabella 2.1: Caratteristiche telecamere lineari Basler L101K

ma. Dalle caratteristiche dei dispositivi utilizzati, riportate in tabella 2.1, si capisce perch´e tali telecamere siano particolarmente adatte per la web inspec-tion: grazie all’elevata frequenza di campionamento raggiungibile riescono a supportare alte velocit`a di scorrimento dell’oggetto da analizzare.

Una scansione lineare, consiste nel ricostruire l’immagine del soggetto che vogliamo immortalare, una linea alla volta. Le dimensioni della linea che andiamo a catturare sono nel nostro caso 2048 pixel alla volta, pari a circa 31.7 mm. Ogni 1000 linee viene confezionato un frame. Le immagini che saranno oggetto delle elaborazioni descritte di seguito sono quindi immagini di 2048x1000 pixel, pari a 31.7x15.5 mm. La scansione lineare si adatta molto bene al tubo di vetro che si deve riprendere, essendo questo un oggetto continuo di lunghezza indefinita, non esiste cio`e un inizio o una fine del tubo da reperire, ma uno scorrimento continuo dello stesso. Ad esempio, con una frequenza di scansione massima di 18.7 kHz si ottiene una linea ogni 53.4 µs, che corrisponde a un frame ogni 53.4 ms. Va sottolineato il fatto che al ridursi del tempo di esposizione sar`a necessaria un’illuminazione sempre maggiore per ottenere una buona qualit`a dell’immagine. La dinamica di 8 bit per pixel indica su quanti livelli viene quantizzata la luminosit`a rilevata dal sensore, in questo caso si hanno 256 livelli. Ogni livello codifica un tono

(30)

Figura 2.4: Paletta dei grigi a 8 bit

di grigio: si va dal valore 0 che codifica il nero al valore 255 che codifica il bianco, si veda a tal proposito la figura 2.4.

Le immagini ottenute sono quindi immagini in scala di grigi, che sono di pi`u facile manipolazione per le elaborazioni digitali, rispetto alle immagini a colori. Per quanto riguarda le linee di connessione, la telecamera pu`o inter-facciarsi direttamente con un PC oppure con un frame grabber. Il segnale di trigger per il funzionamento della telecamera `e stato accuratamente scelto in base alla velocit`a del tubo da riprendere. Errate sincronizzazioni porte-rebbero a deformazioni nell’immagine del tutto inaccettabili. Le criticit`a del line scanning sono quindi legate all’illuminazione, alle ottiche, all’installa-zione sul campo che deve essere fatta molto attentamente: l’illuminaall’installa-zione deve essere uniforme su tutto il campo visivo, altrimenti si formano strisce di colore o luminosit`a differenti da quelle adiacenti anche a fronte di piccole discontinuit`a nell’illuminazione. L’intensit`a luminosa deve essere molto ele-vata, anche se concentrata solo sull’area sottostante al sensore, per consentire frequenze di acquisizione elevate, e quindi tempi di esposizione molto bassi. Senza scendere nei dettagli di funzionamento del sensore, le telecamere in questione, sono dotate di sensori digitali di tipo CCD (Charge-Coupled De-vices). Un CCD lineare consiste in un circuito integrato formato da una riga di elementi semiconduttori fotosensibili (pixel) in grado di accumulare una carica elettrica (charge) proporzionale all’intensit`a della radiazione

(31)

lumino-sa che li colpisce. Questi elementi sono accoppiati (coupled) in modo che ognuno di essi, sollecitato da un impulso elettrico, possa trasferire la propria carica all’elemento adiacente. Inviando al dispositivo (device) una sequenza temporizzata di impulsi, si ottiene in uscita un segnale elettrico grazie al quale si pu`o ricostruire l’immagine proiettata sulla superficie del CCD stes-so. Il problema dei sensori a semiconduttore `e che devono essere polarizzati per poter funzionare, e oltre alla quantit`a di carica generata per effetto della luce incidente, esiste anche una certa quantit`a di carica generata per effetto dell’energia termica: a temperatura ambiente anche se il sensore `e al buio viene rilevata della carica detta dark current. La dark current rappresenta un rumore che va a sommarsi al segnale utile, e che aumenta con l’aumentare della temperatura, la quale, dunque, costituisce un altro elemento critico per l’utilizzo di questo tipo di dispositivo.

Le telecamere non sono direttamente interfacciate con il calcolatore, ma con un dispositivo noto come frame-grabber. Questo `e costituito da un’unica scheda elettronica solitamente in grado di memorizzare l’immagine digitale in un buffer accessibile al calcolatore oppure direttamente sulla memoria del calcolatore.

L’illuminatore che abbiamo adottato per illuminare in retroilluminazione (controluce) il tubo vetro `e un illuminatore a LED5 prodotto da StockerYale,

del modello CobraSlim Red, mostrato in figura 2.5. Gli illuminatori Cobra Slim sono illuminatori a LED allo stato dell’arte, che forniscono luce alta-mente uniforme e ad alta intensit`a. Nell’ispezione del tubo le informazioni sul colore non sono necessarie quindi il colore dell’illuminatore pu`o essere un qualsiasi colore. Nel sistema di visione di studio `e stato scelto un illuminatore a luce rossa perch´e il rosso `e il colore che causa minori aberrazioni cromatiche

5I LED del Cobra illuminano l’oggetto in continua, non hanno luce pulsata come le

(32)

Figura 2.5: Illuminatore LED CobraSlim Red

quando attraversa il vetro, e la sua lunghezza d’onda `e la lunghezza d’onda in cui i sensori CCD sono pi`u sensibili. Il calore prodotto dall’elettronica viene dissipato con 2 ventole montate sull’illuminatore.

2.1.1

Frequenza di campionamento

Le telecamere del sistema campionano alla frequenza 8khz ed essendo lineari ogni 125 µs abbiamo un array di 2048 pixel che viene bufferizzato per creare un’immagine completa. Ogni 1000 campionature otteniamo, quindi, un frame completo, questo equivale ad affermare che si ottiene un frame ogni 125 ms. Il tubo continuo viene tagliato in tubi standard della lunghezza fissa di 1.57 m. La velocit`a del tubo dipende dal suo diametro. Nel caso peggiore, quello del tubo pi`u veloce, abbiamo all’incirca due 2 tubi al secondo, sovra-stimando tutti i parametri per avere la certezza di non compiere errori dovuti alle approssimazioni, stimiamo che per 2 tubi al secondo la velocit`a massima del tubo sia:

Vmax= 1.57 ∗ 2 = 3, 14 m/s (2.1)

con un semplice calcolo si pu`o calcolare l’avanzamento del tubo ad ogni periodo di campionamento delle telecamere:

(33)

Ogni tubo della lunghezza di 1.57 m viene quindi ripreso in

C = 1.57/(3.925 ∗ 10−3) = 400 (2.3)

immagini di 2048x1000 pixel come quella mostrata nella figura 2.2. Per dare un’ordine di grandezza dei dati che devono essere elaborati dalla CPU del calcolatore, considerando che si hanno attualmente 3 telecamere, e che ogni telecamera genera un flusso di immagini di 16 MB/s da elaborare, il flusso di immagini complessivo `e di 48 MB/s.

2.2

Le librerie OpenCV

OpenCV6 `e una libreria di computer vision open source. La libreria `e

scrit-ta in C/C++ ed `e compatibile con i principali sistemi operativi: Linux, Windows e Mac OS X. ´E stata progettata per garantire l’efficienza compu-tazionale con una forte propensione per le applicazioni di tipo real-time. Per prestazioni molto ottimizzate su architetture Intel, `e possibile acquistare le librerie Integrated Performance Primitives (IPP), ovvero delle routines di basso livello ottimizzate per algoritmi di varie aree. In tal caso OpenCV utilizza automaticamente a runtime l’appropriata IPP. Uno dei principali obiettivi della libreria OpenCV `e fornire una infrastruttura di computer vi-sion semplice da usare per aiutare i programmatori a costruire in tempi brevi applicazioni di computer vision anche molto sofisticate. OpenCV contiene pi`u di 500 funzioni che spaziano in vari campi della CV come ad esempio: operatori per l’elaborazione delle immagini (operazioni di addizione, sottra-zione, threshold), funzioni di analisi spaziale (istogrammi, medie, distanze) e frequenziale (trasformate di fourier, analisi dello spettro), ma anche funzioni

(34)

Figura 2.6: Schema a blocchi delle librerie OpenCV

per la realizzazione di interfacce utente, per la calibrazione delle telecamere, per la visione stereoscopica e robotica. Poich´e la computer vision spesso si avvale del cosiddetto machine learning, OpenCV contiene una libreria chia-mata Machine Learning Library (MLL) che serve per il pattern recognition e per il clustering. La licenza open source per OpenCV `e stata strutturata in modo tale che si possano costruire prodotti commerciali usando tutta o in parte la libreria senza nessun tipo di obbligo.

OpenCV `e strutturato in 5 componenti principali, quattro dei quali sono mostrati in figura 2.6. Il componente CV contiene le funzioni di base per l’image processing e gli algoritmi di alto livello per la computer vision: mo-tion analysis, pattern recognimo-tion, ricostruzione 3D etc. MLL `e la libreria per l’apprendimento (Machine Learning Library) che include molti classificatori statistici e funzioni per la catalogazione (Clustering). HighGUI contiene le routine di I/O, per la visualizzazione a schermo delle immagini, ad esempio, e le funzioni per il salvataggio e il caricamento da e verso la memoria di vi-deo e immagini. OpenCv `e in grado di leggere una grande variet`a di formati

(35)

tra i quali: bmp, bib, jpeg, jpe, png, pbm, pgm, ppm, sr, ras e tiff. Infine CXCore contiene le stutture dati di base utilizzate da tutti gli altri com-ponenti: definizione dei tipi di base: punto, rettangolo, oggetto immagine etc. L’altro componente, non riportato in figura `e il CvAux che contiene sia algoritmi sperimentali che funzioni deprecate (come l’embeddedHMM face recognition). Alcune di tali funzioni entreranno forse in futuro a far parte di OpenCV, mentre altre verranno abbandonate.

2.2.1

Rappresentazione delle immagini

Nelle librerie OpenCv un’immagine digitale `e rappresentata dalla seguente struttura: 1 < f i l e c x t y p e s . h> 2 3 typedef s t r u c t I p l I m a g e 4 { 5 i n t n S i z e ; /∗ s i z e o f ( I p l I m a g e ) ∗/ 6 i n t ID ; /∗ v e r s i o n (=0) ∗/ 7 i n t n C h a n n e l s ; /∗ Most o f OpenCV f u n c t i o n s s u p p o r t 1 , 2 , 3 o r 4 c h a n n e l s ∗/ 8 i n t a l p h a C h a n n e l ; /∗ I g n o r e d by OpenCV ∗/

9 i n t d e p t h ; /∗ P i x e l d e p t h i n b i t s : IPL DEPTH 8U , IPL DEPTH 8S , IPL DEPTH 16S ,

10 IPL DEPTH 32S , IPL DEPTH 32F and IPL DEPTH 64F a r e s u p p o r t e d . ∗/ 11 char c o l o r M o d e l [ 4 ] ; /∗ I g n o r e d by OpenCV ∗/ 12 char c h a n n e l S e q [ 4 ] ; /∗ d i t t o ∗/ 13 i n t d a t a O r d e r ; /∗ 0 − i n t e r l e a v e d c o l o r c h a n n e l s , 1 − s e p a r a t e c o l o r c h a n n e l s . 14 c v C r e a t e I m a g e can o n l y c r e a t e i n t e r l e a v e d i m a g e s ∗/ 15 i n t o r i g i n ; /∗ 0 − top− l e f t o r i g i n , 16 1 − bottom− l e f t o r i g i n ( Windows b i t m a p s s t y l e ) . ∗/ 17 i n t a l i g n ; /∗ A l i g n m e n t o f image rows ( 4 o r 8 ) . 18 OpenCV i g n o r e s i t and u s e s w i d t h S t e p i n s t e a d . ∗/ 19 i n t w i d t h ; /∗ Image w i d t h i n p i x e l s . ∗/ 20 i n t h e i g h t ; /∗ Image h e i g h t i n p i x e l s . ∗/

21 s t r u c t I p l R O I ∗ r o i ; /∗ Image ROI . I f NULL, t h e w h o l e image i s s e l e c t e d . ∗/

22 s t r u c t I p l I m a g e ∗maskROI ; /∗ Must be NULL . ∗/

23 void ∗ i m a g e I d ; /∗ ” ” ∗/

24 s t r u c t I p l T i l e I n f o ∗ t i l e I n f o ; /∗ ” ” ∗/

25 i n t i m a g e S i z e ; /∗ Image d a t a s i z e i n b y t e s

26 (==image−>h e i g h t ∗ image−>w i d t h S t e p

27 i n c a s e o f i n t e r l e a v e d d a t a ) ∗/

28 char ∗ imageData ; /∗ P o i n t e r t o a l i g n e d image d a t a . ∗/

29 i n t w i d t h S t e p ; /∗ S i z e o f a l i g n e d image row i n b y t e s . ∗/

(36)

31 i n t B o r d e r C o n s t [ 4 ] ; /∗ D i t t o . ∗/

32 char ∗ i m a g e D a t a O r i g i n ; /∗ P o i n t e r t o v e r y o r i g i n o f image d a t a ( n o t n e c e s s a r i l y a l i g n e d ) n e e d e d f o r c o r r e c t d e a l l o c a t i o n ∗/

33 } I p l I m a g e ;

Il significato dei vari campi della struttura `e spiegato nei commenti late-rali. L’immagine digitale viene rappresentata in memoria come una matrice di height x width interi di 8 bit. Ogni intero di 8 bit rappresenta un bit, e in particolare ne rappresenta il livello di grigio, come descritto preceden-temente da 0 a 255. Ogni pixel viene indicato tramite le sue coordinate cartesiane in termini di riga e colonna: il pixel (0,0) `e il pixel corrispondente all’angolo in alto a sinistra dell’immagine, mentre il pixel (height, width) `e il pixel corrispondente all’angolo in basso a destra. Detto questo, la matrice che rappresenta l’immagine viene salvata in memoria in locazioni adiacenti e contigue come un array monodimensionale uchar* data, nel quale il k-esimo pixel `e indirizzabile come data[k]. Poich`e in memoria l’immagine non sempre viene allineata allo stesso valore di byte, si usa la variabile WidthStep che indica l’allineamento in memoria7. Per chiarire meglio come si pu`o accedere

all’immagine si riporta una porzione di codice che carica un’immagine da file e poi ne modifica banalmente un pixel.

1 2 // c a r i c o l ’ immagine d a l l a memoria 3 I p l I m a g e ∗ img = cvLoadImage(< f i l e N a m e >) ; 4 5 // i n i z i a l i z z o l e v a r i a b i l i p e r i l s u o u t i l i z z o 6 i n t h e i g h t = img−>h e i g h t ; 7 i n t w i d t h = img−>w i d t h ; 8 i n t s t e p = img−>w i d t h S t e p /s i z e o f( u c h a r ) ; 9 10 // c a r i c o l ’ immagine b i d i m e n s i o n a l e s u un a r r a y m o n o d i m e n s i o n a l e 11 u c h a r ∗ d a t a = ( u c h a r ∗ ) img−>imageData ; 12 13 // a c c e d o ad un p i x e l e l o m o d i f i c o 14 d a t a [ i ∗ s t e p+j ] = <nuovo v a l o r e d e l p i x e l ( i , j ) >; 15 16 // s a l v o l a nuova immagine

7spesso coincide con Width, ma non sempre questo accade, dipende dalle dimensioni

(37)

17 cvS aveImage (< f i l e N a m e >,img ) ;

Esistono anche altri metodi per accedere alle immagini, ad esempio uti-lizzando funzioni come la CvScalar cvGet2D(img,i,j) che ritorna il valore del pixel (i,j), ma non li prenderemo in considerazione poich`e non sono utili ai fini di questo lavoro di tesi. Accedere le immagini nel modo proposto con-sente, infatti, di scorrere molto velocemente tutta l’immagine incrementando semplicemente il valore dell’indice di data. Un esempio di elaborazione che viene eseguita molto spesso `e il calcolo della media totale dell’immagine o la ricerca del tono di grigio minore (toni scuri), di cui riportiamo, a titolo di esempio il codice:

1 // c a l c o l a l a media t r a l a c o l o n n a i n d e x S t a r t e q u e l l a indexEnd

2 double Media (i n t d a t a [ ] , i n t i n d e x S t a r t , i n t indexEnd ) { 3 4 double media = 0 ; 5 f o r(i n t i = i n d e x S t a r t ; i < indexEnd ; i ++){ 6 media += d a t a [ i ] / ( indexEnd − i n d e x S t a r t ) ; 7 } 8 9 return media ; 10 11 } 12

13 // c a l c o l a i l v a l o r e minimo r i s p e t t o a una s o g l i a p a s s a t a come p a r a m e t r o e ne r e s t i t u i s c e v a l o r e e i n d i c e d e l l a c o l o n n a dove s i t r o v a

14 void Min (i n t d a t a [ ] , i n t i n d e x S t a r t , i n t indexEnd , i n t ∗min , i n t ∗ indexMin ) { 15 16 f o r (i n t i = i n d e x S t a r t ; i < indexEnd ; i ++){ 17 i f ( d a t a [ i ] < ∗min ) { 18 ∗min = d a t a [ i ] ; 19 ∗ indexMin = i ; 20 } 21 } 22 }

2.3

Pre-elaborazione

Come gi`a detto la pre-elaborazione `e fase in cui si individua la ROI, tramite algoritmi che analizzeremo in dettaglio nei prossimi capitoli. Una volta che

(38)

questa sia stata trovata si passa all’eliminazione del rumore dall’immagine. Il rumore `e qualcosa di indesiderato, che in generale `e costituito da informazione presente nell’immagine ma non utile, anzi che va a peggiorare la qualit`a dell’immagine stessa, e si presenta come una variazione casuale dei livelli di intensit`a dei pixel. Tale fenomeno `e da attribuire ai sensori digitali della telecamera. I segnali elettrici in uscita dal sensore non sono abbastanza ampi per poter essere utilizzati, quindi devono essere amplificati, e pi`u i segnali sono deboli maggiore dovr`a essere il grado di amplificazione. Ogni amplificazione comporta un aumento del segnale utile ma anche un aumento del rumore originale, pi`u una certa quantit`a di rumore introdotto dal processo stesso. Un altro fenomeno che genera rumore `e dovuto al fatto che un singolo sensore colpito dalla stessa quantit`a di luce in momenti diversi generi segnali di intensit`a diversa. Ci`o comporta che sensori adiacenti stimolati in modo omogeneo possano generare segnali elettrici differenti, che si traduce in una certa granulosit`a (rumore) nell’immagine finale. Come se non bastasse, anche in assenza totale di luce i sensori producono un certo segnale di fondo (dark current) che rappresenta rumore: ad esempio se accendiamo una telecamera al buio, l’immagine risultante non sar`a mai perfettamente e omogeneamente nera. In letteratura sono descritti numerosi modelli matematici e statistici per studiare il rumore.

Il rumore nelle immagini digitali

Amplifier Noise (Rumore Gaussiano) ´E un rumore additivo, di tipo gaussiano, indipendente per ogni pixel e indipendente dall’intensit`a del segnale, causato principalmente dal rumore termico di Johnson-Nyquist, comprende anche il rumore derivante dal reset dei condensa-tori, detto rumore kTC. Costituisce una parte importante del rumore di

(39)

lettura di un sensore digitale CCD. Un rumore gaussiano `e un rumore che ha come funzione densit`a di probabilit`a una distribuzione normale con µ la media e σ la varianza: gX(x) = √2πσ1 2e

−(x−µ)22σ2

Rumore Impulsivo Noto anche come rumore sale e pepe, altera il livello di grigio di un pixel saturandolo, ovvero mandandolo a 0 o a 255. Appare quindi, come punti bianchi in zone scure dell’immagine e punti neri in zone chiare. Pu`o essere causato o da sensori non funzionanti, da errori di conversione da parte del convertitore analogico-digitale della tele-camera, oppure ancora da errori di trasmissione sui bit. ´E facilmente eliminabile con un filtro mediano.

Shot Noise (rumore Schottky, o rumore granulare) ´E il rumore prodotto dai portatori di carica quando attraversano una barriera di potenziale come, ad esempio, nelle giunzioni p-n dei diodi fotorivelatori. Statisti-camente esso `e opportunamente descritto da un processo di Poisson, che non differisce molto dal processo di gauss descritto poco sopra. Se λ `e la frequenza media di attraversamento della barriera di potenziale ed e la carica dell’elettrone allora il processo di Poisson ha valore me-dio I = λ · e. La distribuzione di probabilit`a di questo rumore risulta pertanto P (n) = e−λ λn

n!

Rumore di quantizzazione Il rumore causato dalla quantizzazione del-l’intensit`a luminosa che colpisce i sensori su un numero discreto di livelli `e noto come rumore di quantizzazione. Ha approssimativamente una distribuzione uniforme e viene attenuato con metodi di Dithering, che introducono una componente casuale nella quantizzazione, in mo-do da attenuare il rumore. Questo tipo di rumore `e molto visibile e introduce dei falsi contorni nell’immagine.

(40)

Rumore anisotropo ´E un rumore che varia con una direzione spaziale nel-l’immagine. Nel caso di studio, `e dovuto alla linearit`a delle telcamere: un sensore che abbia guadagno pi`u alto rispetto agli altri, linea dopo linea, manterr`a un livello di grigio differente, pi`u alto o pi`u basso, ri-spetto ai sensori adiacenti, cos`ı da causare delle striature orizzontali lungo tutta l’immagine.

2.3.1

Filtraggio e attenuazione del rumore

A causa del rumore non sempre si `e nelle condizioni di pigmentazione e illumi-nazione tali da garantire che oggetti diversi corrispondano a diversi intervalli di intensit`a. Questo comporta problemi nella fase successiva di ricerca di og-getti estranei all’interno dell’inquadratura. Il mancato riconoscimento di un difetto nella produzione, ovviamente, invalida il lavoro della macchina, come lo invalida il riconoscimento di difetti che non sono realmente presenti nel-l’immagine. Bisogner`a quindi cercare di ridurre al minimo queste situazioni. Un metodo per risolvere questo genere di problemi `e filtrare l’immagine per eliminarne il rumore.

Nell’elaborazione digitale delle immagini, lo smoothing (in italiano am-morbidimento) di un insieme consiste nell’applicazione di una funzione di filtro il cui scopo `e evidenziare i pattern significativi, attenuando il rumore. Un filtro di smoothing ha l’effetto di diminuire il contrasto locale dell’im-magine: viene usato per eliminare i dettagli inutili (blurring) o legati alla presenza di rumore (noise cleaning). I filtri di smoothing hanno il vantaggio di migliorare le operazioni di reperimento dei bordi su aree vaste dell’im-magine compensando le piccole imperfezioni che spesso si verificano nelle linee di contorno. Solitamente sono filtri di tipo numerico, che fanno uso di maschere (matrici quadrate di grandezza variabile), dette maschere di

(41)

con-voluzione o kernel del filtro, che vengono fatte scorrere su tutta l’immagine e che agiscono nel dominio spaziale (e non frequenziale) in modo tale che il pixel centrale della maschera venga ad assumere un valore dipendente da tutti i pixel adiacenti nell’intorno pari all’estensione della maschera stessa, pesati secondo i valori del kernel. Un esempio di filtro di smoothing `e il filtro mediano, che sostituisce il valore del pixel centrale della maschera con il valore mediano dell’intensit`a dei pixel della maschera in un intorno pari all’estensione della maschera stessa. Il filtro mediano, come il filtro media, tendono a comportarsi come filtri passa basso, perch´e attenuano l’intensit`a dei pixel, portandola vicino al valore medio dell’intensit`a di tutta l’immagi-ne. I filtri mediani sono molto adatti per l’eliminazione del rumore impulsivo. La scelta di kernel troppo estesi, d’altrocanto, causa la perdita dei dettagli delle immagini. Un altro filtro di smoothing `e il filtro gaussiano, che verr`a analizzato di seguito, e che utilizza maschere, in cui i pesi sono distribuiti secondo una distribuzione gaussiana in due dimensioni, i pesi sono tali per cui, i valori centrali della maschera hanno il peso maggiore e man mano che ci si allontana dal centro si fanno pesare sempre meno. Il filtro gaussiano ha il compito di sfocare l’immagine, eliminando il rumore gaussiano, ma non riesce, ad esempio, ad eliminare il rumore impulsivo. Solitamente l’apertura del filtro `e fissa, mentre si pu`o scegliere la varianza σ della gaussiana.

2.4

Edge detection: il Filtro di Canny

Il problema che si deve risolvere con il modulo di edge detection `e quello di suddividere l’immagine in pi`u regioni in base al valore dell’intensit`a luminosa, in modo da isolare, il pi`u precisamente possibile, i vari oggetti presenti nella ROI. Nel caso del tubo di vetro, il problema si riduce al ricercare i contorni

(42)

di eventuali corpi estranei immersi nel vetro stesso: le righe, le impurit`a, e in generale qualsiasi disomogeneit`a. I sistemi di edge detection basati su calcolo del gradiente partono dai seguenti presupposti teorici. Per contor-no di un oggetto si intende: l’insieme delle curve visibili dell’oggetto e le regioni in cui la superficie vista dalla telecamera presenta una discontinuit`a a gradino, oppure discontinuit`a nell’orientamento della normale alla superfi-cie. In condizioni di luce diffusa e oggetti di colore uniforme, l’orientamento delle superfici di tali oggetti ha la massima influenza sulla riflessione della luce stessa; quindi possiamo pensare che le discontinuit`a della superficie di un oggetto corrispondano a discontinuit`a dell’intensit`a luminosa. L’inten-sit`a luminosa I(x, y) rappresenta la potenza ottica per unit`a di superficie e si misura in W/m2. Possiamo quindi assumere vere le seguenti

afferma-zioni: ad una variazione dell’intensit`a luminosa corrisponde una variazione dell’orientamento della superficie (e viceversa), e ad una discontinuit`a del-l’intensit`a luminosa corrisponde una discontinuit`a della superficie (e vicever-sa). Tali condizioni sono vere nell’ipotesi di luce diffusa e colori uniformi. Il procedimento avviene in due fasi:

Rilevazione dei contorni parte dall’immagine originale a livelli di grigio e produce un insieme di punti candidati ad appartenere ad un contorno Connessione consiste nel prendere un insieme di punti candidati, trovati

nella fase precedente, e interpolarli con una curva in modo da ottenere linee chiuse delimitanti aree distinte.

Da un punto di vista matematico il problema della rilevazione dei contorni `e un problema mal posto: le soluzioni non sono robuste n´e certe. Un problema di questo metodo di ricerca dei contorni `e che il rumore crea discontinuit`a nell’intensit`a luminosa delle immagini che possono creare errori nella scelta

(43)

dei punti candidati ad appartenere ad un contorno. Si veda, a titolo di esempio, la figura 2.7 che mostra un esempio monodimensionale.

Figura 2.7: Immagine di un cubo in 3 dimensioni (a) di cui si trova il punto h (nel caso monodimensionale) teorico (b) e nel caso reale dove l’intensit`a `e affetta da rumore (c). Esempio di filtro passa-alto per eliminare il rumore del caso reale (d)

A cusa del rumore la discontinuit`a di I(x) non `e un gradino, ma un’altra curva che varia bruscamente. Il rumore potrebbe generare picchi di intensit`a laddove non siano realmente presenti dei contorni, e tale situazione portereb-be per`o a considerare il punto trovato come un punto candidato. Un modo di attenuare l’influenza del rumore `e quella di filtrare l’immagine in modo tale da eliminare il pi`u possibile il rumore, di solito filtrando le alte frequenze spaziali. In tal modo per`o, si ha l’attenuazione del rumore da una parte, e dall’altra la riduzione del contrasto fra zone chiare e zone scure, ovvero tutte le discontinuit`a, anche in presenza di contorni vengono appiattite. Il filtro che

(44)

viene utilizzato `e un filtro con risposta all’impulso pari alla derivata di una gaussiana: il picco di intensit`a si avr`a nel punto di massimo della gaussiana, e il compito dell’algoritmo sar`a quello di cercare tali massimi. Ricordando che per la convoluzione vale:

dg(x)

dx ⊗ I(x) =

d(g(x) ⊗ I(x))

dx (2.4) Anzich`e utilizzare un filtro che ha come risposta all’impulso la derivata di una gaussiana si applica un filtro gaussiano all’immagine e poi si deriva il risultato. Quindi avremo un filtro cos`ı fatto:

h(x) = Z +∞ −∞ I(τ )g(x − τ) dτ = I(x) ⊗ g(x) (2.5) e nel discreto h[k] = +∞ X n=−∞ I(n) ∗ g(k − n) (2.6) Ossia i valori della gaussiana g(k) vengono ribaltati e ritardati e vano a pesare il valore dell’intensit`a. In frequenza il filtro effettua la seguente operazione:

H(f ) = F [I(x) ⊗ g(x)] = I(f) ∗ σ√π ∗ e−π2σ2f2 (2.7)

Si noti che la trasformata di una gaussiana, `e ancora una gaussiana, ma con ampiezza σ pari al reciproco dell’ampiezza della gaussiana di partenza. Variando σ si pu`o variare la scala del filtro passa-basso: pi`u `e basso il SNR minore sar`a la scala di filtraggio necessaria, in altre parole, pi`u larga `e la campana e maggiore sar`a l’effetto di smoothing che si ottiene.

Generalizzando al caso reale di immagine bidimensionale, per individuare una discontinuit`a nella funzione di intensit`a luminosa I(x,y) che descrive l’immagine digitale, di sostituisce la derivata con il gradiente: il gradiente

(45)

`e un vettore che ha direzione complanare all’immagine e verso secondo la massima variazione di I(x,y):

∇I(a, y) = ∂I(x, y) ∂x ·~i +

∂I(x, y)

∂y · ~j (2.8) Il modulo del gradiente `e nullo nelle zone di intensit`a luminosa costante e non nullo nelle zone di discontinuit`a. I punti in cui ricercare i contorni sono quelli dove il modulo del gradiente `e massimo.

Il filtro di Canny

Uno dei filtri derivativi pi`u noti e utilizzati per la ricerca dei contorni nelle immagini in scala di grigi, implementato sul sistema di visione, `e il filtro di Canny. I motivi per cui si `e scelto di utilizzare l’algoritmo di Canny sono riassumibili nei seguenti punti:

1. Buona capacit`a di individuazione: l’operatore ha una bassa probabilit`a di non individuare un bordo reale (elevata sensibilit`a) ed una bassa probabilit`a di individuare falsi bordi(elevata specificit`a)

2. Buona capacit`a di localizzazione: i punti evidenziati dall’operatore dovrebbero essere quanto pi`u vicini possibile al centro del bordo reale 3. Unicit`a della risposta: l’operatore dovrebbe fornire una sola risposta in

corrispondenza di un bordo reale

Il filtro di Canny `e ottimo e si basa su tre assunzioni: l’operatore di edge enhancement deve essere lineare, un edge `e un gradino con ampiezza finita, il rumore `e additivo, bianco, con distribuzione gaussiana. Il metodo di Canny `e articolato in quattro passaggi:

(46)

1. filtro gaussiano 2. norma del gradiente

3. sogliatura con isteresi (thresholding) 4. thinning

La prima fase consiste nel applicare all’immagine un filtro gaussiano, che sfoca le immagini cos`ı da rimuovere alcuni dettagli ed eliminare una parte del rumore. Si applicano per convoluzione i due filtri Gx e Gy, che rappresentano le due derivate parziali viste sopra, all’immagine, cos`ı da ottenere le due componenti del gradiente. In pratica rappresentano le due derivate parziali della gaussiana in 2 dimensioni, la cui forma analitica `e la seguente

G(x, y) = 1 2πσ2e

−x2+y22σ2 (2.9)

Figura 2.8: Distribuzione gaussiana di 2 variabili, G(x,y) con media (0,0) e varianza σ = 1 (a), kernel 5x5 (b) e kernel monodimensionale per la direzione x (c)

(47)

Poich´e l’immagine `e rappresentata da valori digitali, la convoluzione viene fatta con un kernel, che rappresenta l’approssimazione dell’ordine desiderato della funzione gaussiana. In figura 2.8 riportiamo il kernel di apertura 5x5. Per rendere pi`u veloce l’operazione, si riduce il kernel a 2 vettori, uno per la direzione x (rappresentato in figura 2.8(c)) e uno, identico ma trasposto, per la direzione y. Le due immagini ottenute da questa convoluzione, chiamia-mole Ix e Iy, vengono unite insieme per trovare la magnitudo (l’ampiezza) del gradiente tramite il calcolo della norma del vettore ~

~∇I(x, y) =qI2

x + Iy2 (2.10)

L’immagine ottenuta dal ~∇I(x, y) se vista come una superficie 3D con-tiene valli (valley) e rilievi. Le curve dei massimi rilievi sono dette creste, o ridges. Per eliminare tutti i punti in cui il valore della norma `e elevato ma non rappresenta un massimo locale per essa, si applica un algoritmo di non-maximum suppression. Si tengono solo i ridges, mentre vengono soppressi tutti gli altri punti. Dopo la soppressione dei non massimi viene usato un meccanismo di sogliatura a isteresi, ovvero vengono fissate due soglie T1 > T2:

tutti i pixel che hanno ~∇I(x, y) > T1 sono edge, i valori compresi tra T1 e

T2 sono detti weak-edge. Un weak-edge diventa edge solo se `e contiguo ad

un edge. Questa fase di scelta degli edge viene detta thinning.

2.5

Parametri di qualit`

a

Quando un tubo viene completato, si deve passare alla classificazione dei contorni identificati dal Canny. La classificazione del difetto trovato dal Canny avviene sulla base delle sue dimensioni. Il discrimine avviene in base

(48)

al rapporto di larghezza e lunghezza per identificare nodi o righe, come visto in precedenza.

I parametri di qualit`a vengono impostati tramite la GUI dall’operatore, e comprendono: x1 righe consentite di lunghezza massima y1, x2 righe consen-tite di lunghezza massima y2, x3 righe consenconsen-tite di lunghezza massima y3, x4 righe consentite di lunghezza massima y4, x5 massima lunghezza aggre-gata delle righe su un singolo tubo, x6 numero di impurit`a di area massima y6, x7 numero di impurit`a di area massima y7, x8 numero di impurit`a di area massima y8, x9 numero di nodi di lunghezza massima y9. Se i difetti non sono conformi ai parametri di qualit`a, si invia il segnale all’attuatore per lo scarto, altrimenti non si fa niente e il tubo quindi non viene scarta-to. Il segnale di scarto viene inviato dal processo principale alla scheda di I/O National Instruments, che si occupa poi di inviarlo al PLC aziendale che controlla l’attuatore.

Figura

Figura 1.2: Schema della linea di produzione della vetreria
Figura 2.1: Schema logico delle operazioni per il controllo qualit`a della macchina di ispezione
Figura 2.2: Esempio di immagine acquisita 2048x1000 (a), estrapolazione del Tubo (b) e regione di interesse interna al tubo (c)
Figura 2.6: Schema a blocchi delle librerie OpenCV
+7

Riferimenti

Documenti correlati

I numeri di macchina non zero sono i numeri del tipo x = ± (1.b −1 b −2 b −3.. Se tutti i numeri dello Standard IEEE in doppia precisione fossero memorizzati in qualche supporto,

Infine, verranno studiate le relazioni tra i diversi regimi di protezione del lavoro (RPL), intesi come l'insieme di norme e procedure che disciplinano la cessazione del rapporto

Configurando il sistema di controllo qualità in questo modo, una certa percentuale di cartucce conformi potrà essere scarta, questa parte d produzione sarà chiamata false

Marino Biondi dopo aver ribadito la funzione fondamentale delle biblioteche e degli archivi nella salvaguardia dei patrimoni documentari, affida all’intervento di professio-

In questo studio è stata utilizzata la Dexa per valutare la composizione corporea in 29 pazienti al momento della diagnosi di malattia celiaca e 20 di questi sono

pari 30 V per la loro maggiore velocità di commutazione, una semplice soluzione per operare in rispetto delle condizioni di derating potrebbe essere quella di diminuire la tensione

Nella zona interna del provino viene alloggiato un cilindro pieno, mentre nella parte esterna ci sono due pezzi, ognuno dei quali è costituito da metà di un cilindro cavo, con

La scelta di utilizzare un sistema di scambio con braccio scambiatore a bordo testa, navetta di trasferimento fuori campo macchina e posizionamento nel magazzino sempre tramite