条码工具

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

发布 2023年八月29日
分享:

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

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

深度学习是机器学习的一个分支,包括训练神经网络从数据中学习复杂的模式。在二维码识别方面,可以训练深度学习模型从不同尺寸、方向和条件的图像中识别和解码二维码。卷积神经网络 (有线电视新闻网) 由于它们能够捕捉复杂的视觉特征,因此是二维码识别等基于图像任务的热门选择。

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

ML.NET 模型生成器

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

训练 QR 码识别模型

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

步骤 1:设置环境

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

  • Visual Studio:下载并安装 Visual Studio多功能集成开发环境 (IDE) 用于 .NET 开发。
  • 模型生成器:您可以点击以下链接下载 ML.NET 模型生成器 这里.

步骤 2:数据准备

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

第 3 步:打开模型生成器

打开 Visual Studio 项目。

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

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

将出现以下窗口。

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

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

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

向下滚动,找到计算机视觉下的 "物体检测"。

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

第 4 步:选择培训环境

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

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

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

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

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

第 5 步:选择数据

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

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

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

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

现在,点击 "下一步 "按钮,移动到 "火车 "选项卡。

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

步骤 6:训练二维码检测模型

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

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

模型生成器会在指定数据集上训练模型,并显示训练进度。上述训练所需的时间取决于系统。模型将逐一获取所有 QR 代码并学习其特征。训练完成后,您可以通过向模型传递任何测试 QR 代码图像来测试您的模型。

第 7 步:评估模型

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

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

第 8 步:消费

现在我们的模型已经训练完成,QR 码检测器也已准备就绪,我们需要使用该模型来检测代码,然后对检测到的 QR 码进行解码。该模型只会检测给定输入是否包含任何快速反应代码。它不会对 QR 代码进行解码。对于 QR 代码解码,我们需要一个第三方库。Iron Barcode 是读取 QR 码图像的最佳库。在继续之前,让我们先来了解一下 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 库,事情就更简单了--它可以帮助你从图片中轻松读取 QR 码。这种团队合作不仅能更好地完成库存和营销任务,还能让您的应用程序使用起来更有趣。当 Model Builder 和 IronBarcode 结合在一起时,就像在您的 .NET 应用程序中融合了超级智能技术,为 QR 码的应用开辟了各种酷炫的可能性。 铁条码 商业许可证的费用非常低,只需支付以下费用 免费试用许可证.

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

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

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