80
Introduzione Il presente lavoro di tesi rappresenta la conclusione dell’esperienza di stage svolto presso il laboratorio di Automatica e Telecomunicazioni della Facoltà di Ingegneria dell’Automazione presso l’Università di Lecce. Il progetto sviluppato durante il tirocinio verte sull’elaborazione di un sistema di visione artificiale, da applicare su un robot mobile, che nella prima fase effettua il riconoscimento di oggetti aventi una struttura rettangolare, nel caso particolare di scaffali, e successivamente determina la posizione del robot rispetto allo scaffale individuato nell’ambiente circostante. In questa tesi sarà analizzata la prima fase del progetto ossia l’elaborazione delle immagini prelevate tramite una webcam per l’individuazione dei segmenti rettilinei presenti nell’immagine. Questa procedura rappresenta il passo primario per l’intero progetto poiché consente di individuare i contorni dello scaffale certamente rettilinei. Lo sviluppo di un sistema di visione artificiale di questo tipo si rivela estremamente utile per le applicazione in ambienti industriali o in magazzini in cui la movimentazione degli oggetti è affidata a robot mobili. In questo caso

Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Introduzione

Il presente lavoro di tesi rappresenta la conclusione dell’esperienza di stage

svolto presso il laboratorio di Automatica e Telecomunicazioni della Facoltà

di Ingegneria dell’Automazione presso l’Università di Lecce.

Il progetto sviluppato durante il tirocinio verte sull’elaborazione di un sistema

di visione artificiale, da applicare su un robot mobile, che nella prima fase

effettua il riconoscimento di oggetti aventi una struttura rettangolare, nel caso

particolare di scaffali, e successivamente determina la posizione del robot

rispetto allo scaffale individuato nell’ambiente circostante.

In questa tesi sarà analizzata la prima fase del progetto ossia l’elaborazione

delle immagini prelevate tramite una webcam per l’individuazione dei

segmenti rettilinei presenti nell’immagine.

Questa procedura rappresenta il passo primario per l’intero progetto poiché

consente di individuare i contorni dello scaffale certamente rettilinei.

Lo sviluppo di un sistema di visione artificiale di questo tipo si rivela

estremamente utile per le applicazione in ambienti industriali o in magazzini in

cui la movimentazione degli oggetti è affidata a robot mobili. In questo caso

Page 2: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

infatti, è necessario che il robot individui la presenza degli scaffali e stimi la

sua posizione rispetto ad essi per garantire il suo corretto spostamento in tale

ambiente strutturato.

Il progetto è stato sviluppato in ambiente IConnect (della MICRO-EPSILON

Software Division), un software che consente una programmazione di tipo

grafico mediante l’utilizzo di blocchi preprogrammati chiamati moduli.

In questa tesi si descrive il problema affrontato e le tecniche utilizzate per la

sua risoluzione.

In particolare, nel primo capitolo si esaminano le tecniche per acquisire le

immagini e digitalizzarle, in modo da prepararle alla successiva elaborazione.

Il secondo capitolo contiene le basi teoriche su cui si fondano le tecniche

implementate in fase progettuale. Queste ultime sono descritte nel terzo

capitolo, in cui sono esaminate tutte le operazioni effettuate, dall’acquisizione

delle immagini alla ricostruzione delle rette tramite la trasformata di Hough.

Infine, nel quarto capitolo si raccolgono i risultati ottenuti da numerose prove

sperimentali. Sono stati riportati anche i risultati errati o poco soddisfacenti

ottenuti nel corso del progetto in modo da confrontare le varie tecniche

utilizzate per la risoluzione dei problemi e motivare le scelte implementative

fatte.

Page 3: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Capitolo 1

Fondamenti di elaborazione delle

immagini

Tra i 5 sensi di cui disponiamo, la vista è senza dubbio quello dotato di

maggiori potenzialità ed è quello che consente di interagire maggiormente con

il mondo che ci circonda. La visione umana infatti, è uno dei meccanismi di

percezione più complessi ed il nostro cervello è in grado di eseguire

elaborazioni così complesse che la potenza delle macchine attuali non è in

grado di eguagliare come, ad esempio, distinguere, a colpo d’occhio il volto di

una persona che passeggia fra la folla, elaborare forme diverse , riconoscere

gli oggetti, leggere ecc.

L’elaborazione delle immagini e’ quel campo di ricerca dell’informatica

avanzata che tenta di emulare al calcolatore i comportamenti percettivi tipici

dell’uomo. Ha avuto un notevole sviluppo a partire dalla metà degli anni ‘60

anche se, per molti anni, a causa della enorme quantità di calcoli che gli

algoritmi di elaborazione delle immagini richiedono, è rimasta un’area di

ricerca riservata a pochi.

Il notevole sviluppo dei processi di calcolo ha tuttavia permesso, negli ultimi

anni, una grande diffusione di questa disciplina.

Page 4: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

La Visione Artificiale, infatti, ha compiuto negli ultimi vent’anni passi da

gigante e ha portato alla realizzazione di algoritmi, tecniche, programmi e

sistemi capaci di vedere ed interpretare la scena, almeno in delimitati settori

ben strutturati.

La diffusione di tale competenze ha permesso di realizzare tanti sistemi che

oggi tutti conosciamo: ricordiamo, ad esempio, i sistemi in grado di verificare

la presenza di masse tumorali in immagini mammografiche, di tracciare il

percorso di un aereo in un video, di controllare il movimento di un robot che

deve localizzare e manipolare pezzi meccanici, di verificare la presenze di code

a semafori controllati da telecamere dell’occhio umano.

Solitamente si divide l’elaborazione di un’immagine, o di una

sequenza di immagini, in tre fasi successive:

• Analisi di basso livello: in ingresso si hanno le immagini originali

provenienti dai sensori. Quest’analisi è legata al processo di

riduzione dei disturbi e distorsioni del processo di acquisizione e

trasmissione. È necessaria per preparare le immagini per

l’elaborazione successiva e in uscita si ottengono delle immagini.

•Analisi di livello intermedio: la descrizione per pixel della scena è

troppo complessa per essere utile in applicazioni pratiche. Con

un’elaborazione di questo tipo allora, si ottiene in uscita un insieme

di strutture, ognuna delle quali descrive un particolare attributo

(feature) della scena.

Page 5: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

• Analisi di alto livello: viene definita di alto livello in analogia alla

visione umana ed è strettamente legata all’intelligenza artificiale. In

ingresso, il sistema di elaborazione ha dei descrittori e un modello

della scena da analizzare, mentre in uscita fornisce una

classificazione, un’interpretazione o un nuovo modello per la

comprensione dell’immagine.

1.1 Il sistema ottico di acquisizione dell’immagine La primissima fase dell’elaborazione di un’immagine è l’acquisizione della

stessa mediante gli strumenti adeguati. Un apparato di acquisizione di

immagini (imaging) funziona raccogliendo la luce riflessa dagli oggetti

della scena e creando una immagine bidimensionale. Il meccanismo è quello di

una camera oscura: la luce riflessa dall’oggetto passa per il foro presente sulla

scatola e viene visualizzata invertita su un piano (dove può essere posizionata

una pellicola o un sensore CCD).

Page 6: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Poiché per i sistemi digitali un semplice foro non è in grado di fornire

immagini sufficientemente contrastate e nitide si utilizzano dei sistemi ottici

formati da una o più lenti .

Si ipotizza inoltre, per semplificare i calcoli nei software, di utilizzare lenti tali

che i raggi paralleli all’asse ottico incidenti sulla lente vengono rifratti in modo

da passare per un punto dell’asse ottico chiamato fuoco lasciando inalterati

quelli che passano per il centro C della lente. Tra le proprietà di un sistema

ottico, quelle più importanti sono:

• la distanza focale che è la distanza fra la lente e il punto in cui

convergono i fasci dei raggi luminosi. Da essa dipende l’ingrandimento

delle immagini e la distanza degli oggetti da riprendere dalla

telecamera;

• la profondità di campo che rappresenta l’intervallo compreso fra la

distanza minima e la distanza massima all’interno del quale l’immagine

è a fuoco;

• il rapporto focale: è il rapporto fra la distanza focale e il diametro della

lente. Da esso dipendono la luminosità e la risoluzione dell’immagine.

Page 7: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

1.2 L’acquisizione delle immagini

Se l’acquisizione avviene in via analogica il segnale acquisito dalla telecamera

è tipicamente un segnale continuo che descrive l'intensità del segnale luminoso.

Il segnale video è corredato, per ogni punto dell’immagine, di diverse

informazioni quali il livello di luminosità dell'immagine in quel punto e il

colore del punto se la telecamera è a colori. Il segnale, di tipo analogico, è

campionato ad intervalli regolari (generalmente ogni 25-30 µsec) da un circuito

elettronico apposito, detto circuito di conversione analogico-digitale per poi

essere successivamente quantizzato e codificato. Il segnale viene infatti

suddiviso in livelli e ogni livello è equivalente al valore raggiunto

dall’ampiezza del segnale analogico in quel momento. Ad ogni livello si

assegna poi un valore che varia a seconda della codifica effettuata. Se

l'ampiezza è massima significa che il punto è bianco e, con una codifica a 8 bit,

il corrispondente valore digitale sarà 255. Quando il segnale analogico ha

ampiezza minima il corrispondente valore digitale sarà zero. Via via che il

primo cresce anche il secondo incrementa il suo valore. Successivamente sarà

analizzato il punto adiacente e così via per l'intera immagine. In questo modo

ad ogni punto dell'immagine è associato un determinato valore numerico che

ne rappresenta il livello di luminosità (detto anche livello di grigio).

Nelle telecamere digitali il principale vantaggio è la possibilità di trasferire

dalla telecamera alla scheda di acquisizione il segnale video in forma digitale e

Page 8: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

non analogica. La maggior parte delle telecamere di questo tipo utilizzano

come elemento fotosensibile, che trasforma la radiazione elettromagnetica

incidente in segnale elettrico, un sensore detto CCD (Charge Coupled Device),

anche se trovano sempre maggior diffusione i sensori CMOS (Complementary

Metal Oxide Semiconductor), soprattutto nelle applicazioni che richiedono

