条码工具

如何通过深度学习理解二维码识别

发布 2023年八月29日
分享:

快速反应(QR)代码已成为我们数字生活中不可或缺的一部分,为无缝数据共享和信息检索提供了便利。 识别图像中的 QR 代码是深度学习(人工智能的一个子集)的一项重要应用。 在本文中,我们将指导您使用深度学习在 .NET/C# 中构建一个二维码识别系统的过程。

利用深度学习理解 QR 码识别

深度学习是机器学习的一个分支,涉及训练神经网络从数据中学习复杂的模式。 在 QR 码识别方面,可以对深度学习模型进行训练,以便从不同尺寸、方向和条件的图像中识别和解码 QR 码。 卷积神经网络(有线电视新闻网)由于能够捕捉到复杂的视觉特征,因此在基于图像的任务(如 QR 码识别)中很受欢迎。

在本文中,我们将使用ML.NET 模型生成器来训练我们的模型。

ML.NET 模型生成器

模型建造者是微软提供的一个功能强大的工具,作为ML.NET在 .NET/C# 中构建机器学习模型的框架。 它简化并加快了创建自定义机器学习模型的过程,无需深入了解机器学习算法或丰富的编码专业知识。Model Builder 设计得用户友好、易于使用,是希望在其应用程序中利用机器学习功能的开发人员的理想工具。 Model Builder 支持 AutoML,可自动探索不同的机器学习算法和设置,帮助您找到最适合您的场景的算法。

训练 QR 码识别模型

使用模型生成器训练 QR 代码识别模型涉及一系列步骤,这些步骤将引导您完成创建和训练模型的过程。 在本分步指南中,我们将引导您完成使用 .NET/C# 中的模型生成器训练二维码模型的每个阶段。

第 1 步:设置环境

在我们开始实施之前,请确保您具备以下先决条件:

  • Visual Studio:下载和安装Visual Studio多功能集成开发环境(IDE)译文必须针对.NET 开发。
  • 模型生成器:您可以点击以下链接下载 ML.NET 模型生成器这里.

第 2 步:数据准备

我们需要 QR 码图像来训练我们的模型。 您可以从以下网站获取 QR 代码图像KaggleRoboflow. 在本示例中,我从 Roboflow 下载了 QR 码图像。

步骤 3:打开模型生成器

打开 Visual Studio 项目。

右键单击项目 > 添加 > 机器学习模型...

如何利用深度学习理解二维码识别:图 1

将出现以下窗口。

如何利用深度学习理解二维码识别:图 2

给出模型名称并点击添加按钮。 将出现以下窗口:

如何利用深度学习理解二维码识别:图 3

向下滚动,在 "计算机视觉 "下找到 "对象检测"。

如何利用深度学习理解二维码识别:图 4

第 4 步:选择培训环境

选择对象检测,因为我们必须从给定的数据集中检测 QR 代码。 根据您的偏好选择本地或 Azure。 本例选择本地翻译。

点击本地后,将出现以下窗口:

如何利用深度学习理解 QR 码识别:图 5

根据您的选择选择本地 CPU 或 GPU。您也可以选择 Azure。 为此,您必须拥有 Active Azure 订阅。 选择测试环境后,单击 "下一步 "按钮。 将出现以下窗口。

如何利用深度学习理解 QR 码识别:图 6

步骤 5:选择数据

选择数据是培训过程中最重要的部分。 如前所述,我将从以下方面获取数据机器人流. 打开 RoboFlow,搜索 QR 代码。 数据可能有白色 QR 码或许多本地特征。 我正在使用 QR 检测计算机视觉数据集本教程。 通过选择格式下载数据。 我选择 COCO 格式下载此数据。 因为这种格式将进一步用于数据预处理和图像识别。

如何利用深度学习理解 QR 码识别:图 7

有了数据,我们再来看看 Visual Studio。 选择上面下载的 Coco 文件的输入路径。 您也可以选择 Vott,但需要为您的数据创建一个 Vott 文件。 将出现以下窗口。

如何利用深度学习理解二维码识别:图 8

现在,单击 "下一步 "按钮,转到 "列车 "选项卡。

如何利用深度学习理解 QR 码识别:图 9

步骤 6:训练 QR 码检测模型

现在,单击 "开始培训模型 "开始培训。 模型生成器将自动转换为二进制图像,并相应地使用首选的神经网络。 我们不需要指定任何内容。 Model Builder 的最大优点是,只需具备极少深度学习背景的开发人员就能训练、测试和使用模型。

如何利用深度学习理解 QR 码识别:图 10

模型生成器将在指定数据集上训练模型并显示训练进度。 上述培训需要时间,具体取决于系统。 该模型将逐一学习所有 QR 代码并了解其功能。 训练完成后,您可以通过向模型传递任何测试二维码图像来测试您的模型。

第 7 步:评估模型

培训结束后,模型生成器将评估模型在验证数据上的性能。

您将看到准确率、精确度、召回率和 F1 分数等评估指标。 这些指标可以评估模型的性能如何。

步骤 8:消费

现在,我们的模型已经训练完成,QR 码检测器也已准备就绪,我们需要使用该模型来检测代码,然后对检测到的 QR 码进行解码。 本模型仅检测给定输入是否包含任何快速反应代码。 这将无法解码 QR 代码。 对于 QR 代码解码,我们需要一个第三方库。 Iron BarCode 是读取 QR 码图像的最佳库。 在继续深入之前,让我们先来探讨一下 Iron BarCode。

Iron BarCode - QR 码解码库

IronBarcode二维码是一种广泛用于编码 URL、文本、联系方式等信息的二维条形码。 该库通过为开发人员提供直观的工具来生成具有大小、颜色和纠错等可定制功能的 QR 码,从而简化了 QR 码的创建过程。

此外,IronBarcode 还能从嵌入图像的 QR 代码中提取信息,是将 QR 代码生成和解码功能无缝集成到 .NET 应用程序中不可或缺的资源。

在本教程中,如果从模型中检测到 QR 码,我们将使用它来解码 QR 码。

安装 Iron BarCode NuGet 软件包

在 NuGet 包管理器控制台中编写以下命令以下载IronBarcode NuGet 软件包.

Install-Package BarCode

上述命令将安装 Iron BarCode 软件包,并为我们的项目添加引用。

如何利用深度学习理解二维码识别:图 11

解码 QR 代码

编写以下代码以读取单个检测到的 QR 码。

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());
Imports IronBarCode

Private qrCodeImagePath As String = "myQrCode.png"
Private data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath)
Console.WriteLine(data.Value.ToString())
VB   C#

译文如下:

如何利用深度学习理解 QR 码识别:图 12

结论

总之,对于想要使用 QR 代码的 .NET 开发人员来说,模型生成器和 IronBarcode 库是一个非常有价值的组合。 Model Builder 使创建和训练 QR 代码识别模型的棘手工作变得非常简单。 如果再加上 IronBarcode 库,事情就会变得更加简单--它可以帮助您从图片中读取二维码,而无需大费周章。 这种团队合作不仅能更好地完成库存和营销任务,还能让您的应用程序使用起来更有趣。 当 Model Builder 和 IronBarcode 结合在一起时,就像将超级智能技术融入到您的 .NET 应用程序中,为 QR 代码开辟了各种酷炫的可能性。 铁条码商业许可证的费用非常低,只需支付以下费用免费试用许可证.

< 前一页
版本 4 QR Code 最多 50 个字符(初学者指南)
下一步 >
如何为 Google 表单生成二维码

准备开始了吗? 版本: 2024.11 刚刚发布

免费NuGet下载 总下载量: 1,264,670 查看许可证 >