La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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: "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 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 DELL’ASSISTENZA AI NON VEDENTI Tesi di laurea di Filippo Battaglia Relatore Prof. Giancarlo Iannizzotto Correlatore Dr. Francesco La Rosa

2 Esecuzione di algoritmi di visione artificiale su sistema mobile
Nanodesktop tecnology Problema iniziale: Esecuzione di algoritmi di visione artificiale su sistema mobile 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 dell’hardware (memory bandwidth, video acceleration) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

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

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

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

6 Nanodesktop tecnology
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 l’esecuzione dei più moderni videogiochi L’hardware viene venduto a costi accessibili a causa dell’ampia diffusione e della concorrenza tra i vendor (Sony vende addirittura 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 Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

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

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

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

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

11 Un Hello world sul PSPSDK (parte 1)
Nanodesktop tecnology Un Hello world sul PSPSDK (parte 1) #include <pspdebug.h> #include <pspkernel.h> 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(); Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

12 Un Hello world sul PSPSDK (parte 2)
Nanodesktop tecnology 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

13 Sono necessarie 40 righe di codice per un semplice “Hello world”
Nanodesktop tecnology 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

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

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

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

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

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

19 Qualche dato su Nanodesktop
Nanodesktop tecnology Qualche dato su Nanodesktop Un SDK sviluppato totalmente in Italia, nell’Università di Messina 2 anni di sviluppo 100 Mb di codice sorgente La Nanodesktop distribution contiene 450 Mb di sorgenti, documentazione, demo, binari 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) Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

20 La tecnologia alla base di Nanodesktop consente di portare
Nanodesktop tecnology 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. L’interfaccia ndHAL_XFPU è in grado di usare le unità dedicate della PSP (VFPU) parallelizzando l’algoritmo 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

21 Le caratteristiche di Nanodesktop hanno consentito di
Nanodesktop tecnology 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

22 In particolare, sono state portate le librerie: ndOpenCV
Nanodesktop tecnology 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

23 Un correttore ortografico rilasciato da GNU ndSIFT
Nanodesktop tecnology 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 l’Oregon State University. Per la prima volta gira su PSP. ndSQLLite Per l’accesso ai file database Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

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

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

26 Attualmente, Nanodesktop supporta 4 HAL: HAL PSPE HAL_PSP HAL_KSU_PSP
Nanodesktop tecnology Attualmente, Nanodesktop supporta 4 HAL: HAL PSPE Consente la programmazione sull’emulatore 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

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

28 Tra l’HAL ed il livello applicativo CODE si pongono
Nanodesktop tecnology Tra l’HAL 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

29 Al di sopra di HAL e NanoCore si pone il livello CODE,
Nanodesktop tecnology 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

30 Nanodesktop integra un sistema grafico accelerato
Nanodesktop tecnology 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

31 Nanodesktop è in grado di prelevare dati da una
Nanodesktop tecnology 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 dall’applicazione Nanodesktop Audio Recorder e verranno usate nella prossima tecnologia ndPocketSphynx, che consentirà l’uso 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

32 Possiede inoltre capacità di rete: ndGCurl permette di
Nanodesktop tecnology 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

33 Questo è un Hello World equivalente sotto Nanodesktop
Nanodesktop tecnology Questo è un Hello World equivalente sotto Nanodesktop #include <nanodesktop.h> int ndMain () { ndInitSystem (); 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

34 Tramite Nanodesktop, abbiamo dunque la possibilità di
Nanodesktop tecnology 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 l’elaborazione 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

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

36 L’idea è stata quella di usare tutte queste tecnologie in
Nanodesktop tecnology L’idea è stata quella di usare tutte queste tecnologie in un’applicazione 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

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

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

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

40 L’algoritmo di PentLand (PCA) cerca di descrivere una
Nanodesktop tecnology L’algoritmo 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. Il viso di appartenenza viene individuato attraverso un meccanismo minimum distance nel face space Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

41 Blind Assistant è in grado di riconoscere il luogo in
Nanodesktop tecnology 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 l’algoritmo SIFT (Scalar Image Feature Transform) ed invia i risultati all’unità mobile attraverso la rete wireless Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

42 Nelle nostre prove, il sistema è riuscito a riconoscere
Nanodesktop tecnology 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

43 Blind Assistant è in grado di leggere un testo al non
Nanodesktop tecnology 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

44 Il sistema supporta due motori di riconoscimento ottico:
Nanodesktop tecnology 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

45 Il Visilab ha dedicato a Nanodesktop uno spazio sul
Nanodesktop tecnology 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 all’SDK 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

46 Gli sviluppatori possono fare riferimento alla Nanodesktop User Guide
Nanodesktop tecnology Gli sviluppatori possono fare riferimento alla Nanodesktop User Guide L’ultima versione dell’SDK (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

47 Nanodesktop verrà migliorato a breve con un nuovo
Nanodesktop tecnology 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 l’aggiunta di funzioni come collision avoidance, lettura dell’ora, delle mail, e delle news, oltre ad un miglioramento degli algoritmi utilizzati Visilab – Computer Vision and Image Processing Lab University of Messina - Italy

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


Scaricare ppt "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