Introduzione a Intel Perceptual SDK

Intel Perceptual SDK è una piattaforma software/hardware per il gesture/voice/speech recognition. Per il software si ha a disposizione un insieme di librerie contenenti l’implementazione di algoritmi di rilevamento e riconoscimento esposti attraverso uno strato di astrazione (interfacce standard).

Per l’hardware, Perceptual SDK supporta l’utilizzo della Creative Camera.

L’utilizzo di Intel Perceptual SDK permette allo sviluppatore di semplificare lo sviluppo di applicazioni di nuova generazione basate sul paradigma NUI (Natural User Interface).

Creative Camera

La Creative camera è il device di riferimento di Perceptual SDK.

La Creative camera dispone di

  • una normale camera 720p (che può essere utilizzata anche come normale webcam con risoluzione 1280x720);
  • un sensore di profondità 3D basato su tecnologia ad infrarossi in grado di rilevare gesture delle mani a distanza ravvicinata (risoluzione 320x240);
  • un array di due microfoni che consentono di localizzare la provenienza del suono per garantire una migliore esperienza di speech revognition.
  • Il range di utilizzo della Creative camera è compreso tra circa 15 centimetri e un metro.

 

Architettura


L’architettura di Intel Perceptual è mostrata nella seguente figura: 

I moduli di I/O e i moduli di algoritmi sono le parti più rilevanti dell’intero SDK.
I primi sovraintendono a tutte le operazioni di input/output da e verso le periferiche (ad esempio qui c’è il modulo che gestisce la comunicazione con la Creative Cam) mentre i secondi contengono gli algoritmi di riconoscimento (face recognition, voice recognition, gesture recognition, etc., etc.) e gli algoritmi che rendono l’SDK innovativo.
L’SDK mette a disposizione una serie di API per accedere a tali moduli senza conoscerne l’implementazione (SDK Interfaces). Più implementazioni di tali moduli possono coesistere e l’SDK fornisce anche funzionalità di scaffolding per sapere quali di questi sono presenti.
In linea teorica, tali moduli possono essere realizzati in maniera custom personalizzando, ad esempio, l’implementazione di un algoritmo di riconoscimento nel modo che ci fa più comodo.
L’SDK espone delle utilities e una serie di wrapper per poter utilizzare le API, ad esempio, nel mondo .NET (C# o VB.NET).

 

Organizzazione delle interfacce


Intel Perceptual SDK è stato pensato per essere utilizzato in diversi scenari applicativi e per diverse tipologie di sviluppatori con differenti skill.
Per questo motivo non è stato possibile definire una singola interfaccia funzionale ad ogi singolo scenario.
L’SDK e’ stato, dunque, organizzato a layer secondo il seguente schema:

Le applicazioni possono essere scritte in C++ ed utilizzare direttamente il core dell’SDK (scritto anch’esso in C++), oppure utilizzare delle astrazioni di livello superiore (sempre scritte in C++) o, infine essere realizzate in linguaggi managed (C# e VB.NET) e sfruttare una libreria che espone le funzionalità C++ nel mondo .NET.
La parte più a basso livello, scritta in C++, fornisce le funzionalità di base della piattaforma. Ad esempio l’interfaccia PCXCapture permette l’acquisizione dei dati grezzi dai dispositivi di input (ad esempio la cam o il microfono). In modo analogo la PXCGesture fornisce le funzionalità di gesture recognition o finger tracking (il cui algoritmo vero e proprio cambia in base all’implementazione sottostante). Le interfacce presenti in questo building block forniscono la massima flessibilità ma sono abbastanza difficili da utilizzare.
L’SDK mette a disposizione un porting delle interfacce C++ nel mondo managed (C# e VB.NET) le cui interfacce sono individuabili dalla M presente nel nome: la PCXCapture diventa PCXMCapture.
Ci occuperemo di questo building block nel prosieguo della trattazione.
Infine, l’SDK mette a disposizione un blocco di pipeline per l’integrazione con framework di terze parti: ad esempio per la realizzazione di videogiochi utilizzando Unity.

Cosa serve e dove trovarlo

Il punto di partenza per iniziare la scoperta del mondo Intel Perceptual è l’url http://software.intel.com/en-us/vcsource/tools/perceptual-computing-sdk.

Per il download dell’SDK: http://registrationcenter-download.intel.com/akdlm/irc_nas/3026/intel_pc_sdk_websetup_7383.exe

All’indirizzo http://software.intel.com/sites/landingpage/perceptual_computing/documentation/html/, infine, è disponibile un help on-line sull’intero SDK.

Molto utile è anche il forum, disponibile all’indirizzo http://software.intel.com/en-us/forums/intel-perceptual-computing-sdk

Installando l’SDK vengono installati anche una serie di esempi: quelli basati sul building block di base, scritti in C++, si trovano nella cartella:

C:\Program Files (x86)\Intel\PCSDK\sample

mentre quelli per I vari framework di terze parti (tra cui anche il framework .NET) si trovano nella cartella

C:\Program Files (x86)\Intel\PCSDK\framework

Per quanto riguarda esempi in codice managed, attualmente sono solamente 4.
Nei prossimi esempi cercheremo di capire come utilizzare l’SDK per scrivere le nostre app in VB.NET. 

For more complete information about compiler optimizations, see our Optimization Notice.