DEV Community

Daniel Gomez
Daniel Gomez

Posted on

Detección de objetos con Azure Custom Vision

La detección de objetos en imágenes nos permite conocer las coordenadas de uno o múltiples objetos (o etiquetas) previamente establecidas.

En este tutorial aprenderemos a crear un modelo de visión por computador con el recurso Custom Vision de Azure, para el reconocimiento de objetos (Botellas, Rostros, Guitarras, y Sombreros) en imágenes.

Aspectos importantes:

Para personalizar nuestro modelo, este será el proceso de deberemos tener en cuenta:

Acceso a Custom Vision: https://www.customvision.ai/

Dataset de imágenes de ejemplo: URL

Proceso previo: Crear un proyecto de Custom Vision.

En primera instancia, necesitaremos iniciar sesión en el portal Low-Code de Custom Vision con las credenciales de nuestra cuenta de Azure, y crear un nuevo proyecto de tipo Object Detection.

Nota: Necesitaremos un recurso Azure Custom Vision. Este recurso lo podemos crear desde el portal de Azure, o desde este asistente de configuración directamente.

Paso 1: Cargar Imágenes

Como primer paso, lo primero que haremos será cargar las imágenes (de preferencia en orden, según los objetos que vayamos a etiquetar para la detección de objetos).

Al seleccionar la opción Add Images, podremos seleccionar las imágenes que deseemos cargar. En este ejemplo cargaremos las imágenes para etiquetar imágenes con sombreros:

Una vez finalizada la carga de imágenes, podremos ver algo como esto:

Ahora, con cada una de las imágenes cargadas, deberemos abrir cada imagen, y seleccionar el área donde se encuentra el objeto que deseamos etiquetar.

Select object in the image

Nota: en una imagen podemos seleccionar una o varias áreas para etiquetar varios objetos.

Image areas

Para poder finalizar este proceso de etiquetado de imágenes, es importante que hayamos etiquetado mínimo 15 imágenes por cada categoría. Para nuestro ejemplo, este es el número de imágenes que hemos utilizado en cada etiqueta: Botella - 18, Rostro - 26, Guitarra - 18, y Sombrero - 19.

Paso 2. Entrenar el modelo

Ahora que ya tenemos lo más importante (como en cualquier otro modelo de Machine Learning) – los datos, ahora podemos hacer el entrenamiento desde esta opción:

Train option

Aquí Podemos considerar dos tipos de entrenamiento:

Por un lado, podemos realizar el entrenamiento en el menor tiempo posible según el número de imágenes que se hayan cargado y el número de etiquetas que tengamos; y por otro lado podemos hacer un entrenamiento avanzado, en el cual podremos encontrar el mejor modelo posible, considerando un máximo de tiempo que nosotros podemos especificar:

Cuando el entrenamiento haya finalizado, podremos evaluar el modelo.

Paso 3. Evaluar el modelo

En este paso, en la sección de Performance, podremos analizar el modelo con tres métricas: Precisión, Recall, y _mAP _(Mean Average Precision).

General performance

Performance per object

De manera general, estas métricas nos sirven para analizar lo siguiente:

Precisión: indica la fracción de imágenes identificadas que eran correctas. Por ejemplo, si el modelo identificara 100 imágenes como sombreros y 99 de ellas fueran realmente sombreros, la precisión sería del 99 %.

Recall: indica la fracción de clasificaciones reales que se identificaron correctamente. Por ejemplo, si en realidad hubiera 100 imágenes con sombreros y el modelo identificara 80 como sombreros, el recall sería del 80 %.

mAP: es el valor medio de la precisión media (AP). AP es el área bajo la curva de precisión/recuperación (precisión trazada frente a la recuperación para cada predicción realizada).

Prueba rápida:

Con nuestro modelo de Azure Custom Vision listo, desde la opción Quick Test podremos realizar un ejemplo rápido:

Quick Test option

Aquí podremos subir una imagen desde nuestro computador, o utilizar el enlace de una imagen en línea. Asimismo, podremos establecer el umbral de probabilidad, es decir, mostrar todos los objetos detectados que tengan una probabilidad mayor a la que nosotros especifiquemos.

Ejemplo: en la imagen previa podemos ver que existe un 99.8% de probabilidad de que en el área especificada se encuentre una Guitarra.

Plus: Publicar el modelo.

Ahora que ya tenemos un modelo de Custom Vision establecido, ahora podemos publicarlo desde la sección de Performance, y seleccionar una iteración/entrenamiento.

Para publicar el modelo, deberemos especificar un nombre, y el recurso de Custom Vision en Azure que nos permita hacer evaluaciones:

Al publicar el modelo, podremos utilizar este recurso a manera de web API:

También pudiéramos exportar el modelo considerando TensorFlow, CoreML, Docker container, entre otros.

Aquí podemos aprender más al respecto: Exportación del modelo para su uso con dispositivos móviles.

¡Gracias por leer!

Espero que te haya gustado el artículo. Si tienes alguna pregunta o idea en mente, será un gusto poder estar en comunicación e intercambiar conocimientos entre sí.

Nos vemos en Twitter / esDanielGomez.com!

Top comments (0)