Trénování malého modelu rozpoznávání objektů pomocí AutoML
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
V tomto článku se dozvíte, jak vytrénovat model detekce objektů pro detekci malých objektů v obrázcích s vysokým rozlišením pomocí automatizovaného strojového učení ve službě Azure Machine Learning.
Modely počítačového zpracování obrazu pro detekci objektů obvykle dobře fungují u datových sad s relativně velkými objekty. Vzhledem k paměťovým a výpočetním omezením se ale tyto modely při zjišťování malých objektů na obrázcích s vysokým rozlišením obvykle méně provádějí. Vzhledem k tomu, že obrázky s vysokým rozlišením jsou obvykle velké, před vstupem do modelu se mění jejich velikost, což omezuje jejich schopnost detekovat menší objekty vzhledem k počáteční velikosti obrázku.
Pro pomoc s tímto problémem automatizované strojové učení podporuje v rámci možností počítačového zpracování obrazu svázání. Funkce pro provazování v automatizovaném strojovém učení vychází z konceptů v oblasti výkonu pro detekci malých objektů.
Při provazování se každý obrázek rozdělí do mřížky dlaždic. Sousední dlaždice se vzájemně překrývají v rozměrech šířky a výšky. Dlaždice se oříznou z původního obrázku, jak je znázorněno na následujícím obrázku.
Požadavky
Pracovní prostor služby Azure Machine Learning. Pokud chcete vytvořit pracovní prostor, přečtěte si téma Vytvoření prostředků pracovního prostoru.
Tento článek předpokládá určitou znalost konfigurace experimentu automatizovaného strojového učení pro úlohy počítačového zpracování obrazu.
Podporované modely
Malé rozpoznávání objektů pomocí provazování je podporováno pro všechny modely podporované automatizovaným strojovém učení pro obrázky pro úlohu detekce objektů.
Povolení provazování během trénování
Pokud chcete povolit provazování, můžete parametr nastavit tile_grid_size
na hodnotu, například 3x2, kde 3 je počet dlaždic podél rozměru šířky a 2 je počet dlaždic podél rozměru výšky. Pokud je tento parametr nastaven na 3x2; každý obrázek je rozdělený do mřížky 3 x 2 dlaždic. Každá dlaždice se překrývají se sousedními dlaždicemi, takže všechny objekty, které spadají na ohraničení dlaždice, jsou zcela zahrnuty do jedné z dlaždic. Toto překrývání je řízeno parametrem tile_overlap_ratio
, který ve výchozím nastavení činí 25 %.
Pokud je povolené provázání, projde se modelem celý obrázek a dlaždice vygenerované z něj. Tyto obrázky a dlaždice se před podáváním modelu mění podle min_size
max_size
parametrů. Doba výpočtu se úměrně zvyšuje kvůli zpracování těchto dodatečných dat.
Pokud je například tile_grid_size
parametr 3x2, výpočetní doba by byla přibližně sedmkrát vyšší než bez provazování.
Hodnotu pro tile_grid_size
trénovací parametry můžete zadat jako řetězec.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
training_parameters:
tile_grid_size: '3x2'
Hodnota parametru tile_grid_size
závisí na rozměrech obrázku a velikosti objektů v rámci obrázku. Například větší počet dlaždic by byl užitečný, když jsou na obrázcích menší objekty.
Pokud chcete zvolit optimální hodnotu pro tento parametr pro datovou sadu, můžete použít vyhledávání hyperparametrů. Uděláte to tak, že v prostoru hyperparametrů zadáte výběr hodnot pro tento parametr.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
search_space:
- model_name:
type: choice
values: ['fasterrcnn_resnet50_fpn']
tile_grid_size:
type: choice
values: ['2x1', '3x2', '5x3']
Svázání během odvozování
Když je model natrénovaný pomocí provazování nasazený, dojde také k odvozování. Automatizované strojové učení používá tile_grid_size
hodnotu z trénování k vygenerování dlaždic během odvozování. Celý obrázek a odpovídající dlaždice se předávají modelem a návrhy objektů z nich se sloučí s výstupem konečných předpovědí, jako na následujícím obrázku.
Poznámka:
Je možné, že stejný objekt je zjištěn z více dlaždic, detekce duplicit se provádí k odebrání takových duplicit.
Detekce duplicit se provádí spuštěním NMS na návrzích z dlaždic a obrázku. Pokud se více návrhů překrývají, vybere se ten s nejvyšším skóre a ostatní se zahodí jako duplikáty. Dva návrhy se považují za překrývající se, když je průsečík nad sjednocením (iou) větší než tile_predictions_nms_thresh
parametr.
Máte také možnost povolit odvozování pouze během odvozování, aniž byste ji povolili při trénování. Pokud to chcete udělat, nastavte tile_grid_size
parametr pouze během odvozování, ne pro trénování.
Tím se může zvýšit výkon některých datových sad a nebudou vám účtovány dodatečné náklady, které jsou součástí vazby v době trénování.
Svázání hyperparametrů
Níže jsou uvedené parametry, které můžete použít k řízení funkce provazování.
Název parametru | Popis | Výchozí |
---|---|---|
tile_grid_size |
Velikost mřížky, která se má použít pro provazování jednotlivých obrázků. K dispozici pro použití během trénování, ověřování a odvozování. Měla by být předána jako řetězec ve '3x2' formátu.Poznámka: Nastavením tohoto parametru se proporcionálně zvýší doba výpočtu, protože model zpracovává všechny dlaždice a obrázky. |
žádná výchozí hodnota |
tile_overlap_ratio |
Řídí poměr překrytí mezi sousedními dlaždicemi v jednotlivých dimenzích. Pokud jsou objekty, které spadají na hranici dlaždice, příliš velké, aby se zcela vešly do jedné z dlaždic, zvyšte hodnotu tohoto parametru, aby se objekty vešly alespoň do jedné z dlaždic úplně. Musí to být plovák v [0, 1). |
0.25 |
tile_predictions_nms_thresh |
Průsečík přes sjednocovací prahovou hodnotu, který se použije k nevýkonné potlačení (nms) při slučování předpovědí z dlaždic a obrázků. K dispozici během ověřování a odvozování. Tento parametr změňte, pokud se v konečných předpovědích zjistí více polí pro jednotlivé objekty. Musí být plovoucí v [0, 1]. |
0.25 |
Příklady poznámkových bloků
Podrobné příklady nastavení a trénování modelu rozpoznávání objektů najdete v ukázkovém poznámkovém bloku pro rozpoznávání objektů.
Poznámka:
Všechny obrázky v tomto článku jsou k dispozici v souladu s oddílem povoleného použití licenční smlouvy MIT. Copyright © 2020 Roboflow, Inc.
Další kroky
- Přečtěte si další informace o tom, jak a kde nasadit model.
- Definice a příklady výkonnostních grafů a metrik poskytovaných pro každou úlohu najdete v tématu Vyhodnocení výsledků experimentů automatizovaného strojového učení.
- Kurz: Trénování modelu rozpoznávání objektů pomocí AutoML a Pythonu
- Podívejte se , jaké hyperparametry jsou k dispozici pro úlohy počítačového zpracování obrazu.
- Vytváření předpovědí pomocí ONNX na modelech počítačového zpracování obrazu z AutoML