1. 程式人生 > 實用技巧 >ML.NET 九月更新

ML.NET 九月更新

ML.NET是一個開源的跨平臺機器學習框架,ML.NET 1.5.2 版本工具更新包括通過模型生成器使用 Azure ML 訓練物件檢測模型的能力。現在您還可以使用ML.NET CLI 本地訓練影象模型。

模型生成器中的物件檢測

物件檢測是計算機視覺問題。物件檢測雖然與影象分類密切相關,但以更精細的規模執行影象分類。物件檢測可定位和分類影象中的實體。當影象包含不同型別的多個物件時請使用物件檢測。

物件檢測的一些用例包括:

  • 自駕汽車
  • 機器人
  • 人臉檢測
  • 工作場所安全
  • 物件計數
  • 活動識別

雖然以前 ML.NET 提供了通過 ML.NET API 使用預先訓練的 TensorFlow 和 ONNX 模型進行物件檢測的能力,但現在您可以使用 Visual Studio 中的模型生成器來訓練具有 Azure 和 AutoML 功能的自定義物件檢測模型。

在模型生成器中選擇物件檢測方案並設定 Azure ML 工作區後,必須輸入資料。目前,模型生成器不提供註釋影象的方法,因此必須使用外部工具在訓練影象中的物件周圍繪製邊界框。

如果您需要標記影象,我們建議您嘗試VoTT,一個開源註釋和標籤工具的影象和視訊資產。

下載 VoTT 後,您可以建立一個新的 VoTT 專案,從本地檔案系統中選擇資料集(Azure Blob 儲存和必應影象搜尋也是選項,但模型生成器目前僅支援本地資料集中的訓練)。這只是一個資料夾,其中包含您要註釋的所有影象。為源連線選擇影象資料集的資料夾路徑後,然後可以選擇"目標連線"的輸出資料夾。您可以跳過"視訊設定",然後新增標籤(您希望在影象中檢測到的任何物件):

儲存專案後,將顯示"源連線"資料夾中的所有影象,您可以開始按以下方法標記影象:

完成標記後,可以轉到"匯出"部分(左側工具欄上的第 4 個圖示),選擇"VoTT JSON"作為提供程式,選擇"僅標記資產"作為資產狀態(包括影象是可選的)。當您點選"儲存匯出設定"時,VoTT JSON 將在 VoTT 專案建立期間指定的"目標連線"資料夾中生成。

Vott Json 如下所示:

然後,您可以使用此 VoTT JSON 作為模型生成器中資料步驟的資料集輸入。

模型生成器目前只接受由 VoTT 生成的 JSON 格式,但我們計劃在將來新增對更多格式的支援。如果要在模型生成器中看到受支援的物件檢測資料集格式,請將反饋留在

GitHub 上。

輸入資料並移動到模型生成器中的"訓練"步驟後,可以點選"開始訓練",該訓練器將資料上傳到 Azure,然後開始使用 Azure ML 的訓練。訓練完成後,將下載 ML.NET模型,以便可以在本地測試。在"評估"步驟中,您可以檢視模型的準確性,並預測測試影象:

每個檢測到的界框上顯示的分數指示檢測到的物件的置信度。例如,在上面的螢幕截圖中,貓周圍的邊界框上的得分表示模型 77% 確信檢測到的物件是貓。

分數閾值(可以使用閾值滑塊增加或降低)將基於其分數新增和刪除檢測到的物件。例如,如果閾值為 .51,則模型將僅顯示分數/置信度為 .51 或以上的物件。增加閾值時,將看到檢測較少的物件;隨著閾值的降低,將看到更多檢測到的物件。

對模型的效能感到滿意後,可以在模型生成器中的"程式碼"步驟中生成模型和消耗程式碼,並將模型整合到終端使用者應用程式中。

在 CLI 中ML.NET分類

除了分類、迴歸和建議之外,還可以使用 CLI 的跨平臺ML.NET 本地訓練自定義影象分類模型。

此方案所需的只是要用於訓練的影象資料集。例如,讓我們看看天氣示例,在其中要將影象分類為雨、多雲或晴天。

首先,您需要確保影象格式正確,這是一個資料夾,用於將照片組織成分隔的標記子資料夾,像這樣:

在這種情況下,每個資料夾包含 30 個相應天氣的影象。獲得資料集後,可以使用 CLI 中的以下命令 ML.NET 開始訓練:

mlnet image-classification --dataset “Weather-Small”

訓練結束後,CLI 將輸出模型的準確性,並生成模型消耗和重新訓練所需的專案:

上個月,我們宣佈 ML.NET 1.5.1版本,我們建議您跳過 1.5.1 並更新到 1.5.2。此版本還關閉了 30 多個報告的錯誤,並添加了 ONNX 增強功能,以支援 ONNX 匯出的更多型別。你可以在1.5.2發行說明中看到更多

入門和資源

開始學習ML.NET並瞭解有關 Microsoft 文件中ML.NET模型生成器。