Table of Contents Table of Contents
Previous Page  53 / 86 Next Page
Information
Show Menu
Previous Page 53 / 86 Next Page
Page Background

EDA/SW/T&M

ADAS

53

- ELETTRONICA OGGI 460 - MARZO 2017

per la misura delle prestazioni, in termini di velocità di

elaborazione dati e accuratezza, devono essere atten-

tamente bilanciate con altri parametri di ottimizzazio-

ne, come ad esempio dimensioni del codice e dei dati,

occupazione di memoria (memory footprint), tempi di

latenza e consumi di potenza.

Il processo di sviluppo di un’applicazione di visione

embedded risulta composto da cinque fasi, come visi-

bile in figura 1.

Nel corso di questo articolo saranno brevemente illu-

strate le caratteristiche e le problematiche da affron-

tare nello sviluppo di algoritmi per il rilevamento del

superamento della corsia. Quindi l’attenzione sarà fo-

calizzata sull’implementazione e ottimizzazione degli

algoritmi relativi alle fasi 3 e 4 utilizzando DSP della

famiglia Tensilica Vision e la libreria XI per applicazio-

ni di visione artificiale ottimizzata per DSP.

Implementazione di un algoritmo LDWS robusto

Il sistema LDWS (Lane-Departure Warning System –

avvertimento del superamento della propria corsia di

marcia) è una funzione essenziale di un sistema ADAS

per la guida autonoma. Nella quasi totalità dei sistemi

LDWS è prevista una fase iniziale di rilevamento del se-

gno che delimita la corsia che può essere generalizzata

e semplificata seguendo questi passi fondamentali:

• Estrazione delle caratteristiche della strada.

• Post-elaborazione per la rimozione dei valori erratici

(in pratica molto al di fuori della norma).

• Filtraggio del tracciamento (tracking) e data fusion

(aggregazione dei dati).

L’accuratezza e l’affidabilità di un sistema LWDS di-

pende dalla precisione e dalla robustezza dell’algorit-

mo impiegato per il rilevamento della corsia che deve

prendere in considerazione un gran numero di fattori

- forme della corsia, non uniformità della struttura del

piano della superficie stradale, condizioni di illumina-

zione, zone d’ombra, ostruzioni e via dicendo – mentre

effettua il calcolo in real time mentre il veicolo è in mo-

vimento ad alta velocità. Nel corso dell’articolo verrà

proposto un algoritmo per il rilevamento del segno

della corsia che prevede numerose fasi di elaborazio-

ne della visione artificiale per migliorare l’affidabilità

del rilevamento stesso.

Come visibile nelle figure 2 e 3, viene utilizzato un fo-

togramma di un’immagine ripresa da una telecamera

che si trova a bordo del veicolo per ricavare una ROI

(Region of Interest) che contiene i segni che delimita-

no la corsia. Quindi viene eseguita una trasformazione

prospettica inversa basata sui parametri della teleca-

mera per far sì che i segni che delimitano la corsia di

trovino in una posizione relativamente parallela all’in-

terno dell’immagine. A questo punto vengono effettua-

te alcune operazioni di miglioramento dell’immagine

tra cui filtraggio, equalizzazione e impostazione delle

soglie, finalizzate a ridurre il rumore. Seguono quindi

le fasi di rilevamento dei segni della corsia e di sele-

zione che sfruttano la trasformata di Hough. Infine il

rilevamento viene migliorato median-

te tecniche di Tracciamento inter-

frame (tra due fotogrammi). L’algo-

ritmo è stato prototipato in MATLAB

(MathWorks) al fine di convalidarne

la funzionalità e le caratteristiche di

robustezza.

Mentre la prototipazione dell’algorit-

mo in MATLAB è un’operazione rela-

tivamente semplice, il porting (in altre

parole il trasferimento) delle diverse

fasi dell’algoritmo in un sistema em-

bedded real time non lo è affatto. A

causa della complessità dell’algorit-

mo, il codice C risultante e che ela-

bora in modo sequenziale i pixel dell’immagine non

è in grado di garantire la velocità richiesta da un’ap-

plicazione real time, a meno che non venga eseguito

su un server ad alte prestazioni che, ovviamente, non

può essere utilizzato in un sistema embedded a causa

delle dimensioni e dei consumi. Per risolvere il pro-

blema è stato utilizzato un DSP della famiglia Tensili-

ca Vision (disponibile sotto forma di IP) integrato in

un sistema di prototipazione basato su FPGA. Questo

processore sfrutta un’architetture DSP ad alte presta-

zioni che supporta elaborazioni e operazioni di load/

store su un data set SIMD (Single Instruction Multiple

Data) vettoriale a 64 vie. L’architettura codifica e invia le

Fig. 2 – Applicazione della trasformazione prospettiva inversa alla

regione di interesse (ROI)

Fig. 3 – Operazioni effettuate per aumentare la robustezza dell’algoritmo per il rilevamento

della corsia