OpenVX, le specifiche provvisorie del nuovo standard di machine vision

OpenVX, le specifiche provvisorie del nuovo standard di machine vision

Il Khronos Group lavora alle specifiche di un nuovo standard per la machine vision e la processazione delle immagini, allo scopo di semplificare la realizzazione di applicazioni di realtà aumentata

di pubblicata il , alle 11:01 nel canale Telefonia
 

Qualcomm, Broadcom, Samsung, ARM e altre importanti realtà del panorama tecnologico stanno collaborando all'interno del contesto del Khronos Group per standardizzare i primi elementi delle tecnologie di machine vision, allo scopo di consentire agli sviluppatori e ai programmatori di sfruttare più facilmente la tecnologia.

A tal proposito il Khronos Group ha pubblicato lo scorso lunedì 18 novembre le specifiche provvisorie del nuovo standard OpenVX che aiuterà a stabilire nuovi algoritmi visuali per le operazioni di riconoscimento di immagini e movimenti. Si tratta di un lavoro che permetterà, nel futuro prossimo, di semplificare la realizzazione di applicazioni per la realtà aumentata o dei sistemi di riconoscimento della segnaletica stradale, ad esempio, per le vetture con guida autonoma.

"La computer vision è centrale per portare le interfacce utente naturali e la consapevolezza dell'ambiente circostante ai dispositivi mobile e OpenVX abilita la processazione cross-platform con le elvate prestazioni e il basso consumo che sarà vitale ad un'ampia adozione. OpenVX è stato pensato per essere implementato indipendentemente o per interoperare nell'ecosistema di standard Khronos per il controllo di videocamere, l'integrazione di sensori, il flusso dati, l'accelerazione computazionale ed il rendering grafico, assicurando che le API di Khronos continuino a rispondere alle esigenze delle applicazioni portatili" ha dichiarato Neil Trevett, presidente di Khronos Group e vicepresidente mobile content per NVIDIA, anch'essa parte del gruppo di lavoro.

OpenVX potrà ad esempio aiutare a gestire le operazioni di stereo rectification, ovvero il processo di capire quali siano le parti di uno stesso oggetto che corrispondono in un'immagine rilevata da una doppia camera, oppure ancora quelle di computing optical flow, per il riconoscimento del movimento, o le operazioni di rilevamento di bordi e angoli per il riconoscimento di oggetti. Tramite OpenVX gli sviluppatori potranno sfruttare tutte queste operazioni grazie ad un'apposita libreria preconfezionata e testata, impiegando un'interfaccia standard. OpenVX sarà in particolare indirizzato verso i dispositivi mobile, dove il consumo energetico è un aspetto di fondamentale importanza.

Le specifiche provvisorie, che permetteranno a sviluppatori ed implementatori di esprimere pareri e opinioni prima della ratifica finale, sono disponibili a questo indirizzo. La ratifica delle specifiche finali è invece prevista per la metà del 2014.

2 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Tux8921 Novembre 2013, 14:14 #1
Scusate, quale sarebbe il vantaggio di creare una nuova libreria? Non basta opencv?
LMCH21 Novembre 2013, 19:13 #2
Originariamente inviato da: Tux89
Scusate, quale sarebbe il vantaggio di creare una nuova libreria? Non basta opencv?


OpenCV fornisce sia funzionalità ad alto livello che a basso livello, è bella massiccia ed include anche moduli che in USA sono protetti da brevetto (es: SIFT).

OpenVX invece è pensata per fornire le funzionalità "di base" (tipo un driver crossplatform) di elaborazione per applicazioni di visione computazionale
ed include (almeno per ora) solo funzionalità non coperte da brevetti.

Attualmente OpenCV su hardware "normale" implementa da se tutte le funzionalità e supporta anche l'accelerazione ad hoc di alcune di esse in base al processore o sfruttando OpenCL oppure CUDA.

Ma sebbene OpenCV abbia un sacco di versioni ottimizzate per le funzioni a basso livello, supporta solo le configurazioni più comuni (sarebbe troppo difficile supportarle tutte) e diventa sempre più difficile supportare al 100% delle funzionalità tutti i nuovi SoC che escono sul mercato.

OpenVX fornisce quindi sia una serie di funzioni di base iper-ottimizzate (si spera) dal produttore dell'hardware o del S.O. che possono essere utilizzate sia direttamente da applicazioni "che fanno roba relativamente semplice" e sia da librerie come OpenCV che implementano anche funzionalità molto più avanzate appoggiandosi su OpenVX come già fanno con OpenCl e CUDA.

Il vantaggio di OpenVX rispettoa CUDA ed OpenCL è che le sue funzioni di basso livello sono maggiormente ottimizzate per la visione computazionale
(OpenCL magari è più veloce di usare solo la cpu, ma non ha certe
ottimizzazioni specifiche che servono solo per la visione computazionale)
e possono sfruttare meglio le caratteristiche specifiche di un certo SoC
(es: distribuzione dell'elaborazione tra i core ARM e la GPU, ottimizzazione a blocchi che sfrutta al massimo la gerarchia delle cache, ecc.).

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^