#WinML – Updated demo using Tiny YOLO V2 1.2, Windows 10 and YOLOV2 for Object Detection Series

Windows 10 and YOLOV2 for Object Detection Series


Hi!

There is a new Tiny YOLO V2 version in Azure AI Gallery

Tiny YOLOv2 1.2

I’ve updated my sample in GitHub to use this new version

https://github.com/elbruno/Blog/tree/master/20180806%20UwpMLNet%20TinyYoloV2%201.2

And it seems that Windows Insiders, are still having issues loading ONNXs models. My current build is 17730.1000

I1.png

Happy Coding!

Greetings @ Toronto

El Bruno

References

Advertisements

#WinML – Demo actualizada para utilizar Tiny YOLOv2 1.2, Windows 10 and YOLOV2 for Object Detection Series

Windows 10 and YOLOV2 for Object Detection Series


Buenas!

Ya tenemos disponible una nueva version de Tiny YOLO V2 en Azure AI Gallery

Tiny YOLOv2 1.2

Así que he actualizado el sample en GitHub para que utilice esta nueva version

https://github.com/elbruno/Blog/tree/master/20180806%20UwpMLNet%20TinyYoloV2%201.2

Y solo recordar que la carga de modelos ONNX parece que sigue sin funcionar en las versiones de Windows Insiders, en mi caso la build 17730.1000

I1.png

 

Happy Coding!

Saludos @ Toronto

El Bruno

References

#WinML – How to create a #Windows10 App and use #TinyYOLOV2 for object detection (the complete series)

Hi !

Windows 10 and TinyYOLOV2 for Object Detection Series

The complete example in GitHub

https://github.com/elbruno/Blog/tree/master/20180709%20UwpMLNet%20TinyYoloV3

Happy Coding!

Greetings @ Toronto

El Bruno

References

#Windows10 – A bit of Windows Subsystem For Linux, and some interesting IP addresses [1e100.net]

Hi!

These days I’ve been working in my home network. Now that we have many devices connected, I begin to see traces that are strange to me. Generally, it is usually something expected, like for example open ports by games of my children friends connected to my home network, however, the following scenario was funny for me.

Well, it all started when I saw in the traces a lot of activity with this data.

Destination URL or IP address: 173.194.193.188

Service or port number: 5228

 

I1.png

Usually, the next step is a command prompt and [nslookup] to view the host for this IP. However, now that Windows 10 allows us to use in Linux almost in native mode, I launched my Ubuntu instance and thanks to [Windows Subsystem For Linux] I was able to use the command [Dig], which is a very cool Linux tool. This is the perfect excuse to learn and use something new 😀

This is what I found: Traffic is performed in the domain 1e100.net

I2

This is at least curious. Like this That the following was to find out if there are any Apps That use that port and that domain. This is as simple as doing a Google search for https://www.google.com/search?q=ip%09173.194.193.188%09%09port+5228

I3

And here begins the interesting results. I leave it in item a item, where he was more and more surprised:

  • First of all, this port seems to be used a lot from Chrome in Apps Like Google Drive, Chrome Remote Desktop and other Google apps
  • Google Apps? It makes sense because the domain 1e100.net is owned by Google !!!

And this is where I dropped my face, after trying to explain why the domain name, I read the following

1e100 means 1 E 100. 1 * 10 ^ 100. The number, which is named Googol, where Google gets the name from !!!

Well, look, you got a new geek data to share with friends this weekend

Happy Coding!

Greetings @ Toronto

El Bruno

References

#Windows10 – Un poco de Windows Subsystem for Linux, y algunas IPs interesantes de conocer! [1e100.net]

Buenas!

Durante estos días he estado poniendo un poco de orden en la red interna de mi casa. Ahora que tenemos muchos Devices conectados, empiezo a ver trazas que me resultan extrañas. Por lo general, suele ser algo esperado, como por ejemplo puertos abiertos por juegos de amigos de mis niños que se conectan a la red, sin embargo, el siguiente escenario me llamo mucho la atención.

Todo comenzó cuando vi en las trazas bastante actividad con estos datos.

Destination URL or IP address: 173.194.193.188

Service or port number: 5228

 

I1

El siguiente paso es utilizar [nslookup] para ver el host de esta IP. Sin embargo, ahora que Windows 10 nos permite utilizar in Linux casi en modo nativo, pues lancé mi instancia de Ubuntu y gracias a [Windows Subsystem for Linux] pude utilizar el comando [dig], que es propio de Linux.

