Najděte zdroje: „Z tohoto popisu je patrné, že klasifikátor nepřijme obličeje, které jsou vzhůru nohama (obočí není ve správné poloze) nebo na boku obličeje (nos již není uprostřed a stíny na boku nosu mohou chybět).
Kaskádové klasifikátory – zprávy – noviny – knihy – scholar – JSTOR (červen 2019) (Naučte se, jak a kdy odstranit tuto zprávu šablony). Pro každé natočení, které není v rovině obrazu (strana obličeje), musí být natrénovány samostatné kaskádové klasifikátory a pro každé natočení, které je v rovině obrazu (obličej vzhůru nohama nebo nakloněný na stranu), budou muset být přeškoleny nebo spuštěny na natočených prvcích. Škálování není problém, protože rysy lze škálovat (centerpixel, leftpixel a rightpixel mají rozměr pouze vzhledem ke zkoumanému obdélníku). V posledních kaskádách byly hodnoty pixelů z některé části obdélníku ve srovnání s jinou nahrazeny Haarovými vlnovkami.
Vlastnosti etapyUpravit
Aby byl celkový výkon dobrý, musí být splněna následující kritéria:
- Každá etapa musí ověřit všechny tváře a může produkovat mnoho falešně pozitivních výsledků. Pokud by například stupeň 1 označil jako „neobsahuje obličej“ 20 % obdélníků obsahujících obličej (míra falešné negativity = 20 %), pak celková výkonnost řetězce nemůže být vyšší než 80 % pravdivě pozitivních výsledků, ať už jsou další stupně jakékoliv, protože 20 % obličejů již bylo odmítnuto.
- Z toho vyplývá, že dobrý stupeň musí mít 100 % pravdivě pozitivních výsledků a například 40 % falešně pozitivních výsledků, tj. přijmout všechny obdélníky obsahující obličeje a chybně označit mnoho obdélníků jako potenciálně obsahující obličej, aby je pozdější stupně eliminovaly. Pro první fázi 100 % pravdivě pozitivních a 40 % falešně pozitivních stále dává mnoho falešně negativních, pokud pouze 1 z 1000 obdélníků v obrázku obsahuje tvář, bude po první fázi stále 400 až 1 falešně možných tváří.
- Pokud je první fáze velmi rychlá (několik operací), vyřadili jsme 60 % obdélníků neobsahujících tvář velmi rychle.
Tréninkový postup pro jednu fázi tedy spočívá v tom, že máme mnoho slabých učících se (jednoduché operátory rozdílu pixelů), trénujeme je jako skupinu (zvyšujeme jejich váhu, pokud dávají správný výsledek), ale dbáme na to, abychom měli jen několik aktivních slabých učících se, aby výpočetní čas zůstal nízký.
První detektor Violy & Jonesové měl 38 fází, přičemž v první fázi byl 1 rys, v dalších pěti fázích pak 10, 25, 25, 50, celkem 6000 rysů. První stupně rychle odstraňují nežádoucí obdélníky, aby se zabránilo placení výpočetních nákladů dalších stupňů, takže výpočetní čas je věnován hloubkové analýze části obrazu, která má vysokou pravděpodobnost, že obsahuje objekt.
Kaskádové trénováníEdit
Kaskády se obvykle provádějí pomocí nákladově orientovaného ADAboostu. Práh citlivosti (v našem příkladu 0,8) lze nastavit tak, aby bylo téměř 100 % pravdivých pozitivních výsledků a několik falešně pozitivních výsledků. Poté lze postup spustit znovu pro fázi 2, dokud se nedosáhne požadované přesnosti/doby výpočtu.
Po úvodním algoritmu bylo pochopeno, že trénování kaskády jako celku lze optimalizovat, aby se dosáhlo požadované míry pravdivé detekce s minimální složitostí. Příklady takových algoritmů jsou RCBoost, ECBoost nebo RCECBoost. V jejich nejzákladnější verzi je lze chápat tak, že v každém kroku volí mezi přidáním stupně nebo přidáním slabého učitele k předchozímu stupni, podle toho, co je méně nákladné, dokud není dosaženo požadované přesnosti. Každý stupeň klasifikátoru nesmí mít míru detekce (citlivost) nižší než požadovaná míra, takže se jedná o omezený optimalizační problém. Přesněji řečeno, celková citlivost bude součinem citlivostí jednotlivých fází.
Kaskádové klasifikátory jsou k dispozici v OpenCV s předtrénovanými kaskádami pro frontální obličeje a horní část těla. Trénování nové kaskády v OpenCV je možné také pomocí metod haar_training nebo train_cascades. To lze využít pro rychlou detekci specifičtějších objektů, včetně objektů, které nejsou lidmi, s rysy podobnými Haarovým. Tento proces vyžaduje dvě sady vzorků: negativní a pozitivní, přičemž negativní vzorky odpovídají libovolným obrazům neobjektů. Časové omezení při trénování kaskádového klasifikátoru lze obejít pomocí metod cloud computingu.
.