La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab PROGETTAZIONE E SVILUPPO DI UN SDK PORTABILE.

Presentazioni simili


Presentazione sul tema: "1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab PROGETTAZIONE E SVILUPPO DI UN SDK PORTABILE."— Transcript della presentazione:

1 1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab PROGETTAZIONE E SVILUPPO DI UN SDK PORTABILE PER SISTEMI EMBEDDED FINALIZZATO ALLA REALIZZAZIONE DI SOFTWARE DI VISIONE ARTIFICIALE, CON APPLICAZIONI NEL SETTORE DELLASSISTENZA AI NON VEDENTI Tesi di laurea di Filippo Battaglia Relatore Prof. Giancarlo Iannizzotto Correlatore Dr. Francesco La Rosa

2 2 Problema iniziale: Problema iniziale: Esecuzione di algoritmi di visione artificiale Esecuzione di algoritmi di visione artificiale su sistema mobile su sistema mobile Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology Librerie Intel OpenCV disponibili solo per sistemi operativi per piattaforma x86 (Windows, Linux, FreeBSD) Necessità di elevate prestazioni del processore nei calcoli in virgola mobile Necessità di elevate prestazioni dellhardware (memory bandwidth, video acceleration)

3 3 OpenCV Sono le librerie open source più comuni per lesecuzione di Sono le librerie open source più comuni per lesecuzione di algoritmi di visione artificiale. Rilasciate da Intel come OSS sotto licenza BSD (Berkeley Rilasciate da Intel come OSS sotto licenza BSD (Berkeley Software License) Software License) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

4 4 Eseguire le librerie OpenCV su un palmare ? Processori ARM (Advanced RISC Machine) come Intel XScale Processori ARM (Advanced RISC Machine) come Intel XScale ottimizzati per calcoli a precisione fissa ottimizzati per calcoli a precisione fissa Supporto VFP, NEON (SIMD) disponibile solo nei modelli più Supporto VFP, NEON (SIMD) disponibile solo nei modelli più avanzati e costosi (core ARM11, processori CORTEX) avanzati e costosi (core ARM11, processori CORTEX) Spesso un solo processore disponibile Spesso un solo processore disponibile Mancanza di uno standard comune a tutti i palmari Mancanza di uno standard comune a tutti i palmari Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

5 5 Approccio sperimentale: Usare la potenza di calcolo di una console Usare la potenza di calcolo di una console per videogiochi portatile per eseguire per videogiochi portatile per eseguire algoritmi di visione artificiale algoritmi di visione artificiale Il nostro è il primo tentativo su piattaforma mobile Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

6 6 Vantaggi Le società produttrici dotano tali device di processori molto sofisticati e specializzati nei calcoli in virgola mobile, di acceleratori grafici 2D/3D e di memorie molto veloci, allo scopo di assicurare lesecuzione dei più moderni videogiochi Le società produttrici dotano tali device di processori molto sofisticati e specializzati nei calcoli in virgola mobile, di acceleratori grafici 2D/3D e di memorie molto veloci, allo scopo di assicurare lesecuzione dei più moderni videogiochi Lhardware viene venduto a costi accessibili a causa dellampia diffusione e della concorrenza tra i vendor (Sony vende addirittura Lhardware viene venduto a costi accessibili a causa dellampia diffusione e della concorrenza tra i vendor (Sony vende addirittura sottocosto la propria console per reggere la concorrenza del Nintendo DS) sottocosto la propria console per reggere la concorrenza del Nintendo DS) Le console per videogiochi sono ampiamente diffuse, accessibili, e facilmente acquistabili dagli utenti finali Le console per videogiochi sono ampiamente diffuse, accessibili, e facilmente acquistabili dagli utenti finali Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

7 7 Sony Playstation Portable (PSP) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology La più potente console portatile mai realizzata