Esto es lo que me encontré: el tráfico se relaciona con el dominio 1e100.net

 

I2

Esto es por lo menos curioso. Así que lo siguiente fue averiguar si hay algunas apps registradas que utilicen ese puerto y ese dominio. Esto es tan simple como realizar una búsqueda en Google por https://www.google.com/search?q=ip%09173.194.193.188%09%09port+5228

I3

Y aquí comienza lo interesante. Lo dejo en Item a Item, donde cada vez estaba más sorprendido:

  • En primer lugar, este puerto parece que se utiliza mucho desde Chrome en apps como Google Drive, Chrome Remote Desktop y otras Apps de Google
  • Google Apps? Tiene sentido ya que el dominio 1e100.net es de Google

Y aquí fue donde se me cayó la cara, después de intentar explicarme el porque del nombre del dominio, leo lo siguiente

1e100 means 1 E 100. 1 * 10 ^ 100. The number, which is named Googol, where Google gets the name from !!!

Pues mira, ya tienes un dato friki para compartir con amigos

Happy Coding!

Saludos @ Toronto

El Bruno

References

#WinML – How to convert Tiny-YoloV3 model in CoreML format to Onnx and use it in a #Windows10 App

Windows 10 and YOLOV2 for Object Detection Series


Hi!

In today’s post I’ll share some experience on how to download the latest version of Tiny-YoloV3 and use it in the UWP App that I created in previous posts. Important, the Tiny-YoloV2  model I’ve used in previous posts was in Onnx format, and it was downloaded from Azure AI Gallery.

We can download Tiny-YoloV3 from the official site, however I will work with a version that is already compiled in CoreML format, CoreML format is usually used in iOS apps (see References).

Well, to convert the model of CoreML To Onnx, we will use Visual Studio Tools For Ai. And the next set of software

Once all the software is installed, we can follow the step by step of [Ai Converting Models To ONNX] to convert our model. However, the road is not as simple as it seems. The 1st thing we can find are errors like the following

01 thanks Python

Problems with Python, in my case had several versions of Python installed, but the IDE had no marked as [Default]. From the panel [Pythin Environments] You can fix this

01 1 Python environments

Next Problem I need some configuration on my part, it was related to Prerequisites for conversion. It all starts with [Missing Package WinMLTools]

—————————

Error

—————————

Missing package WinMLTools, please check details in output window.

—————————

OK  

—————————

 

Traceback (most recent call last):

  File “C:\Users\<Bruno>\AppData\Local\Microsoft\VisualStudio\15.0_e5344afb\Extensions\kzqekf1z.44v\RuntimeSDK\model\model_converter_cli.py”, line 76, in check_winmltools_installed

    import winmltools

ModuleNotFoundError: No module named ‘winmltools’

However After Of Investigate for a while, these are the 2 Packages I need to install

Microsoft ML Tool (winmltools)

pip3 install winmltools==0.1.0.5072

CoreML Tools

pip3 install “git+https://github.com/apple/coremltools@v0.8”

As always, 1st thing to do is update Python

03 upgrade pip.png

And now we can launch the conversion operation again

07 01 convert.png

And a few seconds later we already have our Tiny-YoloV3 in format Onnx

07 convert running

Because the model respects the Input/Output of the previous version, we only have to replace the file in our solution. I have added the new Onnx Just to have a little more control over the example.

08 Sol Onnx.png

As I have always updated the complete example in GitHub

https://github.com/elbruno/Blog/tree/master/20180709%20UwpMLNet%20TinyYoloV3

Happy Coding!

Greetings @ Toronto

El Bruno

References

#WinML – Tutorial para convertir YoloV3 de CoreML a Onnx para utilizarlo en una #Windows10 App

Crear una Windows 10 UWP App y utilizar YoloV2 para reconocer objetos


Buenas !

En el post de hoy comentare como descargar la última versión de Tiny-YoloV3 y utilizarla en la UWP App que cree en post anteriores. Solo como reminder, la versión que utilice era Tiny-YoloV2 que es la que esta disponible en formato Onnx para descargar desde Azure AI Gallery.

Podemos descargar Tiny-YoloV3 desde su página oficial, sin embargo yo trabajare con una versión que ya está compilada en formato CoreML, que el formato de ML que se suele utilizar en apps iOS (ver referencias).

Pues bien, para convertir el modelo de CoreML a Onnx, utilizaremos Visual Studio Tools for AI, y el siguiente conjunto de software

