Histogram Orientovaných Gradientů (HOG) v Dlib
histogram orientovaných gradientů (HOG), je funkce deskriptor používaný v počítačovém vidění a zpracování obrazu pro účely detekce objektů. Myšlenka PRASE je extrahovat prvky do vektoru, a krmit ho do algoritmu klasifikace jako Support Vector Machine, která posoudí, zda tvář (nebo jakýkoliv objekt, který vlak to rozpoznat ve skutečnosti) je přítomen v regionu, nebo ne. V deskriptoru Hog feature se jako znaky používá distribuce ( histogramy ) směrů gradientů ( orientovaných gradientů). Přechody ( x a y deriváty ) obrazu jsou užitečné, protože velikost gradientů je velké kolem hrany a rohy ( regiony náhlých změnách intenzity ) a víme, že hrany a rohy pack v mnohem více informací o objektu tvar než rovný regionů.
v původním článku byl proces implementován pro detekci lidského těla a detekční řetězec byl následující :

Detekce obličeje z obrazu pomocí PRASE metoda vyžaduje následující kroky :-
- Vypočítejte Gradient Obrázky
- Výpočet HOG
- Blok normalizace
- Krmení vektor na SVM
Vypočítat Gradient Obrázky: Prvním krokem je výpočet horizontální a vertikální přechody obrazu, filtrování obrazu s následujícím jader :

vstupní obrázky musí mít stejnou velikost, mají pevný poměr stran, jako 64×128, 100×200 nebo 128×256, ale ne 101×205.


gradient obrazu odstraněno mnoho non-základní informace ( např. konstantní barevné pozadí ), ale zvýrazněné obrysy. Přesto můžeme identifikovat obrázek. Na každém pixelu má gradient velikost a směr.
Vypočítejte prase: obraz je pak rozdělen na buňky 8×8, aby nabídl kompaktní reprezentaci a učinil naše prase robustnější vůči šumu. Potom vypočítáme prase pro každou z těchto buněk.

odhadnout směr gradientu uvnitř regionu, jsme jednoduše vytvořit histogram mezi 64 hodnoty gradientu směrech (8×8) a jejich velikost (dalších 64 hodnoty) v každém regionu. Dalším krokem je vytvoření histogramu gradientů v těchto 8×8 buňkách. Histogram obsahuje 9 zásobníků odpovídajících úhlům 0, 20, 40 … 160.
když stavíme prase, vzniknou 3 případy:
- co když je úhel menší než 160° a ne na půli cesty mezi 2 třídami. V takových případech bude úhel přidán do správné kategorie prasete.
- co když je úhel menší než 160° a přesně mezi 2 třídami. Pak v takových případech zvažujeme stejný příspěvek k nejbližším třídám 2 a rozdělíme velikost na 2
- co když je úhel větší než 160°. V takových případech se domníváme, že pixel přispěl úměrně 160° A 0°.

Na obr. 10 pixel obklopený modře má úhel (směr ) 80 stupňů a velikost 2. Takže přidá 2 do 5. koše, jak následuje první případ. Gradient v pixelu obklopeném červenou barvou má úhel 10 stupňů a velikost 4. Vzhledem k tomu, že 10 stupňů je na půli cesty mezi 0 a 20, hlas podle pixelu se rozdělí rovnoměrně do dvou košů, jak vyplývá z druhého případu.

Na obr. 11 pixel s úhlem 165 stupňů přispívá úměrně k zásobníku 0 stupňů a zásobníku 160 stupňů, jak následuje třetí případ.
prase vypadá takto pro každou buňku 8×8 jako (obr. 12).

Blok normalizace : Konečně, 16×16 blok může být aplikován s cílem normalizovat image a dělat to invariantní k osvětlení. Použití bloku 16×16 znamená, že obraz ztmavíme vydělením všech hodnot pixelů 2, takže velikost gradientu se změní na polovinu, a proto se hodnoty histogramu změní na polovinu. V ideálním případě chceme, aby náš deskriptor byl nezávislý na variacích osvětlení.
Krmení vektor na SVM: 16×16 blok má 4 histogramy, které mohou být spojeny k formě 36 x 1 prvek vektoru. Nakonec jsou všechny 36×1 vektory zřetězeny do velkého vektoru, který bude naším vektorem funkcí, na kterém můžeme trénovat měkký SVM a předpovídat obličej v obraze.
V Dlib je k dispozici vyškolený model pro detekci obličejů, stačí vytvořit objekt tohoto modelu.
takže to je konec předpovídání tváří pomocí HOG pomocí Dlib.
závěr
vždy probíhá Obrovská debata, která je lepší v detekci obličejů haar cascade classifier nebo Hog based face detector. Dlib je před haar cascade classifier nad implementací, rychlostí a přesností. Použití klasifikátoru HOG classifier má několik výhod. Nejprve je trénink prováděn pomocí posuvného dílčího okna na obrázku, takže není vyžadováno žádné dílčí vzorkování a manipulace s parametry, jako je tomu v klasifikátoru Haar. Díky tomu je detekce obličeje dlib HOG + SVM snadnější a rychlejší. Všimněte si, že HOG má vyšší přesnost pro detekci obličeje než haar cascade classifier. Haar cascade classifier dělat více falešně pozitivní predikce na tvářích, než Hog založené detektor obličeje.
Pokud chcete vidět přesnost haar cascade classifier vs Hog based face detector si můžete přečíst zde.