8 8 Caratteristiche hardware della PSP Architettura Dual Processor 128-bit: Architettura Dual Processor 128-bit: Processore centrale MIPS R4000 (RISC) a 333 Mhz Processore centrale MIPS R4000 (RISC) a 333 Mhz istruzioni FP, Allegrex (SIMD) istruzioni FP, Allegrex (SIMD) Processore secondario MediaEngine CXD5026 a 333 Processore secondario MediaEngine CXD5026 a 333 Mhz (funzionalità DSP, decodifica audio/video, Mhz (funzionalità DSP, decodifica audio/video, programmabile per lesecuzione di programmi custom) programmabile per lesecuzione di programmi custom) Unità VFPU (potenza di calcolo 2,6 Gflops/sec., 128 Unità VFPU (potenza di calcolo 2,6 Gflops/sec., 128 registri in virgola mobile a 32 bit, capacità di calcolo registri in virgola mobile a 32 bit, capacità di calcolo matriciale, trigonometrico e logaritmico, funzionalità SIMD) matriciale, trigonometrico e logaritmico, funzionalità SIMD) Memoria DRAM 32 o 64 Mb Memoria DRAM 32 o 64 Mb Accelerazione grafica 2D/3D Accelerazione grafica 2D/3D Supporto WIFI IEEE , USB, IRDA Supporto WIFI IEEE , USB, IRDA Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

9 9 Problemi Nessun supporto da parte di Sony per sviluppatori non Nessun supporto da parte di Sony per sviluppatori non affiliati affiliati Nessun SDK ufficiale fornito da Sony Nessun SDK ufficiale fornito da Sony Architettura totalmente diversa da quella di un PC Architettura totalmente diversa da quella di un PC Sistema operativo dedicato (PSP-OS), incompatibile Sistema operativo dedicato (PSP-OS), incompatibile con standard Unix e Posix con standard Unix e Posix Nessun ambiente a finestre fornito dal sistema operativo Nessun ambiente a finestre fornito dal sistema operativo Unico strumento a disposizione degli sviluppatori era Il PSPSDK (www.ps2dev.org) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

10 10 Problemi programmazione PSPSDK Libreria libc non standard Libreria libc non standard Non conformità linguaggio C con gli standard ANSI Non conformità linguaggio C con gli standard ANSI Mancanza di un ambiente grafico a finestre Mancanza di un ambiente grafico a finestre Nessuna integrazione con un IDE Nessuna integrazione con un IDE Nessun emulatore su PC Nessun emulatore su PC Nessun supporto per VFPU Nessun supporto per VFPU NID change trouble: interazione tra codice e diverse NID change trouble: interazione tra codice e diverse versioni del firmware versioni del firmware Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

11 11 Un Hello world sul PSPSDK (parte 1) #include #include PSP_MODULE_INFO("Hello World", 0, 1, 1); /* Exit callback */ int exit_callback(int arg1, int arg2, void *common) {sceKernelExitGame(); return 0; } /* Callback thread */ int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid);sceKernelSleepThreadCB(); return 0; } Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

12 12 Un Hello world sul PSPSDK (parte 2) /* Sets up the callback thread and returns its thread id */ int Setupcallback(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } int main() {Setupcallback();pspDebugScreenInit(); pspDebugScreenPrintf("Hello, world!\n"); sceKernelSleepThread(); return 0; } Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

13 13 Sono necessarie 40 righe di codice per un semplice Hello world Il nostro programma C non risponde agli standard ANSI (manca la printf !!!!) Il problema dello sviluppo di ambienti compatibili con il normale codice C ed in grado di facilitare la creazione di homebrew per PSP, era considerata questione centrale su tutti i forum per programmazione PSP del mondo Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

14 14 Sviluppiamo un nostro SDK per la programmazione di sistemi embedded Nanodesktop Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