Una vez instalado todo el software, podemos seguir el paso a paso de [AI Converting models to ONNX] para convertir nuestro modelo. Sin embargo, el camino no es tan simple como parece. Lo 1ro que nos podemos encontrar son errores como el siguiente

01 thanks Python

Problemas con Python, en mi caso tenia varias versiones de Python instaladas, pero el IDE no tenia ninguna marcada como [Default]. Desde el panel [Pythin Environments] se puede solucionar esto

01 1 Python environments

El siguiente problema que necesito un poco de configuración de mi parte, estaba relacionado con prerequisitos para la conversión. Todo comienza con [Missing package WinMLTools]

—————————

Error

—————————

Missing package WinMLTools, please check details in output window.

—————————

OK  

—————————

 

Traceback (most recent call last):

  File “C:\Users\<Bruno>\AppData\Local\Microsoft\VisualStudio\15.0_e5344afb\Extensions\kzqekf1z.44v\RuntimeSDK\model\model_converter_cli.py”, line 76, in check_winmltools_installed

    import winmltools

ModuleNotFoundError: No module named ‘winmltools’

Sin embargo, despues de investigar un rato, estas son los 2 packages que necesito instalar

Microsoft ML Tool (winmltools)

pip3 install winmltools==0.1.0.5072

CoreML Tools

pip3 install “git+https://github.com/apple/coremltools@v0.8”

Claro, antes hay que actualizar Python

03 upgrade pip.png

Y ya podemos lanzar nuevamente la operación de conversión

07 01 convert.png

Y pocos segundos después ya tenemos nuestro Tiny-YoloV3 en formato Onnx

07 convert running

Como el modelo respeta el Input / Output de la versión anterior, solo debemos reemplazar el archivo en nuestra solución. Yo he agregado el nuevo Onnx solo para tener un poco mas de control sobre el ejemplo.

08 Sol Onnx.png

Como siempre he actualizado el ejemplo completo en GitHub

https://github.com/elbruno/Blog/tree/master/20180709%20UwpMLNet%20TinyYoloV3

 

Happy Coding!

Saludos @ Burlington

El Bruno

References

#WinML – Problems With ONNX and Machine Learning.Net in the latest versions of #Windows10 Insiders

Hi!

After writing a step by step on how to use YoloV2 in a Windows App 10, I find that in the latest versions of Windows Insider, WinML It’s not working properly.

Windows 10 and YOLOV2 for Object Detection Series

 

I’ve reported the problem here Https://aka.ms/AA1sy9u And in my particular case in my Device With the version [17711.1000] as something fails in the UWPs App that use ONNX.

01

On another machine with version [17134.1] and it works properly

Happy Coding!

Greetings @ Toronto

El Bruno

References

#WinML – Problemas con ONNX y Machine Learning.Net en las versions de #Windows10 Insiders

Buenas!

Después de escribir un paso a paso sobre como utilizar YoloV2 en una App Windows 10, me encuentro con que en las ultimas versiones de Windows Insider, WinML no funciona correctamente.

Crear una Windows 10 UWP App y utilizar YoloV2 para reconocer objetos

He reportado el problema aquí https://aka.ms/AA1sy9u y en mi caso particular en mi device con la versión [17711.1000] pues algo falla en las UWPs app que utilizan ONNX.

01.png

En otra máquina con versión [17134.1] funciona correctamente

Happy Coding!

Saludos @ Toronto

El Bruno

References

#WinML – How to create a #Windows10 App using #YOLO for object detection (4 of 4)

Windows 10 and YOLOV2 for Object Detection Series


Hi!

Let me start from my previous post where I already coded a a real-time video camera feed process using with Tiny-YoloV2. The model returns results in a 416×416 size image, and that’s why the detected frame with the person looks kind of weird.

01

It’s not complicated to work with the output so it can be adapted to the size of the Webcam control, only a couple of lines of code.

And in this way, we can draw the frames with the right format. In the following image it is possible to see how a person is detected, with a low precision score and as well as one of the pictures on the wall it is detected as a monitor.

02

From here, it’s all about optimization, for example, take the value of the webcam control only when the app is resized.

In the final example, I have also added a visual indicator as a status bar, which shows the number of frames processed per second and the real size of the elements in the App.

03

The full code for the example can be downloaded from

https://github.com/elbruno/Blog/tree/master/20180704%20UwpMLNet%20TinyYoloV2

Happy Coding!

Greetings @ Toronto

El Bruno

References