跳過到頁腳內容
條碼工具

QR碼機器學習:開發人員教程

快速響應(QR)碼已成為現代社會的重要組成部分,徹底改變了信息分享和獲取的方式。 這些二維條碼由黑白方格矩陣組成,可以使用智慧型手機相機掃描,以快速檢索儲存的資訊,例如網址、聯絡方式、網站網址、產品詳細資訊等。 但是,隨著技術的發展,QR碼的功能也在不斷提高。 機器學習(ML)成為增強QR碼生成、識別和解碼過程的強大工具,從而改善了用戶體驗並提高了功能。

QR碼和條碼的廣泛使用已經改變了信息和數據交換的世界。 這些二維代碼提供快速訪問數位內容的方式,並在各行業中發揮了多種用途。 然而,區分QR碼和條碼可能具有挑戰性,尤其是在處理各種代碼時。 通過使用機器學習(ML)和.NET/C#框架的力量,開發人員可以創建出一個智能系統,準確分類QR碼和條碼,簡化數據處理並改善用戶體驗。 整合IronBarcode的解碼能力進一步提升了解決方案,使其能夠從識別出的代碼中準確提取內容。

在本文中,我們將訓練模型,將給定的輸入分類為條碼或QR碼,然後使用IronBarcode解碼輸入代碼。

使用ML.NET Model Builder進行QR碼分類

Model Builder是Visual Studio中的一個集成工具,通過提供直觀的界面來簡化構建機器學習模型的過程。 我們將使用Model Builder創建一個分類模型,以區分QR碼和條碼。 分類完成後,我們將整合IronBarcode來解碼識別出的代碼。

步驟1:數據收集

訓練任何模型的第一步都是數據收集。 我們需要數據來訓練模型。 我已從Kaggle下載了數據。 您可以根據自己的偏好從任何來源下載。 下載數據集後,創建一個主目錄,並將兩個數據集放入該主目錄中。 數據被組織成兩個子目錄:

  1. 條碼
  2. QR碼

QR碼機器學習(開發者教程):圖1

下一步是打開Visual Studio並創建一個新的機器學習模型。

步驟2:在Visual Studio中創建項目並添加一個新的機器學習模型

在Visual Studio中創建您的項目。 項目可以是任何類型,例如ASP.NET Web API、ASP.NET MVC、WEB Forms或控制台應用程式。 在這個例子中,我使用控制台應用程式。 右鍵單擊方案資源管理器中的項目。 選擇添加 > 機器學習模型,如下所示。

QR碼機器學習(開發者教程):圖2

為您的機器學習模型命名並點擊添加按鈕。

QR碼機器學習(開發者教程):圖3

步驟3:選擇場景

在添加機器學習模型文件後會出現一個新窗口。向下滾動並選擇圖片分類。 圖片分類是我們在本教程中將要使用的計算機視覺技術之一。 我們選擇圖片分類而非圖片識別,因為我們只需要區分快速響應碼(QR碼)和條碼,而不需要從給定圖片中識別它們。

QR碼機器學習(開發者教程):圖4

步驟4:選擇環境

選擇場景後,下一步是選擇環境。 我們可以選擇本地系統訓練模型或Azure雲端。 我們必須擁有Azure的有效訂閱才能使用Azure作為我們的環境。

步驟5:選擇數據

在這一步驟中,我們需要傳遞先前在步驟#1中收集的數據。我們已經按照Model Builder的要求在步驟#1中將數據組織成子目錄。

在選擇文件夾選項中提供數據集主目錄的路徑。 我們可以預覽我們的數據,如下所示。

QR碼機器學習(開發者教程):圖5

我們還可以在數據預覽中點擊QR碼選項卡查看QR碼文件夾。

QR碼機器學習(開發者教程):圖6

選擇數據後,點擊下一步按鈕,它將帶您進入訓練畫面。

步驟6:訓練模型

點擊開始訓練模型,它會開始訓練,如下所示。 請確保Visual Studio沒有以管理員模式打開,否則會出現錯誤。

QR碼機器學習(開發者教程):圖7

它會開始訓練並需要時間。訓練的時間長短取決於系統的性能。 Model Builder使用AutoML。 它會自動使用合適的機器學習技術、錯誤修正級別、識別模式、噪音減少、對比度調整、學習過程以及其他設定。

步驟7:模型評估

訓練完成後,通過測試數據來評估模型的性能,以確保準確的分類。

步驟8:使用模型

一旦模型訓練完成並評估,我們可以導出和使用它。 在我們的使用案例中,我們必須將QR碼從條碼中分類出來,然後讀取其編碼數據。 我們需要第三方庫來解碼數據,因為機器學習模型無法解碼QR碼或條碼,它只會分類它。

IronBarcode是解碼QR碼和條碼的理想庫。 我們可以使用單一庫以簡單的方式解碼兩種類型的代碼。 在進一步進行之前,我們來簡單介紹一下IronBarcode。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me