#WindowsML – Ya se puede crear apps con AI nativo en #Hololens #Windows10

 

Buenas!

Hace un par de semanas comente que la nueva capacidad en Windows 10 de poder utilizar modelos de ML de forma nativa en W10 Apps significaría un gran avance en todo el ecosistema de Devices de Windows 10. Como ya sabemos que la nueva version de Hololens incorporar un chip especialmente dedicado a tareas de AI (DNN específicamente), pues era de suponer que en Hololens V2 podríamos comenzar a utilizar Windows ML.

Lo que no esperaba es que en la version Preview de Windows 10 RS4 para Hololens ya tuviésemos acceso a esa capacidad. No he tenido tiempo de dedicarle a mis Hololens para actualizarlas a RS4, sin embargo, grandes referencias han compartido experiencias más que interesantes.

Por ejemplo, veamos este video de Rene Schulte, donde muestra una App que en tiempo real realiza una clasificación de imágenes utilizando el modelo ONNX SqueezeNet

Mike Taulty también ofrece una serie de posts donde realiza un trabajo excelente al respecto. En primer lugar, comenta como crear un modelo utilizando Azure Custom Vision, exportar el mismo a CoreML y luego crear un modelo ONNX.

Importante: actualmente ONNX es el tipo de modelos soportados por Windows ML. Es posible exportar modelos de CoreML, TensorFlow, CNTK y otros frameworks a ONNX.

A partir de aquí, Mike comenta como trabajar con UWP y C# con el modelo exportado. En siguientes posts, Mike también explica cómo, gracias a Hololens RS4 Preview, también se pueden utilizar estas capacidades en aplicaciones para Hololens (ver referencias)

Pues bien, si te animas a poner una version Preview en Hololens, es un momento muy interesante para comenzar a pensar en escenarios donde combinar WinML y Hololens!

Happy Coding!

Saludos @ Toronto

El Bruno

References

Advertisements

#Event – Materials used in the event [Introduction to Microsoft AI] with a bit of #WinML

Hi!

As always, it’s a pleasure to talk about Microsoft’s Artificial Intelligence platform. We had full house, and also the visit of Valentino and Martina.

On this occasion there were many attendees with a profile of Data Scientist, so the questions were more than interesting. The support and collaboration of Asmita were fundamental to answer all the questions about Azure Machine Learning, CNTK, Windows Machine Learning and other topics.

Now the classics, slides

GitHub source code link

Happy Coding!

Greetings @ Toronto

El Bruno

#Event – Materiales utilizados en el evento [Introducción a Microsoft AI] con un poco de #WinML

Buenas!

Como siempre ha un placer hablar sobre la plataforma de Inteligencia Artificial de Microsoft. Tuvimos full house, y ademas la visita de Valentino y Martina.

En esta ocasión hubo muchos asistentes con un perfil de Data Scientist con lo que las preguntas fueron mas que interesantes. El soporte y la colaboración de Asmita fueron fundamentales para poder responder todas las preguntas sobre Azure Machine Learning, CNTK, Windows Machine Learning y otros temas.

Ahora los clásicos, slides

Y source code en GitHub link

Happy Coding!

Saludos @ Toronto

El Bruno

#WinML – #GamingML created for #Windows10 gamers (#Unity3D and #Hololens V2 included!)

Hi!

