Face detection con Intel Perceptual Computing SDK

13 agosto 2013

Intel Perceptual Computing SDK è una libreria, realizzata da Intel, che fornisce agli sviluppatori una serie di strumenti per la realizzazione di interfacce naturali (Natural User Interface – NUI).

L’SDK è composto da una parte software (librerie, sample e documentazione) e da una parte hardware costituita dalla Creative Gesture Camera realizzata da Creative che fornisce funzionalità di rilevamento 3D e audio tridimensionale. In realtà molte delle funzionalità della libreria sono disponibili anche con le normali webcam.

Una caratteristica dell’SDK è quella di fornire delle implementazioni di base per i principali algoritmi di riconocimento facciale, di gesture e speech recognition ma di permettere anche la possibilità di utilizzare i propri algoritmi di riconoscimento.

Architettura

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

La parte sottostante le “SDK Interfaces” rappresenta l’implementazione dei differenti algoritmi di riconoscimento, dei moduli di I/O (ad esempio della scrittura su disco) e dei servizi a supporto di questi (ad esempio l’infrastruttura di caricamento dei moduli oppure la parte di interoperabilità con i driver).

Tutta questa parte è scritta in C/C++ ed è esposta verso lo sviluppatore attraverso uno strato di interfacce. L’utilizzo di interfacce, opportunamente istanziate dal framework di Intel, permette di sostituire le nostre implementazioni dei moduli di riconoscimento a quelle fornite di default da Intel.

Al di sopra dello strato di interfacce troviamo delle classi di utilità, sempre scritte in C/C++, e uno strato di porting (anche se sarebbe più corretto dire di proiezione) verso alcuni framework applicativi utilizzati comunemente nello sviluppo come .NET, Unity o openFramework.

Al top dello stack architetturale troviamo, infine, le nostre applicazioni (scritte in C/C++ o uno degli altri framework) e i samples forniti a corredo con l’SDK.

Entrando in dettaglio della parte relativa allo sviluppo vero e proprio utilizzando l’SDK, lo schema architetturale delle applicazioni è il seguente:

Lo strato inferiore è costituito da librerie scritte in C++ contenenti:

  • gli oggetti di base (identificati con Core Framework) in cui troviamo la sessione di riconoscimento, la classe immagine, l’audio e via dicendo;
  • l’implementazione fornita dal framework per gli algoritmi di riconoscimento (Gesture, Face Analysis di cui ci occuperemo in questo articolo, Voice Recognition, etc.);
  • moduli di I/O per la lettura/scrittura degli stream del framework (ad esempio lo stream delle immagini provenienti dalla webcam).

Le applicazioni scritte in C++ possono utilizzare direttamente questo strato oppure possono servirsi degli altri strati con più funzionalità aggregate e meno di basso livello, indicati con il nome di UtilCapture e UtilPipeline.

Il mondo managed (per i linguaggi VB.NET e C#) utilizza, invece, il porting denominato “C#/VB.NET Port” (libreria libpxcclr.dll che vedremo in seguito). All’interno di questo troviamo una serie di classi wrapper che ricalcano, più o meno fedelmente, le librerie disponibili per gli sviluppatori C++ (sono riconoscibili dalla presenza di una “M” dopo il prefisso PXC nel nome).

In questo articolo utilizzeremo proprio questo porting.

Installare l’SDK

Per iniziare possiamo scaricare il Perceptual Computing SDK. Nel momento in cui si sta scrivendo l’articolo è disponibile la versione 1.0.8779.0.

I requisiti hardware per poter utilizzare il framework sono:

  • Processori Intel Core di II, III o IV generazione;
  • Sistema operativo Windows 7 SP1 o Windows 8 desktop (32 e 64 bit);
  • Spazio di 1GB su hard disk.

Una volta scaricato l’installer (o utilizzato quello web), è sufficiente lanciarlo e seguire la procedura. Alla fine riavviamo il PC.

La Creative Gesture Camera

Prima di proseguire con esempi pratici di programmazione, vediamo quali sono le caratteristiche principali della Creative Gesture Camera:

  • una 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 (con risoluzione 320x240);
  • un “array” di due microfoni che consentono di localizzare la provenienza del suono per garantire prestazioni migliori di speech recognition.

Possiamo collegare la periferica al pc con una porta USB 2.0 e le sue dimensioni ci consentono di agganciarla alla parte superiore del display di un notebook o montarla con vite standard su un cavalletto fotografico. È piuttosto importante averla vicino al soggetto da riprendere: il range di utilizzo è compreso tra circa 15 centimetri e un metro.

Vediamo ora come iniziare il primo progetto con Visual Studio.

Se vuoi aggiornamenti su Face detection con Intel Perceptual Computing SDK inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Face detection con Intel Perceptual Computing SDK

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy