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

EDA/SW/T&M

ADAS

55

- ELETTRONICA OGGI 460 - MARZO 2017

ciclo di ottimizzazione è stato implementata una vasta

gamma di kernel di elaborazione della visione in una

libreria software simile a OpenCV denominata XI.

In questo caso è stato utilizzato un gran numero di fun-

zioni della libreria XI in tutte le fasi di elaborazione per

effettuare la trasformazione della prospettiva, il filtraggio

dell’immagine, l’equalizzazione, l’impostazione di soglie,

la rilevazione dei bordi mediante il metodo Canny, la tra-

sformata di Hough e così via come mostrato in figura 5.

L’impiego delle funzioni della libreria XI permette di

ridurre gli oneri legati al porting e all’ottimizzazione

dell’algoritmo per il rilevamento della corsia nei DSP

Vision P5/P6. Le prestazioni di elaborazione in real time

richieste possono essere ottenute nel simulatore del set

di istruzioni (ISS – Instruction Set Simulator) nell’arco di

uno o due mesi.

Attraverso l’intero flusso dell’algoritmo di rilevamen-

to della corsia, i dati dell’immagine vengono elaborati

utilizzando una tecnica denominata “tiling” e sfruttando

le potenzialità dell’iDMA. Per

l’elaborazione di dati SIMD

di ampie dimensioni è ne-

cessario utilizzare istruzioni

di load/store vettorizzare

per accedere ai dati dell’im-

magine contenuti nella RAM

locale mediante iterazio-

ni continue (tight loop). Lo

schema previsto dalla tecni-

ca di “tiling” consente a una

piccola parte dell’immagine

di essere trasferita dalla più

lenta memoria di sistema

nelle RAM locali utilizzan-

do il trasferimento di dati a

blocchi supportato da iDMA.

Al fine di minimizzare l’im-

patto dell’accesso in memo-

ria si è anche fatto ricorso a

uno schema di DMA buffe-

ring di tipo ping-pong il cui

funzionamento è riportato

in figura 6. In uno schema

di questo tipo il primo de-

scrittore dell’iDMA è pro-

grammato per caricare (fetch) il “source tile 1” (in pratica

un blocco di dati, si faccia riferimento alla Fig. 6) dalla

memoria DDR al buffer ping presente nella RAM locale.

Dopo il completamento della transazione DMA, il softwa-

re DSP inizia l’elaborazione del buffer ping per il tile nu-

mero 1. Nel frattempo, il secondo descrittore dell’iDMA è

programmato per caricare il “source tile 2” dalla memo-

ria DDR al buffer pong situato nella RAM locale. Poiché

l’iDMA effettua il caricamento del secondo tile in paralle-

lo con l’elaborazione DSP, di fatto “cela” la latenza legata

all’accesso in memoria. La combinazione tra la tecnica di

tiling e il DMA di tipo ping pong ha permesso di accelera-

re notevolmente (di un fattore compreso tra 15 e 20) l’e-

secuzione dell’algoritmo da parte del sistema hardware

prototipale basato su FPGA.

In questo articolo è stato presentato un algoritmo per il

rilevamento della corsia, una funzionalità tipica di ogni

sistema ADAS, per illustrare il flusso di sviluppo del sof-

tware per visione artificiale e le problematiche che gli

sviluppatori di algoritmi per visione artificiale devono

affrontare per scegliere e implementare un algoritmo

robusto che deve garantire prestazioni in real time pur

con limitate risorse di sistema. Sono stati inoltre evi-

denziate le potenzialità di Tensilica Vision DSP e le mo-

dalità di utilizzo della libreria software XI per eseguire

in tempi brevi il porting e otti-

mizzare gli algoritmi di visione

artificiale su un sistema hard-

ware embedded. Il progetto di

sviluppo dell’algoritmo per il

rilevamento della corsia uti-

lizzato nei sistemi ADAS è sta-

to completato nell’arco di tre

mesi da un progettista softwa-

re che non aveva un’esperien-

za pregressa di programma-

zione del DSP Tensilica Vision.

I compiti da svolgere prevede-

vano analisi dell’applicazione

e ricerca dell’algoritmo, pro-

totipazione di quest’ultimo uti-

lizzando MATLAB, sviluppo di

codice C funzionale generico,

ottimizzazione per Vision DSP,

dimostrazione su una piatta-

forma hardware di prototipa-

zione basata su FPGA. Grazie

al supporto di caratteristiche

hardware avanzate come DMA

2D e tecniche di programma-

zione come “tiling” e gestione

del DMA buffer in modalità ping pong, è stato possibile

dimostrare un’implementazione ottimizzata dell’algo-

ritmo di rilevamento della corsia operante in real time

su un hardware prototipale che opera a una frequenza

molto inferiore rispetto a quella raggiungibile da Vision

DSP integrato in un SoC.

Fig. 6 – DMA buffering di tipo ping pong per l’elaborazione

dei tile