maggior sensibilità, velocità e dinamica, e minori consumi energetici.

Nell’ambito del mio lavoro di tesi è stata utilizzata una webcam dotata proprio

di questo tipo di sensore. Il principio di funzionamento del sensore CMOS è

analogo al funzionamento del CCD.

Il CCD è un circuito integrato che, solitamente, è ricoperto con una pellicola

trasparente che spesso svolge anche la funzione di filtro verso la radiazione

elettromagnetica. Il CCD è strutturato come una matrice regolare di piccoli

elementi organizzati in righe, detti pixel.

Il pixel è un elemento fotosensibile nel quale il livello di carica elettrica

accumulata è proporzionale all’energia luminosa ricevuta. La carica

accumulata da ogni pixel per un certo intervallo di tempo definito viene

scaricata per righe tramite un apposito circuito elettronico ad intervalli definiti

con un apposito segnale di sincronismo. Il segnale di ogni riga può essere

convertito in un valore digitale. I valori così ottenuti vengono ricombinati in

una matrice.

Page 9: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Nel caso del sensore CMOS viene convertito il segnale proveniente da ogni

pixel indipendentemente tramite un circuito direttamente integrato con il

sensore riducendo, in questo modo, dimensioni, consumi e costi e aumentando

velocità e dinamica.

Sia in un caso che nell’altro, al termine della fase di acquisizione per ogni

punto dell’immagine, si ha a disposizione la sua luminosità. Quindi

un'immagine digitale pronta per l’elaborazione è generata mediante la

conversione delle informazioni contenute nell'immagine originale acquisita da

un sensore in un segnale elettronico digitale e dalla successiva sua

memorizzazione sotto forma di dati binari generalmente codificati a 8 bit.

1.2.1 Immagini a colori

Secondo un procedimento analogo viene analizzato il segnale del colore

suddiviso nei tre colori primari (Rosso, Verde e Blu). Ricordiamo innanzitutto

Page 10: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

che il colore percepito dipende dalla natura della luce riflessa dall’oggetto

sottoposto ad illuminazione. Una superficie colorata, infatti, se illuminata,

riflette la luce ad una lunghezza d’onda appartenente all’intervallo tipico del

suo colore, mentre assorbe l’energia relativa a tutte le altre lunghezze d’onda.

Tutti i colori, per la struttura stessa dell’occhio umano, sono visti come una

combinazione variabile dei colori primari, il rosso, il verde e il blu aventi

lunghezze d’onda rispettivamente di 700 nm, 546,1 nm, 435,8 nm.

Nel caso delle immagini a colori, allora, l’immagine attraverserà tre sensori

diversi, ognuno dei quali ha una risposta in frequenza che copre una sola delle

tre componenti primarie. In uscita dai sensori, si producono quindi tre

immagini differenti, di uguali dimensioni, e tre matrici diverse, una per il rosso,

una per il verde e una per il blu, aventi valori di grigio differenti in

corrispondenza dei pixel che si trovano nella stessa posizione.

In questo modo, il livello di grigio di ogni matrice determina la percentuale di

rosso, verde o blu nell’immagine, alla posizione del pixel in questione.

Page 11: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

1.3 Rappresentazione dell’immagine digitale

Un’immagine digitale è rappresentabile quindi mediante una matrice di

pixels. Ogni pixel costituisce l’elemento più piccolo dell’immagine digitale e

porta con sé l’informazione circa la sua posizione nello spazio individuata dai

valori (x, y) rispetto ad una coppia di assi cartesiani ed il valore della sua

intensità luminosa. Indicando con k il numero di bit utilizzati per la codifica

dell’informazione, i valori di luminosità, chiamati anche livelli di grigio, sono

compresi nel campo [0 2k-1].

Con la codifica a 1 byte i livelli di grigio vanno da 0 a 255 dove con 0 si indica

il nero mentre con 255 si indica il bianco.

L’immagine digitale è quindi una matrice Y(i, j) di valori discreti di livelli di

grigio ed è costituita da M*N pixel ciascuno dei quali ha un valore

appartenente all’intervallo [0 2k-1].

La codifica a 8 bit è quella usata più di frequente perché con 8 bit si ha la

possibilità si rappresentare un numero di livelli di grigio tale da consentire una

discriminazione dei grigi accettabile nella maggior parte delle applicazioni in

quanto abbastanza prossima a quella dell’occhio umano.

Page 12: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

1.4 IConnect (versione 5.1) A questo punto le immagini sono pronte per essere elaborate.

Lo strumento software utilizzato per l’implementazione del sistema realizzato è

l’ambiente di sviluppo IConnect (della MICRO-EPSILON Software Division).

IConnect è un software orientato all'acquisizione e al trattamento di segnali

analogici e digitali. E’ molto simile ad altri ambienti di programmazione e

sviluppo che si basano su linguaggi più noti, quali il C++ o il VisualBasic. Ciò

che contraddistingue e caratterizza , rispetto agli ambienti di sviluppo classici ,

questo software è la tecnica di programmazione. IConnect ricorre ad un

linguaggio di programmazione di tipo grafico che consente la creazione di

programmi in forma di diagrammi a blocchi (mediante la composizione di

blocchi funzionali chiamati Moduli). A questo tipo di blocchi che

implementano molte funzioni si affiancano anche altri blocchi chiamati

“Interpret” che permettono una più elevata libertà per definire algoritmi più

sofisticati che possano espletare il lavoro desiderato. Il linguaggio previsto per

utilizzare i blocchi Interpret è basato sulla sintassi dell’ANSI C.

L’ambiente di lavoro prevede una finestra principale nella quale vengono

inseriti i moduli presenti nella finestra Module Library ; i moduli in

quest’ultima sono divisi per categoria di appartenenza. Ogni modulo è

caratterizzato da una serie di proprietà che possono essere fissate. Lo schema a

blocchi che viene creato costituisce l’equivalente del codice sorgente nei

Page 13: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

linguaggi di programmazione testuali. Vi sono, tra l’altro, una serie di moduli

con i quali è possibile creare un’interfaccia grafica interattiva per l’utente.

Un ruolo importante nel presente progetto rivestono i componenti software di

basati sulla libreria Image Processing. Queste componenti software sono in

grado di effettuare delle operazioni puntuali e local sulle immagini come la

segmentazione o l’estrazione dei bordi di un’immagine, in base alla scelta dei

parametri da parte dell’utente. La libreria di Image Processing contiene moduli

IConnect che offrono le seguenti caratteristiche:

tecnologia di campionamento dei pixel parametrica;

scansione radiale e Delta Sampling;

calibrazione a priori dei colori;

una serie di metodi per il bilanciamento della luminosità;

Color Blob Analysis;

trasformazione dello spazio colore in alta precisione.

Infine possiamo dire che i file realizzati utilizzando IConnect sono facilmente

riconoscibili dall’ estensione che essi hanno che è : “.tc2”.

Page 14: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Capitolo 2

Elementi di teoria

In questo capitolo si analizzano i fondamenti teorici delle tecniche

implementate in fase progettuale.

Saranno analizzati quindi i metodi più usati per la segmentazione delle

immagini e per l’estrazione dei bordi, considerando anche dei metodi che poi

non sono stati implementati, ma che costituiscono l’approccio classico per la

risoluzione dei problemi nell’elaborazione delle immagini.

Una particolare attenzione è data alla trasformata di Hough, tecnica f

fondamentale per lo sviluppo dell’intero progetto.

Page 15: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

2.1 Immagini affette da rumore

Le immagini sono spesso degradate da variazioni casuali dei valori di intensità

dei pixel, meglio note con il termine di rumore.

Il rumore è introdotto dal processo di digitalizzazione dell’immagine, durante

la sua elaborazione e trasmissione. I rumori più diffusi sono il rumore salt and

pepper, il rumore impulsivo e il rumore gaussiano.

Il primo è caratterizzato da occorrenze casuali e superflue di valori di intensità

bianchi e neri e si genera durante la trasmissione delle immagini.

Il rumore impulsivo invece è riconoscibile dalla presenza di pixel aventi valori

di grigio molto alti, vicinissimi al bianco.

Il rumore gaussiano presenta una variazione dell’intensità dei valori dei pixel

modellabile secondo una distribuzione normale o gaussiana.

Sia x la variabile casuale che descrive il rumore si ha:

p(x) = 2

2

