PDA

View Full Version : OpenVX, le specifiche provvisorie del nuovo standard di machine vision


Redazione di Hardware Upg
21-11-2013, 10:01
Link alla notizia: http://www.hwupgrade.it/news/telefonia/openvx-le-specifiche-provvisorie-del-nuovo-standard-di-machine-vision_49818.html

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

Click sul link per visualizzare la notizia.

Tux89
21-11-2013, 13:14
Scusate, quale sarebbe il vantaggio di creare una nuova libreria? Non basta opencv?

LMCH
21-11-2013, 18:13
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.).