Código QR Aprendizaje Automático: Un Tutorial para Desarrolladores
Los códigos de respuesta rápida (QR) se han convertido en una parte integral de la sociedad moderna, revolucionando la forma en que se comparte y accede a la información. Estos códigos de barras bidimensionales consisten en una matriz de cuadrados negros y blancos que se pueden escanear utilizando la cámara de un teléfono inteligente para recuperar rápidamente información almacenada, como URL, detalles de contacto, URL de sitios web, detalles de productos y más. Sin embargo, a medida que la tecnología avanza, las capacidades de los códigos QR también. El aprendizaje automático (ML) ha surgido como una herramienta poderosa para mejorar los procesos de generación, reconocimiento y decodificación de códigos QR, lo que lleva a experiencias de usuario mejoradas y mayor funcionalidad.
El mundo del intercambio de información y datos ha sido transformado por el uso generalizado de códigos QR y códigos de barras. Estos códigos bidimensionales proporcionan acceso rápido a contenido digital y sirven a varios propósitos en diferentes industrias. Sin embargo, distinguir entre códigos QR y códigos de barras puede ser un desafío, especialmente cuando se trata de una variedad diversa de códigos. Mediante el uso del poder del aprendizaje automático (ML) y el marco .NET/C#, los desarrolladores pueden crear un sistema inteligente que clasifique con precisión los códigos QR y los códigos de barras, agilizando el procesamiento de datos y mejorando las experiencias de usuario. La integración de las capacidades de decodificación de IronBarcode mejora aún más la solución, permitiendo la extracción precisa de contenido de los códigos reconocidos.
En este artículo, entrenaremos el modelo que clasificará la entrada dada como Código de Barras o Código QR, y después de eso, decodificaremos el código de entrada utilizando IronBarcode.
Uso de ML.NET Model Builder para la clasificación de códigos QR
Model Builder, una herramienta integrada dentro de Visual Studio, simplifica el proceso de construcción de modelos de aprendizaje automático al proporcionar una interfaz intuitiva. Usaremos Model Builder para crear un modelo de clasificación que distinga entre códigos QR y códigos de barras. Una vez que la clasificación esté completa, integraremos IronBarcode para decodificar los códigos reconocidos.
Paso 1: Recopilación de datos
El primer paso para entrenar cualquier tipo de modelo es la recolección de datos. Necesitamos datos para entrenar el modelo. He descargado datos de Kaggle. Puedes descargarlo de cualquier fuente según tu preferencia. Después de descargar el conjunto de datos, crea un directorio principal y coloca ambos conjuntos de datos dentro de ese directorio principal. Los datos están organizados en dos subdirectorios:
- Códigos de Barras
- Códigos QR

El siguiente paso es abrir Visual Studio y crear un nuevo modelo de aprendizaje automático.
Paso 2: Crear un proyecto en Visual Studio y agregar un nuevo modelo de aprendizaje automático
Crea tu proyecto en Visual Studio. El proyecto puede ser de cualquier tipo, como ASP.NET Web API, ASP.NET MVC, Formularios WEB o una aplicación de consola. En este ejemplo, estoy usando una aplicación de consola. Haz clic derecho en el proyecto desde el Explorador de Soluciones. Selecciona Agregar > Modelo de Aprendizaje Automático a continuación.

Nombra tu modelo de aprendizaje automático y haz clic en el botón Agregar.

Paso 3: Seleccionar escenario
Aparecerá una nueva ventana después de agregar el archivo del modelo de aprendizaje automático. Desplázate hacia abajo y selecciona Clasificación de Imágenes. La Clasificación de Imágenes es una de las técnicas de visión por computadora que vamos a utilizar en este tutorial. Estamos seleccionando la clasificación de imágenes en lugar del reconocimiento de imágenes ya que solo necesitamos diferenciar entre el Código de Respuesta Rápida (Código QR) y el Código de Barras, no necesitamos reconocerlos a partir de una imagen dada.

Paso 4: Seleccionar entorno
El siguiente paso después de seleccionar un escenario es elegir el entorno. Podemos elegir entre nuestro sistema local para entrenar el modelo o Azure Cloud. Debemos tener una suscripción activa a Azure para usar Azure como nuestro entorno.
Paso 5: Seleccionar datos
En este paso, necesitamos pasar los datos que hemos recopilado antes en el paso #1. Ya hemos organizado los datos en subcategorías en el paso #1 según lo requerido por el Model Builder.
Proporcione la ruta del directorio principal de su conjunto de datos en la opción Seleccionar Carpeta. Podemos previsualizar los datos a continuación.

También podemos ver la carpeta de Códigos QR haciendo clic en la pestaña de códigos QR en la vista previa de datos.

Después de seleccionar los datos, haz clic en el botón Siguiente, te llevará a la pantalla de entrenamiento.
Paso 6: Entrenar el modelo
Haz clic en Iniciar Entrenamiento del Modelo, y comenzará el entrenamiento como se muestra a continuación. Asegúrate de que Visual Studio no esté abierto en Modo Administrador, de lo contrario, arrojará un error.

Comenzará el entrenamiento y tomará tiempo. La duración del entrenamiento variará dependiendo de las capacidades del sistema. Model Builder utiliza AutoML. Usará automáticamente técnicas de aprendizaje automático adecuadas, nivel de corrección de errores, reconocerá patrones, reducción de ruido, ajuste de contraste, proceso de aprendizaje y otras configuraciones de acuerdo.
Paso 7: Evaluación del modelo
Después del entrenamiento, evalúa el rendimiento del modelo pasando los datos de prueba para asegurar una clasificación precisa.
Paso 8: Modelo de consumo
Una vez que el modelo está entrenado y evaluado, podemos exportarlo y consumirlo. En nuestro caso de uso, tenemos que clasificar el Código QR del Código de Barras y luego leer sus datos codificados. Necesitamos una biblioteca de terceros para decodificar datos ya que el modelo de aprendizaje automático no puede decodificar el código QR o el código de barras, solo lo clasificará.
IronBarcode es una biblioteca ideal para decodificar tanto el Código QR como el Código de Barras. Podemos decodificar ambos tipos de códigos usando una sola biblioteca de manera sencilla. Hagamos una pequeña introducción sobre IronBarcode antes de proceder.







