Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Respuesta rápida (QR) Los códigos se han convertido en parte integrante de nuestra vida digital, facilitando el intercambio de datos y la recuperación de información sin fisuras. Reconocer códigos QR en imágenes es una valiosa aplicación del aprendizaje profundo, un subconjunto de la inteligencia artificial. En este artículo, te guiaremos a través del proceso de creación de un sistema de reconocimiento de códigos QR mediante aprendizaje profundo en .NET/C#.
El aprendizaje profundo, una rama del aprendizaje automático, consiste en entrenar redes neuronales para aprender patrones complejos a partir de datos. En el contexto del reconocimiento de códigos QR, los modelos de aprendizaje profundo pueden entrenarse para identificar y decodificar códigos QR a partir de imágenes con distintos tamaños, orientaciones y condiciones. Redes neuronales convolucionales (CNNs) son una opción popular para tareas basadas en imágenes como el reconocimiento de códigos QR debido a su capacidad para capturar características visuales intrincadas.
En este artículo utilizaremos Constructor de modelos ML.NET para entrenar nuestro modelo.
Constructor de modelos es una potente herramienta proporcionada por Microsoft como parte del programa ML.NET para crear modelos de aprendizaje automático en .NET/C#. Simplifica y acelera el proceso de creación de modelos de aprendizaje automático personalizados sin necesidad de tener un conocimiento profundo de los algoritmos de aprendizaje automático ni una gran experiencia en codificación. Model Builder está diseñado para ser fácil de usar y accesible, por lo que es una gran herramienta para los desarrolladores que quieren aprovechar las capacidades de aprendizaje automático en sus aplicaciones. Model Builder es compatible con AutoML, que explora automáticamente diferentes algoritmos de aprendizaje automático y configuraciones para ayudarle a encontrar el que mejor se adapte a su escenario.
El entrenamiento de un modelo de reconocimiento de códigos QR mediante Model Builder implica una serie de pasos que le guiarán a través del proceso de creación y entrenamiento del modelo. En esta guía paso a paso, le guiaremos a través de cada etapa de la formación de un modelo de código QR utilizando Model Builder en .NET/C#.
Antes de sumergirnos en la implementación, asegúrese de que tiene los siguientes requisitos previos:
Necesitamos imágenes de códigos QR para entrenar nuestro modelo. Puede obtener imágenes de códigos QR en Kaggle o Roboflow. He descargado imágenes de código QR de Roboflow para este ejemplo.
Abrir proyecto de Visual Studio.
Haga clic con el botón derecho en Proyecto > Añadir > Modelo de aprendizaje automático...
Aparecerá la siguiente ventana.
Indique el nombre del modelo y pulse el botón Añadir. Aparecerá la siguiente ventana:
Desplácese hacia abajo y busque "Detección de objetos" en Visión por ordenador.
Seleccione Detección de objetos ya que tenemos que detectar códigos QR del conjunto de datos dado. Seleccione Local o Azure según sus preferencias. Para este ejemplo seleccionamos Local.
Tras hacer clic en Local, aparecerá la siguiente ventana:
Seleccione una CPU o GPU local según su elección. También puede seleccionar Azure. Para ello, debe disponer de una suscripción activa a Azure. Después de seleccionar su entorno de pruebas, haga clic en el botón Siguiente. Aparecerá la siguiente ventana.
La selección de datos es la parte más importante del proceso de formación. Como ya he mencionado, obtendré los datos de Robo Flujo. Abra RoboFlow, busque el código QR. Los datos pueden tener códigos QR blancos o tener muchas características locales. Estoy utilizando la detección de QR Computer Vision Conjunto de datos para este tutorial. Descargue los datos seleccionando el formato. He elegido el formato COCO para descargar estos datos. Este formato se utilizará posteriormente para el preprocesamiento de datos y el reconocimiento de imágenes.
Ahora que ya tienes los datos, volvamos a Visual Studio. Seleccione la ruta de entrada del archivo Coco descargado anteriormente. También puede elegir Vott, pero para ello necesita crear un fichero Vott para sus datos. Aparecerá la siguiente ventana.
Ahora, haga clic en el botón Paso siguiente y vaya a la pestaña Tren.
Ahora, haga clic en Iniciar modelo de formación para iniciar la formación. El Model Builder convertirá automáticamente en imágenes binarias y utilizará las redes neuronales preferidas en consecuencia. No necesitamos especificar nada. Lo mejor de Model Builder es que un desarrollador con una mínima formación en aprendizaje profundo puede entrenar, probar y consumir un modelo.
Model Builder entrenará el modelo en el conjunto de datos especificado y mostrará el progreso del entrenamiento. La formación anterior llevará tiempo, dependiendo del sistema. El modelo tomará todos los códigos QR uno a uno y aprenderá sus características. Puede probar su modelo pasando cualquier imagen de código QR de prueba al modelo una vez completado el entrenamiento.
Tras el entrenamiento, el Model Builder evaluará el rendimiento del modelo en los datos de validación.
Verá métricas de evaluación como la exactitud, la precisión, la recuperación y la puntuación F1. Estas métricas evalúan el rendimiento del modelo.
Ahora que nuestro modelo está entrenado y el Detector de Códigos QR está listo, necesitamos consumir ese modelo para detectar el código y luego decodificar el Código QR detectado. Este Modelo sólo detectará si una entrada dada contiene algún código de respuesta rápida o no. Esto no descodificará el código QR. Para decodificar códigos QR, necesitamos una biblioteca de terceros. Iron Barcode es la mejor librería para leer la Imagen del Código QR. Exploremos un poco sobre Iron Barcode antes de continuar.
IronBarcode es una biblioteca .NET diseñada específicamente para trabajar con códigos QR, un tipo de código de barras 2D muy utilizado para codificar información como URL, texto, datos de contacto, etc. Esta biblioteca simplifica la creación de códigos QR proporcionando a los desarrolladores herramientas intuitivas para generar códigos QR con características personalizables como tamaño, color y corrección de errores.
Además, IronBarcode permite extraer información de códigos QR incrustados en imágenes, lo que lo convierte en un recurso indispensable para integrar a la perfección las funciones de generación y descodificación de códigos QR en aplicaciones .NET.
En este tutorial, lo usaremos para decodificar el Código QR si el Código QR es detectado desde nuestro modelo.
Escriba el siguiente comando en NuGet Package Manager Console para descargar el archivo Paquete NuGet IronBarcode.
Install-Package BarCode
El comando anterior instalará el paquete Iron Barcode y añadirá una referencia a nuestro proyecto.
Escriba el siguiente código para leer el código QR detectado.
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
Console.WriteLine(data.Value.ToString());
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
Console.WriteLine(data.Value.ToString());
IRON VB CONVERTER ERROR developers@ironsoftware.com
El resultado es el siguiente:
En conclusión, el Model Builder y la librería IronBarcode son un valioso combo para los desarrolladores .NET que quieran trabajar con códigos QR. Model Builder facilita el complicado trabajo de crear y entrenar modelos para el reconocimiento de códigos QR. Y cuando añades la librería IronBarcode, las cosas se simplifican aún más: ayuda a leer códigos QR a partir de imágenes sin complicaciones. Este trabajo en equipo no sólo mejora las tareas de inventario y marketing, sino que también hace que sus aplicaciones sean más divertidas de usar. Cuando Model Builder e IronBarcode se unen, es como mezclar tecnología superinteligente en sus aplicaciones .NET, abriendo todo tipo de posibilidades geniales para el código QR. Código de barras de hierro licencia comercial está disponible a un coste muy bajo con un licencia de prueba gratuita.
9 productos API .NET para sus documentos de oficina