Clasificación de imágenes con Custom Vision y Windows Machine Learning

Image classification flow

En esta guía se muestra cómo entrenar un modelo de red neuronal para clasificar imágenes de alimentos con el servicio Azure Custom Vision, exportar el modelo al formato ONNX e implementarlo en una aplicación de Windows Machine Learning (Windows ML) que se ejecuta localmente en un dispositivo Windows. No necesitas experiencia previa en aprendizaje automático. Te guiaremos paso a paso por el proceso.

Si deseas obtener información sobre cómo crear y entrenar un modelo con Custom Vision, puedes continuar en Entrenamiento de un modelo.

Si tienes un modelo y quieres aprender a crear una aplicación de Windows ML desde cero, consulta el Tutorial de la aplicación de Windows ML.

Si deseas empezar con un proyecto de Visual Studio preexistente para una aplicación de Windows ML, puedes clonar la aplicación de ejemplo del tutorial de Custom Vision y Windows ML y usarla como punto de partida.

Escenario

En este tutorial, crearemos una aplicación de aprendizaje automático de clasificación de alimentos que se pueda ejecutar en cualquier dispositivo de Windows. El modelo se entrenará para que pueda reconocer determinados tipos de patrones y clasificar una imagen de alimentos y, cuando se le dé una imagen, devolverá una etiqueta de clasificación y el valor de confianza de porcentaje asociado de esa clasificación.

Requisitos previos para el entrenamiento del modelo

Para crear y entrenar un modelo, necesitará una suscripción a los servicios de Azure Custom Vision.

Si eres un usuario nuevo en Azure, puedes registrarte para obtener una cuenta gratuita de Azure. Esto te dará la oportunidad de crear, entrenar e implementar modelos de aprendizaje automático con Azure AI.

Sugerencia

¿Te interesa obtener más información sobre las opciones de registro de Azure y las cuentas gratuitas de Azure? Pues consulta Creación de una cuenta de Azure.

Requisitos previos para la implementación de la aplicación de Windows ML

Para crear e implementar una aplicación de Windows ML, necesitará lo siguiente:

  • Windows 10, versión 1809 (compilación 17763) o posterior. Para comprobar el número de versión de la compilación, ejecuta winver mediante el comando Run (tecla del logotipo de Windows + R).
  • Windows SDK, compilación 17763 o posterior. Para descargarlo, consulta Windows SDK.
  • Visual Studio 2017, versión 15.7 o posterior; pero se recomienda usar Visual Studio 2022 o posterior. Algunas capturas de pantalla de este tutorial pueden diferir de la interfaz de usuario que se verá. Para descargar Visual Studio, consulta Descargas y herramientas para el desarrollo de Windows.
  • La extensión de Visual Studio del generador de código de Windows ML (mlgen). Descárgalo para Visual Studio 2019 o posterior o para Visual Studio 2017.
  • Si decides crear una aplicación para la Plataforma universal de Windows (UWP), deberás habilitar la carga de trabajo de desarrollo de la Plataforma universal de Windows en Visual Studio.
  • Habilita el modo de desarrollo en el equipo; consulta Habilitar el dispositivo para el desarrollo.

Nota:

Las API de Windows ML están integradas en las versiones más recientes de Windows 10 (1809 o posterior) y Windows Server 2019. Si la plataforma de destino es una versión anterior de Windows, puedes migrar la aplicación de Windows ML al paquete de NuGet redistribuible (Windows 8.1 o posterior).

Preparación de los datos

Los modelos de Machine Learning deben entrenarse con los datos existentes. En esta guía, usarás un conjunto de datos de imágenes de alimentos de Kaggle Open Datasets. Este conjunto de datos se distribuye bajo la licencia de dominio público.

Importante

Para usar este conjunto de datos, debes aceptar los términos de uso del sitio de Kaggle y los términos de la licencia que acompaña al propio conjunto de datos Food-11. Microsoft no ofrece ninguna garantía ni representación sobre el sitio o este conjunto de datos.

El conjunto de datos tiene tres divisiones, evaluación, entrenamiento y validación, y contiene 16 643 imágenes de alimentos agrupadas en 11 categorías principales de alimentos. Las imágenes del conjunto de datos de cada categoría de alimentos se colocan en una carpeta independiente, lo que hace que el proceso de entrenamiento del modelo sea más cómodo.

Descarga el conjunto de datos de imágenes Food-11. El conjunto de datos tiene un tamaño de aproximadamente 1 GB y es posible que se te pida que crees una cuenta en el sitio web de Kaggle para descargar los datos.

Food image datasaet

Si prefieres, puedes usar cualquier otro conjunto de datos de imágenes relevantes. Como mínimo, se recomienda usar 30 imágenes por etiqueta en el conjunto de entrenamiento inicial. También conviene recopilar algunas imágenes adicionales para probar el modelo una vez que está entrenado.

Además, asegúrate de que todas las imágenes de entrenamiento cumplen los criterios siguientes:

  • Formato .jpg, .png, .bmpo .gif.
  • Tienen menos de 6 MB de tamaño (4 MB en el caso de imágenes de predicción).
  • Tienen más de 256 píxeles en el borde más corto. Custom Vision Service escalará verticalmente y de forma automática todas las imágenes que sean más cortas.

Pasos siguientes

Ahora que has ordenado los requisitos previos y preparado el conjunto de datos, puedes continuar con la creación del modelo de Windows ML. En la siguiente parte (Entrenar tu modelo con Custom Vision), usarás la interfaz de Custom Vision basada en la web para crear y entrenar el modelo de clasificación.