#Windows10 – Using #KinectV2 for authentication with #WindowsHello

Hello!

While I hope that fall into my hands a Surface Book or a Surface Pro 4, one of the new features that wanted to try was Windows Hello. Windows Hello, is part of a new set of libraries on Windows 10 [Windows.Devices.Perception]

Within this namespace we can find a series of UWP APIs that allow us to access information that we already know developing for Kinect as depth, infrared, color cameras, and metadata. With this information, we have a solid base to perform actions of Computer Vision and enable the identification process using faces, that is Windows Hello.

The new Microsoft Phone, 4 Surface and Surface Book, already includes the necessary hardware to work these features cone. There are also cameras certified Intel Real Sense F200, to access Windows Hello.

Clipboard01

Kinect V2 is not a certificated device (yet), but there are some tricks that we can use it as part of Windows Hello. For this we have to enable the distribution of test drivers for Windows 10. This is accomplished with an entry in the Windows registry:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DriverFlighting\Partner]”TargetRing”=”Drivers”

Clipboard01

If you are not used to working with the Windows registry, in the references section there is a link where they explain the step by step to create this entry.

Once enabled access to the drivers of partners, we need to update the Microsoft Kinect. Open the Device Manager (Windows + X, Device Manager) and update the drivers for the “Kinect Sensor Devices” section. Select “WDF KinectSensor Interface 0” and select “Update Driver Software…

Clipboard02

The update process will download the Kinect driver for Windows V2 version 2.1.1511.11000 (or may be higher in near updates updates).

Clipboard02

In the most usual Windows style, now is time to reboot.

The, to enable Windows Hello, we must now

  • Settings > Accounts
  • In Sign-In Options now we’ll se the Windows Hello option enabled

Clipboard02

With only 3 steps we can configure Window Hello to use our face

  • Welcome to Windows Hello

Clipboard01

  • Face Setup

Clipboard02

  • Done

Clipboard03

And now just leave it active to work always  😉

2015 12 07 Windows Hello

Greetings @ Madrid

-El Bruno

Referencias

#KINECTSDK – Speech recogntition now available in SDK V2 !!!

Hola !!!

Después de tanto pedirlo, por fin tenemos weekly builds del nuevo SDK de Kinect V2. Ahora lo interesante es que tenemos una pila de trabajo interesante en cada release para ver lo que tenemos dentro. Asi que hoy,un pequeño review de algo que ya existe en Kinect SDK V1.8 y que necesitábamos en V2: Speech Recognition.

La base es simple y seguro que lo conoces, crear un diccionario con palabras dentro del mismo. Lo interesante es que en la l’inea 18 hacemos la asociación del audio feed de Kinect con el speech grammar que se define en la línea 5

private void WindowLoaded(object sender, RoutedEventArgs e)
{
kinectSensor = KinectSensor.GetDefault();
kinectSensor.Open();
var audioBeamList = kinectSensor.AudioSource.AudioBeams;
var audioStream = audioBeamList[0].OpenInputStream();
convertStream = new KinectAudioStream(audioStream);
Var ri = GetKinectRecognizer();
recognitionSpans = new List<Span> { forwardSpan, backSpan, rightSpan, leftSpan };
speechEngine = new SpeechRecognitionEngine(ri.Id);
// Create a grammar definition …
speechEngine.SpeechRecognized += SpeechRecognized;
speechEngine.SpeechRecognitionRejected += SpeechRejected;
convertStream.SpeechActive = true;
speechEngine.SetInputToAudioStream(
convertStream, new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
speechEngine.RecognizeAsync(RecognizeMode.Multiple);
}
private static RecognizerInfo GetKinectRecognizer()
{
foreach (RecognizerInfo recognizer in SpeechRecognitionEngine.InstalledRecognizers())
{
string value;
recognizer.AdditionalInfo.TryGetValue("Kinect", out value);
if ("True".Equals(value, StringComparison.OrdinalIgnoreCase) && "en-US".Equals(recognizer.Culture.Name, StringComparison.OrdinalIgnoreCase))
{
return recognizer;
}
}
return null;
}

view raw
ElBrunoKW4V2Speech
hosted with ❤ by GitHub

Otro punto importante es la sección para obtener el KinectRecognizer al final. A ver si cuando llego a Madrid puedo hacer una dem and video cool sobre esto 😀

And as always, the disclaimer

“This is preliminary software and/or hardware and APIs are preliminary and subject to change“

Saludos @AVE

El Bruno

[#KINECTSDK] Error: Status = DeviceNotSupported, time to reinstall the SDK: S

Hello!

When you develop with Kinect, you have to be prepared to deal with strange things. If you also use a Kinect for XBox360, you can find that after be developing an app for days, suddenly you meet the next state of weirdness when your app starts to raise an unexpected status: DeviceNotSupported .

To validate this, you can launch Kinect Explorer app, and you can see the detail.

image

According to the official documentation, in the Debug buffer (Output Panel) should show the following message indicating that this type of State appears with a Kinect for Xbox 360, and that there is no problem on a development computer.

The Kinect plugged into your computer is for use on the Xbox 360.
You may continue using your Kinect for Xbox 360 on your computer for development purposes.
Microsoft does not guarantee full compatibility for Kinect for Windows applications and the Kinect for Xbox 360.

In my case, where I’m working with a development computer, I still find the problem. The first thing I thought is that when working without power, in battery mode, so it raises some weird usb ports configuration and lost recognition of the Kinect, but no this is not the problem. I connected power and the error was still there. The 2nd test was a classic, reboot; and the problem was still there.

Finally, the 3rd option is that solved me the problem: reinstall the SDK. I’m not sure why this option, but it works.

image

Saludos @ La Finca

El Bruno

image image image Google

[#KINECTSDK] Error: Status = DeviceNotSupported, ahora a reinstalar el SDK :S

Hola!

Cuando desarrollas con Kinect tienes que estar preparado para que te pasen cosas extrañas. Si además usas un Kinect for XBox 360, te puedes encontrar con que después de estar desarrollando una app durante días, de repente te encuentras con el siguiente estado cuando lanzas tu app: DeviceNotSupported.

Si para validar, lanzas la app Kinect Explorer, puedes ver el detalle.

image

Según la documentación oficial, en el buffer de Debug (Output Panel) debería aparecer el siguiente mensaje indicando que este tipo de estado aparece con un Kinect for Xbox 360, y que no hay problema en un ordenador de desarrollo.

The Kinect plugged into your computer is for use on the Xbox 360.
You may continue using your Kinect for Xbox 360 on your computer for development purposes.
Microsoft does not guarantee full compatibility for Kinect for Windows applications and the Kinect for Xbox 360.

En mi caso, donde estoy trabajando con un ordenador de desarrollo, sigo encontrando el problema. Lo primero que pensé es que al trabajar con la batería, se modifica alguna configuración de los puertos Usb y perdía el reconocimiento del Kinect, pero nada. Power conectado y el error seguía. La 2da prueba fué un clásico, reboot; y el problema seguía allí.

Finalmente, la 3ra opción es la que me solucionó el problema: Reinstalar el SDK. No estoy seguro del porqué de esta opción, pero funciona.

image

Saludos @ Home

El Bruno

image image image Google

[#EVENT] Now #Conding4Fun in #Gusenet

Hello!

So that’s it, after the premiere of a #Coding4Fun session a few days ago in the MVPOpenDay, now I take the devices to Torrejón and I’ll repeat the session with all my Gusenet friends. In the session, some contents will be similar, however I will add a big improvement: I’ll be on stage Valentino and Martina, they will help el Bruno during the session.

If you don’t know them, here are a couple of tests with Face Detection algorithms, about themselves. Now imagine this 2 faces, with a usb missile launcher, a Leap Motion and some more surprises … especially created for the GuseNet.

image

image

Registration: http://www.gusenet.org/

Saludos @ La Finca

El Bruno

image image image Google

[#KINECT] Material para comenzar a crear apps con #KinectSDK (algo es algo che!)

image

Buenas.

Ahora que estoy con el amigo Sergio comenzando (una vez más) un proyecto con Kinect, me toca darle un par de indicaciones para comenzar con Kinect. En realidad, el sitio de Kinect es un poco pobre al respecto, y justo veo un post del gran Greg Duncan apuntando al Kinect for Windows Dev Center.

image

Ojo! tampoco esperes encontrar material como en un MVA, pero algo es algo. Tienes las secciones de Start, Build y Discover que te muestran lo mismo. Repito, siempre se agradecen un par de videos de introducción y un par de ejemplos de código.

Nota: además los videos son los que me gustan a mi, no más de 10 minutos de duración y directos al grano, es decir al codigo fuente:

Friki Dato: has visto el fondo del Dev Center de Kinect? un show !!!

fuente: http://channel9.msdn.com/coding4fun/kinect/Kinect-for-Windows-Dev-Center

Saludos @ Home

El Bruno

image image image Google

[#KINECT] HowTo: Remove the background while preserving a body with the new #KinectSdkEnter a post title

image

Good,

in yesterday post I commented that one of the news in the Kinect SDK 1.8 is the ability to remove the background of an image of the kinect sensor preserving the person’s body (green screen).

To see how this new feature works, see example “Background Removal Basis-WPF” included in the Kinect SDK Developer Toolkit.

image

Once downloaded the source code for this example, we see that it uses 2 dlls external., compiled for x 86 and x 64. These dlls are created with C++ (also you can access the source code of them) and have a wrapper. net, which we see as a reference: Microsoft.Kinect.Toolkit.BackgroundRemoval

image

We see a bit the code needed to run this app. The first thing we must do is to declare a variable of typeBackgroundRemovedColorStream .

   1: /// <summary>
   2: /// Our core library which does background 
   3: /// </summary>
   4: private BackgroundRemovedColorStream backgroundRemovedColorStream;

Then, when it detects a Kinect sensor, it is time to change this variable. In this case, taking into account the values that has been initialized the camera and depth:

   1: this.backgroundRemovedColorStream = new BackgroundRemovedColorStream(args.NewSensor);
   2: this.backgroundRemovedColorStream.Enable(ColorFormat, DepthFormat);

Note:This parameter is a bit redundant, the sensor itself already has this information. Suggestion up for Kinect equipment.

We endorse us “change” event

   1: // Add an event handler to be called when the background removed color frame is ready, so that we can
   2: // composite the image and output to the app
   3: this.backgroundRemovedColorStream.BackgroundRemovedFrameReady += this.BackgroundRemovedFrameReadyHandler;

And ready. Now just need to revise the code of this handler for the event. The 1, that we see is that we fear an object of type BackgroundRemovedStream which can access (line 3). We can then work with the image that we want to use background with a couple of lines add the bodys detected by the sensor in front of the same Open-mouthed smile

   1: private void BackgroundRemovedFrameReadyHandler(object sender, BackgroundRemovedColorFrameReadyEventArgs e)
   2: {
   3:     using (var backgroundRemovedFrame = e.OpenBackgroundRemovedColorFrame())
   4:     {
   5:         if (backgroundRemovedFrame != null)
   6:         {
   7:             if (null == this.foregroundBitmap || this.foregroundBitmap.PixelWidth != backgroundRemovedFrame.Width 
   8:                 || this.foregroundBitmap.PixelHeight != backgroundRemovedFrame.Height)
   9:             {
  10:                 this.foregroundBitmap = new WriteableBitmap(backgroundRemovedFrame.Width, backgroundRemovedFrame.Height, 96.0, 96.0, PixelFormats.Bgra32, null);
  11:  
  12:                 // Set the image we display to point to the bitmap where we'll put the image data
  13:                 this.MaskedColor.Source = this.foregroundBitmap;
  14:             }
  15:  
  16:             // Write the pixel data into our bitmap
  17:             this.foregroundBitmap.WritePixels(
  18:                 new Int32Rect(0, 0, this.foregroundBitmap.PixelWidth, this.foregroundBitmap.PixelHeight),
  19:                 backgroundRemovedFrame.GetRawPixelData(),
  20:                 this.foregroundBitmap.PixelWidth * sizeof(int),
  21:                 0);
  22:         }
  23:     }
  24: }

Greetings @ La Finca

El Bruno

imageimageimageGoogle

[#KINECT] HowTo: Eliminar el fondo conservando un body con el nuevo #KinectSdk

image

Buenas,

en el post de ayer comenté que una de las novedades del Kinect SDK 1.8 es la capacidad de poder eliminar el fondo de la imagen que nos dá la cámara del sensor kinect preservando el cuerpo de una persona.

Para ver cómo funciona esta new feature, veamos el ejemplo “Background Removal Basis-WPF” incluido en el Kinect SDK Developer Toolkit.

image

Una vez descargado el código fuente de este ejemplo, vemos que el mismo utiliza 2 dlls externas., compiladas para x86 y x64. Estas dlls están creadas con C++ (también se puede acceder al source code de las mismas) y poseen un wrapper .net, que podemos ver como una referencia: Microsoft.Kinect.Toolkit.BackgroundRemoval

image

Veamos un poco el código necesario para hacer funcionar esta app. Lo primero que debemos hacer es declarar una variable de tipo BackgroundRemovedColorStream.

   1: /// <summary>

   2: /// Our core library which does background 

   3: /// </summary>

   4: private BackgroundRemovedColorStream backgroundRemovedColorStream;

Luego, cuando se detecta un sensor Kinect, es momento de incializar esta variable. En este caso, teniendo en cuenta los valores con los que se han inicializado la camara y en sensor de profundidad:

   1: this.backgroundRemovedColorStream = new BackgroundRemovedColorStream(args.NewSensor);

   2: this.backgroundRemovedColorStream.Enable(ColorFormat, DepthFormat);

Nota: Este paso de parámetros es un poco redundantes, el propio sensor ya posee esta información. Sugerencia subida para el equipo de Kinect.

Nos suscribimos al evento de “cambio de fondo”

   1: // Add an event handler to be called when the background removed color frame is ready, so that we can

   2: // composite the image and output to the app

   3: this.backgroundRemovedColorStream.BackgroundRemovedFrameReady += this.BackgroundRemovedFrameReadyHandler;

Y listo. Ahora solo queda revisar el código de este manejador para el evento. Lo 1ro que vemos es que tememos un objeto del tipo BackgroundRemovedStream al que podemos acceder (línea 3). A continuación podemos trabajar con la imagen que queremos utilizar de fondo con un par de líneas agregar delante de la misma los bodys que ha detectado el sensor Open-mouthed smile

   1: private void BackgroundRemovedFrameReadyHandler(object sender, BackgroundRemovedColorFrameReadyEventArgs e)

   2: {

   3:     using (var backgroundRemovedFrame = e.OpenBackgroundRemovedColorFrame())

   4:     {

   5:         if (backgroundRemovedFrame != null)

   6:         {

   7:             if (null == this.foregroundBitmap || this.foregroundBitmap.PixelWidth != backgroundRemovedFrame.Width 

   8:                 || this.foregroundBitmap.PixelHeight != backgroundRemovedFrame.Height)

   9:             {

  10:                 this.foregroundBitmap = new WriteableBitmap(backgroundRemovedFrame.Width, backgroundRemovedFrame.Height, 96.0, 96.0, PixelFormats.Bgra32, null);

  11:  

  12:                 // Set the image we display to point to the bitmap where we'll put the image data

  13:                 this.MaskedColor.Source = this.foregroundBitmap;

  14:             }

  15:  

  16:             // Write the pixel data into our bitmap

  17:             this.foregroundBitmap.WritePixels(

  18:                 new Int32Rect(0, 0, this.foregroundBitmap.PixelWidth, this.foregroundBitmap.PixelHeight),

  19:                 backgroundRemovedFrame.GetRawPixelData(),

  20:                 this.foregroundBitmap.PixelWidth * sizeof(int),

  21:                 0);

  22:         }

  23:     }

  24: }

 

Saludos @ Home

El Bruno

image image image Google

[#KINECT] #KinectSdk Version 1.8 Released!

image

Hello

yesterday was released the Kinect for Windows SDK version 1.8. You can download this package from the Developer download Center of Kinect. Even is not a major release, there are some things that are quite interesting in this update:

Improvements in Kinect fusion

The previous version already included Kinect Fusion, which basically allowed us to create 3D models using a Kinect sensor (my 3D head is an example of this!). In this version this feature has been improved a lot, the libraries that do this job as well as a couple of very good examples.

They’ve also added an example to create 3D models with Kinect Fusion with multiple Kinect sensors. This I have to take a look because he had no new and it is really important when you work with these technologies.

Green Screen = Background Removal

Create an application that displays only the image that takes a person kinect camera and put a custom background, something that was not very difficult with Kinect (I put an example here). In version 1.8, have left this example only with 2 lines of code… Thanks much! Now called Background Removal

Example HTML

As I said, an little and simple sample, very simple sample to work from HTML5 apps with Kinect. I say simple because what did the friend OMAR Dale is much much more better … Open-mouthed smile

Example of customizable UI

Another simple example, but that helps us to see the capabilities of Kinect. In this case an application that depending on the distance detected a user displays an element and another…

Source: http://blogs.msdn.com/b/kinectforwindows/archive/2013/09/16/updated-sdk-with-html5-kinect-fusion-improvements-and-more.aspx

Greetings @ La Finca

El Bruno

imageimageimageGoogle

[#KINECT] #KinectSdk Version 1.8 Released !!!

image

Hola,

ayer se liberó la versión 1.8 del Kinect for Windows SDK. El mismo se puede descargar desde el centro de desarrollo de Kinect. Si bien no es un major release, en este mini update hay algunas cosas que son bastante interesantes:

Mejoras en Kinect fusion

La versión anterior ya incluía Kinect Fusion, que básicamente nos permitía crear escenarios 3D utilizando un sensor Kinect (my 3D head es un ejemplo de esto!). En esta versión se ha mejorado … muchísimo las libraries que hacen este trabajo además de incluir un par de ejemplos muy buenos.

Además han agregado un ejemplo para crear escenarios de Kinect Fusion con varios sensores Kinect. A esto tengo que darle un vistazo porque no lo tenía entre las novedades y es realmente muy importante cuando trabajas con estas tecnologías.

Green Screen = Background Removal

Crear una aplicación que muestre solo la imagen que toma la camara de kinect de una persona y le ponga un fondo custom, es algo que no era muy dificil con Kinect (yo puse un ejemplo aquí). En la versión 1.8, han dejado este ejemplo solo con 2 líneas de código … se agradece y mucho! Ahora se llama Background Removal

Ejemplo HTML

Pues lo dicho, un ejemplito simple, muy simple para trabajar desde apps HTML5 con Kinect. Digo simple porque lo que hizo el amigo OMAR le da mil vueltas … Open-mouthed smile

Ejemplo de UI adaptable

Otro ejemplo simple, pero que nos sirve para ver las capacidades de Kinect. En este caso una aplicación que dependiendo de la distancia detectada a un usuario, muestra un elemento y otro …

 

Fuente: http://blogs.msdn.com/b/kinectforwindows/archive/2013/09/16/updated-sdk-with-html5-kinect-fusion-improvements-and-more.aspx

Saludos @ Home

El Bruno

image image image Google