INTRODUZIONE
ii
Sempre nell�ambito delle attivit� del laboratorio CSAI del DINFO dell�Universit�
di Palermo � stato implementato su FPGA il sottosistema di segmentazione [2]
del riconoscitore automatico di segnali stradali, in grado di segmentare regioni
di colore rosso dalle immagini acquisite dalla telecamera. L�applicazione � stata
realizzata sulla piastra RC100 prodotta dalla CELOXICA Inc.[12] dove alloggia
una FPGA appartenente alla famiglia Spartan II prodotta dalla XILINX Inc.[11].
L�implementazione su FPGA del sottosistema di classificazione dei segnali
stradali a partire dalle regioni segmentate � stato l�obiettivo della presente tesi.
Il classificatore di cartelli stradali individua in tempo reale dalle regioni
segmentate la classe del segnale (pericolo,divieto,indicazione,dare precedenza).
Per la realizzazione si � partiti dai risultati ottenuti in [2] riprogettando l�intero
sistema di riconoscimento allo scopo di contenerlo in un�unica FPGA. E� stato
ampliato il modulo [2], prevedendo l�analisi del colore blu e l�estrazione delle
regioni segmentate, ed � stato aggiunto il modulo di classificazione che esegue
l�analisi della forma delle regioni di colore rosso o blu fornite dalla
segmentazione. La nuova architettura non richiede il ricorso ai banchi di
memoria SSRAM presenti sulla piastra RC100 qualora non fosse necessario
mostrare i risultati sul monitor. In questo modo si ha la possibilit� di aggiungere
nella stessa FPGA la classificazione neurale che completa il processo di
riconoscimento. Difatti le memorie SSRAM possono essere utilizzate per
contenere la grande quantit� di pesi forniti dall�addestramento della rete
neurale. Le risorse hardware richieste dall�applicazione assicurano sufficienti
margini per implementare lo stadio neurale. Il classificatore ha ottenuto un
tasso di riconoscimento medio di segnali stradali dell�80% e un tempo di
elaborazione del frame di 2,54 msec.
L�implementazione del classificatore sulla FPGA ha richiesto un linguaggio HDL
(Hardware Description Language) per la descrizione della logica del sistema e
alcuni strumenti software che trasformano il codice in un file di configurazione
del chip. Attraverso l�ambiente di sviluppo DK1.1 [14] realizzato dalla Celoxica
[12] � stato possibile descrivere il sistema utilizzando il linguaggio Handel-C
[13]. Il risultato della compilazione del codice � stato trasformato in un file
binario di configurazione dal software Design Manager [15] realizzato dalla
Xilinx [11]. La programmazione della FPGA � avvenuta ricorrendo al tool File
Transfer Utility [16] realizzato dalla Celoxica [12].
INTRODUZIONE
iii
Il presente lavoro � articolato nel modo seguente:
• capitolo 1 : viene descritto il processo di classificazione dei segnali
stradali, analizzando le problematiche legate all�acquisizione di immagini
da scene esterne;
• capitolo 2 : vengono analizzate le risorse hardware a disposizione,
descrivendo la struttura ed il funzionamento della FPGA Spartan II e
della piastra RC100;
• capitolo 3 : vengono descritti il flusso di progetto che porta alla
programmazione della FPGA e gli strumenti software necessari;
• capitolo 4 : viene descritta l�applicazione analizzando l�architettura
complessiva del classificatore e le routine grafiche dei sottosistemi di
segmentazione e classificazione;
• capitolo 5 : viene riportata un�analisi delle prestazioni del sistema in
termini di tassi di riconoscimento, tempi di elaborazione e risorse;
• appendice A : vengono descritte le caratteristiche di un traduttore
automatico di algoritmi di elaborazione delle immagini da C a Handel-C;
• appendice B : viene riportato il codice Handel-C dell�applicazione.
L�applicazione � stata svolta all�interno delle attivit� di ricerca del gruppo
IN.C.A. (INnovative Computer Architecture) del DINFO dell�Universit� di
Palermo e dell�I.CA.R. (Istituto di CAlcolo e Reti ad alte prestazioni) del CNR
(Consiglio Nazionale delle Ricerche).
CAPITOLO 1 Il riconoscimento di segnali stradali
1
Capitolo
1 Il riconoscimento dei segnali stradali
In questo capitolo viene descritto il processo di riconoscimento dei segnali
stradali in scene esterne [1]. Tale processo prevede una fase di segmentazione
delle immagini acquisite dalla telecamera e una fase di classificazione delle
regioni individuate. La prima fase estrae regioni di colore rosso e blu, tipici dei
cartelli stradali, la seconda individua tra le regioni segmentate quelle aventi
forma simile ai segnali stradali e, attraverso una rete neurale addestrata,
riconosce il tipo di cartello. Le analisi del colore e della forma eseguite dal
processo di riconoscimento dovranno tenere conto delle problematiche legate a
tutte le possibili cause naturali e artificiali che possono comprometterne
l’efficacia.
1.1 Descrizione del processo di riconoscimento
Il processo di riconoscimento permette l�individuazione di segnali stradali da
immagini acquisite dalla telecamera. Il riconoscimento prevede una fase di
segmentazione che divide l�immagine nelle sue parti significative (punti isolati,
linee, contorni e regioni) e una fase di classificazione che individua le propriet�
delle zone segmentate.
La fase di segmentazione applica all�immagine acquisita un�analisi del colore
che individua regioni aventi colore simile ai segnali stradali mentre la fase di
classificazione applica alle zone estratte un�analisi della forma che stabilisce la
classe del segnale (pericolo, divieto, indicazione e dare precedenza) e una
classificazione neurale che individua il tipo di segnale.
La figura mostra il processo di riconoscimento che permette d�individuare
segnali stradali da immagini acquisite dalla telecamera.
CAPITOLO 1 Il riconoscimento di segnali stradali
2
Figura 1-1 : Processo di riconoscimento
L�analisi del colore individua regioni aventi colore simile ai segnali stradali
confrontando l�informazione cromatica dei pixel dell�immagine acquisita con i
colori rosso e blu tipici dei cartelli stradali. L�analisi della forma determina se la
regione segmentata ha la forma di un segnale stradale confrontandone i pixel
con quelli di modelli prefissati. In particolare, se la regione � di colore blu viene
comparata con una forma circolare relativa ai segnali di indicazione mentre se la
regione � di colore rosso viene confrontata con le forme circolare, triangolare
con la punta in su e in gi� relative rispettivamente ai segnali di divieto, pericolo
e dare precedenza.
La tecnica utilizzata nell�analisi del colore consiste in un filtraggio passa banda
con soglie statiche relative alle tinte ideali del rosso e del blu. La tecnica
utilizzata nell�analisi della forma � il calcolo di coefficienti di similitudine tra le
regioni segmentate e i modelli rappresentanti la percentuale di pixel uguali.
Immagine acquisita dalla telecamera
Analisi del colore
Regioni rosse segmentate Regioni blu segmentate
Analisi della forma
Segnale di dare
precedenza
Segnale di
divieto
Segnale di
obbligo
Segnale di dare
precedenza
Classificazione neurale
Tipo di segnale
CAPITOLO 1 Il riconoscimento di segnali stradali
3
Una rete neurale addestrata al riconoscimento di cartelli stradali permette di
stabilire il tipo di segnale tra quelli d�indicazione, divieto e pericolo secondo le
tabelle seguenti [1].
Segnale di divieto Descrizione del segnale Tipo
Divieto di svolta a destra 0
Divieto d�inversione 1
Limite di velocit� 30 Km/h 2
Limite di velocit� 40 Km/h 3
Limite di velocit� 80 Km/h 4
Divieto di sorpasso 5
Divieto di sosta 6
Divieto di sosta e fermata 7
Tabella 1-1 : Segnali di divieto riconosciuti
Segnale d’indicazione Descrizione del segnale Tipo
Direzione in avanti o a destra 0
Direzione in avanti 1
Direzione a destra 2
Tabella 1-2 : Segnali di indicazione riconosciuti
CAPITOLO 1 Il riconoscimento di segnali stradali
4
Segnale di pericolo Descrizione del segnale Tipo
Strada senza banchina 0
Curva pericolosa a destra 1
Curva pericolosa prima a destra poi a sinistra 2
Curva pericolosa prima a sinistra poi a destra 3
Strada a doppio senso di circolazione 4
Pericolo generico 5
Incrocio 6
Incrocio a destra 7
Semaforo 8
Tabella 1-3 : Segnali di pericolo riconosciuti
La rete neurale � basata sul percettrone multistrato con uno strato d�ingresso,
uno strato nascosto e uno strato d�uscita. La funzione di attivazione che
determina l�uscita post-sinaptica dello strato d�ingresso � lineare, quella dello
strato nascosto � sinusoidale e quella dello strato d�uscita � lineare. Un circuito
WTA individua il segnale stradale selezionando il maggiore tra le uscite dei
neuroni dello strato d�uscita.
CAPITOLO 1 Il riconoscimento di segnali stradali
5
1.2 Analisi delle problematiche
Il processo di riconoscimento deve considerare tutte le possibili cause naturali o
artificiali legate all�acquisizione d�immagini da scene esterne che possono
comprometterne l�efficacia.
L�analisi del colore deve tener conto dei seguenti aspetti che possono
influenzare il colore degli oggetti :
• variabilit� delle scene che fanno da sfondo ai segnali stradali;
• variazioni di luminosit� legate all�alternanza giorno-notte, al
cambiamento delle condizioni atmosferiche e alla presenza di oggetti
circostanti;
• sovrapposizione di rumore introdotto dai dispositivi d�acquisizione che
non operano in condizioni ideali.
L�analisi della forma deve tener conto dei seguenti aspetti che possono
influenzare la forma degli oggetti :
• segnali stradali deformati;
• cartelli stradali ripresi da una qualunque angolazione ed a qualsiasi
distanza.
1.3 Requisiti del processo di riconoscimento
Alla luce dell�analisi delle problematiche relative all�acquisizione d�immagini da
scene esterne, emergono i requisiti che il processo di riconoscimento deve
possedere per non compromettere l�efficacia del sistema.
Il rumore introdotto dal dispositivo d�acquisizione deve essere ridotto attraverso
un opportuno filtro che renda i colori dell�immagine pi� omogenei senza per�
offuscare i contorni.
La possibilit� che un segnale stradale sia deformato richiede l�applicazione di un
filtro per il miglioramento della qualit� dell�immagine che renda i contorni pi�
regolari.
La possibilit� di riprendere un cartello stradale da qualunque angolazione
comporta, nell�analisi della forma, il confronto della regione segmentata non
solo col modello della forma del segnale ma anche con sue rotazioni.
CAPITOLO 1 Il riconoscimento di segnali stradali
6
La possibilit� di riprendere un segnale stradale da una qualunque distanza
richiede la normalizzazione delle regioni individuate dall�analisi del colore ad
una dimensione prefissata, uguale a quella dei modelli.
E� necessaria la conversione dell�immagine RGB acquisita dalla telecamera nello
spazio colore HSV (Hue Saturation Value), meno sensibile a variazioni della
luminosit� delle scene esterne. Le formule di trasformazione sono quelle di
Travis che, a partire dalle componenti normalizzate
BGR
B
b
BGR
G
g
BGR
R
r
++
=
++
=
++
=
determinano le corrispondenti componenti HSV nel seguente modo :
v = max(r,g,b)
b)g,max(r,
b)g,min(r,b)g,max(r,
s
−
=
==+
≠=
==+
≠=
==+
=
=
caso altro ogni in
'
r-5
min r emax b se
'
g3
min b emax g se
'
b-3
min b emax g se
'
r1
min g emax r se
'
g-1
ming emax r se
'
b5
0s seindefinita
h
dove:
),,min(),,max(
),,max(
b'
),,min(),,max(
),,max(
g'
),,min(),,max(
),,max(
'
bgrbgr
bbgr
bgrbgr
gbgr
bgrbgr
rbgr
r
−
−
=
−
−
=
−
−
=
Per valori di r,g e b in [0,1] si ottengono valori di s e v in [0,1] e di h in [0,6] che
vengono normalizzati in [0,360].
La sogliatura, pertanto, deve effettuare un filtraggio passa banda che elimini i
colori aventi tinta diversa da quella rossa (340< h
red
< 20) o da quella blu (195 <
h
blu
< 230) e i colori appartenenti alla zona acromatica (S ≤ 0.25, V ≤ 0.2, V ≥
0.9) dello spazio colore HSV.