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