Prediciendo con un modelo ONNX de Custom Vision usando ML.NET
Índice de Contenido:
- Introducción
- Exportación del modelo
- Configuración del proyecto en Visual Studio
- Descarga de dependencias de ML.NET
- Construcción del pipeline de ML.NET
- Uso de la herramienta Neutron para obtener información del modelo
- Predicción de imágenes de prueba
- Generación de cajas delimitadoras y etiquetas
- Guardado de imágenes de prueba con las predicciones
- Conclusiones
Exportación del modelo
Para poder utilizar nuestro modelo personalizado de visión artificial en ML.NET, primero debemos exportarlo desde el servicio Microsoft Custom Vision. Para esto, ingresamos a la pestaña "Rendimiento" y luego seleccionamos la opción de exportar. Tenemos diferentes tipos de archivos para exportar, pero en este caso utilizaremos el archivo ONYX. Una vez descargado este archivo, lo colocamos junto con el archivo de etiquetas en la carpeta del modelo en nuestro proyecto. Estos archivos serán necesarios para realizar las predicciones.
Configuración del proyecto en Visual Studio
En Visual Studio, configuramos nuestro proyecto de ML.NET creando una estructura de carpetas que contendrá el archivo del modelo y las imágenes de prueba. Además, añadimos una clase llamada "BoundingBox" que nos ayudará a calcular las coordenadas y dimensiones de las cajas delimitadoras en las imágenes.
Descarga de dependencias de ML.NET
Para poder utilizar ML.NET y realizar las predicciones, debemos descargar las dependencias necesarias. Utilizaremos la versión 1.4 de ML.NET, así como los paquetes de ImageAnalytics y OnyxTransformer. Estos paquetes nos proporcionarán las funcionalidades necesarias para trabajar con imágenes y transformar el modelo ONYX en un formato compatible con ML.NET.
Construcción del pipeline de ML.NET
El pipeline de ML.NET es la parte fundamental de nuestro código, ya que define las transformaciones y pasos que se realizarán en las imágenes antes de pasarlas por el modelo de visión artificial. Primero, realizamos una transformación para redimensionar las imágenes. Luego, extraemos los píxeles de las imágenes y, por último, aplicamos el modelo ONYX a las imágenes transformadas.
Uso de la herramienta Neutron
La herramienta Neutron es una aplicación de escritorio que nos permite obtener información sobre nuestro modelo de visión artificial. Para obtener esta herramienta, accedemos al repositorio de GitHub y descargamos la versión correspondiente a nuestro sistema operativo. Una vez ejecutada la aplicación, abrimos nuestro modelo y podemos ver sus propiedades, incluyendo las entradas y salidas del modelo. Necesitaremos el nombre de la salida del modelo para utilizarlo en nuestro código de ML.NET.
Predicción de imágenes de prueba
Para probar nuestro modelo, necesitamos tener imágenes de prueba. Creamos una variable que contenga los nombres de las imágenes de prueba y, luego, iteramos sobre cada una de ellas. Para cada imagen, creamos una instancia de la clase Bitmap y la utilizamos como entrada para nuestra predicción. Utilizamos los métodos proporcionados por la clase BoundingBox para obtener las coordenadas y dimensiones de las cajas delimitadoras en la imagen.
Generación de cajas delimitadoras y etiquetas
Utilizando los resultados de nuestro modelo, generamos las cajas delimitadoras y etiquetas que indican la ubicación y la clase de los objetos detectados en las imágenes. Utilizamos los archivos de etiquetas para obtener los nombres de las clases. Si se detecta al menos una caja delimitadora, seleccionamos la de mayor confianza y la agregamos a la imagen. Finalmente, guardamos las imágenes con las predicciones en el sistema de archivos.
Conclusiones
En este artículo, hemos explorado cómo utilizar un modelo personalizado de Microsoft Custom Vision en ML.NET. Aprendimos a exportar el modelo, configurar el proyecto en Visual Studio, descargar las dependencias de ML.NET, construir el pipeline, utilizar la herramienta Neutron para obtener información del modelo, realizar predicciones en imágenes de prueba y generar cajas delimitadoras y etiquetas. Con esta información, puedes comenzar a utilizar tus propios modelos de visión artificial en tus proyectos con ML.NET. ¡Esperamos que esta guía te haya sido útil!
Destacados:
- Exporta tu modelo de Microsoft Custom Vision en ONYX para utilizarlo en ML.NET.
- Configura tu proyecto en Visual Studio y descarga las dependencias necesarias.
- Construye el pipeline de ML.NET para procesar las imágenes antes de pasarlas por el modelo.
- Utiliza la herramienta Neutron para obtener información sobre tu modelo.
- Realiza predicciones en imágenes de prueba y Genera cajas delimitadoras y etiquetas.
- Guarda las imágenes con las predicciones en el sistema de archivos.
Preguntas frecuentes:
¿Cómo exporto mi modelo desde Microsoft Custom Vision?
Para exportar tu modelo desde Microsoft Custom Vision, accede a la pestaña "Rendimiento" y selecciona la opción de exportar. A continuación, elige el formato de archivo que necesitas, como ONYX, y haz clic en descargar.
¿Qué es ML.NET?
ML.NET es un framework de aprendizaje automático de código abierto desarrollado por Microsoft. Permite a los desarrolladores integrar funcionalidades de aprendizaje automático en sus aplicaciones de .NET.
¿Cómo puedo obtener las coordenadas de las cajas delimitadoras en una imagen?
Puedes utilizar la clase BoundingBox proporcionada en este artículo para calcular las coordenadas de las cajas delimitadoras en una imagen. Esta clase incluye métodos para obtener la posición, ancho y alto de las cajas delimitadoras.
¿Cuál es la función de la herramienta Neutron?
La herramienta Neutron es una aplicación de escritorio que te permite obtener información sobre tu modelo de visión artificial exportado desde Microsoft Custom Vision. Puedes utilizarla para ver las propiedades del modelo, incluyendo las entradas y salidas.
¿Qué son las etiquetas en un modelo de visión artificial?
Las etiquetas en un modelo de visión artificial son los nombres de las clases o categorías que el modelo puede detectar en las imágenes. Por ejemplo, en un modelo de detección de objetos, las etiquetas pueden ser "perro", "gato", "coche", etc.
Recursos: