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下載了資料。 您可以根據您的偏好從任何來源下載。 下載資料集後,建立一個主目錄,然後將兩個資料集放入該主目錄中。 資料被組織成兩個子目錄:
- 條形碼
- QR碼

下一步是打開Visual Studio,建立一個新的機器學習模型。
步驟2:在Visual Studio中建立專案並新增新的機器學習模型
在Visual Studio中建立您的專案。 專案可以是任何型別,例如ASP.NET Web API、ASP.NET MVC、WEB Forms或控制台應用程式。 在此例中,我使用的是控制台應用程式。 在解決方案資源管理器中,右鍵點擊專案。 選擇新增 > 機器學習模型,如下所示。

命名您的機器學習模型,然後點擊新增按鈕。

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

步驟4:選擇環境
選擇場景後的下一步是選擇環境。 我們可以選擇在本地系統上訓練模型,或者選擇Azure雲。 如果要使用Azure作為我們的環境,我們必須有有效的Azure訂閱。
步驟5:選擇資料
在此步驟中,我們需要傳入之前在步驟#1中收集的資料。我們已經按照Model Builder的要求在步驟#1中將資料組織成了子類別。
在選擇資料夾選項中提供你的資料集主目錄的路徑。 我們可以預覽下面顯示的資料。

我們還可以通過點擊資料預覽中的QR碼選項卡查看QR碼資料夾。

選擇資料後,點擊下一步按鈕,將帶您進入訓練畫面。
步驟6:訓練模型
點擊開始訓練模型,它將開始訓練,如下所示。 請確保Visual Studio未以管理員模式開啟,否則將拋出錯誤。

它將開始訓練並需要時間。訓練時間會依據系統能力而有所不同。 Model Builder uses AutoML. 它將自動使用合適的機器學習技術、錯誤校正水平、識別模式、噪聲減少、對比調整、學習過程和其他設置。
步驟7:模型評估
訓練後,通過輸入測試資料以確保準確分類來評估模型的性能。
步驟8:使用模型
模型經過訓練和評估後,我們可以導出並使用它。 在我們的使用案例中,我們必須將QR碼從條形碼中分類出來,然後讀取其編碼的資料。 我們需要一個第三方庫來解碼資料,因為機器學習模型無法解碼QR碼或條形碼,它只會分類。
IronBarcode是一個解碼QR碼和條形碼的理想庫。 我們可以使用單一庫以簡便的方式解碼這兩種型別的程式碼。 讓我們在進一步進行之前,簡單介紹一下IronBarcode。