First of all, I’ll start by saying that I finally found a hashtag for Windows Machine Learning posts: [#WinML]. A small summary of WindowsML (actually from the part that interests me)

The WinML API allows us (Windows 10 developers) to use Machine Learning trained models and make inferences with them on a wide variety of hardware (CPU, GPU, VPU). An ML programmer may choose a Framework, such as CNTK, Caffe2 or Tensorflow, and with it he could build and train a ML model.

That model would then be converted to the Open Neural Network Exchange (ONNX) a format co-developed between Microsoft, Facebook and Amazon. As of this moment, a Windows 10 application can use this ML model internally as part of the App.

This in itself is great, however, there is a new layer more specifically created for games: DirectML. DirectML is built on top of pf Direct3D and represents a special layer for Gaming scenarios that provides Hardware Acceleration GPU for WindowsML operations.

In the references I left the article where all the technical details of DirectML are covered.

WinMLArchitecture

Another interesting point of the news is the announcement of support for Unity ML-Agents. Native WindowsML / DirectML integration will be available for Windows 10 games created with Unity 3D.

Personally, I did not know the Unity Machine Learning Agents. After reading a bit about them, it is clear to me that in the near future, the games and Apps created with Unity3D will be completely different from what we know today.

Bonus

 

It’s time to start connecting dots and entering the area of ​​speculation. A while ago it became public that the new version of Hololens will have a new chip specifically dedicated to operations of [Deep Neural Networks] (see references). From a generic point of view, Hololens is just another type of Windows 10 device.

If we assume that Hololens V2 uses a version of Windows 10 that supports out of the box the capabilities of Windows ML, we already have a Mixed Reality Headset with impressive capabilities where Apps can use ML natively (the chip is already there!).

From the point of view of a C # developer, this is great!

Happy Coding!

Greetings @ Burlington

El Bruno

References

 

#WinML – #GamingML ideal para los Gamers en #Windows10 (#Unity3D y #Hololens V2 included!)

Buenas!

En primer lugar, comenzare diciendo que por fin encontré un hashtag para los posts sobre Windows Machine Learning: [#WinML]. Un pequeño resumen de WindowsML (en realidad de la parte que me interesa a mi)

La API WinML nos permite utilizar modelos entrenados de Machine Learning y realizar inferencias sobre la amplia variedad de hardware (CPU, GPU, VPU). Un ML Expert elegiría un Framework, como CNTK, Caffe2 o Tensorflow, y con el mismo podría construir y entrenar un modelo de ML.

Ese modelo luego se convertiría al formato de Open Neural Network Exchange (ONNX), co-desarrollado entre Microsoft, Facebook y Amazon. A partir de este momento, una aplicación Windows 10 puede utilizar internamente este modelo de ML como una parte más de la App.

Esto de por si es grandioso, sin embargo, hay una nueva capa más específicamente creada para los juegos: DirectML. DirectML está construido sobre Direct3D y representa una capa especial para escenarios de Gaming que provee GPU Hardware Acceleration para las operaciones de WindowsML.

En las referencias he dejado el articulo donde se cubren todos los detalles técnicos de DirectML.

WinMLArchitecture

Otro punto interesante de la noticia es el anuncio del soporte para Unity ML-Agents. La integración nativa de WindowsML / DirectML estará disponible para los juegos para Windows 10 creados con Unity 3D.

En lo personal, yo no conocía los Unity Machine Learning Agents. Despues de leer un poco sobre los mismos, me queda claro que en un futuro cercano, los juegos y Apps creados con Unity3D serán completamente diferente a lo que conocemos hoy.

Bonus

Es momento de comenzar a atar cabos y entrar en la zona de especulaciones. Hace un tiempo se hizo publico que la nueva version de Hololens tendrá un nuevo chip específicamente dedicado a operaciones de [Deep Neural Networks]. Desde un punto de vista genérico, Hololens otro tipo de dispositivo Windows 10.

Si asumimos que Hololens V2 utilizara una version de Windows 10 que soporte out of the box las capacidades de Windows ML, pues ya tenemos un Mixed Reality Headset con capacidades impresionantes donde las Apps pueden utilizar ML de forma nativa.

¡Desde el punto de vista de un C# developer, esto es grandioso!

Happy Coding!

Saludos @ Burlington

El Bruno

References

 

#MachineLearning – Windows ML Hello World or how to create and UWP App which use a local ONNX model

Hi!

Following the series of Windows Machine Learning posts, today I will review a bit one of the sample apps that we can find among the examples of Windows Universal Samples in GitHub.

Let’s start with one of the most interesting [SqueezeNet Object Detection Sample].

This sample uses a model called SqueezeNet that allows you to identify the predominant object in an image. The SqueezeNet model is trained to recognize more than 1000 objects and the truth is that it works quite well. For example, let’s see what values ​​return using my keyboard and a cup.

0102

Fairly good. However, in front of a bad picture of Venom, the result is not so good.

03

Well, time to analyze the code a bit. The first thing we have to keep in mind is that we need to use a version of Windows 10 equal to or higher than 17110. Currently this means being part of the Windows Insiders program.

I4

I’m working with this version: 17120.1

I5

To use the SqueezeNet model, our UWP app uses 2 files

  • Labels.json. It contains a list with all the labels (objects) registered in the model
  • SqueezeNet.onnx. ML model

The UWP App uses the new API [Windows.AI.MachineLearning.Preview] to load the ONNX model, then links an input image and processes the output of the evaluation to determine the labels found.

In the next post I will analyze the C # code of the App a bit because I was surprised at how simple the operation is. Here goes as a gift

Happy Coding!

Greetings @ Burlington

El Bruno

References

#MachineLearning – Hello World en ML o como crear una UWP App que utilice un modelo #ONNX local

Buenas!

Siguiendo la serie de posts de Windows Machine Learning, hoy voy a repasar un poco una de las apps de ejemplo que podemos encontrar entre los ejemplos de GitHub de Windows Universal Samples.

Comencemos por uno de los mas interesantes [SqueezeNet Object Detection Sample].

Este ejemplo utiliza un modelo llamado SqueezeNet que permite identificar el objeto predominante en una imagen. El modelo de SqueezeNet esta entrenado para reconocer mas de 1000 objetos y la verdad es que funciona bastante bien. Por ejemplo, veamos que valores retorna utilizando mi teclado y una taza.

0102

Bastante bien. Sin embargo, frente a una mala foto de Venom, el resultado no es tan bueno.

03

Pues bien, momento de analizar un poco el código. Lo 1ro que tenemos que tener en cuenta es que necesitamos utilizar una version de Windows 10 igual o superior a 17110. Actualmente esto significa ser parte del programa de Windows Insiders.

I4

En mi caso la version que tengo actualmente es 17120.1

I5

Para utilizar el modelo SqueezeNet, nuestra UWP app se sirve de 2 archivos

  • Labels.json. Contiene una lista con todos los labels (objetos) registrados en el modelo
  • SqueezeNet.onnx. Es el modelo de ML propiamente dicho

El funcionamiento de la app aprovecha la nueva API [Windows.AI.MachineLearning.Preview] para cargar el modelo ONNX, luego enlaza una imagen de entrada y procesa la salida de la evaluación para determinar los labels encontrados.

En el próximo post analizare un poco el código C# de la app porque me he quedado sorprendido de lo simple que es el funcionamiento. Aquí va de regalo

Happy Coding!

Saludos @ Burlington

El Bruno

References

#Event – Mixed Reality Workshop

giphy

Hi !

Next March 17 I will be part of the team in the Mixed Reality Workshop. It is a full day of sessions to help understand how to create Mixed Reality Apps with Windows 10, Unity 2017.2 and Visual Studio 2017. The agenda is as follows

  • Intro to Windows Mixed Reality
  • Building a mixed reality experience
  • Placing a virtual object in a 3D space
  • Interacting with virtual objects
  • Handling user movement in a 3D space
  • Deploying and building a custom 3D launcher
  • Q&A/Wrap-up/Where to go from here

Happy Coding!

Greetings @ Toronto

El Bruno

References

#Event – Mixed Reality Workshop

giphy

Buenas!

Pues que el próximo 17 de Marzo seré parte del equipo en el Workshop de Mixed Reality. Es un dia completo de sesiones para ayudar a comprender como crear Mixed Reality Apps con Windows 10, Unity 2017.2 y Visual Studio 2017. La agenda es la siguiente

  • Intro to Windows Mixed Reality
  • Building a mixed reality experience
  • Placing a virtual object in a 3D space
  • Interacting with virtual objects
  • Handling user movement in a 3D space
  • Deploying and building a custom 3D launcher
  • Q&A/Wrap-up/Where to go from here

Happy Coding!

Saludos @ Toronto

El Bruno

References

#VS2017 – Disable PerfWatson2 to improve Visual Studio performance from the Visual Studio Experience Improvement Program (What?)

Hi !

Next month, this post will be a 7 years old post

[VS2010] 5 tips to improve your IDEs performance

And the truth is that, with the exception of the WinForms option, the other options are still valid. Visual Studio is still an excellent IDE, if you can live with a high RAM usage and warm processor.

Well, thanks to a tweet from RFog referring to a tweet from Enrique Blanco

I learn that to kill the 2nd PerfWatson2.exe instance, which is usually associated with the IDE, you have to unsubscribe from the Visual Studio Experience Program (yes, you have not misread that)

In the StackOverflow post they explain it perfectly

  • From the help menu, select Send Feedback > Settings.
  • In the Visual Studio Experience Improvement Program dialog, select No, I would not like to participate.

I have been a little flipping with this option, although I see the good side: my demos with my crappy surface pro 4 will be much more fluid!

Greetings @ Burlington

El Bruno

References