條碼工具

如何使用深度學習理解二維條碼識別

發佈 2023年8月29日
分享:

快速回應(QR)代碼已成為我們數位生活中不可或缺的一部分,有助於無縫的資料共享和資訊檢索。 在影像中識別 QR 代碼是深度學習(人工智慧的一個子集)的寶貴應用。 在本文中,我們將引導您通過使用深度學習在 .NET/C# 中建置 QR 碼識別系統的過程。

使用深度學習理解 QR Code 識別

深度學習是機器學習的一個分支,涉及訓練神經網路從數據中學習複雜模式。 在 QR 碼識別的背景下,可以訓練深度學習模型來識別和解碼來自不同大小、方向和條件的圖像中的 QR 碼。 卷积神经网络(卷積神經網路 (CNNs))由於能夠捕捉細緻的視覺特徵,在基於圖像的任務中(如 QR 碼識別)是一個受歡迎的選擇。

在本文中,我們將使用ML.NET 模型生成器用於訓練我們的模型。

ML.NET 模型生成器

模型生成器是由 Microsoft 提供的強大工具,作為...的一部分ML.NET在 .NET/C# 中構建機器學習模型的框架。 它簡化並加速了創建自定義機器學習模型的過程,無需深入了解機器學習演算法或廣泛的編碼專業知識。Model Builder 設計為用戶友好且易於接觸,對於希望在其應用中利用機器學習功能的開發人員來說,是一個優秀的工具。 模型生成器支援自動機器學習(AutoML),其會自動探索不同的機器學習算法和設置,以幫助您找到最適合您情境的算法。

訓練 QR 碼識別模型

使用 Model Builder 訓練 QR 碼識別模型涉及一系列步驟,指導您完成模型的創建和訓練過程。 在這個逐步指南中,我們將帶您通過使用.NET/C#中的Model Builder訓練QR碼模型的每個階段。

步驟 1:設定您的環境

在進行實施之前,請確保您具備以下先決條件:

  • Visual Studio:下載並安裝Visual Studio多功能的集成開發環境(集成開發環境)適用於 .NET 開發。
  • 模型生成器:您可以通过点击下載 ML.NET 模型生成器這裡.

步驟 2:資料準備

我們需要 QR Code 圖像來訓練我們的模型。 您可以從獲取 QR Code 圖片KaggleRoboflow. 我已為此範例從Roboflow下載了QR碼圖片。

步驟 3:開啟模型建構器

打開 Visual Studio 專案。

右鍵點擊專案 > 添加 > 機器學習模型...

如何利用深度學習理解 QR 碼識別:圖 1

將會出現以下視窗。

如何理解使用深度學習的 QR 碼識別:圖 2

輸入模型名稱,然後點擊新增按鈕。 接下來的視窗將會出現:

如何利用深度學習理解 QR Code 辨識:圖 3

向下滾動,並在電腦視覺下找到“物件偵測”。

如何利用深度學習理解 QR 碼識別:圖 4

第 4 步:選擇訓練環境

選擇物件檢測,因為我們需要從給定的數據集中檢測 QR 碼。 根據您的偏好選擇本地或 Azure。 在此示例中,我們選擇 Local。

點擊本地後,將會出現以下窗口:

如何理解使用深度學習進行QR碼識別:圖5

選擇您偏好的本地 CPU 或 GPU。您也可以選擇 Azure。 為此,您應該擁有有效的 Azure 訂閱。 選擇測試環境後,點擊「下一步」按鈕。 以下視窗將會出現。

如何使用深度學習理解 QR 碼識別:圖6

步驟 5:選擇資料

選擇資料是訓練過程中最重要的部分。 如前所述,我將從中獲取數據Robo Flow. 打開 RoboFlow,搜尋 QR Code。 數據可能有白色 QR 碼或有許多本地特徵。 我正在使用 QR 檢測計算機視覺資料集本教程。 選擇格式下載數據。 我選擇了 COCO 格式來下載這個數據。 由於這種格式將進一步用於資料預處理和圖像識別。

