Ir para o conteúdo do rodapé
FERRAMENTAS DE CóDIGO DE BARRAS

Como entender o reconhecimento de código QR com aprendizado profundo

Códigos de Resposta Rápida (QR) tornaram-se parte integrante de nossas vidas digitais, facilitando o compartilhamento de dados sem esforço e a recuperação de informações. Reconhecer códigos QR em imagens é uma aplicação valiosa de aprendizado profundo, um subconjunto da inteligência artificial. Neste artigo, vamos guiá-lo pelo processo de construção de um sistema de reconhecimento de código QR usando aprendizado profundo em .NET/C#.

Entendendo o Reconhecimento de Código QR com Aprendizado Profundo

O aprendizado profundo, um ramo do aprendizado de máquina, envolve o treinamento de redes neurais para aprender padrões complexos a partir de dados. No contexto de reconhecimento de código QR, modelos de aprendizado profundo podem ser treinados para identificar e decodificar códigos QR a partir de imagens com tamanhos, orientações e condições variadas. Redes Neurais Convolucionais (CNNs) são uma escolha popular para tarefas baseadas em imagens, como o reconhecimento de códigos QR, devido à sua capacidade de capturar características visuais complexas.

Neste artigo, usaremos o ML.NET Model Builder para treinar nosso modelo.

Builder de Modelo ML.NET

Model Builder é uma ferramenta poderosa fornecida pela Microsoft como parte do framework ML.NET para construir modelos de aprendizado de máquina em .NET/C#. Ele simplifica e acelera o processo de criação de modelos de aprendizado de máquina personalizados sem exigir conhecimento aprofundado de algoritmos de aprendizado de máquina ou ampla expertise em codificação. O Model Builder é projetado para ser amigável e acessível, tornando-o uma ótima ferramenta para desenvolvedores que desejam aproveitar as capacidades do aprendizado de máquina em suas aplicações. O Model Builder suporta AutoML, que explora automaticamente diferentes algoritmos de aprendizado de máquina e configurações para ajudá-lo a encontrar aquele que melhor se adapta ao seu cenário.

Treinamento de Modelo de Reconhecimento de Código QR

Treinar um modelo de reconhecimento de QR code usando o Model Builder envolve uma série de etapas que o guiam no processo de criação e treinamento do modelo. Neste guia passo a passo, vamos conduzi-lo por cada estágio do treinamento de um modelo de QR code usando o Model Builder em .NET/C#.

Etapa 1: Configuração do Seu Ambiente

Antes de mergulharmos na implementação, certifique-se de que você tenha os seguintes pré-requisitos:

  • Visual Studio: Baixe e instale o Visual Studio, um ambiente de desenvolvimento integrado (IDE) versátil para desenvolvimento em .NET.
  • Model Builder: Você pode baixar o ML.NET Model Builder clicando aqui.

Etapa 2: Preparação dos Dados

Precisamos de Imagens de Código QR para treinar nosso modelo. Você pode obter Imagens de Código QR no Kaggle ou Roboflow. Eu baixei Imagens de Código QR do Roboflow para este exemplo.

Etapa 3: Abra o Model Builder

Abra o Projeto no Visual Studio.

Clique com o botão direito no Projeto > Adicionar > Modelo de Aprendizado de Máquina...

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 1

A seguinte janela aparecerá.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 2

Dê um nome ao modelo e clique no botão Adicionar. A seguinte janela será exibida:

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 3

Role para baixo e encontre 'Detecção de Objetos' em Visão Computacional.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 4

Etapa 4: Selecione o Ambiente de Treinamento

Selecione a detecção de objetos, pois precisamos detectar códigos QR do conjunto de dados fornecido. Selecione Local ou Azure de acordo com sua preferência. Estamos selecionando Local para este exemplo.

Após clicar em Local, a seguinte janela aparecerá:

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 5

Selecione uma CPU ou GPU Local conforme sua escolha. Você também pode selecionar Azure. Para isso, você deve ter uma Assinatura Azure Ativa. Após selecionar seu ambiente de teste, clique no botão Próximo. A seguinte janela será exibida.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 6

Etapa 5: Selecione os Dados

A seleção dos Dados é a parte mais importante do processo de treinamento. Como mencionado anteriormente, vou obter os dados do Robo Flow. Abra o RoboFlow e pesquise por Código QR. Os dados podem ter códigos QR brancos ou ter muitos recursos locais. Estou usando o Conjunto de Dados de Visão Computacional de detecção de QR para este tutorial. Baixe os dados selecionando o formato. Escolhi o Formato COCO para baixar esses dados, pois esse formato será usado posteriormente para pré-processamento de dados e reconhecimento de imagens.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 7

Agora que você tem os dados, vamos voltar ao Visual Studio. Selecione o Caminho de Entrada do arquivo COCO baixado acima. Você também pode escolher Vott, mas para isso, você precisa criar um arquivo Vott para seus dados. A seguinte janela será exibida.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 8

Agora, clique no botão Próxima Etapa e vá para a aba Treinamento.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 9

Etapa 6: Treine o Modelo de Detecção de Código QR

Agora, clique em Iniciar Treinamento do Modelo para começar o treinamento. O Model Builder converterá automaticamente em imagens binárias e usará redes neurais preferidas de acordo. Não precisamos especificar nada. A melhor coisa sobre o Model Builder é que um desenvolvedor com conhecimento mínimo em aprendizado profundo pode treinar, testar e usar um modelo.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 10

O Model Builder treinará o modelo no conjunto de dados especificado e exibirá o progresso do treinamento. O treinamento acima levará tempo dependendo do sistema. O modelo irá pegar todos os Códigos QR um por um e aprender suas características. Você pode testar seu modelo passando qualquer imagem de teste de Código QR para o modelo uma vez que o treinamento esteja completo.

Passo 7: Avaliar Modelo

Após o treinamento, o Model Builder avaliará o desempenho do modelo nos dados de validação.

Você verá métricas de avaliação como precisão, precisão, recall e pontuação F1. Essas métricas avaliam quão bem o modelo está performando.

Passo 8: Consumir

Agora que nosso modelo está treinado e o Detector de Código QR está pronto, precisamos consumir esse modelo para detectar o código e depois decodificar o Código QR detectado. Este Modelo apenas detectará se uma entrada dada contém um código de resposta rápida ou não. Isso não decodificará o Código QR. Para decodificação de Código QR, precisamos de uma biblioteca de terceiros. Iron Barcode é a melhor biblioteca para ler a Imagem do Código QR. Vamos explorar um pouco sobre o Iron Barcode antes de prosseguir.

Iron Barcode - A Biblioteca de Decodificação de Código QR

IronBarcode é uma biblioteca .NET especificamente adaptada para trabalhar com códigos QR, um tipo de código de barras 2D amplamente usado para codificar informações como URLs, texto, detalhes de contato, e mais. Esta biblioteca simplifica a criação de códigos QR proporcionando aos desenvolvedores ferramentas intuitivas para gerar códigos QR com recursos personalizáveis como tamanho, cor e correção de erro.

Além disso, IronBarcode permite a extração de informações de códigos QR incorporados em imagens, tornando-se um recurso indispensável para integrar perfeitamente capacidades de geração e decodificação de códigos QR em aplicativos .NET.

Neste tutorial, usaremos para decodificar o Código QR se o Código QR for detectado pelo nosso modelo.

Instalar Pacote NuGet Iron Barcode

Escreva o seguinte comando no Console do Gerenciador de Pacotes NuGet para baixar o pacote NuGet IronBarcode.

Install-Package BarCode

O comando acima instalará o pacote Iron Barcode e adicionará uma referência ao nosso projeto.

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 11

Decodificar Códigos QR

Escreva o seguinte código para ler o único Código QR detectado.

using IronBarCode;

string qrCodeImagePath = "myQrCode.png";

// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);

// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
using IronBarCode;

string qrCodeImagePath = "myQrCode.png";

// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);

// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
$vbLabelText   $csharpLabel

A seguir está o resultado:

Como Entender o Reconhecimento de Código QR com Aprendizado Profundo: Figura 12

Conclusão

Em conclusão, o Model Builder e a biblioteca IronBarcode são uma combinação valiosa para desenvolvedores .NET que desejam trabalhar com códigos QR. Model Builder torna o trabalho complicado de criar e treinar modelos para reconhecimento de códigos QR bastante fácil. E quando você adiciona a biblioteca IronBarcode, as coisas ficam ainda mais simples – ela ajuda a ler códigos QR de imagens sem complicação. Essa colaboração não apenas melhora as tarefas de inventário e marketing, mas também torna seus aplicativos mais divertidos de usar. Quando Model Builder e IronBarcode se juntam, é como integrar tecnologia superinteligente em seus aplicativos .NET, abrindo todos os tipos de possibilidades legais para coisas relacionadas a códigos QR. Licença comercial do Iron Barcode está disponível a um custo muito baixo com uma licença de teste gratuita.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me