15 15 Caratteristiche di Nanodesktop (1) Piena integrazione con lIDE Dev-C++ Piena integrazione con lIDE Dev-C++ Supporto per lo pseudoemulatore MIPS PSPE Supporto per lo pseudoemulatore MIPS PSPE Compatibilità ANSI C e C++ Compatibilità ANSI C e C++ Supporto libm IEEE754. Accelerazione matematica in Supporto libm IEEE754. Accelerazione matematica in hardware via VFPU (EMI, EMIEMU, ndHAL_XFPU) hardware via VFPU (EMI, EMIEMU, ndHAL_XFPU) Architettura HAL-based Architettura HAL-based Supporto tastiere virtuali Supporto tastiere virtuali Accesso al disco con cache write back Accesso al disco con cache write back Sistema grafico accelerato in hardware Phoenix Sistema grafico accelerato in hardware Phoenix (NanoTile acceleration) (NanoTile acceleration) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

16 16 Caratteristiche di Nanodesktop (2) Il sistema grafico supporta Routines grafiche di disegno Routines grafiche di disegno Char overscreen Char overscreen Font TrueType Font TrueType Wallpaper e trasparenze Wallpaper e trasparenze Pulsanti, Textbox, TextArea, ListBox, CheckBox, TrackBar, ProgressBar, Windows menu Pulsanti, Textbox, TextArea, ListBox, CheckBox, TrackBar, ProgressBar, Windows menu Icone e classi di file Icone e classi di file Caricamento e salvataggio di 12 formati grafici distinti Caricamento e salvataggio di 12 formati grafici distinti Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

17 17 Caratteristiche di Nanodesktop (3) Sistema audio: supporta 8 canali hardware PCM con Sistema audio: supporta 8 canali hardware PCM con frequenze tra 8000 e Hz (interpolazione eseguita frequenze tra 8000 e Hz (interpolazione eseguita via software ove la piattaforma non supporti la via software ove la piattaforma non supporti la funzionalità) funzionalità) Decodifica assistita in hardware di file WAVE e MP3 Decodifica assistita in hardware di file WAVE e MP3 USB: Supporto per Sony GoCam e per qualsiasi USB: Supporto per Sony GoCam e per qualsiasi webcam via Eyeserver tecnology (ndUsbDriver.Prx) webcam via Eyeserver tecnology (ndUsbDriver.Prx) Interfaccia per il controllo di dispositivi hardware Interfaccia per il controllo di dispositivi hardware via infrarossi (RawIR, IRDA) via infrarossi (RawIR, IRDA) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

18 18 Caratteristiche di Nanodesktop (4) Supporto compressione/decompressione dei file ZIP Supporto compressione/decompressione dei file ZIP Funzionalità di connessione di rete Wi-Fi (IEEE802.11) Funzionalità di connessione di rete Wi-Fi (IEEE802.11) Supporto funzionalità standard di rete Supporto funzionalità standard di rete Supporto libreria Curl e ndGCurl per trasferimento file Supporto libreria Curl e ndGCurl per trasferimento file Monitor di rete integrato Monitor di rete integrato Capacità VOIP (ndOSIP, ndeXOSIP, ndRTP) Capacità VOIP (ndOSIP, ndeXOSIP, ndRTP) Questultima caratteristica viene usata nel nuovo software di telefonia cellulare VOIP per PSP ndFurikup Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

19 19 Qualche dato su Nanodesktop Un SDK sviluppato totalmente in Italia, nellUniversità di Messina Un SDK sviluppato totalmente in Italia, nellUniversità di Messina 2 anni di sviluppo 2 anni di sviluppo 100 Mb di codice sorgente 100 Mb di codice sorgente La Nanodesktop distribution contiene 450 Mb di La Nanodesktop distribution contiene 450 Mb di sorgenti, documentazione, demo, binari sorgenti, documentazione, demo, binari righe di codice righe di codice Le applicazioni nd hanno ricevuto svariati articoli sui siti psp-ita, QJ (USA), maxconsole (ENG), scene-beta (SPA), psp-freaks (GER), planete-psp (FRA) Le applicazioni nd hanno ricevuto svariati articoli sui siti psp-ita, QJ (USA), maxconsole (ENG), scene-beta (SPA), psp-freaks (GER), planete-psp (FRA) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