2

)(

2

µ

σ

−−

x

e

Questo tipo di rappresentazione costituisce un ottimo modello per molti tipi di

rumore dei sensori, come quello causato dall’elettronica presente nella camera.

Page 16: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In questo lavoro di tesi, la prima operazione, immediatamente successiva

all’acquisizione dell’immagine è quella del filtraggio della stessa tramite un

filtro di “smoothing” lineare, più propriamente un filtro gaussiano.

Nel prossimo paragrafo saranno esposte le tecniche di filtraggio delle

immagini proprie dei filtri lineari con una particolare attenzione al filtro

gaussiano.

2.4 I filtri lineari

2.4.1 L’operatore di convoluzione

I filtri lineari per l’attenuazione del rumore sono realizzati mediante l’uso delle

maschere di convoluzione.

Le maschere di convoluzione sono degli operatori locali che realizzano la

media pesata del valore dei pixel compresi nell’intorno del pixel a cui sono

applicate. L’area dei pixel di vicinanza interessati dall’operatore è variabile,

normalmente si sceglie una maschera di forma quadrata rappresentata in forma

matriciale con dimensioni variabili, per esempio 3x3, 5x5 ecc. e il pixel in

elaborazione che riceve il risultato della convoluzione si trova posizionato al

Page 17: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

centro della finestra. Un esempio di maschera di convoluzione di dimensione

3x3 è mostrato in figura 2.4.1:

Figura 2.4.1 maschera di convoluzione 3x3

Poiché stiamo parlando di filtri lineari, la maschera di convoluzione non è altro

che la risposta impulsiva del sistema di filtraggio e l’immagine in uscita è

proprio il prodotto di convoluzione tra l’immagine d’ingresso e la risposta

impulsiva del sistema.

Per ogni pixel di coordinate (i, j) nell’immagine il risultato del filtraggio si

calcola traslando la maschera di convoluzione sul pixel (i, j) nell’immagine e

successivamente effettuando la media pesata dei pixel compresi nell’intorno di

(i, j) dove i singoli pesi sono i coefficienti che si trovano nelle posizioni

corrispondenti all’interno della maschera di convoluzione

Page 18: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

L’operatore di convoluzione quindi opera come un processo lineare in quanto

esegue la somma di elementi, i livelli di grigio dei pixel in corrispondenza della

maschera, moltiplicati da valori costanti.

Se i pesi del filtro non cambiano per l’intera immagine l’operatore di

convoluzione si dice spazialmente invariante.

2.4.2 Il filtro gaussiano

Il filtro gaussiano è un filtro di smoothing lineare realizzabile mediante una

maschera di convoluzione i cui coefficienti sono definiti in accordo alla

funzione gaussiana.

La funzione di trasferimento g(i, j) di tali filtri è modellizzata dalla funzione

gaussiana discreta con media nulla, rappresentata dalla seguente espressione

analitica :

222

2),( σ

ji

ejig

+−

=

Il parametro σ definisce l’area di influenza del filtro gaussiano. In

corrispondenza di valori di σ piccoli si ha uno smoothing lieve, ma le

caratteristiche proprie dell’immagine restano intatte.

In corrispondenza di un parametro σ più grande, si ottiene un filtro più ampio

con una maggiore capacità di smoothing. In questo caso però è possibile

Page 19: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

perdere o attenuare anche una parte del contenuto informativo dell’immagine.

È necessario quindi stabilire un compromesso per avere una buona

attenuazione del rumore contemporaneamente alla conservazione delle

caratteristiche dell’immagine.

Per la proprietà di simmetria circolare del filtro gaussiano, l’operazione di

smoothing è eseguita in modo identico in tutte le direzioni ed inoltre, poiché la

funzione gaussiana ha un singolo lobo, il peso dato ai pixel compresi

nell’intorno dei pixel a cui si sta applicando il filtro, decresce

monotonicamente all’aumentare della distanza dal pixel centrale.

Queste proprietà del filtro gaussiano garantiscono che non ci sia alcuna

distorsione nell’immagine a seguito dell’operazione di filtraggio ed in

particolare che se ne preservino le caratteristiche importanti , come i bordi e le

loro orientazione

2.5 Segmentazione delle immagini

Generalmente in un’immagine sono presenti diversi oggetti che compongono la

scena e può essere utile suddividere l’immagine in regioni differenti, ognuna

delle quali contenga solo i pixel che corrispondono ad un oggetto o ad un

insieme di oggetti aventi delle caratteristiche comuni. Questo processo di

suddivisione delle immagini in regioni tra loro omogenee si chiama

Page 20: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

segmentazione. I pixel sono raggruppati in regioni in base ad un criterio di

omogeneità che può essere di diverso tipo. I criteri più diffusi sono:

• il raggruppamento per valori di similarità di attributi, come il

colore, la tessitura;

• il raggruppamento per valori di prossimità spaziale come la distanza euclidea ecc.

Si utilizzano questi criteri per la segmentazione delle immagini perché regioni

omogenee derivano dalla proiezione di punti di un oggetto nell’immagine,

rappresentati da pixel che sono spazialmente vicini con valori simili di livelli di

grigio

L’algoritmo di segmentazione non genera una classificazione delle regioni ma

si limita a fornire esclusivamente una partizione dell’immagine in regioni

omogenee.

La segmentazione di un’immagine è strettamente legata alla sua applicazione.

Essa non si basa su una precisa teoria fisico-matematica. E’ quindi probabile

che un metodo di segmentazione valido per un’immagine non si riveli

altrettanto efficiente per immagini di natura molto differente.

Per questo motivo l’implementazione del processo di segmentazione in via

automatica con la certezza di risultati soddisfacenti in ogni situazione è un

obiettivo abbastanza arduo da raggiungere. Tuttavia sono stati messi a punto

degli algoritmi, molti dei quali basati su un approccio euristico, che utilizzano

metodi specifici per le varie applicazioni.

2.5.2 Algoritmi di segmentazione

Page 21: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Gli algoritmi di segmentazione si raggruppano in

• algoritmi basati sulla conoscenza globale o parziale dell’immagine,

rappresentata dall’analisi dell’istogramma di alcune caratteristiche

dell’immagine

• algoritmi basati sulle regioni

• algoritmi basati sui contorni

Le ultime due modalità di algoritmi si classificano a loro volta sulla base di

features quali il colore, la tessitura, la luminanza, utilizzate per l’estrazione dei

bordi o delle regioni.

Il più delle volte, come accade nel progetto, argomento di questa tesi, un

risultato accettabile si ottiene mediante la combinazione dei diversi algoritmi e

l’integrazione della conoscenza a priori della scena, opportunamente

modellizzata.

2.5.3 Definizioni di regione e bordo

Prima di tutto vediamo come si definiscono le regioni e il bordo.

Page 22: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

La regione è l’insieme dei pixel in cui è possibile definire un percorso

considerando qualsiasi coppia di pixel stessi, dove con percorso tra due pixel A

e B si intende la sequenza dei pixel S1, S2… Sn dove S1=A, Sn = B ed il pixel

Si+ 1 è vicino al pixel Si con i = 1…n-1.

Nella definizione di bordo consideriamo sia l’elemento di bordo che il tratto di

bordo.

L’elemento di bordo, è un punto dell’immagine localizzato dalle coordinate (i,

j) dove si verifica una discontinuità del valore di intensità mentre il tratto di

bordo è costituito da un insieme di punti del bordo allineati. È caratterizzato

dalle coordinate (i, j, θ) che lo localizzano nella posizione (i, j) all’interno del

piano immagine. θ è il suo angolo di orientazione rispetto ad un asse di

riferimento, ad esempio l’asse orizzontale.

Normalmente si trova ai confini tra regioni omogenee di una immagine,

costituisce una proprietà locale di un pixel con i suoi vicini ed è caratterizzato

come un vettore definito dal modulo e dalla direzione.

2.5.4 La segmentazione region-based

Il metodo di segmentazione più semplice e diffuso è quello della

segmentazione in regioni per soglia.

Page 23: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In questo modo è possibile convertire un’immagine con molteplici livelli di

grigio in un’immagine binaria, un’immagine ossia, in cui i valori dei pixel

possano assumere solo due valori, secondo una legge di questo tipo:

0 se x < S

1 se x > S

dove S è la soglia dei livelli di grigio ed x è il valore di grigio di ogni pixel.

Una possibile applicazione per la segmentazione di questo tipo può essere la

separazione degli oggetti dallo sfondo.

Gli oggetti della scena solitamente sono proiettati in zone omogenee

nell’immagine e sono caratterizzati da una riflettività quasi costante.

E’ possibile che si vogliano esaltare alcuni oggetti in un’immagine. Se è noto

l’intervallo dei valori di grigio associato a questi oggetti nell’immagine è

possibile effettuare una segmentazione secondo la legge seguente:

1 se S1< x < S2

0 altrimenti

Lo stesso metodo si può usare, in maniera più generale, se sono noti diversi

intervalli, disgiunti tra loro, di livelli di grigio associati ai diversi oggetti.

Con questo metodo è quindi possibile effettuare un’estrazione dei bordi

dell’oggetto, qualora si ipotizzi che, mentre gli oggetti sono scuri rispetto ad

Page 24: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

uno sfondo chiaro, un intervallo di livelli di grigio possa comprendere solo i

livelli che appartengono agli elementi dell’immagine che si trovano tra lo

sfondo e confini degli oggetti, ossia ai bordi.

Con le tecniche analizzate si effettua quindi una partizione dell’immagine ad n

livelli, se ad ogni livello di grigio si associa un intervallo di valori.

Con la segmentazione a soglia le soglie sono generalmente calcolate

interattivamente dall’utente, in accordo con l’immagine esaminata e con gli

elementi dell’immagine che si vogliono mettere in risalto.

L’individuazione della soglia che renda efficace il processo di binarizzazione

della matrice non è semplice. Nelle immagini seguenti si può notare l’effetto di

un’errata scelta del valore di soglia con una segmentazione dell’immagine

effettuata secondo la suddetta legge

0 se x < S

255 se x > S

Nel primo caso (figura 2) si è scelto un valore troppo basso mentre nel

secondo caso (figura 3) la soglia è troppo alta, con una conseguente scarsa

individuazione degli oggetti dell’immagine a cui corrispondono livelli di grigio

bassi, propri dei colori scuri.

Page 25: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 1. Immagine campione Figura 2. Soglia troppo bassa

Figura 3. Soglia troppo alta

Tuttavia sono state messe a punto delle tecniche di segmentazione mediante

soglia in cui il valore della soglia è stabilito con maggior facilità.

Page 26: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

2.5.5 Scelta della soglia basata sull’istogramma

La soglia utile per separare gli oggetti di un’immagine dallo sfondo è valutabile

con l’analisi dell’istogramma dei livelli di grigio.

In alcuni casi l’istogramma dei valori di grigio presenta un andamento

nettamente bimodale.

Si rilevano cioè due picchi che corrispondono rispettivamente ad un oggetto

della scena e allo sfondo.

Il valore della soglia viene fissato al punto di minimo locale tra i due picchi.

L’individuazione del primo picco dell’istogramma è molto semplice perché

corrisponde al punto di massimo assoluto dell’istogramma mentre quella del

secondo picco può essere soggetta ad ambiguità.

Si ovvia a questo problema moltiplicando i valori dell’istogramma per il

quadrato della distanza dal primo picco e scegliendo il valore massimo tra

questi prodotti

Max2 = max[ (k-j)2 h(k) ] 0<=k<=255

favorendo in questo modo i picchi che non sono vicini al massimo.

Page 27: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

2.5.6 Metodo basato sull’istogramma modificato

L’istogramma tuttavia, nella maggior parte dei casi, non presenta un

andamento bimodale. E’ quindi quasi impossibile individuare una soglia in

grado di partizionare l’immagine in 2 regioni ben definite.

Poiché questo problema si presenta quando le distribuzioni dei livelli di grigio

dell’oggetto e dello sfondo si sovrappongono, si modifica l’istogramma non

considerando i pixel ad alto gradiente cioè i pixel appartenenti ai bordi.

In corrispondenza dei punti del bordo infatti, la funzione intensità

dell’immagine presenta le discontinuità più forti e, in questi punti il gradiente,

assume i valori più alti.

In questo modo l’istogramma dell’immagine è calcolato solo sul contributo dei

pixel che appartengono nettamente allo sfondo o all’oggetto mentre non si

considerano i pixel del bordo che potrebbero facilmente causare errori ed

ambiguità.

Oppure si calcola l’istogramma considerando solo i pixel di bordo, ad alto

gradiente. In questo caso nell’istogramma si ha un solo picco con il

corrispondente livello di grigio che è scelto come soglia di segmentazione

Page 28: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

2.5 Estrazione dei bordi Un’altra tecnica efficace di segmentazione delle immagini è quella

dell’estrazione dei bordi degli oggetti che si trovano nella scena.

Come detto prima, i bordi sono i punti in cui la funzione intensità

dell’immagine ha brusche discontinuità che possono essere di tipo diverso.

Le più diffuse sono:

• le discontinuità a gradino, in corrispondenza delle quali i valori di intensità

variano bruscamente da un valore associato ai pixel di una regione a un

valore diverso associato ai pixel di una regione adiacente differente.

• le discontinuità a linea, in cui l’intensità varia bruscamente da un valore ad

un altro per pochi pixel adiacenti, ma poi torna ad assestarsi al valore

originario dopo breve tempo

Tuttavia queste discontinuità sono “ideali” nel senso che, nella realtà, a causa

delle componenti a bassa frequenza indesiderate e dello smoothing non si

hanno delle variazioni brusche del valore della funzione ma il cambio avviene

in maniera graduale dando luogo a discontinuità a rampa nel caso delle

discontinuità a gradino e alle discontinuità a “roof” per le discontinuità a linea.

Nelle immagini reali, poi, si possono verificare discontinuità generate dalla

combinazione di discontinuità a gradino e a linea.

Un bordo è quindi una significativa variazione locale dell’intensità

dell’immagine. Gli operatori per l’estrazione dei bordi esaltano le

Page 29: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

discontinuità dei valori di intensità. L’operatore matematico che meglio

evidenzia le discontinuità di una funzione è l’operatore derivata prima.

Poiché però si sta lavorando con immagini bidimensionali si deve considerare

il gradiente della funzione e valutarne il suo picco che corrisponde proprio al

punto in cui si riscontra la massima discontinuità dell’immagine.

Si applica quindi l’operatore gradiente ad f(x, y) nella generica direzione r con

angolo θ rispetto all’asse x.

Per determinare poi il valore massimo del gradiente r

f

∂, orientato nella

direzione di massima variazione della funzione f si deriva ulteriormente la

funzione gradiente rispetto a θ e si calcola il punto in cui questa derivata

assume il valore 0, il punto cioè in cui la funzione gradiente assume il valore

massimo. Il risultato di quest’operazione è proprio il valore massimo della

derivata dir

f

∂ nella direzione di massima variazione e si indica con il nome di

vettore gradiente della funzione f(x, y) .

Tale vettore

ha modulo

Page 30: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

e direzione

dove si considera la funzione arcotangente a quattro quadranti.

Il gradiente è quindi un vettore orientato nella direzione di massima

variazione della funzione ed il suo modulo è proprio una misura della massima

variazione di f nella direzione di df.

Dovendo lavorare su immagini digitalizzate sono state introdotte

approssimazioni sulle derivate parziali rispetto agli assi coordinati , sostituite

dalle differenze finite lungo tali assi. Inoltre, l'operazione di differenziazione

viene eseguita tramite la convoluzione , analizzata precedentemente, con una

maschera rettangolare n x m.

Sono stati sviluppati diversi operatori del prim’ordine per l’estrazione dei bordi

Questi operatori si basano tutti sulla tecnica del gradiente ma differiscono tra

loro per le tecniche di approssimazione delle derivate

Ci sono operatori diversi che si basano sul calcolo del gradiente e si

differenziano tra loro proprio per le approssimazioni applicate al gradiente

stesso Si ottengono quindi maschere di convoluzione caratterizzate da

coefficienti differenti a seconda del tipo di filtro. I filtri del prim’ordine più

usati sono più usati sono quelli di Roberts e di Sobel.

Page 31: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

2.6.1 Metodi del secondo ordine

Per accentuare ulteriormente i bordi, poi, si utilizzano gli operatori del

second’ordine. I punti del bordo corrispondono ai punti in cui non solo si ha il

massimo valore del gradiente ma contemporaneamente si ha un

attraversamento dello zero della derivata seconda.

Si utilizza allora l’operatore laplaciano che rappresenta l’equivalente

bidimensionale della derivata seconda. Applicandolo alla funzione intensità

dell’immagine si possono localizzare i punti del bordo, in corrispondenza dei

quali si verifica l’attraversamento dello zero cioè il fianco di salita o di discesa

della derivata seconda passa per lo zero. Anche quest’operatore si implementa

con una maschera di convoluzione per le applicazioni nell’elaborazione delle

immagini. Tuttavia è più sensibile al rumore e può generare doppi bordi oltre a

non fornire informazioni sulla direzione del bordo. Non viene quindi utilizzato,

se non applicandolo ad immagini filtrate con un filtro gaussiano.

Page 32: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

2.7 La trasformata di Hough

Dopo aver esaminato i metodi usati per estrarre le caratteristiche desiderate di

un’immagine, quali particolari regioni o i bordi degli oggetti, in questo

paragrafo si espone la tecnica che utilizza i risultati delle elaborazioni

precedenti per riconoscere le linee rette presenti nell’immagine.

La trasformata di Hough infatti, permette di riconoscere la presenza di figure

geometriche note, quali rette, cerchi, in un’immagine.

2.7.1 Cos’è la trasformata di Hough

Questa tecnica, ideata da Hough nel 1962 permette il riconoscimento di

configurazioni globali presenti in una immagine quali segmenti, curve, forme

prestabilite sfruttando la loro proiezione puntiforme in uno spazio dei

parametri, o caratteristiche, opportunamente definito. Tale tecnica ha

dimostrato di essere molto robusta in quanto consente di ricercare le curve

parametrizzate anche a partire da figure rumorose e dai contorni non continui.

Nella sua versione tradizionale, la trasformata di Hough si applica ad immagini

binarie, ovvero immagini in cui sono presenti due soli livelli, bianco e nero, ed

in cui l'informazione associata ad un punto è rappresentata unicamente dalla

sua posizione.

Page 33: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In questo modo il problema di riconoscere una configurazione che può

occupare una grande porzione dell'immagine e avere forma complessa si riduce

a quello di riconoscere una configurazione locale, per lo più puntiforme, in un

spazio parametrico. I parametri scelti per la costruzione di questo spazio

parametrico sono strettamente connessi alle caratteristiche delle strutture

geometriche che si vogliono riconoscere..

Supponiamo ad esempio che le curve da noi cercate siano le rette o segmenti di

retta: le variabili nello spazio dei parametri potranno essere una coppia

qualsiasi di parametri sufficienti a descrivere la retta generica (inclinazione e

distanza dall'origine oppure coordinate dell'intersezione tra la retta e gli assi

cartesiani o ancora elevazione della normale alla retta e distanza dall'origine,

...). In questo modo una retta nel piano dell'immagine verrà trasformata in un

punto le cui coordinate sono i parametri che caratterizzano la retta stessa.

Lo stesso principio può essere applicato ad altre forme geometriche pur di

scegliere come variabili trasformate opportuni parametri che definiscono la

forma cercata. Ad esempio per i cerchi, occorrerà definire uno spazio di tre

parametri (coordinate del centro e raggio, …) i cui punti ne rappresentino uno

in particolare. I punti che fanno parte di una curva cercata, nel piano

parametrico sono trasformati in curve parametriche, una per ogni punto

dell’immagine, e si intersecano in un unico punto le cui coordinate sono

proprio date dai parametri corrispondenti alla curva da riconoscere.

Supponiamo ad esempio che per un certo punto P' dello spazio dei parametri

passino N curve parametriche, corrispondenti ad altrettanti punti del piano

immagine: di conseguenza nel piano immagine la curva di forma cercata,

Page 34: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

caratterizzata dalla combinazione dei parametri del punto P', passa per N punti

dell'immagine stessa. Pertanto maggiore è il numero di curve trasformate che si

incrociano in un certo punto P', maggiore sarà la somiglianza tra la curva di

forma cercata e la "figura" formata dai suddetti punti dell'immagine.

Nel caso delle rette, una retta nel piano immagine è parametrizzata con

l’angolo θ che la normale alla retta forma con l’asse positivo delle ascisse e la

distanza ρ della retta dall’origine del piano, calcolata lungo la normale alla

retta

Ogni punto avrà quindi una rappresentazione polare nel piano di Hough.

Dato il punto di coordinate (x0, y0) la trasformata del punto sarà la curva di

equazione

(2.7.1) ρ = x0 cosθ+ y0 sinθ

Page 35: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

La trasformata dell'intera immagine sarà invece la sovrapposizione di tante

curve quanti sono i punti che compongono l'immagine stessa.

Come detto prima, se alcuni di questi punti sono attraversati dalla stessa retta,

ossia sono allineati, le corrispondenti sinusoidi si incroceranno in uno stesso

punto, le cui coordinate sono proprio i parametri che caratterizzano la retta, nel

piano di Hough.

Nell’esempio in figura la retta che attraversa i punti A, B, C ha una distanza

dall’origine, calcolata lungo la normale, pari a ρ0 e l’angolo formato dalla

normale con l’ asse x uguale a θ0.

Il range dei parametri (ρ,θ) che si usa abitualmente, data un’immagine di

larghezza M ed altezza N, è :

2222 NMNM +<<+− ρ

-π/ 2 < θ < π/2

θ0

ρ0

Page 36: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

La trasformata di Hough va poi quantizzata per essere memorizzata in una

matrice. Pertanto si costruisce una di matrice di accumulazione, detta mappa

di Hough, in cui ogni cella contiene il numero di sinusoidi che passano

nell'intervallo di quantizzazione associato alla cella stessa: le celle che

contengono i valori di accumulazione più elevati rivelano potenziali forme

all'interno dell'immagine che meglio di altre assomigliano a rette.

In particolare, se si ha una cella della matrice di accumulazione per ogni valore

di ρ e di θ, una generica cella relativa alla coppia di parametri (ρ0, θ0) avrà un

valore pari al numero di sinusoidi passanti per il punto (ρ0, θ0) nel piano di

Hough.

Una successiva analisi della matrice di accumulazione permette di estrarre le

coppie di parametri relativi a linee rette dell’immagine di partenza e di risalire

ai coefficienti e ,quindi, alle equazioni delle rette stesse, nel piano cartesiano.

Nel progetto, la trasformata di Hough è stata usata come come un "rivelatore

di rette" per riconoscere i tratti lineari del contorno degli oggetti contenuti in

una immagine. In questo caso è stato necessario applicare la trasformata non

direttamente all'immagine ma ai contorni degli oggetti nell’immagine, ottenuti

mediante una preventiva estrazione dai bordi.

Una delle caratteristiche più interessanti della Trasformata di Hough è quella di

non risentire del rumore presente in una immagine.

Infatti, l'altezza dei picchi nella matrice di accumulazione, dipende in maniera

del tutto trascurabile da eventuali lacune presenti nella retta di partenza o

dall'esistenza di punti spuri presenti nello spazio immagine.

Page 37: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Capitolo 3

Il Sistema sviluppato

In questo capitolo è descritta l’applicazione pratica delle conoscenze teoriche

discusse finora, nell’ambito dello sviluppo di un software in grado di risolvere

in modo efficiente il problema dell’individuazione di segmenti rettilinei in

un’immagine.

Saranno analizzate in dettaglio, quindi, le implementazioni delle tecniche di

filtraggio dell’immagine, dell’estrazione dei contorni degli oggetti presenti

nella scena e infine dell’individuazione dei segmenti attraverso la trasformata

di Hough.

Page 38: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

3.1 Acquisizione delle immagini

La prima operazione effettuata è stata quella di acquisire delle immagini

tramite una webcam.

La webcam utilizzata è dotata di un sensore CMOS, le cui caratteristiche sono

state trattate nel Capitolo 2, e presenta proprietà di elevata velocità e dinamica

sebbene abbia una risoluzione non molto elevata.

La scelta di un sensore a bassa risoluzione non è stata casuale, ma motivata

dalle considerazioni sull’eventuale impiego del sistema sviluppato. L’ambiente

industriale che dovrebbe essere la naturale destinazione di tale software non

richiede, infatti, un sistema di acquisizione delle immagini estremamente

sofisticato o delicato, data la notevole dimensione degli scaffali visibili anche

con una risoluzione medio-bassa della webcam.

L’ambiente di sviluppo Iconnect fornisce dei moduli preprogrammati per il

trattamento e l’elaborazione di immagini digitali.

Il sistema sviluppato fa largo uso di questi moduli per il caricamento delle

immagini e per le procedure di segmentazione e di estrazione dei bordi

dall’immagine.

Per utilizzare le immagini acquisite con la webcam nel sistema è stato

utilizzato un apposito modulo, loadimage, , in grado di caricare le immagini di

molteplici formati tra cui il jpg.

Page 39: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

3.2 Filtraggio delle immagini

Dopo aver acquisito l’immagine è stato necessario convertirla in un formato a 8

bit senza segno, un formato ossia in cui i livelli dei valori di grigio sia

compreso in un campo di valori pari a [0 255] dove lo 0 corrisponde al nero

mentre 255 corrisponde al bianco.

Questa conversione a 8 bit in realtà non è necessaria in quanto l’immagine è

stata prelevata in via digitale e quindi codificata, come avviene di solito, con

una codifica a 8 bit.

L’introduzione di questo blocco di conversione è stata necessaria per

l’interfacciamento con il successivo modulo histogram che calcola

l’istogramma dei valori di grigio e che pretende un ingresso a 8 bit o senza

segno.

Si è insistito nel capitolo precedente sull’importanza di un filtro che eliminasse

o, almeno, attenuasse, il rumore presente nelle immagini.

Per lo sviluppo di questo sistema si è scelto di usare il filtro di Gauss, per il

suo comportamento migliore nei confronti del rumore rispetto a quello ottenuto

con altri filtri.

Il filtro di Gauss è stato implementato mediante il modulo preprogrammato

Filterimage in grado di effettuare vari tipi di filtraggi dell’immagine.

A seconda del filtro utilizzato la matrice immagine è sottoposta a diverse

operazioni.

Page 40: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In questo caso si implementa l’operazione di convoluzione, esaminata nel

capitolo precedente e la matrice di convoluzione è:

1 2 1

2 4 2

1 2 1

3.3 Segmentazione dell’immagine

3.3.1 Segmentazione per intervallo di soglia

In seguito al filtraggio dell’immagine sono state quindi selezionati i pixel

corrispondenti agli oggetti presenti nell’immagine L’operazione di

segmentazione dell’immagine è stata realizzata in due modi differenti.

La prima versione prevede l’utilizzo del blocco preprogrammato ImageOp che

opera sulle immagini effettuandone la segmentazione in base alla soglia scelta

dall’utente.

La scelta della soglia deriva dall’analisi dell’istogramma dei livelli di grigio

dell’immagine, ottenuto mediante il modulo histogram.

Come discusso nel capitolo precedente, questo istogramma, come avviene nella

maggior parte dei casi, non presenta un andamento nettamente bimodale.

Page 41: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

L’andamento dell’istogramma è caratterizzato invece dalla presenza di più

picchi come si può vedere nell’esempio di Figura 4.3

Figura 4.3 Istogramma dei valori di grigio

in cui lungo l’asse delle ascisse ci sono i valori di grigio dei pixel e lungo l’asse

delle ordinate i numeri di occorrenza dei livelli di grigio.

In molte delle situazioni affrontate l’istogramma era analogo a quello in figura.

In questo istogramma sono ben evidenti i picchi relativi allo sfondo chiaro in

quanto posizionati nell’intorno del valore di grigio 255, tipico del bianco,

mentre i picchi relativi ai pixel degli oggetti non facenti parte dello sfondo, in

quantità notevolmente minore, si localizzano in corrispondenza di valori di

grigio più bassi e collocati tutti nella zona intermedia del range [0 255]

Proprio in questo intervallo intermedio si trovano i pixel messi in risalto

attraverso il modulo ImageOp.

Scegliendo infatti un intervallo di segmentazione pari all’intervallo suddetto,

nell’immagine si lasciano inalterati i pixel appartenenti a questo intervallo

Page 42: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

mentre tutti gli altri sono posti a zero. L’intervallo scelto in fase di progetto è

stato [50 110].

Si ottiene in questo modo un’immagine intermedia in cui sono presenti solo gli

oggetti evidenziati mentre il resto dell’immagine è completamente nero.

Questo risultato è visibile anche mediante la visualizzazione della matrice

immagine in cui sono diversi da zero solo i pixel il cui valore è compreso

nell’intervallo di interesse.

3.3.2 Formazione dell’immagine binaria

Per facilitare le operazioni successive è stato opportuno fare in modo che nella

matrice immagine i pixel avessero solo due valori di grigio: 0, corrispondente

al nero e 255, corrispondente al bianco.

Come è stato esposto nel precedente paragrafo, si è fatto in modo che nella

matrice immagine restino invariati solo i pixel i cui valori di grigio

appartengono ad un intervallo stabilito.

I pixel che non soddisfano questo criterio di selezione assumono valore 0.

E’ ora possibile binarizzare l’immagine senza deteriorare in alcun modo le

informazioni ottenute mediante le operazioni precedenti.

Le zone selezionate infatti, continueranno ad essere ben differenziate dal resto

dell’immagine anche in seguito alla segmentazione a cui si sottopone

nuovamente l’immagine per renderla binaria.

Page 43: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

La segmentazione stavolta è ad un’unica soglia da scegliere in modo

opportuno.

Si fa in modo che il valore della soglia coincida con l’estremo inferiore

dell’intervallo utilizzato nell’operazione precedente. Dopodiché si mettono a

255 tutti i pixel aventi un valore inferiore al valore di soglia mentre tutti gli

altri sono posti a 0.

In questo modo gli oggetti d’interesse sono neri mentre il resto dell’immagine

diventa completamente bianco.

Si è scelta la soglia in questo modo poiché gli unici pixel della matrice

immagine che non avessero un valore inferiore a quello della soglia erano

proprio i pixel degli oggetti, come previsto dall’applicazione delle precedenti

operazioni.

3.3.3 Segmentazione per colore L’ approccio precedentemente utilizzato tuttavia, non è molto robusto. Il

sistema, infatti, fornisce risultati molto soddisfacenti solo in ambienti in cui

siano presenti esclusivamente gli scaffali ben visibili su sfondo chiaro o scuro.

Con altre immagini in cui sono presenti anche altri oggetti ed i contrasti non

sono ben definiti, si è visto, mediante prove sperimentali, che è necessario

adattare di volta in volta il valore della soglia all’immagine analizzata. Inoltre,

bisogna ricordare che anche applicando queste operazioni ad immagini

acquisite nello stesso ambiente ma in condizioni differenti di luminosità i

Page 44: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

risultanti non si mantengono costanti perché varia il valore di grigio dei pixel.

Il sistema, pertanto, non è in grado di adattarsi automaticamente alle differenti

situazioni, ma è indispensabile un intervento dell’utente.

Lasciando invariata la soglia d’altronde, si possono ottenere dei risultati

indesiderati che influenzano pesantemente le operazioni di estrazione dei bordi

e della trasformata di Hough. Se si estraggono i bordi nelle immagini in cui gli

oggetti non sono nettamente distinti, è infatti molto alta la probabilità che ci

siano dei bordi vicini a quelli degli scaffali o addirittura tali da poter essere

confusi con essi.

Il risultato dell’applicazione della trasformata di Hough a queste immagini è

quello di avere delle rette relative, come previsto, a contorni rettilinei anche

molto piccoli effettivamente presenti nell’immagine, ma inutili al fine del

riconoscimento degli scaffali. Queste rette sono anzi, una notevole fonte di

errore per il sistema stesso. Per risolvere questo problema allora, si è utilizzata

una segmentazione per colore realizzata in linguaggio C in altra sede.

Si è ipotizzato che gli scaffali da riconoscere nell’ambiente strutturato siano di colore rosso.

In primo luogo si mettono in risalto i pixel corrispondenti agli oggetti rossi

presenti nell’immagine in modo da rilevare esclusivamente gli scaffali e

successivamente se ne estraggono i bordi.

Tale metodo si è dimostrato molto più robusto, preciso ed adattabile ad una

varietà più ampia di situazioni..

Questa implementazione prevede due realizzazioni, differenti unicamente per il

criterio di scelta dei pixel.

Nel primo caso, gli oggetti rossi nell’immagine possono essere messi in risalto

scegliendo solo i pixel in cui la componente rossa, ossia il livello di grigio del

Page 45: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

pixel nella matrice relativa alla componente rossa, ha un valore superiore ad

una soglia fissata, nel nostro caso 50 mentre le componenti di blu e di verde

hanno dei valori inferiori a tale soglia.

In questo modo è stato possibile non solo selezionare le componenti rosse

dell’immagine ma anche quelle che si differenziano di poco dal rosso

scarlatto, come il rosa o il bordeaux.

In seguito, ai pixel selezionati si assegna il valore 0 mentre il livello di grigio

dei pixel restanti è posto a 255.

Il secondo metodo implementativo, che ha fornito i risultati migliori in

assoluto, prevede invece la scelta dei pixel in cui la componente di rosso supera

di una volta e mezzo la quantità delle componenti di grigio e di verde.

Si considera cioè, la percentuale delle componenti dei tre colori primari in ogni

pixel scegliendo quelli in cui il rapporto fra le tre componenti o, meglio, tra la

percentuale della componente rossa e quelle degli altri colori è di 1,5.

Anche in questo caso, per avere un’immagine con due soli livelli di grigio, 0 e

255, si mettono a 0 i pixel che soddisfano la condizione stabilita mentre gli altri

assumono un valore di grigio pari a 255.

Nella versione definitiva del progetto si è preferito usare questa seconda

implementazione a seguito del confronto tra i risultati ottenuti.

In questo caso quindi non sono stati utilizzati i blocchi ImageOp

precedentemente illustrati per la segmentazione ma è stata data in ingresso al

sistema l’immagine già segmentata a cui viene poi applicato il filtro gaussiano

per l’attenuazione del rumore.

Page 46: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

3.4 Estrazione dei bordi

Dopo aver segmentato l’immagine con le operazioni suddette la matrice

ottenuta presenta dei valori pari a 0 in corrispondenza degli oggetti di interesse

e 255 nel resto dell’immagine.

I punti del bordo quindi sono quelli in cui i pixel aventi valori diversi sono

vicini tra loro.

Per determinare esclusivamente i punti del bordo è stato utilizzato un metodo

differente da quelli utilizzati solitamente e visti nel capitolo precedente.

L’implementazione di questa operazione infatti non è stata realizzata con uno

dei filtri del primo o del secondo ordine, ma è stata affidata al modulo

preprogrammato thinimage che realizza, in realtà, un assottigliamento dei

contorni.

Il criterio su cui ci si basa è sempre quello di calcolare la differenza tra i pixel

appartenenti ad un intorno di un pixel considerato. Quest’operazione si applica

a tutti i pixel della matrice. In corrispondenza dei pixel che si trovano in una

zona omogenea dell’immagine, la differenza tra i valori dei pixel sarà nulla. In

corrispondenza dei punti del bordo invece, in cui si hanno delle disomogeneità,

la differenza tra i valori dei pixel sarà diversa da zero.

Page 47: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Nel caso particolare, si considera il pixel (i, j) e quelli in rapporto di 8-

vicinanza con esso, ossia quelli raggiungibili con un solo passo in orizzontale,

in verticale o in diagonale.

Nella figura 3.4 è rappresentata una 8-vicinanza (8-neighbours):

Fig. 3.4

dove, se il pixel ha come coordinate nella matrice la coppia (i, j), i pixel vicini

hanno coordinate (i+1, j), (i-1, j), (i, j+1), (i, j-1),(i-1, j+1),(i+1,j+1),(i-1, j-1),

(i+1,j+1) .

In particolare si verifica che il pixel di coordinate (i-1, j) abbia un valore

maggiore o uguale a quello del pixel di coordinate (i+1, j) e che il pixel di

coordinate (i, j+1) sia maggiore o uguale del pixel (i, j-1). Se si verificano

queste condizioni il pixel (i, j) è un punto del bordo.

Solo i pixel che soddisfano questi vincoli restano invariati nella matrice, gli

altri pixel sono tutti posti a 255.

In questo modo nell’immagine sono visibili solo i contorni degli oggetti rossi

presenti in essa.

3.5 Implementazione della Trasformata di Hough

Page 48: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Le procedure di estrazione dei contorni illustrate finora sono necessarie per una

efficace implementazione della trasformata di Hough, il cui corretto

funzionamento si basa proprio sulla qualità delle operazioni precedenti.

In questo progetto l’algoritmo della trasformata di Hough, i cui dettagli teorici

sono stati esaminati nel Capitolo 2, è stato implementato utilizzando il blocco

Interpret programmabile dall’utente in un linguaggio molto simile al C.

Poiché il blocco Interpret non prevede l’impiego delle matrici e le operazioni

con esse, è stato necessario inserire l’intera matrice immagine in un unico

grande vettore avente un numero di elementi pari al prodotto del numero di

righe per il numero di colonne della matrice immagine. È stato possibile farlo

mediante l’uso del modulo Mat2Vect che oltre a prelevare una determinata

riga o colonna dalla matrice in ingresso offre la possibilità di scrivere l’intera

matrice in un vettore.

Negli elementi teorici riguardanti la Trasformata di Hough si è detto che per

ogni punto appartenente ai bordi degli oggetti presenti nell’immagine, si deve

calcolare la coppia di parametri ( ρ, θ ) del piano di Hough.

La cella della matrice di accumulazione corrispondente alla coppia di parametri

calcolati dovrà essere incrementata di un’unità. La matrice di accumulazione è

costruita in modo tale da avere una riga per ogni valore dell’angolo θ

considerato e una colonna per ogni valore di ρ.

Non potendo generare una matrice di accumulazione, anche in questo caso è

stato necessario inserire tutti i dati in un vettore di accumulazione, cioè

costruire un unico vettore avente un numero di blocchi pari al numero di angoli

Page 49: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

considerati per il calcolo della trasformata di ogni punto. Ogni blocco, poi, ha

una cella per ogni valore di ρ appartenente al range di valori ottenibili. Ιl

vettore è indicizzato nella maniera opportuna per muoversi al suo interno ed

effettuare tutte le operazioni necessarie.

3.5.1 Calcolo dei parametri ρρρρ e θθθθ

Le coordinate cartesiane dei pixel si ricavano dalla posizione dei pixel nella

matrice immagine.

L’origine del sistema di riferimento è posizionato in alto a sinistra. L’asse delle

ascisse è diretto verso destra e l’asse delle ordinate è orientato verso il basso

come mostrato in figura

x

y

La coppia (x, y) di coordinate del pixel è data dal numero di colonna e dal

numero di riga del pixel nella matrice.

Si scandisce ogni cella della matrice immagine tralasciando le celle che fanno

parte delle tre righe e delle tre colonne situate in prossimità dei margini in cui

si suppone non ci sia un contenuto informativo utile.

Page 50: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In corrispondenza dei pixel del bordo, che nel nostro caso valgono 255, perché

precedentemente si è fatto in modo, per comodità, che nell’immagine risultante

da tutte le operazioni precedenti i bordi fossero bianchi, si calcola il valore

di ρ per ogni valore di θ appartenente al range [ -π, π ] secondo la formula

(3.5.1) ρ = x ∗cos θ + y ∗ sen θ

La coppia (x, y) presente nella (3.5.1) è la coppia delle coordinate cartesiane

del punto di cui si sta calcolando la trasformata.

L’angolo varia nell’intervallo suddetto per ottenere una maggiore precisione

nell’individuazione delle rette in modo che non venga trascurata nessuna retta,

qualsiasi orientazione essa abbia.

Poiché, poi, il valore di ρ geometricamente rappresenta il valore della

distanza (in pixel) della retta dall’origine, calcolata lungo la retta normale ad

essa, risulta evidente che il valore massimo che ρ può assumere è pari alla

misura della diagonale dell’immagine stessa.

Dal calcolo di ρ, tuttavia, per come è scritta la (3.5.1) è possibile che ci siano

dei valori negativi di ρ, data la presenza delle funzioni seno e coseno che,

possono assumere anche valori negativi.

Il range in cui varia ρ, per le osservazioni appena fatte, è dato da [- 800 800],

lavorando su immagini di dimensioni (in pixel) 640 x 480.

Dopo aver calcolato il valore di ro con la (3.5.1) per ogni valore di theta

compreso nell’intervallo [-π, π], si incrementa di un’unità la cella

corrispondente alla coppia (ρ, θ) della matrice di accumulazione.

Page 51: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Si incrementa cioè, in ogni riga, ognuna corrispondente ad un valore di θ, la

cella della colonna corrispondente al valore di ρ trovato.

Queste operazioni si ripetono finché non sono stati esaminati tutti i pixel della

matrice immagine.

Quando il vettore di accumulazione è stato completamente calcolato, si devono

scegliere solo le celle a valore più elevato. In questo modo si considerano le

celle relative ai segmenti più lunghi poiché contenenti un numero maggiore di

punti diminuendo la probabilità di considerare segmenti molto piccoli o

elementi indesiderati.

Queste celle si selezionano prendendo solo quelle il cui valore è superiore ad

una soglia prefissata.

Spesso tuttavia, questo algoritmo riesce ad individuare delle rette che

riprendono piccoli bordi rettilinei o dettagli inutili dell’immagine. Oppure è

probabile che ci siano due celle adiacenti, relative allo stesso ρ e a due angoli

successivi, aventi un valore superiore a quello della soglia. Le coordinate

parametriche di queste due celle saranno utilizzate per rappresentare due rette

che in realtà si riferiscono allo stesso bordo rettilineo nell’immagine ma

differiscono solo per un grado nell’orientazione. Situazioni di questo genere

danno luogo, quindi , ad una ridondanza inutile oltre che dannosa per le

applicazioni successive. Un’operazione che attenua questo problema è la

“pulizia” della matrice di accumulazione.

Page 52: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

3.5.2 Pulizia del vettore di accumulazione

Questa operazione consiste nella ricerca dei massimi locali nella matrice di

accumulazione. Si cerca cioè il valore massimo tra le celle appartenenti ad una

sottomatrice, la “maschera” appunto, di dimensione Xa x Ya dove Xa e Ya

sono dei valori arbitrari stabiliti dall’utente. Il valore del massimo è

inizializzato ad una soglia da noi stabilita e successivamente viene aggiornato

man mano che si esegue la ricerca del massimo locale. Quando si trova un

valore maggiore del’attuale valore massimo, questo viene aggiornato. Al

termine del processo, quando sono state confrontate tutte le celle presenti nella

maschera ed è stato calcolato il massimo locale, si lascia invariata la cella in

cui si trova questo valore mentre tutte le altre celle della maschera sono poste a

zero.

Quest’operazione si ripete finché non è stata analizzata l’intera matrice di

accumulazione. In questo modo diminuisce drasticamente la possibilità di

avere più rette che si riferiscono allo stesso contorno o rette inutili ai fini delle

applicazioni successive.

La scelta delle dimensioni della maschera non è immediata. Richiede anzi una

particolare attenzione perché una maschera di dimensioni molto ridotte

potrebbe essere insufficiente ad eliminare le rette superflue mentre una

maschera estesa potrebbe eliminare anche delle rette valide.

In questo progetto si è scelta una maschera 45 x 40 perché si è dimostrata la più

adatta alle situazioni affrontate.

Page 53: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Dopo questa operazione, nel vettore di accumulazione (in questo paragrafo uso

indifferentemente il termine di matrice o vettore poiché la matrice di

accumulazione è stata inserita in un unico vettore per motivi tecnici) solo le

celle corrispondenti ai massimi locali calcolati in precedenza hanno un valore

diverso da zero.

Effettuando nuovamente la scansione dell’intero vettore si prelevano i valori di

ρ e θ relativi a queste celle.

3.6 Determinazione dei coefficienti m e q delle rette

E’ possibile ora risalire al coefficiente angolare m e al termine noto q,

necessari per determinare l’espressione analitica delle rette nel piano

cartesiano.

Le formule matematiche utile per ricavare m e q dai valori di ρ e θ sono

ricavabili mediante semplici passaggi trigonometrici.

Dalla figura

Page 54: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

è immediato verificare che

ρ (4.6.1) q = senθ

Considerando poi, che il coefficiente angolare della retta perpendicolare a

quella di cui si vuole conoscere m è pari alla tangente dell’angolo θ e che i

coefficienti di queste due rette sono uno l’antireciproco dell’altro, il

coefficiente desiderato risulta uguale a

(4.6.2) m = - cotg θ

L’implementazione di queste formule è stata realizzata mediante un blocco

Interpret .

In ingresso al blocco ci sono i vettori contenenti i valori utili di ρ e θ. Le

coppie (ρ , θ ) si ottengono estraendo dai vettori i valori di ρ e θ situati nelle

posizioni corrispondenti .

Non è possibile calcolare m nel caso di rette verticali il cui coefficiente

angolare è infinito, ossia quando θ è uguale a 0.

Poiché anche in corrispondenza di valori di θ diversi da 0 ma molto piccoli si

verifica questo problema , allora si è disposto che per gli angoli la cui misura in

gradi è minore di 2, le rette corrispondenti si considerino verticali. Quindi non

si misura m ma si impone che tali rette abbiano l’ascissa pari a ρ e q uguale a

0.

Page 55: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Per tutte le altre rette invece il calcolo dei parametri avviene secondo le

formule descritte prima.

3.7 Visualizzazione delle rette È possibile visualizzare un segmento in un’immagine di uscita di dimensione

640 x 480, mediante il modulo Genfeat, semplicemente fornendo in ingresso le

coordinate degli estremi del segmento.

Per fare in modo che il segmento caratterizzato dai parametri (m, q) attraversi

l’intera immagine di uscita, si pone l’ascissa del primo estremo pari a 0 (e

quindi ordinata pari a q) e quella del secondo estremo pari a 640. Per il secondo

estremo l’ordinata si ottiene tramite la relazione

(3.7.1) y=mx+q

In questo modo è possibile visualizzare tutte le rette, ad esclusione di quelle

verticali, ottenute con la tecnica della trasformata di Hough.

Per la visualizzazione delle rette verticali si utilizza un secondo modulo

Genfeat che riceve in ingresso le coordinate degli estremi dei segmenti

verticali.

Anche in questo caso si preferisce che i segmenti attraversino l’intera

immagine. Per questo motivo, mentre le ascisse dei punti estremi dipendono

Page 56: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

dalla misura di ρ, come descritto sopra nel caso delle rette verticali, le ordinate

sono uguali a 0 e a 480 rispettivamente per il primo ed il secondo estremo.

Questa separazione tra le rette verticali e quelle orizzontali risulta essere molto

utile per le successive operazioni di riconoscimento degli scaffali.

In una fase successiva del progetto infatti, i risultati ottenuti finora sono stati

utilizzati per effettuare la stima della posizione dell’osservatore nell’ambiente

strutturato.

Page 57: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Capitolo 4

Prove sperimentali

In questo capitolo sono presentati i risultati ottenuti mediante

l’implementazione delle tecniche fin qui illustrate.

Saranno quindi motivate le scelte implementative effettuate in fase progettuale,

con il supporto dei risultati delle prove sperimentali. I risultati qui presentati

sono stati il presupposto per la stima della posizione di un robot mobile,

effettuata nella seconda parte del progetto.

Page 58: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

4.1 Segmentazione delle immagini

Dopo aver acquisito le immagini con la webcam, nel corso della realizzazione

del progetto sono stati utilizzati vari metodi per effettuare la segmentazione

delle immagini.

Nel primo metodo è stata acquisita un’immagine ed se n’è effettuata la

segmentazione mettendo in risalto gli oggetti presenti nell’immagine. Si è

scelto di utilizzare per la segmentazione un intervallo di soglia pari a [50 110]

(Cap.3, par. 3.3.1), lasciando quindi invariati nella matrice i pixel appartenenti

a questo intervallo e ponendo a 0 tutti gli altri.

Per semplificare le operazioni di segmentazione abbiamo fatto in modo che le

condizioni di lavoro fossero tali da avere degli oggetti ben in risalto rispetto

allo sfondo chiaro. Nelle figure seguenti si vede il risultato della segmentazione

effettuata.

Figura 1

Page 59: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 2

Nella prima immagine si ha la foto originale, non sottoposta ad alcuna

operazione mentre nella seconda si vede il risultato della segmentazione

effettuata.

Se si cambia la soglia di segmentazione considerando un intervallo più ampio,

che permette di selezionare un numero di pixel maggiori si ottiene il risultato

Figura 3

Page 60: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

visibile in figura 3.La soglia di segmentazione in questo caso è [50 150]

Considerando infatti i pixel aventi un valore di grigio più alto, quindi più

chiari, nella situazione in analisi aumenta il numero di pixel che rientrano nei

criteri di segmentazione stabiliti.

Cambiando l’intervallo scelto i risultati cambiano notevolmente. In figura 4 e 5

sono riportati i risultati ottenuti rispettivamente con un intervallo di

segmentazione di [40 90] e di [150 200].

Mentre nel primo caso l’oggetto colorato è ben in risalto rispetto allo sfondo,

nel secondo caso, in cui sono stati scelti i pixel aventi livelli di grigio molto

alti, sono stati selezionati molti pixel appartenenti all’ambiente circostante

l’oggetto

Figura 4

Page 61: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 5

Il problema più evidente con questo metodo, era proprio quello

dell’impossibilità di adattare lo stesso intervallo di segmentazione a tutte le

situazioni. Era necessario cioè modificare la soglia adattandola all’immagine.

Con la stessa soglia adottata nel caso precedente, ad esempio, è stata

segmentata l’immagine in Figura 6:

Figura 6

Page 62: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Il risultato della segmentazione è visibile in Figura 7. Si può notare che ,

Figura 7

nell’immagine sono stati considerati anche tutti i pixel degli oggetti circostanti

l’oggetto di interesse. Questa soluzione, per evidenti motivi, non è stata

ritenuta valida e quindi si è preferito adottare il secondo metodo esposto nel

capitolo precedente ossia la segmentazione per componenti di colore nei pixel.

Scegliendo infatti solo i pixel che hanno una percentuale di componente del

rosso più grande di una volta e mezzo rispetto a quella del verde e del blu, è

Page 63: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

stato possibile ottenere dei buoni risultati. Nella figura 8 si vede il risultato di

questo tipo di segmentazione applicato alla stessa immagine di figura 6.

. Figura 8 I bordi dell’immagine sono stati poi assottigliati. Il risultato di tale operazione, applicata all’immagine in figura 2 è visibile nella figura 9

Figura 9

in cui è rappresentato il risultato dell’estrazione dei bordi all’immagine

precedentemente segmentata. Nel caso della segmentazione con un intervallo

Page 64: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

di [150 200] il risultato di quest’operazione diventa quello in figura 10,

evidentemente insoddisfacente

Figura 10

Una segmentazione ben realizzata è quindi fondamentale per il corretto

funzionamento delle operazioni successive, in particolar modo della

trasformata di Hough.

Mediante questa tecnica, come è stato visto prima, é possibile riconoscere i

segmenti presenti nelle immagini. Un buon risultato della trasformata di Hough

dipende quindi in primo luogo dalla segmentazione effettuata.

Applicando ad esempio la trasformata ad un’immagine segmentata in maniera

errata, si genera infatti un risultato sconfortante come si può vedere in figura

12.

Page 65: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 11

L’immagine originale è quella in figura 11 e si può notare come, oltre a

riconoscere le rette desiderate, cioè quelle dell’armadio sulla destra, siano stati

riconosciuti anche i piccoli segmenti facenti parte degli oggetti circostanti.

Figura 12

In figura 12 sono rappresentate in colore le rette costruite con la trasformata di

Hough, che si sovrappongono a quelle dell’immagine originale.

Questo problema invece si non si pone con una segmentazione efficace.

Page 66: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Nella figura seguente, si sovrappongono, ad esempio, le rette ottenute con la

trasformata di Hough al risultato delle procedure di segmentazione ed

estrazione dei bordi

Figura 13

applicate all’immagine di figura 14

Figura 14

Page 67: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In questo caso inoltre, bisogna tener conto anche della scelta corretta delle

dimensioni della maschera di pulizia della matrice di accumulazione.

Infatti, una maschera troppo piccola può causare una ridondanza di rette, come

illustrato nel capitolo precedente.

Nel caso appena analizzato la maschera aveva dimensioni 50 x 50.

Figura 15

In figura 15 si può vedere invece il risultato ottenuto con una maschera di

dimensioni 30x30. È possibile notare la ridondanza di rette relative ad un

segmento.

Questo tipo di errore è nocivo per le applicazioni successive dei metodi

implementati in questa fase di progetto.

Nell’esempio seguente è stata applicata la trasformata di Hough ad

un’immagine segmentata con il primo metodo di segmentazione usato. Si è

variata poi la dimensione della maschera di pulizia e la soglia utilizzata

.L’immagine originale è quella in figura 16

Page 68: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 16

Il risultato della Trasformata di Hough con la maschera 40 x 45 è quello in figura 17

. Figura 17

Come si può vedere sono state riprese anche delle rette indesiderate. Tuttavia utilizzando una maschera di dimensioni 50 x 50 il risultato migliora:

Page 69: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 18

Un risultato ancora più valido si ottiene con un innalzamento della soglia usata

per calcolare il massimo locale. In figura 19 si può vedere, infatti, che sono state eliminate le rette relative agli oggetti circostanti l’armadio mentre sono rimaste le rette effettivamente utili Figura 20

Page 70: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

4.2 Scelta della posizione dell’osservatore e dei

sistemi di riferimento

Molto importante, in fase di progetto, è stata la scelta della posizione della

webcam rispetto all’oggetto e dei sistemi di riferimento, uno relativo

all’immagine e uno all’osservatore.

Questa scelta è stata fondamentale soprattutto per la seconda parte del progetto,

ossia per la stima della posizione dell’osservatore nell’ambiente circostante.

Nell’elaborazione delle immagini bisogna considerare che l’oggetto non è

visto sempre com’è in realtà ma nell’immagine le sue dimensioni variano a

seconda della distanza a cui si trova l’osservatore e da una sua eventuale

angolazione rispetto all’oggetto.

Una fase importante del progetto è stata quella di calcolare le dimensioni

dell’oggetto visto al fine di risalire alla posizione dell’osservatore rispetto ad

esso.

Il primo passo fondamentale per il calcolo della distanza e l’angolazione

dell’osservatore rispetto all’oggetto è quello di determinare i sistemi di

riferimento, uno solidale con l’osservatore e l’altro nel piano immagine.

Le situazioni analizzate nel corso del progetto prevedono, come già ripetuto più

volte, la presenza, all’interno dell’immagine di uno scaffale orientato in vari

modi, a seconda della posizione dell’osservatore.

Se quest’ultimo è posto frontalmente rispetto allo scaffale, ne vedrà solo un

lato. In tutti gli altri casi, ossia in presenza di una rotazione rispetto

all’oggetto, saranno visualizzati due lati.

Page 71: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Il sistema di riferimento solidale con l’oggetto nell’immagine ha, per comodità,

l’origine coincidente proprio con uno degli spigoli dello scaffale, in particolare

con lo spigolo comune ad entrambi i lati visti dello scaffale.

Figura 21

Il sistema di riferimento solidale con l’osservatore è dato dalla terna cartesiana

avente l’asse z coincidente con l’asse della webcam , l’asse x parallelo ed

equiverso all’asse x del sistema di riferimento precedentemente descritto e

l’asse y determinabile con la regola della mano destra.

Sono state effettuate diverse prove per individuare la collocazione e

l’orientazione più efficiente della camera da applicare sull’osservatore.

x

y

O

O

Page 72: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In prima analisi si è verificato che il posizionamento della camera sullo stesso

piano d’appoggio dell’oggetto considerato provoca delle distorsioni all’interno

dell’immagine visualizzata.

Non si è in grado, infatti, di risalire ad eventuali angolazioni dello scaffale

rispetto al punto di vista.

Dal confronto delle due figure successive possiamo infatti osservare che,

mentre nell’immagine reale si percepisce un’angolazione di circa 45° tra

osservatore e oggetto, nell’immagine elaborata, da noi utilizzata per le

operazioni successive, tale orientazione è del tutto invisibile.

Figura 22

Page 73: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Figura 23

Si è osservato che traslando verticalmente la camera era possibile ottenere

anche un’informazione relativa all’angolo di rotazione dell’oggetto rispetto

all’orizzontale.

Anche in questo caso si verificano due situazioni diverse.

La prima prevede che la webcam sia posizionata al di sopra dell’oggetto e che

il suo asse ottico sia perpendicolare al piano di appoggio dell’oggetto stesso. In

questo caso l’angolazione dello scaffale rispetto all’orizzontale è univocamente

determinabile. Questa situazione però è difficilmente realizzabile fisicamente.

Si preferisce allora la seconda soluzione che prevede che l’asse della webcam

non sia verticale ma inclinato. In fase progettuale si è scelto, per semplicità di

calcolo, di ruotare l’asse di un angolo di 45 ° rispetto all’asse orizzontale.

Page 74: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

In questo modo si mantiene l’informazione relativa all’angolazione dello

scaffale ma sono necessari calcoli aggiuntivi per la determinazione delle

dimensioni dei lati visualizzati.

Supponiamo quindi, di visualizzare nel piano immagine un segmento orientato

di un angolo α rispetto all’asse x.

Se gli estremi P1 e P2 del segmento hanno rispettivamente coordinate (x0, y0) e

(x1, y1) , le coordinate di P2 nel sistema di riferimento solidale con l’osservatore

si ottengono mediante le seguenti trasformazioni:

( ) )45cos(sin

cos

0'1

0'1

α

α

lyy

lxx

+=

+=

dove l è la lunghezza del segmento nel sistema di riferimento relativo al piano

immagine.

La lunghezza L del segmento nel sistema di riferimento solidale

all’osservatore, quindi, è data da:

)45cossin(cos 22222 αα llL +=

Per le ipotesi fatte nella scelta del sistema di riferimento relativo al piano

immagine l’estremo comune a due lati dello scaffale coincide con l’origine. Di

conseguenza, la coppia (x0, y0), nelle nostre applicazioni, sarà sempre uguale

alla coppia (0, 0).

Page 75: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Conclusioni

Il problema affrontato in questa tesi, ossia il riconoscimento dei segmenti per

l’individuazione delle strutture rettangolari presenti nell’immagine, costituisce

dunque la prima fase di un progetto più esteso sviluppato in fase di stage.

Dopo aver riconosciuto e ricostruito le rette presenti nell’immagine, è possibile

infatti risalire alla misura dei segmenti visti, coincidenti con i lati degli scaffali

presenti nell’ambiente strutturato, e determinare in questo modo la distanza

dell’osservatore dallo scaffale. Mediante ulteriori operazioni, definite nel corso

del progetto, si può determinare anche l’orientazione dell’osservatore rispetto

allo scaffale.

In questo modo, applicando tale sistema di visione ad un robot mobile, lo si

rende in grado di stimare la sua posizione in un ambiente strutturato.

Un possibile sviluppo può essere la realizzazione di un sistema di controllo per

la movimentazione del robot all’interno di tale ambiente.

Il robot potrebbe essere controllato in real-time ossia mediante l’acquisizione

delle immagini dall’ambiente circostante ed il contemporaneo movimento sulla

Page 76: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

base delle decisioni prese istantaneamente dal sistema di controllo, oppure off-

line, cioè con l’analisi di un’immagine acquisita dall’ambiente, la

determinazione della traiettoria da seguire, il conseguente spostamento “alla

cieca” del robot ed il confronto finale tra la posizione raggiunta e l’obiettivo

iniziale.

Page 77: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

Bibliografia

Testi consultati 1. Ioannis Pitas, “Digital Image Processing Algorithms”, Prentice Hall,

Aristotle University of Thessaloniky (1993)

2. Henning Bassmann, Philipp W. Besslich, “Image Processing Ad Oculos”,

DBS Gmbh, Heidelberg (1993)

3. “ MATLAB the Language of Technical Computing”, The Math Works

Inc., Natick (Maggio 1997)

4. B. Jahne, “Digital Image Processing Concepts, Algorithms and Scientific

Applications (5th revised and extended edition)”, Springer-Verlag

5. H. M. Deitel, P. J. Deitel, “C How to program (fourth edition)”

6. S. Olufs, “AISVision – Real-Time Image Processing for Mobile Robotic

Applications”, Fraunhofer Institute Autonome Intelligente Systeme

Dispense di lezione

1. “Proprietà dell’immagine digitale”

2. “Image filtering”

3. “Color”

4. “Image enhancement”

Page 78: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla

5. “Segmentazione delle immagini”

Siti Web consultati 1. http://www.ghostcomputerclub.it/articoli/news/articoligcc.php?titcode=SOYMR-

1302002103958

2. http://lorca.umh.es/isa/es/doct/pava/DeteccionBordes.pdf

3. http://www.ee.bgu.ac.il/~greg/graphics/special.html

4. http://www.di.uniba.it/~laura/hough/hough.html

5. http://www.dmti.unifi.it/grafica/immagini/Lezione%20III%20(2%20ore).pdf

Tesi consultate

Luca perli, “ Sviluppo di un sistema per la stima del moto proprio da una

sequenza di immagini reali”, Università degli studi di Trento, a.a.2002-2003

Page 79: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla
Page 80: Introduzione - di Noi · 1.2 L’acquisizione delle immagini ... La maggior parte delle telecamere di questo tipo utilizzano ... un sensore in un segnale elettronico digitale e dalla