在本教學課程 的上一個階段中,我們已討論建立您自己的 Windows Machine Learning 模型和應用程式的必要條件,並下載要使用的映像集。 在此階段中,我們將瞭解如何使用 Web 型自定義視覺介面,將影像集轉換成影像分類模型。
Azure 自定義視覺是影像辨識服務,可讓您建置、部署及改善您自己的映像標識符。 Custom Vision 服務提供一組原生 SDK,並可以透過 Custom Vision 網站的網頁介面使用。
建立自定義視覺資源和專案
建立自定義視覺資源
若要使用自定義視覺服務,您必須在 Azure 中建立自定義視覺資源。
- 瀏覽至 Azure 帳戶的主頁面,然後選取
Create a resource。
- 在搜尋方塊中,搜尋
Custom Vision,然後輸入 Azure Marketplace。 選取Create Custom Vision以開啟 [建立自定義視覺] 頁面上的對話框視窗。
- 在 [自定義視覺] 頁面上,選擇下列項目:
- 選取
Training和Prediction資源。 - 選取訂用帳戶以管理已部署資源。 如果您沒有在功能表中看到您的 Azure 訂用帳戶,請使用您用來開啟帳戶的相同認證註銷並重新開啟您的 Azure 帳戶。
- 建立新的資源群組,併為其命名。 在本教學課程中,我們將其命名為
MLTraining,但您可以隨意選擇自己的名稱,或如果您已經有資源群組,請使用現有的資源群組。 - 為專案命名。 在本教學課程中,我們已將我們的命名為
classificationApp,但您可以使用任何您選擇的名稱。 - 針對
Training和Prediction兩者資源,將位置設定為US美國東部,並將定價層級設定為免費FO。
- 按
Review + create以部署您的自定義視覺資源。 部署資源可能需要幾分鐘的時間。
在自定義視覺中建立新專案
現在您已建立資源,現在可以在自定義視覺中建立訓練專案。
在您的網頁瀏覽器中,瀏覽至 [自訂視覺 ] 頁面,然後選取
Sign in。 使用您用來登入 Azure 入口網站的相同帳戶登入。選取
New Project以開啟新的項目對話框。
- 建立新的專案,如下所示:
-
Name:食物分類。 -
Description:不同類型的食物分類。 -
Resource:保留您先前開啟的相同資源 –ClassificationApp [F0]。 -
Project Types:classification -
Classification Types:Multilabel (Multiple tags per image) -
Domains:Food (compact)。 -
Export Capabilities:Basic platforms (Tensorflow, CoreML, ONNX, ...)
備註
若要匯出至 ONNX 格式,請確定您選擇網域 Food (compact) 。 無法將非精簡網域匯出至 ONNX。
這很重要
如果您的登入帳戶與 Azure 帳戶相關聯,[資源群組] 下拉式清單會顯示所有包含自定義視覺服務資源的 Azure 資源群組。 如果沒有可用的資源群組,請確認您已使用您用來登入 Azure 入口網站的相同帳戶登入 customvision.ai。
- 填入對話框之後,請選擇
Create project。
上傳訓練數據集
既然您已建立專案,您將會從 Kaggle Open Datasets 上傳先前準備的食品影像數據集。
選取您的
FoodClassification項目以開啟自定義視覺網站的 Web 介面。選取
Add images按鈕,然後選擇Browse local files。
瀏覽至影像資料集的位置,然後選取訓練資料夾 –
vegetable-fruit。 選取資料夾中的所有影像,然後選取open。 標記選項將會開啟。在
vegetable-fruit欄位中輸入My Tags,然後按Upload。
等到第一組影像上傳至您的項目,然後按 done。 標籤選取專案會套用至您選取要上傳的整個影像群組。 這就是為什麼從已預先建置的映像群組上傳影像會比較容易。 上傳個別影像之後,您一律可以變更這些影像的標籤。
- 成功上傳第一組影像后,再重複兩次程式,上傳甜點和湯的圖像。 請務必替它們貼上相關的標籤。
最後,您將有三個不同的影像群組可供訓練。
訓練模型分類器
您現在將訓練模型,以分類您在上一個部分中下載的一組影像中的蔬菜、湯和甜點。
- 若要開始訓練過程,請選取右上角的
Train按鈕。 分類器會使用影像來建立模型,以識別每個標記的視覺品質。
您可以選擇使用左上角的滑桿來變更機率臨界值。 機率臨界值會設定預測必須擁有的信賴等級,才能視為正確。 如果機率臨界值太高,您將會有更多正確的分類,但受到偵測的數量會減少。 另一方面,如果機率臨界值太低,您將檢測到更多的分類,但信賴度較低或有更多誤判的結果。
在本教學課程中,您可以將機率臨界值保持在 50%。
- 在這裡,我們將使用
Quick Training程式。Advanced Training有更多的設定功能,可以讓您特別設定培訓所需的時間,但我們在這裡不需要如此精細的控制。 按Train以開始訓練過程。
快速訓練過程只需要幾分鐘的時間才能完成。 在此期間,訓練過程的相關信息會顯示在 Performance 索引標籤中。
評估及測試
評估結果
完成訓練後,您會看到首次訓練次數的摘要。 其中包含模型效能的估計 – 精確度 和 召回率。
- 精確度 表示在所有已識別分類中正確分類的比例。 在我們的模型中,精確度為98.2%,因此,如果我們的模型分類影像,很可能可以正確預測。
- 召回率 表示在實際分類中正確識別的比例。 在我們的模型中,召回率是97.5%,因此我們的模型會適當地分類呈現給它的絕大多數影像。
- AP 代表其他效能。 這提供額外的指標,用於總結在不同臨界值下的精確度和召回率。
測試模型
匯出模型之前,您可以測試其效能。
- 選取
Quick Test頂端功能表列右上角的 ,以開啟新的測試視窗。
在此視窗中,您可以提供要測試之影像的 URL,或選取 Browse local files 以使用本機儲存的影像。
- 選擇
Browse local files,流覽至食物數據集,然後開啟驗證資料夾。 從fruit-vegetable資料夾中選擇任何隨機影像,然後按open。
測試的結果會出現在畫面上。 在我們的測試中,模型成功地以99.8% 的置信度將影像分類。
您可以在 Predictions 分頁標籤中使用預測來訓練,以提升模型效能。 如需詳細資訊,請參閱 如何改善分類器。
備註
有興趣深入瞭解 Azure 自定義視覺 API 嗎? 自定義視覺服務檔提供有關自定義視覺入口網站和 SDK 的詳細資訊。
將模型導出至 ONNX
現在我們已將模型定型,我們可以將其導出至 ONNX。
- 選取索引
Performance標籤,然後選擇Export開啟匯出視窗。
- 選取
ONNX以將模型匯出至 ONNX 格式。
- 如有需要,您可以選擇
ONNX 16float 選項,但在本教學課程中,我們不需要變更任何設定。 選取Export and Download。
- 開啟下載的 .zip 檔案,並從中擷取
model.onnx檔案。 此檔案包含分類器模型。
祝賀! 您已成功建置和匯出分類模型。
後續步驟
既然我們有分類模型,下一個步驟是建置 Windows 應用程式,並在您的 Windows 裝置本機執行。