Compartir a través de


Clasificación de imágenes con ML.NET y Windows Machine Learning

Flujo de clasificación de imágenes

En esta guía se muestra cómo entrenar un modelo de red neuronal para clasificar imágenes de alimentos mediante ML.NET Generador de modelos, exportar el modelo a formato ONNX e implementar el modelo en una aplicación de Windows Machine Learning que se ejecuta localmente en un dispositivo Windows. No se requiere experiencia previa en aprendizaje automático y lo guiaremos paso a paso a través del proceso.

Si desea aprender a crear y entrenar un modelo con ML.NET Generador de modelos, puede continuar con Entrenar un modelo.

Si tienes un modelo y quieres aprender a crear una aplicación de WinML desde cero, ve al tutorial completo de la aplicación de WinML.

Si desea obtener la solución predefinida para una aplicación de WinML, puede clonar el archivo de solución y probarlo de inmediato.

Escenario

En este tutorial, crearemos una aplicación de clasificación de alimentos de aprendizaje automático que se ejecuta en dispositivos Windows. El modelo se entrenará para reconocer ciertos tipos de patrones para clasificar una imagen de alimento y, cuando se le proporcione una imagen, devolverá una etiqueta de clasificación y el valor de confianza porcentual asociado de esa clasificación.

Requisitos previos para el entrenamiento del modelo

Para compilar y entrenar el modelo, usará el ML.NET Model Buider en Visual Studio.

  • Necesitará Visual Studio 2019 16.6.1 o posterior para usar un ML.NET Model Builder. Puede obtener Visual Studio aquí.
  • Necesitará una cuenta de Azure para entrenar un modelo con ML.NET Generador de modelos en el área de trabajo de Aprendizaje automático de Azure. Si no está familiarizado con Azure, puede registrarse para obtener una cuenta gratuita de Azure.

Nota:

¿Está interesado en obtener más información sobre las opciones de registro de Azure y las cuentas gratuitas de Azure? Echa un vistazo a Crear una cuenta de Azure.

ML.NET Model Builder es una extensión gráfica intuitiva de Visual Studio que se usa para crear, entrenar e implementar modelos de aprendizaje automático personalizados. Utiliza el aprendizaje automático automatizado (AutoML) para explorar diferentes algoritmos y configuraciones de aprendizaje automático para ayudarlo a encontrar el que mejor se adapte a su escenario.

ML.NET Model Builder se suministra con Visual Studio versión 16.6.1 o posterior, al instalar una de las cargas de trabajo de .NET. Asegúrese de tener activado el componente ML.NET Model Builder en el instalador al descargar o modificar Visual Studio. Para comprobar si su VS tiene los componentes ML.NET Model Builder, vaya a Extensiones y seleccione Administrar extensiones. Escriba Model Builder en la barra de búsqueda para revisar los resultados de la extensión.

Extensión del generador de modelos

ML.NET Generador de modelos es actualmente una característica de vista previa. Entonces, para poder usar la herramienta, en Visual Studio debes ir a Opciones >> de herramientas Características de vista previa del entorno > y habilitar ML.NET Generador de modelos:

Habilitación de la extensión del generador de modelos

Nota:

¿Está interesado en obtener más información sobre ML.NET Generador de modelos y los diferentes escenarios que admite? Revise la documentación del Constructor de modelos.

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

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

  • Windows 10 versión 1809 (compilación 17763) o posterior. Para comprobar el número de versión de compilación, ejecute winvermediante el comando Run (Windows logo key + R).
  • Windows SDK para la compilación 17763 o posterior. Puede obtener el SDK aquí.
  • Visual Studio 2019, versión 16.6.1 o posterior. Puede obtener Visual Studio aquí.
  • La extensión de Visual Studio del generador de código de Windows ML (mlgen). Descargar para VS 2019.
  • Si decides crear una aplicación para UWP, tendrás que habilitar la carga de trabajo de desarrollo de la Plataforma universal de Windows en Visual Studio.
  • También tendrás que habilitar el modo de desarrollador en tu PC.

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 versiones anteriores de Windows, puede migrar la aplicación WinML al paquete NuGet redistribuible (Windows 8.1 o superior).

Preparación de los datos

Los modelos de Machine Learning deben entrenarse con datos existentes. En esta guía, utilizará 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 utilizar este conjunto de datos, debe cumplir con el término de uso del sitio de Kaggle y los términos de licencia que acompañan al propio conjunto de datos Food-11. Microsoft no garantiza ni representa el sitio ni este conjunto de datos.

El conjunto de datos tiene tres divisiones (evaluación, capacitación y validación) y contiene 16643 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 facilita el proceso de entrenamiento del modelo.

Descargue el conjunto de datos aquí. Tenga en cuenta que el conjunto de datos tiene un tamaño de alrededor de 1 gb y es posible que se le pida que cree una cuenta en el sitio web de Kaggle para descargar los datos.

Conjunto de datos de imágenes de alimentos

Si lo desea, puede utilizar cualquier otro conjunto de datos de imágenes relevantes. Como mínimo, te recomendamos que utilices al menos 30 imágenes por etiqueta en el conjunto de entrenamiento inicial. También querrá recopilar algunas imágenes adicionales para probar su modelo una vez que esté entrenado.

Además, asegúrate de que todas tus imágenes de entrenamiento cumplan con los siguientes criterios:

  • .jpg, .png, .bmpo .gif formato.
  • no más de 6 MB de tamaño (4 MB para imágenes de predicción).
  • no menos de 256 píxeles en el borde más corto; el servicio de visión personalizada ampliará automáticamente las imágenes más cortas.

Pasos siguientes

Ahora que ha ordenado los requisitos previos y ha preparado el conjunto de datos, puede continuar con la creación del modelo de WinML. En la siguiente parte, usará el Generador de modelos de ML.NET para crear y entrenar el modelo de clasificación.