如何使用深度學習理解QR碼識別:圖7

現在你有了數據,讓我們回到 Visual Studio。 選擇上面下載的 Coco 文件的輸入路徑。 您也可以選擇使用Vott,但為了使用它,您需要為您的數據建立Vott文件。 以下視窗將會出現。

如何使用深度學習理解 QR Code 識別: 圖 8

現在,點擊下一步按鈕並移至訓練標籤。

如何使用深度學習理解 QR 碼識別:圖 9

步驟 6:訓練 QR Code 檢測模型

現在,點擊「開始訓練模型」以開始訓練。 模型建構器將自動轉換為二進制圖像並相應地使用首選的神經網路。 我們不需要指定任何事情。 Model Builder 最棒的地方在於即使是缺乏深度學習背景的開發者也能夠訓練、測試及使用模型。

使用深度學習理解 QR 碼識別:圖 10

模型建構工具將在指定的數據集上訓練模型並顯示訓練進度。 上述訓練將根據系統需要時間進行。 模型將逐一獲取所有的QR碼並學習其特徵。 訓練完成後,您可以通過將任何測試 QR 碼圖像傳遞給模型來測試您的模型。

步驟7:評估模型

訓練完成後,模型構建器將在驗證數據上評估模型的性能。

您將看到評估指標,如準確率、精確率、召回率和 F1 分數。 這些指標評估模型的表現如何。

第 8 步:使用

現在我們的模型已經訓練完成且 QR Code 偵測器已經準備就緒,我們需要使用該模型來偵測代碼,然後解碼偵測到的 QR Code。 此模型僅檢測給定輸入中是否包含任何快速響應碼。 這不會解碼 QR Code。 進行 QR Code 解碼,我們需要第三方庫。 Iron Barcode 是最佳的庫,用於讀取 QR Code 圖像。 在進一步探索之前,讓我們先了解一下 Iron Barcode。

Iron Barcode - QR Code 解碼庫

IronBarcode是一個專門為處理QR碼而設計的.NET函式庫,QR碼是一種廣泛用於編碼資訊的二維條碼,例如網址、文字、聯絡資訊等。 該庫透過提供開發人員直觀的工具來簡化 QR 碼的創建,允許自訂特徵如大小、顏色和錯誤修正。

此外,IronBarcode 能夠從嵌入於圖像中的 QR 碼中提取資訊,使其成為在 .NET 應用程式中無縫整合 QR 碼生成和解碼功能的重要資源。

在本教程中,如果從我們的模型中檢測到 QR Code,我們將使用它來解碼 QR Code。

安裝 Iron Barcode NuGet 套件

在 NuGet 套件管理器主控台中輸入以下命令下載IronBarcode NuGet 套件.

Install-Package BarCode

上述命令將安裝 IronBarcode 套件,並將其添加為我們專案的引用。

如何通過深度學習理解 QR Code 識別:圖 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

結論

總而言之,Model Builder 與 IronBarcode 函式庫對於想要處理 QR 碼的 .NET 開發者來說是寶貴的組合。 模型生成器讓創建和訓練 QR 代碼識別模型的複雜工作變得相當簡單。 當您加入IronBarcode庫時,事情變得更加簡單——它幫助輕鬆從圖片中讀取QR碼。 這種團隊合作不僅使庫存和營銷任務變得更好,還讓您的應用程式更有趣。 當 Model Builder 與 IronBarcode 結合時,就像將超智能技術融入您的 .NET 應用程式中,為 QR code 相關的功能開啟各種酷炫的可能性。 IronBarcode商業許可證以非常低的成本提供,並具有免費試用授權.

< 上一頁
第4版 QR 碼最多 50 字符(初學者指南)
下一個 >
如何為Google表單製作QR碼

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,290,353 查看許可證 >