使用 AutoML (預覽) 定型小型物件偵測模型 (v1)
重要
本文中的 Azure CLI 命令使用 azure-cli-ml
或 v1 (Azure Machine Learning 的擴充功能)。 v1 擴充功能的支援將於 2025 年 9 月 30 日終止。 您將能安裝並使用 v1 擴充功能,直到該日期為止。
建議您在 2025 年 9 月 30 日之前轉換至 ml
或 v2 擴充功能。 如需有關 v2 擴充功能的詳細資訊,請參閱 Azure ML CLI 擴充功能和 Python SDK v2。
重要
此功能目前處於公開預覽。 在此提供的這個預覽版本並無服務等級協定。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
在本文中,您將瞭解如何使用 Azure Machine Learning 的自動化 ML,定型物件偵測模型以偵測高解析度影像中的小型物件。
一般來說,物件偵測的電腦視覺模型適用於具有相對較大型物件的資料集。 不過,由於記憶體和計算條件限制的緣故,這些模型在處理高解析度影像中小型物件的偵測工作時,通常效能會變差。 這是由於高解析度的影像通常很大,因此會在輸入模型之前調整影像大小,這會限制其偵測較小物件的能力 (相對於初始影像大小)。
為了協助解決這個問題,自動化 ML 在公開預覽版的電腦視覺功能中支援並排。 自動化 ML 中的並排功能是根據小型物件偵測的並排功能 (英文) 中的概念。
在執行並排時,系統會將每個影像分割為圖格。 相鄰的圖格會以寬度和高度維度互相重疊。 圖格會從原始狀態裁剪,如下圖所示。
必要條件
Azure Machine Learning 工作區。 若要建立工作區,請參閱建立工作區資源。
本文假設您已熟悉如何針對電腦視覺工作設定自動化機器學習實驗。
支援的模型
自動化 ML 針對物件偵測工作影像所支援的所有模型,都支援使用並排顯示的小型物件偵測。
在定型期間啟用並排
如要啟用並排,您可以將 tile_grid_size
參數設定為諸如 (3,2) 的值;其中 3 是沿著寬度維度的圖格數目,而 2 是沿著高度維度的圖格數目。 當此參數設定為 (3,2) 時,會將每個影像分割成 3 x 2 個圖格的方格。 每個圖格都會與相鄰的圖格重疊,因此任何落在圖格邊線上的物件都會完全包含在其中一個圖格中。 此重疊可由 tile_overlap_ratio
參數控制,預設為 25%。
啟用並排時,系統會透過模型傳遞整個影像和產生的圖格。 這些影像和圖格會在饋送至模型之前,會根據 min_size
和 max_size
參數調整大小。 計算時間會因為處理此額外資料而按比例增加。
例如,當 tile_grid_size
參數是 (3, 2) 時,相較於沒有並排顯示的情況,計算時間大約多七倍。
您可以將超參數空間中的 tile_grid_size
值指定為字串。
parameter_space = {
'model_name': choice('fasterrcnn_resnet50_fpn'),
'tile_grid_size': choice('(3, 2)'),
...
}
tile_grid_size
參數的值取決於影像維度和影像中的物件大小。 例如,影像中有較小的物件時,較大的圖格數會有所幫助。
如要為您的資料集選擇此參數的最佳值,您可以使用超參數搜尋。 如要這樣做,您可以在超參數空間中為此參數指定值的選擇。
parameter_space = {
'model_name': choice('fasterrcnn_resnet50_fpn'),
'tile_grid_size': choice('(2, 1)', '(3, 2)', '(5, 3)'),
...
}
在推斷期間執行並排
當部署以並排定型的模型時,系統也會在推斷期間執行並排。 自動化 ML 會使用定型時的 tile_grid_size
值,在推斷期間產生圖格。 整個影像和對應圖格會透過模型傳遞,並將它們的物件候選區域合併以輸出最終預測,如下圖所示。
注意
有可能會從多個圖格偵測到相同的物件,系統會執行重複偵測來移除這類重複項目。
針對來自圖格和影像的候選區域執行 NMS,以完成重複偵測作業。 當多個候選區域重疊時,系統會挑選分數最高的提案,而其他提案則會捨棄為重複項目。當提案之間的交併比 (iou) 大於 tile_predictions_nms_thresh
參數時,會將兩個提案視為重疊。
您也可以選擇只在推斷期間啟用並排,而不在定型中啟用。 如要這樣做,請只在推斷期間設定 tile_grid_size
參數,而非在定型時設定。
這樣做可能會改善某些資料集的效能,且不會產生在定型時處理並排的額外成本。
並排超參數
以下是您可以用來控制並排功能的參數。
參數名稱 | 描述 | 預設 |
---|---|---|
tile_grid_size |
要用於每個並排影像的格線大小。 可在定型、驗證和推斷期間使用。 以字串形式傳遞的雙整數元組,例如 '(3, 2)' 注意:設定此參數會依比例增加計算時間,因為所有的圖格和影像都是由模型處理。 |
無預設值 |
tile_overlap_ratio |
控制每個維度中相鄰圖格之間的重疊比例。 當圖格界限上的物件太大而無法完全符合其中一個圖格時,請增加此參數的值,讓物件完全符合至少其中一個圖格。 必須是 [0,1) 中的浮點數。 |
0.25 |
tile_predictions_nms_thresh |
在合併圖格和影像的預測時,用來執行非最大歸併 (nms) 的交併比閥值。 可在驗證和推斷期間使用。 若在最終預測中每個物件偵測到多個方塊,請變更此參數。 在 [0,1] 中必須是為浮點數。 |
0.25 |
Notebook 範例
如需設定和定型物件偵測模型的詳細程式碼範例,請參閱物件偵測範例筆記本 (英文)。
注意
本文中的所有映像皆可根據 MIT 授權合約 (英文) 的允許使用區段來提供。 著作權 © 2020 Roboflow,Inc.
下一步
- 深入了解模型部署的方式和位置。
- 如需每個作業所提供效能圖表與計量的定義和範例,請參閱評估自動化機器學習實驗結果。
- 教學課程:使用 AutoML 和 Python 定型物件偵測模型 (預覽)。
- 請參閱電腦視覺工作可用的超參數。
- 從 AutoML 使用 ONNX 在電腦視覺模型上進行預測