條碼工具 如何運用深度學習理解二維碼識別 Curtis Chau 更新:2025年6月22日 下載 IronBarcode NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 快速回應 (QR) 碼已成為我們數位生活中不可或缺的一部分,促進了無縫資料共享和資訊檢索。 辨識影像中的二維碼是深度學習(人工智慧的一個分支)的重要應用。 在本文中,我們將指導您使用深入學習在 .NET/C# 中構建 QR 代碼識別系統的過程。 利用深度學習理解二維碼識別 深度學習是機器學習的一個分支,它涉及訓練神經網路從資料中學習複雜的模式。 在二維碼辨識領域,可以訓練深度學習模型來辨識和解碼不同尺寸、方向和條件下的影像中的二維碼。 卷積神經網路(CNN)能夠捕捉複雜的視覺特徵,因此是二維碼識別等基於圖像的任務的熱門選擇。 在本文中,我們將使用ML.NET 模型建構器來訓練我們的模型。 ML.NET 模型建構器 模型建構器是微軟提供的強大工具,作為ML.NET框架的一部分,用於在 .NET/C# 中建立機器學習模型。 它簡化並加速了創建自訂機器學習模型的過程,無需深入了解機器學習演算法或具備豐富的編碼經驗。模型建構器設計友善易用,是希望在其應用程式中利用機器學習功能的開發人員的理想工具。 模型建構器支援 AutoML,它會自動探索不同的機器學習演算法和設置,幫助您找到最適合您場景的演算法和設定。 訓練二維碼辨識模型 使用模型建構器訓練二維碼辨識模型涉及一系列步驟,這些步驟將引導您完成建立和訓練模型的過程。 在本逐步指南中,我們將引導您完成使用 .NET/C# 中的模型建構器訓練二維碼模型的每個階段。 步驟 1:設定環境 在深入實施之前,請確保您已具備以下先決條件: Visual Studio:下載並安裝Visual Studio ,這是一個功能強大的 .NET 開發整合開發環境 (IDE)。 模型建構器:您可以點擊此處下載 ML.NET 模型建構器。 步驟二:資料準備 我們需要二維碼圖片來訓練我們的模型。 您可以從Kaggle或Roboflow取得二維碼圖片。 本範例中使用的二維碼圖片來自 Roboflow。 步驟 3:開啟模型建構器 開啟 Visual Studio 專案。 右鍵點選項目 > 新增 > 機器學習模型... 如何利用深度學習理解二維碼辨識:圖 1 將會彈出以下視窗。 如何利用深度學習理解二維碼辨識:圖 2 輸入模型名稱,然後點選"新增"按鈕。 將出現以下視窗: 如何利用深度學習理解二維碼辨識:圖 3 向下捲動,在"電腦視覺"下找到"目標檢測"。 如何利用深度學習理解二維碼辨識:圖 4 步驟 4:選擇訓練環境 選擇目標檢測,因為我們需要從給定的資料集中檢測二維碼。 根據個人喜好選擇本地或 Azure。 本範例選擇本機模式。 點擊"本地"後,將出現以下視窗: 如何利用深度學習理解二維碼辨識:圖 5 根據您的選擇,可以選擇本機 CPU 或 GPU。您也可以選擇 Azure。 為此,您需要擁有有效的 Azure 訂閱。 選擇測試環境後,按一下"下一步"按鈕。 將出現以下視窗。 如何利用深度學習理解二維碼辨識:圖 6 步驟 5:選擇數據 選擇資料是訓練過程中最重要的部分。 如前所述,我將從Robo Flow取得數據。 開啟 RoboFlow,搜尋二維碼。 資料可能包含白色二維碼或具有許多本地化特徵。 本教程中使用的是二維碼檢測電腦視覺資料集。 選擇格式下載資料。 我選擇 COCO 格式下載此數據,因為該格式將用於後續的數據預處理和影像辨識。 如何利用深度學習理解二維碼辨識:圖 7 現在你已經有了數據,讓我們回到 Visual Studio 吧。 選擇上面下載的 COCO 檔案的輸入路徑。 您也可以選擇 Vott,但為此,您需要為您的資料建立 Vott 檔案。 將出現以下視窗。 如何利用深度學習理解二維碼辨識:圖 8 現在,點擊"下一步"按鈕,然後轉到"訓練"標籤。 如何運用深度學習理解二維碼辨識:圖 9 步驟 6:訓練二維碼偵測模型 現在,點擊"開始訓練模型"開始訓練。 模型建構器將自動轉換為二值影像,並相應地使用首選神經網路。 我們無需具體說明任何內容。 模型建構器最大的優點在於,即使是深度學習背景有限的開發人員也可以訓練、測試和使用模型。 如何利用深度學習理解二維碼辨識:圖 10 模型建構器將在指定的資料集上訓練模型並顯示訓練進度。 上述訓練所需時間取決於系統狀況。 該模型將逐一讀取所有二維碼並學習其特徵。 訓練完成後,您可以透過向模型傳遞任何測試二維碼圖像來測試您的模型。 步驟 7:評估模型 訓練完成後,模型建構器將評估模型在驗證資料上的表現。 您會看到準確率、精確率、召回率和 F1 分數等評估指標。 這些指標用於評估模型的性能。 步驟 8:食用 現在我們的模型已經訓練完成,二維碼檢測器也已準備就緒,我們需要使用該模型來檢測二維碼,然後解碼檢測到的二維碼。 此模型僅偵測給定輸入是否包含二維碼。 這樣無法解碼二維碼。 對於二維碼解碼,我們需要一個第三方函式庫。 Iron Barcode 是讀取二維碼影像的最佳函式庫。 在繼續之前,讓我們先來了解一下Iron Barcode。 Iron Barcode——二維碼解碼庫 IronBarcode是一個專門用於處理二維碼的 .NET 函式庫,二維碼是一種廣泛用於編碼 URL、文字、聯絡資訊等資訊的二維條碼。 該程式庫透過為開發者提供直覺的工具來簡化二維碼的創建,這些工具可以產生具有可自訂功能(如大小、顏色和糾錯)的二維碼。 此外,IronBarcode 能夠從嵌入圖像中的二維碼中提取訊息,使其成為將二維碼生成和解碼功能無縫整合到 .NET 應用程式中的不可或缺的資源。 在本教程中,我們將使用它來解碼模型偵測到的二維碼。 安裝 Iron Barcode NuGet 套件 在 NuGet 套件管理器控制台中輸入以下命令以下載IronBarcode NuGet 套件。 Install-Package BarCode 上述命令將安裝 Iron Barcode 軟體包,並在我們的專案中加入引用。 如何利用深度學習理解二維碼辨識:圖 11 解碼二維碼 編寫以下程式碼來讀取偵測到的單一二維碼。 using IronBarCode; string qrCodeImagePath = "myQrCode.png"; // Quickly reads a single QR Code from the provided image path var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath); // Outputs the decoded value from the QR Code Console.WriteLine(data.Value.ToString()); using IronBarCode; string qrCodeImagePath = "myQrCode.png"; // Quickly reads a single QR Code from the provided image path var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath); // Outputs the decoded value from the QR Code Console.WriteLine(data.Value.ToString()); Imports IronBarCode Private qrCodeImagePath As String = "myQrCode.png" ' Quickly reads a single QR Code from the provided image path Private data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath) ' Outputs the decoded value from the QR Code Console.WriteLine(data.Value.ToString()) $vbLabelText $csharpLabel 以下是輸出結果: 如何利用深度學習理解二維碼辨識:圖 12 結論 總之,對於想要使用二維碼的 .NET 開發人員來說,模型建構器和 IronBarcode 函式庫是一個非常有價值的組合。 模型建構器使創建和訓練二維碼識別模型這項棘手的工作變得非常簡單。 而當你添加 IronBarcode 庫時,事情就變得更加簡單了——它可以幫助輕鬆讀取圖片中的二維碼。 這種團隊合作不僅能更好地完成庫存和行銷任務,還能讓你的應用程式更有趣。 當模型建構器和 IronBarcode 結合在一起時,就像將超級智慧技術融入你的 .NET 應用程式一樣,為二維碼相關功能開啟了各種酷炫的可能性。 Iron Barcode商業許可證價格非常低廉,並提供免費試用許可證。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 相關文章 更新2025年10月29日 使用 IronBarcode 輕鬆產生符合 GS1 標準的條碼 學習如何使用 IronBarcode 以程式方式產生 GS1 條碼。按照我們的逐步指南,建立、自訂和驗證 GS1-128 和 DataMatrix 條碼,實現無縫的供應鏈管理。 閱讀更多 更新2025年10月29日 逐步指南:如何使用 QR Code Chimp 產生器 了解如何使用 QR Code Chimp Generator 產生動態二維碼。按照我們的逐步指南操作,探索各種自訂選項,實現高效的數位行銷。 閱讀更多 更新2025年7月28日 適用於安卓開發者的最佳條碼掃描器應用 在本文中,我們將探討一些適用於 Android 的最佳條碼掃描器應用程序,重點介紹它們的主要功能以及它們如何簡化日常任務。 閱讀更多 第四版二維碼,最多50個字(新手指南)如何為 Google 表單建立二維碼
更新2025年10月29日 使用 IronBarcode 輕鬆產生符合 GS1 標準的條碼 學習如何使用 IronBarcode 以程式方式產生 GS1 條碼。按照我們的逐步指南,建立、自訂和驗證 GS1-128 和 DataMatrix 條碼,實現無縫的供應鏈管理。 閱讀更多
更新2025年10月29日 逐步指南:如何使用 QR Code Chimp 產生器 了解如何使用 QR Code Chimp Generator 產生動態二維碼。按照我們的逐步指南操作,探索各種自訂選項,實現高效的數位行銷。 閱讀更多