1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image...
-
Upload
leonora-valsecchi -
Category
Documents
-
view
214 -
download
0
Transcript of 1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image...
22
Problema iniziale: Problema iniziale:
Esecuzione di algoritmi di visione artificialeEsecuzione di algoritmi di visione artificiale
su sistema mobilesu sistema mobile
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
Librerie Intel OpenCV disponibili solo per sistemi operativi per Librerie Intel OpenCV disponibili solo per sistemi operativi per piattaforma x86 (Windows, Linux, FreeBSD)piattaforma x86 (Windows, Linux, FreeBSD)
Necessità di elevate prestazioni del processore nei calcoliNecessità di elevate prestazioni del processore nei calcoliin virgola mobilein virgola mobile
Necessità di elevate prestazioni dell’hardware (memoryNecessità di elevate prestazioni dell’hardware (memorybandwidth, video acceleration) bandwidth, video acceleration)
33
OpenCVOpenCV Sono le librerie open source più comuni per l’esecuzione diSono le librerie open source più comuni per l’esecuzione di
algoritmi di visione artificiale.algoritmi di visione artificiale. Rilasciate da Intel come OSS sotto licenza BSD (BerkeleyRilasciate da Intel come OSS sotto licenza BSD (Berkeley
Software License)Software License)
http://sourceforge.net/projects/opencvlibrary/http://sourceforge.net/projects/opencvlibrary/
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
44
Eseguire le librerie OpenCV su un Eseguire le librerie OpenCV su un
palmare ?palmare ?
Processori ARM (Advanced RISC Machine) come Intel XScaleProcessori 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 disponibileSpesso un solo processore disponibile Mancanza di uno standard comune a tutti i palmariMancanza di uno standard comune a tutti i palmari
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
55
Approccio sperimentale: Approccio sperimentale:
Usare la potenza di calcolo di una Usare la potenza di calcolo di una consoleconsole
per videogiochi portatile per eseguire per videogiochi portatile per eseguire algoritmi di visione artificialealgoritmi di visione artificiale
Il nostro è il primo tentativo su piattaforma mobileIl nostro è il primo tentativo su piattaforma mobile
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
66
VantaggiVantaggi
Le società produttrici dotano tali device di processori molto Le società produttrici dotano tali device di processori molto sofisticati e specializzati nei calcoli in virgola mobile, di acceleratori sofisticati e specializzati nei calcoli in virgola mobile, di acceleratori grafici 2D/3D e di memorie molto veloci, allo scopo di assicurare grafici 2D/3D e di memorie molto veloci, allo scopo di assicurare l’esecuzione dei più moderni videogiochi l’esecuzione dei più moderni videogiochi
L’hardware viene venduto a costi accessibili a causa dell’ampia L’hardware viene venduto a costi accessibili a causa dell’ampia diffusione e della concorrenza tra i vendor (Sony vende addiritturadiffusione e della concorrenza tra i vendor (Sony vende addirittura
sottocosto la propria console per reggere la concorrenza del sottocosto la propria console per reggere la concorrenza del Nintendo DS)Nintendo DS)
Le console per videogiochi sono ampiamente diffuse, accessibili, e Le console per videogiochi sono ampiamente diffuse, accessibili, e facilmente acquistabili dagli utenti finalifacilmente acquistabili dagli utenti finali
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
77
Sony Playstation Portable (PSP)Sony Playstation Portable (PSP)
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
La più potente console portatile mai realizzata
88
Caratteristiche hardware della PSPCaratteristiche hardware della PSP Architettura Dual Processor 128-bit:Architettura Dual Processor 128-bit: Processore centrale MIPS R4000 (RISC) a 333 MhzProcessore centrale MIPS R4000 (RISC) a 333 Mhz istruzioni FP, Allegrex (SIMD)istruzioni FP, Allegrex (SIMD) Processore secondario MediaEngine CXD5026 a 333Processore secondario MediaEngine CXD5026 a 333 Mhz (funzionalità DSP, decodifica audio/video, Mhz (funzionalità DSP, decodifica audio/video, programmabile per l’esecuzione di programmi custom)programmabile per l’esecuzione di programmi custom) Unità VFPU (potenza di calcolo 2,6 Gflops/sec., 128Unità VFPU (potenza di calcolo 2,6 Gflops/sec., 128 registri in virgola mobile a 32 bit, capacità di calcoloregistri in virgola mobile a 32 bit, capacità di calcolo matriciale, trigonometrico e logaritmico, funzionalità matriciale, trigonometrico e logaritmico, funzionalità
SIMD)SIMD) Memoria DRAM 32 o 64 MbMemoria DRAM 32 o 64 Mb Accelerazione grafica 2D/3DAccelerazione grafica 2D/3D Supporto WIFI IEEE-802.11, USB, IRDASupporto WIFI IEEE-802.11, USB, IRDA
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
99
ProblemiProblemi
Nessun supporto da parte di Sony per sviluppatori nonNessun supporto da parte di Sony per sviluppatori non affiliatiaffiliati Nessun SDK ufficiale fornito da SonyNessun SDK ufficiale fornito da Sony Architettura totalmente diversa da quella di un PCArchitettura totalmente diversa da quella di un PC Sistema operativo dedicato (PSP-OS), incompatibileSistema operativo dedicato (PSP-OS), incompatibile con standard Unix e Posixcon standard Unix e Posix Nessun ambiente a finestre fornito dal sistema operativoNessun ambiente a finestre fornito dal sistema operativo
Unico strumento a disposizione degli sviluppatori eraUnico strumento a disposizione degli sviluppatori eraIl PSPSDK (www.ps2dev.org)Il PSPSDK (www.ps2dev.org)
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1010
Problemi programmazione PSPSDKProblemi programmazione PSPSDK
Libreria libc non standardLibreria libc non standard Non conformità linguaggio C con gli standard ANSINon conformità linguaggio C con gli standard ANSI Mancanza di un ambiente grafico a finestreMancanza di un ambiente grafico a finestre Nessuna integrazione con un IDENessuna integrazione con un IDE Nessun emulatore su PCNessun emulatore su PC Nessun supporto per VFPUNessun supporto per VFPU NID change trouble: interazione tra codice e diverse NID change trouble: interazione tra codice e diverse
versioni del firmwareversioni del firmware
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1111
Un Hello world sul PSPSDK (parte 1)Un Hello world sul PSPSDK (parte 1)#include <pspdebug.h>#include <pspdebug.h>
#include <pspkernel.h>#include <pspkernel.h>
PSP_MODULE_INFO("Hello World", 0, 1, 1);PSP_MODULE_INFO("Hello World", 0, 1, 1);
/* Exit callback *//* Exit callback */
int exit_callback(int arg1, int arg2, void *common) int exit_callback(int arg1, int arg2, void *common)
{{sceKernelExitGame();sceKernelExitGame();
return 0;return 0;
}}
/* Callback thread *//* Callback thread */
int CallbackThread(SceSize args, void *argp) int CallbackThread(SceSize args, void *argp)
{{int cbid;int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();sceKernelSleepThreadCB();
return 0;return 0;
}}
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1212
Un Hello world sul PSPSDK (parte 2)Un Hello world sul PSPSDK (parte 2)/* Sets up the callback thread and returns its thread id *//* Sets up the callback thread and returns its thread id */
int Setupcallback(void)int Setupcallback(void)
{{int thid = 0;int thid = 0;
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0)if(thid >= 0)
{{
sceKernelStartThread(thid, 0, 0);sceKernelStartThread(thid, 0, 0);
}}
return thid;return thid;
}}
int main() int main()
{{Setupcallback();Setupcallback();
pspDebugScreenInit();pspDebugScreenInit();
pspDebugScreenPrintf("Hello, world!\n");pspDebugScreenPrintf("Hello, world!\n");
sceKernelSleepThread();sceKernelSleepThread();
return 0;return 0;
}}
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1313
Sono necessarie 40 righe di codice per un semplice Sono necessarie 40 righe di codice per un semplice
““Hello world”Hello world”
Il nostro programma C non risponde agli standard ANSIIl nostro programma C non risponde agli standard ANSI
(manca la printf !!!!)(manca la printf !!!!)
Il problema dello sviluppo di ambienti compatibili con ilIl problema dello sviluppo di ambienti compatibili con il
normale codice C ed in grado di facilitare la creazione dinormale codice C ed in grado di facilitare la creazione di
homebrew per PSP, era considerata questione centrale homebrew per PSP, era considerata questione centrale
su tutti i forum per programmazione PSP su tutti i forum per programmazione PSP del mondodel mondo
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1414
Sviluppiamo un nostro SDK per la programmazione diSviluppiamo un nostro SDK per la programmazione di
sistemi embeddedsistemi embedded
NanodesktopNanodesktop
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1515
Caratteristiche di Nanodesktop (1)Caratteristiche di Nanodesktop (1)
Piena integrazione con l’IDE Dev-C++Piena integrazione con l’IDE Dev-C++ Supporto per lo pseudoemulatore MIPS PSPESupporto per lo pseudoemulatore MIPS PSPE Compatibilità ANSI C e C++Compatibilità ANSI C e C++ Supporto libm IEEE754. Accelerazione matematica inSupporto libm IEEE754. Accelerazione matematica in
hardware via VFPU (EMI, EMIEMU, ndHAL_XFPU)hardware via VFPU (EMI, EMIEMU, ndHAL_XFPU) Architettura HAL-basedArchitettura HAL-based Supporto tastiere virtualiSupporto tastiere virtuali Accesso al disco con cache write backAccesso 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 LabUniversity of Messina - Italy
Nanodesktop tecnology
1616
Caratteristiche di Nanodesktop (2)Caratteristiche di Nanodesktop (2)
Il sistema grafico supportaIl sistema grafico supporta Routines grafiche di disegnoRoutines grafiche di disegno Char overscreenChar overscreen Font TrueTypeFont TrueType Wallpaper e trasparenzeWallpaper e trasparenze Pulsanti, Textbox, TextArea, ListBox, CheckBox, Pulsanti, Textbox, TextArea, ListBox, CheckBox,
TrackBar, ProgressBar, Windows menuTrackBar, ProgressBar, Windows menu Icone e classi di file Icone e classi di file Caricamento e salvataggio di 12 formati grafici distintiCaricamento e salvataggio di 12 formati grafici distinti
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1717
Caratteristiche di Nanodesktop (3)Caratteristiche di Nanodesktop (3)
Sistema audio: supporta 8 canali hardware PCM conSistema audio: supporta 8 canali hardware PCM con
frequenze tra 8000 e 48000 Hz (interpolazione eseguitafrequenze tra 8000 e 48000 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 MP3Decodifica 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 hardwareInterfaccia per il controllo di dispositivi hardware
via infrarossi (RawIR, IRDA)via infrarossi (RawIR, IRDA)
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1818
Caratteristiche di Nanodesktop (4)Caratteristiche di Nanodesktop (4)
Supporto compressione/decompressione dei file ZIPSupporto 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 reteSupporto funzionalità standard di rete Supporto libreria Curl e ndGCurl per trasferimento fileSupporto libreria Curl e ndGCurl per trasferimento file Monitor di rete integratoMonitor di rete integrato Capacità VOIP (ndOSIP, ndeXOSIP, ndRTP)Capacità VOIP (ndOSIP, ndeXOSIP, ndRTP)
Quest’ultima caratteristica viene usata nel nuovo softwareQuest’ultima caratteristica viene usata nel nuovo software
di telefonia cellulare VOIP per PSP ndFurikupdi telefonia cellulare VOIP per PSP ndFurikup
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
1919
Qualche dato su NanodesktopQualche dato su Nanodesktop
Un SDK sviluppato totalmente in Italia, nell’Università di Un SDK sviluppato totalmente in Italia, nell’Università di MessinaMessina
2 anni di sviluppo2 anni di sviluppo 100 Mb di codice sorgente100 Mb di codice sorgente La Nanodesktop distribution contiene 450 Mb di La Nanodesktop distribution contiene 450 Mb di
sorgenti, documentazione, demo, binarisorgenti, documentazione, demo, binari 1.900.000 righe di codice1.900.000 righe di codice Le applicazioni nd hanno ricevuto svariati articoli sui siti Le applicazioni nd hanno ricevuto svariati articoli sui siti
psp-ita, QJ (USA), maxconsole (ENG), scene-beta (SPA), psp-ita, QJ (USA), maxconsole (ENG), scene-beta (SPA), psp-freaks (GER), planete-psp (FRA)psp-freaks (GER), planete-psp (FRA)
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2020
La tecnologia alla base di Nanodesktop consente di portareLa tecnologia alla base di Nanodesktop consente di portare
su dispositivi handheld librerie di tipo scientificosu dispositivi handheld librerie di tipo scientifico
universitario che erano state progettate per girare suuniversitario che erano state progettate per girare su
piattaforma x86. piattaforma x86.
L’interfaccia ndHAL_XFPU è in grado di usare le unitàL’interfaccia ndHAL_XFPU è in grado di usare le unità
dedicate della PSP (VFPU) parallelizzando l’algoritmo in dedicate della PSP (VFPU) parallelizzando l’algoritmo in
più flussi di esecuzione distinti. più flussi di esecuzione distinti.
Il sistema grafico compatto ed efficiente, che rinuncia allaIl sistema grafico compatto ed efficiente, che rinuncia alla
retrocompatibilità con le API grafiche di Windows e di X,retrocompatibilità con le API grafiche di Windows e di X,
consente di sfruttare ogni ciclo di clock del dispositivo.consente di sfruttare ogni ciclo di clock del dispositivo.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2121
Le caratteristiche di Nanodesktop hanno consentito diLe caratteristiche di Nanodesktop hanno consentito di
portare diverse tecnologie sviluppate da svariate portare diverse tecnologie sviluppate da svariate
Università e centri di ricerca su piattaforma PSP. Università e centri di ricerca su piattaforma PSP.
In questo modo, non solo abbiamo aperto il progettoIn questo modo, non solo abbiamo aperto il progetto
a centri di ricerca esteri, ma abbiamo anche ottenutoa centri di ricerca esteri, ma abbiamo anche ottenuto
un ambiente di sviluppo per piattaforma mobile unicoun ambiente di sviluppo per piattaforma mobile unico
del suo genere. del suo genere.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2222
In particolare, sono state portate le librerie:In particolare, sono state portate le librerie:
ndOpenCVndOpenCV
Per gli algoritmi di visione artificialePer gli algoritmi di visione artificiale
ndFLitendFLite
Un motore di sintesi vocale sperimentale sviluppato dalUn motore di sintesi vocale sperimentale sviluppato dal
Dr. Alan Black della Carnegie Mellon UniversityDr. Alan Black della Carnegie Mellon University
ndGOCR/ndOCRADndGOCR/ndOCRAD
Due motori OCR open-source. Il porting di Tesseract èDue motori OCR open-source. Il porting di Tesseract è
in corso. in corso.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2323
ndISpellndISpell
Un correttore ortografico rilasciato da GNUUn correttore ortografico rilasciato da GNU
ndSIFTndSIFT
Scalar Image Feature Transform: una tecnologia per ilScalar Image Feature Transform: una tecnologia per il
riconoscimento di oggetti e di luoghi ideata da David Lowericonoscimento di oggetti e di luoghi ideata da David Lowe
ed implementata dal Dr.R.Hess presso l’Oregon Stateed implementata dal Dr.R.Hess presso l’Oregon State
University. Per la prima volta gira su PSP. University. Per la prima volta gira su PSP.
ndSQLLitendSQLLite
Per l’accesso ai file databasePer l’accesso ai file database
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2424
Diamo ora un’occhiata alla Nanodesktop ArchitectureDiamo ora un’occhiata alla Nanodesktop Architecture
(rev. 4). (rev. 4).
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2525Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2626
Attualmente, Nanodesktop supporta 4 HAL:Attualmente, Nanodesktop supporta 4 HAL:
HAL PSPEHAL PSPEConsente la programmazione sull’emulatore per PC PSPEConsente la programmazione sull’emulatore per PC PSPE
HAL_PSPHAL_PSPConsente di programmare la vera PSP (senza USB e IR)Consente di programmare la vera PSP (senza USB e IR)
HAL_KSU_PSPHAL_KSU_PSPCompatibile con il firmware 1.50 Sony. Supporta le funzioni Raw-IR, Compatibile con il firmware 1.50 Sony. Supporta le funzioni Raw-IR,
USB, NetworkUSB, Network
HAL_CFW_PSPHAL_CFW_PSPCompatibile con i custom firmware serie 3.XX. Supporta USB, IRDA, Compatibile con i custom firmware serie 3.XX. Supporta USB, IRDA,
Raw-IR, MP3, WAV, Network, GoCamRaw-IR, MP3, WAV, Network, GoCam
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2727
Ogni HAL ha una sua struttura interna specificaOgni HAL ha una sua struttura interna specifica
HAL PSPEHAL PSPE HAL PSP HAL PSP
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
HAL KSUHAL KSU HAL CFW HAL CFW
2828
Tra l’HAL ed il livello applicativo CODE si pongonoTra l’HAL ed il livello applicativo CODE si pongono
le librerie NanoC, NanoCPP e NanoM che fornisconole librerie NanoC, NanoCPP e NanoM che forniscono
la compatibilità con gli standard ANSI ed ISO la compatibilità con gli standard ANSI ed ISO
consentendo la programmazione della piattaforma conconsentendo la programmazione della piattaforma con
il normale codice C. il normale codice C.
Questi tre componenti costituiscono il livello Questi tre componenti costituiscono il livello NanoCoreNanoCore
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
2929
Al di sopra di HAL e NanoCore si pone il livello CODE,Al di sopra di HAL e NanoCore si pone il livello CODE,
che contiene il codice indipendente dalla piattaformache contiene il codice indipendente dalla piattaforma
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3030
Nanodesktop integra un sistema grafico acceleratoNanodesktop integra un sistema grafico accelerato
multithreading con event manager di tipo multithreading con event manager di tipo message passingmessage passing
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3131
Nanodesktop è in grado di prelevare dati da unaNanodesktop è in grado di prelevare dati da una
webcam (GoCam o via Eyeserver)webcam (GoCam o via Eyeserver)
Inoltre, integra funzioni di acquisizione audio cheInoltre, integra funzioni di acquisizione audio che
consentono la registrazioni di suoni consentono la registrazioni di suoni
Sono già usate dall’applicazione Nanodesktop Audio RecorderSono già usate dall’applicazione Nanodesktop Audio Recorder
e verranno usate nella prossima tecnologia ndPocketSphynx,e verranno usate nella prossima tecnologia ndPocketSphynx,
che consentirà l’uso di un sistema di comando a riconoscimentoche consentirà l’uso di un sistema di comando a riconoscimento
vocale su piattaforma embedded in ambiente Nanodesktopvocale su piattaforma embedded in ambiente Nanodesktop
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3232
Possiede inoltre capacità di rete: ndGCurl permette diPossiede inoltre capacità di rete: ndGCurl permette di
scaricare un file da internet in modo simile a come siscaricare un file da internet in modo simile a come si
fa su Windowsfa su Windows
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3333
Questo è un Hello World equivalente sotto NanodesktopQuesto è un Hello World equivalente sotto Nanodesktop
#include <nanodesktop.h>#include <nanodesktop.h>
int ndMain ()int ndMain ()
{{
ndInitSystem ();ndInitSystem ();
printf (“Hello world \n”);printf (“Hello world \n”);
}}
Questo codice funzionerà, identico, su qualsiasi piattaformaQuesto codice funzionerà, identico, su qualsiasi piattaforma
supportata da ndsupportata da nd
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3434
Tramite Nanodesktop, abbiamo dunque la possibilità diTramite Nanodesktop, abbiamo dunque la possibilità diutilizzare un ambiente a finestre per la PSP. utilizzare un ambiente a finestre per la PSP.
Il passo successivo, è consistito nella realizzazione diIl passo successivo, è consistito nella realizzazione diuna reimplementazione del componente HighGUI diuna reimplementazione del componente HighGUI diIntel. Intel.
ndHighGUI è in grado di visualizzare su nd un immagine ndHighGUI è in grado di visualizzare su nd un immagine IPL (OpenCV) dopo l’elaborazione da parte degli algoritmiIPL (OpenCV) dopo l’elaborazione da parte degli algoritmidi visione artificiale. Le funzioni di ndHighGUI sonodi visione artificiale. Le funzioni di ndHighGUI sonoanaloghe alle corrispondenti della versione per x86.analoghe alle corrispondenti della versione per x86.
Il codice sorgente è stato invece completamente riscritto.Il codice sorgente è stato invece completamente riscritto.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3535
Stiamo eseguendo le OpenCV su un dispositivo portatileStiamo eseguendo le OpenCV su un dispositivo portatile
come la PSP !come la PSP !
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3636
L’idea è stata quella di usare tutte queste tecnologie inL’idea è stata quella di usare tutte queste tecnologie in
un’applicazione di assistenza ai non vedentiun’applicazione di assistenza ai non vedenti
In questo modo, avrebbero potuto accedere a delleIn questo modo, avrebbero potuto accedere a delle
tecnologie avanzate di visione artificiale al costo di tecnologie avanzate di visione artificiale al costo di
acquisto di una semplice PSP. acquisto di una semplice PSP.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3737
Blind AssistantBlind Assistant
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3838Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
3939
Blind Assistant fornisce le seguenti funzionalità:Blind Assistant fornisce le seguenti funzionalità:
Face Detection e Recognition: Face Detection e Recognition:
è in grado di indicare al non vedente la posizione eè in grado di indicare al non vedente la posizione e
l’identità di un individuo inquadrato dalla webcam GoCaml’identità di un individuo inquadrato dalla webcam GoCam
Per fare questo, fa uso dell’algoritmo di Viola-JonesPer fare questo, fa uso dell’algoritmo di Viola-Jones
per la face detection, seguito dall’algoritmo di PentLandper la face detection, seguito dall’algoritmo di PentLand
di face recognition. di face recognition.
Nelle nostre prove il sistema ha riconosciuto il viso Nelle nostre prove il sistema ha riconosciuto il viso
in più dell’85% dei casi in più dell’85% dei casi
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4040
L’algoritmo di PentLand (PCA) cerca di descrivere unaL’algoritmo di PentLand (PCA) cerca di descrivere una
immagine come una combinazione lineare di n vettoriimmagine come una combinazione lineare di n vettori
immagine noti (EigenFaces). Un particolare processoimmagine noti (EigenFaces). Un particolare processo
matematico consente di ridurre la dimensionalità delmatematico consente di ridurre la dimensionalità del
problema. problema.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
Il viso di appartenenza viene individuato attraverso Il viso di appartenenza viene individuato attraverso un meccanismo minimum distance nel face spaceun meccanismo minimum distance nel face space
4141
Place recognitionPlace recognition
Blind Assistant è in grado di riconoscere il luogo inBlind Assistant è in grado di riconoscere il luogo in
cui il cieco si trova. Per fare questo, esso si appoggiacui il cieco si trova. Per fare questo, esso si appoggia
ad un server che gira su x86 chiamato BlindServer,ad un server che gira su x86 chiamato BlindServer,
il quale esegue l’algoritmo SIFT (Scalar Imageil quale esegue l’algoritmo SIFT (Scalar Image
Feature Transform) ed invia i risultati all’unità mobileFeature Transform) ed invia i risultati all’unità mobile
attraverso la rete wirelessattraverso la rete wireless
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4242
Nelle nostre prove, il sistema è riuscito a riconoscereNelle nostre prove, il sistema è riuscito a riconoscere
il luogo in più del 70% dei casi.il luogo in più del 70% dei casi.
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4343
OCR OCR
Blind Assistant è in grado di leggere un testo al nonBlind Assistant è in grado di leggere un testo al non
vedente. Questo inquadra il testo con la GoCam...vedente. Questo inquadra il testo con la GoCam...
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4444
Il sistema supporta due motori di riconoscimento ottico:Il sistema supporta due motori di riconoscimento ottico:Tesseract, Tesseract, il noto software sviluppato dalla Google Foundation;il noto software sviluppato dalla Google Foundation;
ndOcrad, ndOcrad, il software sviluppato da Antonio Diaz e rilasciato sotto GPLil software sviluppato da Antonio Diaz e rilasciato sotto GPL
Blind Assistant fa uso di un algoritmo di correzione deiBlind Assistant fa uso di un algoritmo di correzione dei
termini errati che si appoggia su un dizionario. Anchetermini errati che si appoggia su un dizionario. Anche
questa tecnologia di correzione è stata sviluppata alquesta tecnologia di correzione è stata sviluppata al
Visilab.Visilab.
Il testo viene sintetizzato in tempo reale e letto dalla PSPIl testo viene sintetizzato in tempo reale e letto dalla PSP
al cieco. Quando si usa Tesseract, il sistema ha un rateal cieco. Quando si usa Tesseract, il sistema ha un rate
di riconoscimento superiore al 90%di riconoscimento superiore al 90%
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4545
Il Visilab ha dedicato a Nanodesktop uno spazio sulIl Visilab ha dedicato a Nanodesktop uno spazio sul
proprio sito Internet:proprio sito Internet:http://visilab.unime.it/~filippo/Nanodesktop/nanodesktop.htmhttp://visilab.unime.it/~filippo/Nanodesktop/nanodesktop.htm
Psp-Ita ospita il forum di assistenza tecnicaPsp-Ita ospita il forum di assistenza tecnicahttp://www.psp-ita.com/forum/http://www.psp-ita.com/forum/
La fondazione Wikipedia ha dedicato una pagina all’SDKLa fondazione Wikipedia ha dedicato una pagina all’SDKhttp://it.wikipedia.org/wiki/Nanodesktophttp://it.wikipedia.org/wiki/Nanodesktop
Attualmente, sia in Italia che negli Stati Uniti diversiAttualmente, sia in Italia che negli Stati Uniti diversi
sviluppatori stanno lavorando su applicazioni nd compatibilisviluppatori stanno lavorando su applicazioni nd compatibili
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4646
Gli sviluppatori possono fare riferimento allaGli sviluppatori possono fare riferimento alla
Nanodesktop User GuideNanodesktop User Guidehttp://visilab.unime.it/~filippo/Nanodesktop/PSP_PSPE/Docs/Docs.htmhttp://visilab.unime.it/~filippo/Nanodesktop/PSP_PSPE/Docs/Docs.htm
L’ultima versione dell’SDK (0.3.4) è scaricabile qui [*]L’ultima versione dell’SDK (0.3.4) è scaricabile qui [*]http://visilab.unime.it/~filippo/Nanodesktop/PSP_PSPE/Downloads/Downloads.htmhttp://visilab.unime.it/~filippo/Nanodesktop/PSP_PSPE/Downloads/Downloads.htm
[*] o da uno dei mirror che si occupano del progetto in Italia o in USA[*] o da uno dei mirror che si occupano del progetto in Italia o in USA
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4747
Sviluppi futuriSviluppi futuri
Nanodesktop verrà migliorato a breve con un nuovoNanodesktop verrà migliorato a breve con un nuovo
engine grafico 3d, il supporto a Python, il motoreengine grafico 3d, il supporto a Python, il motore
di comando vocale PocketSphynx, la compatibilitàdi comando vocale PocketSphynx, la compatibilità
con SDL ed Allegro.con SDL ed Allegro.
Per Blind Assistant, è prevista l’aggiunta di funzioniPer Blind Assistant, è prevista l’aggiunta di funzioni
come collision avoidance, lettura dell’ora, delle mail,come collision avoidance, lettura dell’ora, delle mail,
e delle news, oltre ad un miglioramento deglie delle news, oltre ad un miglioramento degli
algoritmi utilizzatialgoritmi utilizzati
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology
4848
GRAZIEGRAZIE
Visilab – Computer Vision and Image Processing LabUniversity of Messina - Italy
Nanodesktop tecnology