在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
快速響應(QR)碼已成為現代社會中不可或缺的一部分,徹底改變了信息的共享和訪問方式。 這些二維條碼由黑白方塊矩陣組成,可以使用智能手機相機掃描以快速檢索存儲的信息,例如網址、聯繫資料、網站網址、產品詳細信息等。 然而,隨著技術的演變,QR 碼的功能也在不斷提升。 機器學習 (ML) 已成為增強 QR 碼生成、識別和解碼過程的強大工具,從而提升使用者體驗並增強功能。
資訊與數據交換的世界因為廣泛使用 QR 碼和條形碼而發生了變革。 這些二維碼提供快速進入數位內容的方式,並在各行業中發揮多種用途。 然而,區分 QR 碼和條碼可能具有挑戰性,特別是在處理多樣化的代碼範圍時。 通過利用機器學習 (ML) 和 .NET/C# 框架的強大功能,開發人員可以創建一個智能系統,準確地分類 QR 代碼和條碼,從而幫助簡化數據處理並提升用戶體驗。 集成IronBarcode的解碼功能進一步增強了解決方案,實現從識別的代碼中準確提取內容。
在本文中,我們將訓練模型,將給定的輸入分類為條碼或 QR 碼,然後使用 IronBarcode 解碼輸入代碼。
Model Builder 是 Visual Studio 的一個整合工具,透過提供直觀的介面,簡化了建立機器學習模型的過程。 我們將使用模型生成器來創建一個能區分QR碼和條碼的分類模型。 一旦分類完成,我們將整合IronBarcode來解碼已識別的代碼。
訓練任何類型的模型的首要步驟是數據收集。 我們需要數據來訓練模型。 我已從Kaggle下載數據。 您可以根據您的偏好從任何來源下載它。 在下載數據集後,創建一個主目錄,並將兩個數據集放入該主目錄中。 數據被組織到兩個子目錄中:
條碼
QR碼
下一步是開啟 Visual Studio 然後創建一個新的機器學習模型。
在 Visual Studio 中創建您的專案。 專案可以是任何類型,例如 ASP.NET Web API、ASP.NET MVC、WEB Forms 或主控台應用程式。 在此範例中,我正在使用主控台應用程式。 在方案資源管理器中右鍵點擊專案。 選擇新增 > 機器學習模型,如下所示。
為您的機器學習模型命名並點擊“新增”按鈕。
添加機器學習模型檔案後,將會出現一個新窗口。向下滾動並選擇圖像分類。 圖像分類是我們在本教程中將使用的計算機視覺技術之一。 我們選擇圖像分類而不是圖像識別,因為我們只需要區分快速響應代碼(QR Code)和條形碼,而不需要從給定的圖像中識別它們。
在選擇情境之後的下一步就是選擇環境。 我們可以選擇在本地系統或 Azure 雲端上訓練模型。 我們必須擁有 Azure 的有效訂閱才能將 Azure 作為我們的環境使用。
在此步驟中,我們需要傳遞之前在步驟#1中收集的數據。我們已經按照模型構建器的要求在步驟#1中將數據組織成子類別。
在「選擇資料夾」選項中提供您的資料集主目錄的路徑。 我們可以預覽如下所示的數據。
我們也可以透過點擊數據預覽中的 QR 碼標籤來查看 QR 碼資料夾。
選擇資料後,點擊下一步按鈕,系統將帶您進入訓練畫面。
點擊「開始訓練模型」,然後它將按照下圖開始訓練。 請確保 Visual Studio 未以管理員模式開啟,否則將會引發錯誤。
它將開始訓練,並需要一些時間。訓練的持續時間將根據系統能力而有所不同。 模型生成器使用自動化機器學習 (AutoML)。 它將自動使用適合的機器學習技術、錯誤更正級別、識別模式、降噪、對比度調整、學習過程和其他設置。
訓練後,透過測試數據評估模型的性能,以確保分類準確。
一旦模型經過訓練和評估,我們就可以匯出並使用它。 在我們的使用案例中,我們必須將 QR Code 與條碼分類,然後讀取其編碼數據。 由於機器學習模型無法解碼 QR 碼或條碼,只能對其進行分類,我們需要一個第三方庫來解碼數據。
IronBarcode 是解碼 QR Code 和條碼的理想程式庫。 我們可以使用單一庫以簡單的方式解碼這兩種類型的代碼。 在進一步進行之前,讓我們先簡要介紹一下IronBarcode。