1. 程式人生 > 其它 >使用ML.NET實現健康碼識別

使用ML.NET實現健康碼識別

ML.NET是微軟提供的機器學習庫,從VS2019開始直接整合在VS裡,幫助.NET開發者快速開發自己的機器學習應用。目前ML.NET的資料已經非常豐富,開發者可以到其官網查閱相關資料。https://dotnet.microsoft.com/en-us/learn/ml-dotnet

本篇部落格以健康碼識別(綠碼/黃碼/紅碼)為例,看在.NET中如何使用ML.NET。

一、準備工作

啟用ML.NET Model Builder。VS中工具-選項-預覽功能,勾選Enable ML.NET Model Builder。

然後就可以右鍵專案,新增"機器學習":

二、具體步驟

點選上圖中的“機器學習”,彈出如下頁面:

可以看到有文字分類、影象分類的等等功能。因為我們是分類綠碼黃碼紅碼圖片,所以選擇影象分類。

看到訓練環境可以選擇本地或者Azure(微軟雲)。點選"資料"。

選擇本地準備好的分門別類整理好的健康碼的圖片(將採集到的圖片資料分為兩類:訓練集和測試集,這裡使用訓練集圖片訓練,測試集可以用來測試模型的預測效果)。當然這裡的資料集的質量及數量都有一定的講究,儘量有代表性且數量相等。像我下面的紅碼只有一張圖片就不太符合要求,可能對識別結果準確率有影響(這裡僅做演示)。

點選"訓練"

開始訓練即可。這裡訓練的時長跟機器的配置、網路狀態及圖片的數目都有關係,像上面的資料量在我的電腦上訓練可能需要半個小時左右。

關於這個本地訓練時長的大小,微軟也給出了相應的參考。https://docs.microsoft.com/zh-cn/dotnet/machine-learning/automate-training-with-model-builder#how-long-should-i-train-for

模型訓練中...,如果網路不穩定,會重新下載...

當然更好的方法是直接用迅雷等工具下載這個meta檔案(https://aka.ms/mlnet-resources/resnet_v2_50_299.meta)並放到你本機的MLNET目錄中(比如我的是C:\Users\arizon\AppData\Local\Temp\MLNET)。

點選訓練,可以看到訓練過程,預設會經過好幾輪訓練。

訓練完成後,可以對該訓練好的模型進行評估。

選擇本地的測試集中的圖片進行評估

可以看到該模型智慧識別為綠碼。點選下一步,獲取程式碼。

新增到專案

可以看到自動添加了兩個專案,同時直接給出了後續步驟。

設定MLConsoleAppML.ConsoleApp專案為啟動專案,然後執行就可以看到識別結果。

該示例是一個控制檯的示例,可以將其引用到你的任意.NET專案中。非常簡單的就實現了機器學習的功能,ML.NET很強大的機器學習庫!