#CustomVision – Analizando imágenes con PostMan con un proyecto de #CustomVision en un #Docker Container

Buenas !

El post de hoy es uno simple, y que tengo que apuntar para el futuro:

Utilizar PostMan para realizar una petición HTTP POST para analizar una imagen con un proyecto de Custom Vision alojado en un Docker container.

En mis post anteriores escribí sobre como crear y exportar un proyecto en CustomVision.ai; y también sobre como ejecutar el mismo en un contenedor Docker,  y analizar una imagen desde una aplicación de Consola .NetCore.

En el post de hoy utilizare el mismo entorno, y analizare una imagen utilizando una de las herramientas mas populares entre los web developers: Postman.

Vamos a ello. Creamos una sesión en Postman y definimos la URL y el tipo POST de http request. Para enviar una imagen, debemos agregar un nuevo header para definir el Content-Type como image/jpg.

01 postman header image jpg

La imagen sera enviada en modo binary content en el body de la petición. Selecciono la imagen con la que realizare la prueba.

02 postman body raw file

Una vez realizada la petición, podemos ver el resultado en formato JSON, con las entidades detectadas y sus frames.

03 postman json results

Adicionalmente, podemos exportar esta sesión en código en diferentes lenguajes. Por ejemplo: C#, Java, Go o Python.

04 postman generate code

El código en python de ejemplo:

Happy coding!

Saludos @ Burlington

El Bruno

References

My Posts

Windows 10 and YOLOV2 for Object Detection Series

Advertisements

#CustomVision – Analyzing images using PostMan from a #CustomVision project hosted in a #Docker Container

Hi !

Today’s post is a simple one that I’ll use for sure in the future:

How to make an HTTP Post Request using Postman to analyze an image using a Custom Vision project hosted in a docker container.

In my previous posts I share the necessary steps to export a CustomVision.ai project and run the project in docker. I also show how to send images for analysis from a .NetCore Console App.

Today I’ll use another popular tool to perform the Http call to the docker container: Postman. This is one of the most popular tools in the web development world, and for sure is a good one if even myself knows how to use it!

So, once we have our session in Postman the container URL and POST are very straightforward. We are going to send an image, so we need to add a header with the Content-Type as image/jpg.

01 postman header image jpg

The image will be sent as binary content in the body. With 2 clicks we can select the file to use for testing.

02 postman body raw file

And finally, the result is an amazing JSON that we can analyze and see how our model performs

03 postman json results

And as a bonus, once we have a test defined in PostMan, we can easily export the test as code in different programming languages like C#, Java, Go or Python.

04 postman generate code

Here is a sample of the generated python code

Happy coding!

Greetings @ Toronto

El Bruno

References

My Posts

Windows 10 and YOLOV2 for Object Detection Series

#Flow – How to invoke a Flow from an external app using HTTP Request

Hello!

In addition to the Out-Of-The-Box triggers included in Flow, we also have the chance to invoke a flow using an HTTP POST call. There is a post on the Flow’s blog, “Calling Microsoft Flow from your application” (link), which explains this very weel. I’ll write some of the basic steps of a common scenario.

We need to start from a blank template, the first step we will add will be a trigger of type “Request / Response”.

clipboard01

This type of trigger allows us to define a JSON schema with the fields for our call. Then we can use it in the following step of the Flow. Using jsonschema.net, I will create a simple example with 2 fields: filename and filecontent.

clipboard03

Then we copy the generated schema in the request definition. In the next step, I will create a new file in OneDrive with part of the content of the Request. As we can see in the image below, Flow parser analyzes the schema and presents us with the possibility of using the filename and filecontent fields.

Clipboard04.jpg

Finally, we add a Response action to complete the flow call. Here we also use the dynamic properties to select Headers and Body. If we want return a custom Body, the dynamic properties can be used to create it.

clipboard06

When we save the Flow definition, in the trigger Request we will find the URL we well use to make the calls. This is the time of copying this URL.

clipboard29

Finally, to emulate calls will use a classic app: Google, Postman Chrome App. Using the URL and the schema JSON make a request and we can see the result of it.

clipboard32

And, if we are to OneDrive, we can see the file created with the content that we have used in the request.

clipboard34

This is a very simple way to create and invoke flows!

Greetings @ Toronto

El Bruno

References

#Flow – Cómo invocar un Flow desde una app externa via HTTP Request

Hola !

Una de las ventajas que posee Flow, es que además de los triggers que vienen Out-Of-The-Box, también tenemos la capacidad de invocar al mismo utilizando una llamada HTTP POST. En el blog de Flow, hay un post “Calling Microsoft Flow from your application” (link), donde se comenta cómo realizar esto de manera completa. Yo partiendo de ese escenario comentaré los pasos más importantes.

Partiendo de un template en blanco, el primer paso que agregaremos será un trigger de tipo “Request / Response”.

clipboard01

Este tipo de trigger nos permite definir un schema JSON con los campos para nuestra llamada. Luego podremos utilizar el mismo en los siguientes paso del Flow. Utilizando jsonschema.net, crearé un ejemplo simple con 2 campos: filename y filecontent.

clipboard03

El schema generado, es el que copiaré en la definición del request. En el siguiente paso crearé un nuevo archivo en OneDrive con parte del contenido del Request. Como podemos ver en la siguiente imagen, el parser de Flow analiza el schema y nos presenta la posibilidad de utilizar los campos filename y filecontent.

Clipboard04.jpg

Finalmente, añadimos una acción de tipo Response para completar la llamada.Aquí también utilizamos las dynamic properties para seleccionar Headers y Body. En el caso que querramos retornar un Body especial, podemos utilizar la dynamic properties para crear el mismo.

clipboard06

Cuando grabamos la definición de este Flow, el trigger Request, completará la url donde tendremos que realizar las llamadas. Este es el momento de copiar esta URL.

clipboard29

Finalmente para emular las llamadas utilizaremos una app clásica: Google, Postman Chrome App. Utilizando la URL y el schema JSON realizamos una petición y podemos ver el resultado de la misma.

clipboard32

Y, si vamos a OneDrive, podremos ver el archivo creado con el contenido que le hemos pasado en la petición.

clipboard34

La verdad es que es una forma muy simple de realizar pequeños flujos que luego podremos llamar de nuestras Apps.

Saludos @ Toronto

El Bruno

References