EDA/SW/T&M
ADAS
52
- ELETTRONICA OGGI 460 - MARZO 2017
L’
adozione di tecnologie per la visione artifi-
ciale (CV – Computer Vision) si sta diffon-
dendo rapidamente in applicazioni di guida
autonoma. Gli algoritmi di visione artificiale sono di
tipo compute-intensive, ovvero richiedono una note-
vole mole di calcoli. L’esecuzione di questi algoritmi
spesso richiede DSP specializzati ad alte prestazioni o
GPU per garantire l’esecuzione in tempo reale abbinata
a un elevato livello di flessibilità. La
necessità di mappare un algoritmo
di visione allo stato dell’arte frutto
di ricerche teoriche in un software
ottimizzato in termini di prestazioni
che deve girare in real time su una
piattaforma embedded è un com-
pito decisamente impegnativo per
tutti gli sviluppatori di algoritmi.
Nel corso di questo articolo verrà
descritta l’implementazione di un
algoritmo che rileva il superamento
della corsia (una delle tante funzio-
nalità presenti nei sistemi avanza-
ti di assistenza alla guida – ADAS)
per illustrare il flusso di sviluppo
software di un’applicazione di vi-
sione artificiale e le problematiche
che devono affrontare gli sviluppa-
tori di questi algoritmi per ottenere
prestazioni elevate a fronte di risorse di sistema limi-
tate. Grazie a una libreria per visione artificiale ricca
di funzionalità e ottimizzata in termini di prestazioni è
possibile ridurre a poche settimane il ciclo di svilup-
po del software, ottenendo un codice ottimizzato per
DSP in grado di supportare il calcolo vettoriale ad alte
prestazioni in tempo reale a partire da codice C funzio-
nale generico. Nella parte finale dell’articolo saranno
illustrare le tecniche utilizzate per
ottimizzare il software per visione
artificiale che sfruttano le caratte-
ristiche avanzate integrate nella fa-
miglia di DSP a elevate prestazioni
di Cadence Tensilica Vision.
Flusso di sviluppo software per ap-
plicazioni CV in sistemi embedded
Lo sviluppo di applicazioni di visio-
ne artificiale per sistemi embedded
è spesso vincolato dalle risorse
hardware e di elaborazione dispo-
nibili in questi sistemi, nonché dal
fatto che questi ultimi devono fun-
zionare in tempo reale. Gli svilup-
patori devono essere in grado di
ottimizzare le prestazioni delle loro
applicazioni rispettando i vinco-
li imposti dai sistemi. Le metriche
Ottimizzazione
di un algoritmo per
applicazioni ADAS
Charles Qi
Sr. System Solutions architect
Cadence
Han Lin
Computer Vision Application
Software engineer
Cadence
L’articolo descrive l’implementazione di un algoritmo
che rileva il superamento della corsia (una delle tante
funzionalità presenti nei sistemi avanzati di assistenza
alla guida – ADAS) per illustrare il flusso di sviluppo
software di un’applicazione di visione artificiale e le
problematiche che devono affrontare gli sviluppatori
di questi algoritmi per ottenere prestazioni elevate a
fronte di risorse di sistema limitate
Fig. 1 – Le cinque fasi del processo di sviluppo di
un’applicazione di visione per sistemi embedded