AI時代的網站與手機App建置與開發Part8 - 使用ML.NET執行影像分類
· 摘要
ML.NET不僅可以支援分類表格式的資料, 也可以分類影像資料. 在分類表格式的資料, 必須指定資料的某一個特徵為分類的結果, 例如在[AI時代的網站與手機App建置與開發Part4
- 整合ML.NET與ASP.NET
Core MVC網站-建立訓練機器學習模型]這篇文章中就指定訓練資料中的class特徵為分類的結果, 如果要分類影像或聲音之類的資料, 因為無法經由人工挑選特徵, 所以必須使用深度學習技術來訓練技術學習模型.
在這篇文章中, 我們將要使用ML.NET程式庫, 利用其支援的深度學習功能訓練能夠執行影像辨識的機器學習模型.
![]() |
文章範例下載:https://github.com/CraigIII/MLNetImageClassification.git
·
準備訓練資料
首先請準備訓練機器學習模型的素材, 也就是欲辨識的影像, 例如我們想要訓練機器學習模型辨識動物, 就要準備欲辨識的動物的圖片, 例如狗的圖片, 貓的圖片, 牛的圖片, 等等. 請將欲辨識的圖片統一放在同一個資料夾中.
·
建立專案並加入機器學習模型
請啟動Visual Studio建立型態為[ASP.NET Core
MVC應用程式(Model-View-Controller)]型態的專案 , 然後使用滑鼠右鍵點選[方案總管]視窗中的專案名稱, 執行[加入 | 機器學習模型]功能, 做好之後請選擇[電腦視覺]項目的[影像分類], 您就會看到選擇機器學習執行環境的畫面, 如圖1所示;
圖1: 選擇機器學習執行環境的畫面
點選[下一步], 您會看到選擇訓練機器學習模型的環境的畫面, 如圖2所示:
圖2: 選擇訓練機器學習模型的環境的畫面
您可以選擇本機電腦的CPU環境, 本機電腦GPU環境, 或是Azure雲端環境來訓練機器學習模型. 選妥之後請點選[下一步]鍵, 您就會看到輸入訓練資料的畫面.
請將訓練圖片統一放在一個資料夾(例如名稱為images的資料夾)底下, 如下圖所示:
請使用圖2中選取資料夾功能選取存放有訓練影像的資料夾, 畫面上就會顯示所選擇的資料夾中的圖片的預覽, 如圖3所示:
圖3: 輸入妥訓練資料的畫面
準備妥訓練圖片之後請按下[下一步]鍵, 您就會看到執行訓練機器學習模型的畫面, 如圖4所示:
圖4: 執行訓練機器學習模型的畫面
點選[執行訓練]鍵, 並等待訓練完成. 訓練完成後請點選[下一步]鍵進入評估畫面. 請點選畫面中的[瀏覽影像]連結, 選取一張影像進行評估, 評估完成後您就會看到如圖5所示的畫面:
圖5: 評估訓練妥的機器學習模型的畫面
如果評估結果可以接受, 可以按下[下一步]鍵, 進入建立取用訓練妥機器學習模型的畫面, 如圖6所示, 如果評估結果不準確, 可以準備更多的訓練圖片, 再回到輸入訓練資料的畫面, 重新整理訓練影像, 並重新進行訓練與評估, 直到滿意訓練結果為止:
圖6: 建立取用訓練妥機器學習模型的畫面
請注意如果您想建立提供機器學習服務給眾多的應用程式使用, 可以選擇點選圖6畫面中的[Web API]項目右方的[新增至解決方案]連結, Visual Studio建立的Web API專案將會提供/predict端點供需要機器學習服務的應用程式呼叫使用. 如果所建立的機器學習模型只要支援自己建立的程式使用, 請點選圖6畫面中的[主控台應用程式]項目右方的[新增至解決方案]連結, 由Visual Studio建立叫用訓練妥機器學習模型的主控台應用程式專案.
請點選圖6畫面中的[Web API]項目右方的[新增至解決方案]連結, 執行建立[Web API]專案的動作, Visual Studio就會將訓練妥的機器學習模型部署到新建立的[Web API]專案當做Server程式.
做好之後請再點選圖6畫面中的[主控台應用程式]項目右方的[新增至解決方案]連結, 由Visual
Studio建立叫用機器學習模型的主控台應用程式專案.
建立妥部署有機器學習模型的Server專案與Client專案之後, 請使用Visual Studio設定啟動專案, 將啟動專案設定成叫用機器學習模型的主控台應用程式專案.
設定完成之後請執行專案, 您就會看到Client專案將讀取的影像檔案的內容傳送給機器學習模型評估的結果, 如圖7所示:
圖7: Client專案將讀取的影像檔案的內容傳送給機器學習模型評估的結果
按下圖6畫面中的[下一步]鍵, 可以看到[部署您的模型], [在Azure中訓練], 和[改進模型]三個選項, 點選這些選項可以獲取有關將訓練妥的機器學習模型部署到Microsoft Azure雲端平台, 在Azure雲端平台訓練機器學習模型, 和改進訓練妥的機器學習模型的相關文件.
·
後續處理
下一回我們將為大家示範如何將叫用部署有機器學習模型的Server專案程式碼移植到ASP.NET Core MVC網站專案或是MAUI跨平台手機App專案.









留言
張貼留言