在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
快速反应 (QR) 二维码已成为我们数字生活中不可或缺的一部分,为无缝数据共享和信息检索提供了便利。识别图像中的二维码是深度学习(人工智能的一个子集)的一项重要应用。在本文中,我们将指导您使用 .NET/C# 中的深度学习构建二维码识别系统。
深度学习是机器学习的一个分支,包括训练神经网络从数据中学习复杂的模式。在二维码识别方面,可以训练深度学习模型从不同尺寸、方向和条件的图像中识别和解码二维码。卷积神经网络 (有线电视新闻网) 由于它们能够捕捉复杂的视觉特征,因此是二维码识别等基于图像任务的热门选择。
在本文中,我们将使用 ML.NET 模型生成器 来训练我们的模型。
模型建造者 是微软提供的一个功能强大的工具,作为 ML.NET 该框架用于在 .NET/C# 中构建机器学习模型。它简化并加快了创建自定义机器学习模型的过程,无需深入了解机器学习算法或丰富的编码专业知识。Model Builder 设计得用户友好、易于使用,对于希望在其应用程序中利用机器学习功能的开发人员来说,它是一个非常好的工具。模型生成器支持 AutoML,可自动探索不同的机器学习算法和设置,帮助您找到最适合您的应用场景的算法。
使用 Model Builder 训练 QR 代码识别模型涉及一系列步骤,这些步骤将指导您完成创建和训练模型的过程。在本分步指南中,我们将引导您完成使用 .NET/C# 中的 Model Builder 训练 QR 代码模型的每个阶段。
在开始实施之前,请确保您具备以下先决条件:
我们需要 QR 码图像来训练模型。您可以从以下网站获取二维码图像 Kaggle 或 Roboflow.我从 Roboflow 下载了 QR 码图像,用于本示例。
打开 Visual Studio 项目。
右键单击项目 > 添加 > 机器学习模型...
将出现以下窗口。
给出模型名称并点击添加按钮。将出现以下窗口:
向下滚动,找到计算机视觉下的 "物体检测"。
选择对象检测,因为我们必须从给定数据集中检测 QR 代码。根据偏好选择本地或 Azure。本例中我们选择本地。
点击本地后,将出现以下窗口:
根据需要选择本地 CPU 或 GPU。您也可以选择 Azure。为此,您必须拥有一个活动的 Azure 订阅。选择测试环境后,单击 "下一步 "按钮。将出现以下窗口。
选择数据是训练过程中最重要的部分。如前所述,我将从 机器人流.打开 RoboFlow,搜索 QR 码。数据中可能有白色 QR 码,也可能有许多本地特征。我正在使用 QR 检测计算机视觉 数据集 用于本教程。选择格式下载数据。我选择 COCO 格式下载数据。因为这种格式将用于数据预处理和图像识别。
有了数据之后,让我们回到 Visual Studio。选择上面下载的 Coco 文件的输入路径。您也可以选择 Vott,但需要为数据创建一个 Vott 文件。将出现以下窗口。
现在,点击 "下一步 "按钮,移动到 "火车 "选项卡。
现在,点击 "开始训练模型 "开始训练。模型生成器会自动转换为二进制图像,并相应地使用首选的神经网络。我们不需要指定任何东西。模型生成器的最大优势在于,只需极少深度学习背景的开发人员就能训练、测试和使用模型。
模型生成器会在指定数据集上训练模型,并显示训练进度。上述训练所需的时间取决于系统。模型将逐一获取所有 QR 代码并学习其特征。训练完成后,您可以通过向模型传递任何测试 QR 代码图像来测试您的模型。
训练完成后,模型生成器将评估模型在验证数据上的性能。
您将看到准确率、精确度、召回率和 F1 分数等评估指标。这些指标可以评估模型的性能如何。
现在我们的模型已经训练完成,QR 码检测器也已准备就绪,我们需要使用该模型来检测代码,然后对检测到的 QR 码进行解码。该模型只会检测给定输入是否包含任何快速反应代码。它不会对 QR 代码进行解码。对于 QR 代码解码,我们需要一个第三方库。Iron Barcode 是读取 QR 码图像的最佳库。在继续之前,让我们先来了解一下 Iron Barcode。
IronBarcode 二维码是一种二维条形码,广泛用于编码 URL、文本、联系方式等信息。该库通过为开发人员提供直观的工具来生成具有尺寸、颜色和纠错等可定制功能的 QR 码,从而简化了 QR 码的创建。
此外,IronBarcode 还能从嵌入图像的 QR 代码中提取信息,是将 QR 代码生成和解码功能无缝集成到 .NET 应用程序中不可或缺的资源。
在本教程中,如果从模型中检测到 QR 码,我们将使用它对 QR 码进行解码。
在 NuGet 软件包管理器控制台中编写以下命令以下载 IronBarcode NuGet 软件包.
Install-Package BarCode
上述命令将安装 Iron Barcode 软件包,并在我们的项目中添加引用。
编写以下代码,读取检测到的单个 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())
输出结果如下:
总之,对于希望使用 QR 码的 .NET 开发人员来说,模型生成器和 IronBarcode 库是一个非常有价值的组合。Model Builder 使创建和训练 QR 码识别模型的棘手工作变得非常简单。如果再加上 IronBarcode 库,事情就更简单了--它可以帮助你从图片中轻松读取 QR 码。这种团队合作不仅能更好地完成库存和营销任务,还能让您的应用程序使用起来更有趣。当 Model Builder 和 IronBarcode 结合在一起时,就像在您的 .NET 应用程序中融合了超级智能技术,为 QR 码的应用开辟了各种酷炫的可能性。 铁条码 商业许可证的费用非常低,只需支付以下费用 免费试用许可证.