跳至頁尾內容
條碼工具

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

QR碼已成為現代社會不可或缺的一部分,革新了資訊共享和存取的方式。 這些二維條碼由黑白方陣組成,可以使用智慧型手機相機掃描來快速檢索儲存的資訊,例如URL、聯絡資訊、網站URL、產品資訊等。 然而,隨著技術發展,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 uses AutoML. 它將自動使用合適的機器學習技術、錯誤校正水平、識別模式、噪聲減少、對比調整、學習過程和其他設置。

步驟7:模型評估

訓練後,通過輸入測試資料以確保準確分類來評估模型的性能。

步驟8:使用模型

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

IronBarcode是一個解碼QR碼和條形碼的理想庫。 我們可以使用單一庫以簡便的方式解碼這兩種型別的程式碼。 讓我們在進一步進行之前,簡單介紹一下IronBarcode。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話