20 20 La tecnologia alla base di Nanodesktop consente di portare su dispositivi handheld librerie di tipo scientifico universitario che erano state progettate per girare su piattaforma x86. Linterfaccia ndHAL_XFPU è in grado di usare le unità dedicate della PSP (VFPU) parallelizzando lalgoritmo in più flussi di esecuzione distinti. Il sistema grafico compatto ed efficiente, che rinuncia alla retrocompatibilità con le API grafiche di Windows e di X, consente di sfruttare ogni ciclo di clock del dispositivo. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

21 21 Le caratteristiche di Nanodesktop hanno consentito di portare diverse tecnologie sviluppate da svariate Università e centri di ricerca su piattaforma PSP. In questo modo, non solo abbiamo aperto il progetto a centri di ricerca esteri, ma abbiamo anche ottenuto un ambiente di sviluppo per piattaforma mobile unico del suo genere. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

22 22 In particolare, sono state portate le librerie: ndOpenCV Per gli algoritmi di visione artificiale ndFLite Un motore di sintesi vocale sperimentale sviluppato dal Dr. Alan Black della Carnegie Mellon University ndGOCR/ndOCRAD Due motori OCR open-source. Il porting di Tesseract è in corso. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

23 23 ndISpell Un correttore ortografico rilasciato da GNU ndSIFT Scalar Image Feature Transform: una tecnologia per il riconoscimento di oggetti e di luoghi ideata da David Lowe ed implementata dal Dr.R.Hess presso lOregon State University. Per la prima volta gira su PSP. ndSQLLite Per laccesso ai file database Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

24 24 Diamo ora unocchiata alla Nanodesktop Architecture (rev. 4). Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

25 25 Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

26 26 Attualmente, Nanodesktop supporta 4 HAL: HAL PSPE Consente la programmazione sullemulatore per PC PSPE HAL_PSP Consente di programmare la vera PSP (senza USB e IR) HAL_KSU_PSP Compatibile con il firmware 1.50 Sony. Supporta le funzioni Raw-IR, USB, Network HAL_CFW_PSP Compatibile con i custom firmware serie 3.XX. Supporta USB, IRDA, Raw-IR, MP3, WAV, Network, GoCam Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

27 27 Ogni HAL ha una sua struttura interna specifica HAL PSPE HAL PSP Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology HAL KSU HAL CFW

28 28 Tra lHAL ed il livello applicativo CODE si pongono le librerie NanoC, NanoCPP e NanoM che forniscono la compatibilità con gli standard ANSI ed ISO consentendo la programmazione della piattaforma con il normale codice C. Questi tre componenti costituiscono il livello NanoCore Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

29 29 Al di sopra di HAL e NanoCore si pone il livello CODE, che contiene il codice indipendente dalla piattaforma Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

30 30 Nanodesktop integra un sistema grafico accelerato multithreading con event manager di tipo message passing Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

31 31 Nanodesktop è in grado di prelevare dati da una webcam (GoCam o via Eyeserver) Inoltre, integra funzioni di acquisizione audio che consentono la registrazioni di suoni Sono già usate dallapplicazione Nanodesktop Audio Recorder e verranno usate nella prossima tecnologia ndPocketSphynx, che consentirà luso di un sistema di comando a riconoscimento vocale su piattaforma embedded in ambiente Nanodesktop Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

32 32 Possiede inoltre capacità di rete: ndGCurl permette di scaricare un file da internet in modo simile a come si fa su Windows Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

33 33 Questo è un Hello World equivalente sotto Nanodesktop #include #include int ndMain () { ndInitSystem (); ndInitSystem (); printf (Hello world \n); printf (Hello world \n);} Questo codice funzionerà, identico, su qualsiasi piattaforma supportata da nd Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

