使用 ML.NET 和 Windows 機器學習 的影像分類
本指南將示範如何使用 ML.NET 模型產生器將食物影像分類的類神經網路模型、將模型匯出至 ONNX 格式,以及在 Windows 裝置本機執行的 Windows 機器學習 應用程式中部署模型。 不需要先前在機器學習方面的專業知識,我們將逐步引導您完成此程式。
如果您想要瞭解如何使用 ML.NET 模型產生器來建置和定型模型,您可以繼續訓練 模型 。
如果您有模型,而且想要瞭解如何從頭開始建立 WinML 應用程式,請流覽至完整的 WinML 應用程式教學課程 。
如果您想要取得 WinML 應用程式的預先定義解決方案,您可以複製 方案檔 並立即進行測試。
案例
在本教學課程中,我們將建立在 Windows 裝置上執行的機器學習食品分類應用程式。 模型會定型以辨識特定類型的模式來分類食物的影像,而給定的影像何時會傳回分類標記和該分類的相關百分比信賴值。
模型定型的必要條件
若要建置和定型模型,您將在 Visual Studio 中使用 ML.NET Model Buider。
- 您將需要 Visual Studio 2019 16.6.1 或更新版本,才能使用 ML.NET 模型產生器。 您可以在這裡取得 Visual Studio。
- 您必須有 Azure 帳戶,才能在 Azure ML 工作區內使用 ML.NET 模型產生器來定型模型。 如果您不熟悉 Azure,您可以註冊 Azure 免費帳戶 。
注意
有興趣深入瞭解 Azure 註冊選項和 Azure 免費帳戶嗎? 請參閱 建立 Azure 帳戶 。
ML.NET 模型產生器是直覺式圖形化 Visual Studio 延伸模組,可用來建置、定型及部署自訂機器學習模型。 它會使用自動化機器學習 (AutoML) 來探索不同的機器學習演算法和設定,以協助您找出最適合您案例的機器學習演算法和設定。
當您安裝其中一個 .NET 工作負載時,ML.NET Model Builder 隨附于 Visual Studio 16.6.1 版或更新版本。 當您下載或修改 Visual Studio 時,請務必在安裝程式中核取 ML.NET 模型產生器元件。 若要檢查 VS 是否有 ML.NET 模型產生器元件,請移至 [擴充功能],然後選取 [管理擴充功能]。 在搜尋列中輸入模型產生器,以檢閱延伸模組結果。
ML.NET 模型產生器目前是預覽功能。 因此,若要使用此工具,在 Visual Studio 中,您必須移至 [工具 > 選項 > 環境 > 預覽功能] 並啟用 ML.NET 模型產生器:
注意
有興趣深入瞭解 ML.NET 模型產生器及其支援的不同案例嗎? 請檢閱 模型產生器檔。
Windows ML 應用程式部署的必要條件
若要建立及部署 Widows ML 應用程式,您需要下列專案:
- Windows 10 版本 1809(組建 17763) 或更高版本。 您可以透過 [執行] 命令
(Windows logo key + R)
執行winver
來檢查組建版本號碼。 - 適用于組建 17763 或更高版本的 Windows SDK。 您可以在這裡取得 SDK。
- Visual Studio 2019 16.6.1 版或更新版本。 您可以在這裡取得 Visual Studio。
- Windows ML 程式碼產生器 (mlgen) Visual Studio 擴充功能。 下載 VS 2019 。
- 如果您決定建立 UWP 應用程式,則必須在 Visual Studio 中啟用通用 Windows 平臺開發工作負載。
- 您也需要 在電腦上啟用開發人員模式
注意
Windows ML API 內建于最新版的 Windows 10(1809 或更高版本)和 Windows Server 2019 中。 如果您的目標平臺是舊版 Windows,您可以將 WinML 應用程式移植到可轉散發的 NuGet 套件(Windows 8.1 或更高版本)。
準備資料
機器學習模型必須使用現有的資料定型。 在本指南中,您將使用 Kaggle Open Datasets 中食物影像的資料集。 此資料集會以公用網域授權散發。
重要
若要使用此資料集,您必須遵守使用 Kaggle 網站和 Food-11 資料集本身隨附的 liscence 詞彙。 Microsoft 不會對網站或此資料集提出任何擔保或表示。
資料集有三個分割-評估、訓練和驗證-並包含 16643 個食物影像,分組在 11 個主要食品類別中。 每個食物類別資料集中的影像會放在個別的資料夾中,讓模型定型程式更方便。
在這裡 下載資料集 。 請注意,資料集的大小約為 1 GB,而且您可能會被要求在 Kaggle 網站上建立帳戶以下載資料。
如果您想要,歡迎使用任何其他相關影像資料集。 建議您至少在初始定型集中使用每個標記 30 個影像。 您也會想要收集一些額外的影像,以在模型定型之後進行測試。
此外,請確定您的所有定型影像都符合下列準則:
- .jpg、.png、.bmp 或 .gif 格式。
- 大小不超過 6 MB(預測影像為 4MB)。
- 最短邊緣不小於 256 圖元;比這個短的任何影像都會由 自訂視覺 服務自動相應增加。
後續步驟
既然您已整理好必要條件並備妥資料集,您可以繼續建立 WinML 模型。 在下一個部分中 ,您將使用 ML.NET 模型產生器來建立和定型分類模型。