Trénování modelu detekce malých objektů pomocí automatického strojového učení
PLATÍ PRO: Sada Python SDK azure-ai-ml v2 (aktuální)
V tomto článku se dozvíte, jak pomocí automatizovaného strojového učení ve službě Azure Machine Learning vytrénovat model detekce objektů k detekci malých objektů v obrázcích s vysokým rozlišením.
Modely počítačového zpracování obrazu pro detekci objektů obvykle dobře fungují u datových sad s relativně velkými objekty. Z důvodu omezení paměti a výpočtů však mají tyto modely tendenci k nedostatečnému výkonu, když jsou pověřeny detekcí malých objektů v obrázcích s vysokým rozlišením. Vzhledem k tomu, že obrázky s vysokým rozlišením jsou obvykle velké, před vstupem do modelu se změní jejich velikost, což omezuje jejich schopnost detekovat menší objekty – vzhledem k počáteční velikosti obrázku.
S tímto problémem pomáhá automatizované strojové učení jako součást funkcí počítačového zpracování obrazu. Funkce vytváření dlaždic v automatizovaném strojovém učení vychází z konceptů v tématu Síla dlaždic pro detekci malých objektů.
Při dlaždicích se každý obrázek rozdělí do mřížky dlaždic. Sousední dlaždice se překrývají z hlediska šířky a výšky. Dlaždice se oříznou z originálu, jak je znázorněno na následujícím obrázku.
Požadavky
Pracovní prostor služby Azure Machine Learning. Informace o vytvoření pracovního prostoru najdete v tématu 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
Detekce malých objektů pomocí dlaždic se podporuje u všech modelů podporovaných automatizovaným strojovém učení pro obrázky pro úlohu detekce objektů.
Povolení vázání během trénování
Pokud chcete povolit dlaždici, můžete parametr nastavit tile_grid_size
na hodnotu 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 hodnotu 3x2, rozdělí se každý obrázek do mřížky o 3 x 2 dlaždicích. Každá dlaždice se překrývá se sousedními dlaždicemi, takže všechny objekty, které spadají na okraj dlaždice, jsou zcela zahrnuty do jedné z dlaždic. Toto překrytí může být řízeno parametrem tile_overlap_ratio
, který má výchozí hodnotu 25 %.
Pokud je povoleno dlaždice, celý obrázek a dlaždice z něj vygenerované se předávají modelem. Velikost těchto obrázků a dlaždic se před odesláním do modelu změní podle min_size
parametrů a max_size
. Výpočetní doba se úměrně prodluž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 delší než bez dlaždic.
Hodnotu pro tile_grid_size
můžete zadat v trénovacích parametrech jako řetězec.
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)
training_parameters:
tile_grid_size: '3x2'
Hodnota tile_grid_size
parametru 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ý, pokud jsou v obrázcích menší objekty.
Pokud chcete zvolit optimální hodnotu tohoto parametru pro datovou sadu, můžete použít hledání hyperparametrů. Uděláte to tak, že zadáte výběr hodnot pro tento parametr v prostoru hyperparametru.
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']
Uklidení během odvozování
Při nasazení modelu vytrénovaného pomocí dlaždic dochází 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čí a vydají se konečné předpovědi, jako na následujícím obrázku.
Poznámka
Je možné, že stejný objekt je rozpoznána z více dlaždic, detekce duplicit se provádí, aby se takové duplicity odstranily.
Zjišťování duplicit se provádí spuštěním NMS u návrhů z dlaždic a obrázku. Když se překrývá více návrhů, 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, pokud je průnik sjednocení (iou) mezi nimi větší než tile_predictions_nms_thresh
parametr.
Máte také možnost povolit vázání pouze během odvozování, aniž byste ho povolili v trénování. Provedete to tak, že parametr nastavíte tile_grid_size
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 se vám účtovat dodatečné náklady, které jsou spojené s vázáním v době trénování.
Uklidňující hyperparametry
Níže jsou uvedené parametry, které můžete použít k řízení funkce dlaždic.
Název parametru | Description | Výchozí |
---|---|---|
tile_grid_size |
Velikost mřížky, která se má použít pro dlaždici jednotlivých obrázků. K dispozici pro použití během trénování, ověřování a odvozování. Měl by být předán jako řetězec ve '3x2' formátu.Poznámka: Nastavením tohoto parametru se proporcionálně produžuje 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řekrývání mezi sousedními dlaždicemi v jednotlivých dimenzích. Pokud jsou objekty, které spadají na okraj dlaždice, příliš velké, aby se zcela nevešly do jedné z dlaždic, zvyšte hodnotu tohoto parametru tak, aby se objekty zcela vešly alespoň do jedné z dlaždic. Musí být float v [0, 1). |
0,25 |
tile_predictions_nms_thresh |
Průsečík přes prahovou hodnotu sjednocení, který se použije k dosažení potlačení maximálního počtu (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í na objekt. Musí být plovoucí v [0, 1]. |
0,25 |
Příklady poznámkových bloků
Podrobné příklady kódu nastavení a trénování modelu detekce objektů najdete v ukázkovém poznámkovém bloku detekce objektů.
Poznámka
Všechny obrázky v tomto článku jsou k dispozici v souladu s oddílem o povoleném 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 grafů výkonu a metrik poskytovaných pro každou úlohu najdete v tématu Vyhodnocení výsledků experimentu automatizovaného strojového učení.
- Kurz: Trénování modelu detekce objektů pomocí AutoML a Pythonu
- Podívejte se, jaké hyperparametry jsou k dispozici pro úlohy počítačového zpracování obrazu.
- Vytváření predikcí pomocí ONNX na modelech počítačového zpracování obrazu z AutoML