34 34 Tramite Nanodesktop, abbiamo dunque la possibilità di utilizzare un ambiente a finestre per la PSP. Il passo successivo, è consistito nella realizzazione di una reimplementazione del componente HighGUI di Intel. ndHighGUI è in grado di visualizzare su nd un immagine IPL (OpenCV) dopo lelaborazione da parte degli algoritmi di visione artificiale. Le funzioni di ndHighGUI sono analoghe alle corrispondenti della versione per x86. Il codice sorgente è stato invece completamente riscritto. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

35 35 Stiamo eseguendo le OpenCV su un dispositivo portatile come la PSP ! Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

36 36 Lidea è stata quella di usare tutte queste tecnologie in unapplicazione di assistenza ai non vedenti In questo modo, avrebbero potuto accedere a delle tecnologie avanzate di visione artificiale al costo di acquisto di una semplice PSP. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

37 37 Blind Assistant Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

38 38 Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

39 39 Blind Assistant fornisce le seguenti funzionalità: Face Detection e Recognition: è in grado di indicare al non vedente la posizione e lidentità di un individuo inquadrato dalla webcam GoCam Per fare questo, fa uso dellalgoritmo di Viola-Jones per la face detection, seguito dallalgoritmo di PentLand di face recognition. Nelle nostre prove il sistema ha riconosciuto il viso in più dell85% dei casi Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

40 40 Lalgoritmo di PentLand (PCA) cerca di descrivere una immagine come una combinazione lineare di n vettori immagine noti (EigenFaces). Un particolare processo matematico consente di ridurre la dimensionalità del problema. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology Il viso di appartenenza viene individuato attraverso un meccanismo minimum distance nel face space

41 41 Place recognition Blind Assistant è in grado di riconoscere il luogo in cui il cieco si trova. Per fare questo, esso si appoggia ad un server che gira su x86 chiamato BlindServer, il quale esegue lalgoritmo SIFT (Scalar Image Feature Transform) ed invia i risultati allunità mobile attraverso la rete wireless Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

42 42 Nelle nostre prove, il sistema è riuscito a riconoscere il luogo in più del 70% dei casi. Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

43 43 OCR Blind Assistant è in grado di leggere un testo al non vedente. Questo inquadra il testo con la GoCam... Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

44 44 Il sistema supporta due motori di riconoscimento ottico: Tesseract, il noto software sviluppato dalla Google Foundation; ndOcrad, il software sviluppato da Antonio Diaz e rilasciato sotto GPL Blind Assistant fa uso di un algoritmo di correzione dei termini errati che si appoggia su un dizionario. Anche questa tecnologia di correzione è stata sviluppata al Visilab. Il testo viene sintetizzato in tempo reale e letto dalla PSP al cieco. Quando si usa Tesseract, il sistema ha un rate di riconoscimento superiore al 90% Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

45 45 Il Visilab ha dedicato a Nanodesktop uno spazio sul proprio sito Internet: Psp-Ita ospita il forum di assistenza tecnica La fondazione Wikipedia ha dedicato una pagina allSDK Attualmente, sia in Italia che negli Stati Uniti diversi sviluppatori stanno lavorando su applicazioni nd compatibili Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

46 46 Gli sviluppatori possono fare riferimento alla Nanodesktop User Guide Lultima versione dellSDK (0.3.4) è scaricabile qui [*] [*] o da uno dei mirror che si occupano del progetto in Italia o in USA Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

47 47 Sviluppi futuri Nanodesktop verrà migliorato a breve con un nuovo engine grafico 3d, il supporto a Python, il motore di comando vocale PocketSphynx, la compatibilità con SDL ed Allegro. Per Blind Assistant, è prevista laggiunta di funzioni come collision avoidance, lettura dellora, delle mail, e delle news, oltre ad un miglioramento degli algoritmi utilizzati Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology

48 48 GRAZIE Visilab – Computer Vision and Image Processing Lab University of Messina - Italy Nanodesktop tecnology


Scaricare ppt "1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab PROGETTAZIONE E SVILUPPO DI UN SDK PORTABILE."

Presentazioni simili


Annunci Google