Căutați surse: „Cascading classifiers” – știri – ziare – cărți – savant – JSTOR (iunie 2019) (Aflați cum și când să eliminați acest mesaj șablon)
Scalare și rotațiiEdit
Se poate observa din această descriere că clasificatorul nu va accepta fețele care sunt întoarse cu susul în jos (sprâncenele nu sunt într-o poziție corectă) sau pe partea laterală a feței (nasul nu mai este în centru, iar umbrele de pe partea laterală a nasului ar putea lipsi). Clasificatoare în cascadă separate trebuie antrenate pentru fiecare rotație care nu se află în planul imaginii (partea laterală a feței) și vor trebui reantrenate sau rulate pe caracteristici rotite pentru fiecare rotație care se află în planul imaginii (fața cu susul în jos sau înclinată în lateral). Scalarea nu reprezintă o problemă, deoarece caracteristicile pot fi scalate (centerpixel, leftpixels și rightpixels au o dimensiune numai în raport cu dreptunghiul examinat). În cascadele recente, valoarea pixelilor dintr-o anumită parte a unui dreptunghi în comparație cu o altă parte au fost înlocuite cu undele Haar.
Proprietăți ale etapelorEdit
Pentru a avea o performanță generală bună, trebuie îndeplinite următoarele criterii:
- Care etapă trebuie să valideze toate fețele și poate produce multe rezultate fals pozitive. De exemplu, dacă etapa 1 ar trebui să marcheze ca „nu conține o față” 20% din dreptunghiurile care conțin o față (rata falselor negative=20%), atunci performanța totală a lanțului nu poate fi mai mare de 80% adevărate pozitive, oricare ar fi etapele următoare, deoarece 20% din fețe au fost deja respinse.
- Acest lucru sugerează că o etapă bună trebuie să aibă 100% adevărate pozitive și, de exemplu, 40% false pozitive, adică să accepte toate dreptunghiurile care conțin fețe și să marcheze în mod eronat multe dreptunghiuri ca putând conține o față, pentru a fi eliminate de etapele ulterioare. Pentru o primă etapă, 100% adevărat pozitiv și 40% fals pozitiv oferă încă o mulțime de falsuri negative, dacă doar 1 din 1000 de dreptunghiuri dintr-o imagine conține o față, vor exista încă 400 la 1 fețe false posibile după prima etapă.
- Dacă prima etapă este foarte rapidă (câteva operații), am eliminat foarte repede 60% din dreptunghiurile care nu conțin o față.
Procedura de antrenare pentru o etapă este deci de a avea mulți învățători slabi (operatori simpli de diferență de pixeli), de a-i antrena în grup (de a le crește ponderea dacă dau un rezultat corect), dar de a fi atenți la a avea doar câțiva învățători slabi activi, astfel încât timpul de calcul să rămână mic.
Primul detector al lui Viola & Jones avea 38 de etape, cu 1 caracteristică în prima etapă, apoi 10, 25, 25, 25, 50 în următoarele cinci etape, pentru un total de 6000 de caracteristici. Primele etape elimină rapid dreptunghiurile nedorite pentru a evita să plătească costurile de calcul ale etapelor următoare, astfel încât timpul de calcul este cheltuit pentru a analiza în profunzime partea din imagine care are o probabilitate mare de a conține obiectul.
Antrenare în cascadăEdit
Cascadele se fac de obicei prin ADAboost conștient de costuri. Pragul de sensibilitate (0,8 în exemplul nostru) poate fi ajustat astfel încât să existe aproape 100% de pozitivi adevărați și câțiva pozitivi falși. Procedura poate fi apoi începută din nou pentru etapa 2, până când se ajunge la precizia dorită/timpul de calcul dorit.
După algoritmul inițial, s-a înțeles că antrenarea cascadei ca întreg poate fi optimizată, pentru a obține o rată de detecție adevărată dorită cu o complexitate minimă. Exemple de astfel de algoritmi sunt RCBoost, ECBoost sau RCECBoost. În versiunile lor cele mai elementare, aceștia pot fi înțeleși ca alegând, la fiecare etapă, între adăugarea unei etape sau adăugarea unui învățător slab la o etapă anterioară, în funcție de care este mai puțin costisitoare, până când se atinge precizia dorită. Fiecare etapă a clasificatorului nu poate avea o rată de detecție (sensibilitate) mai mică decât rata dorită, astfel încât aceasta este o problemă de optimizare constrânsă. Pentru a fi mai precis, sensibilitatea totală va fi produsul sensibilităților etapelor.
Clasificatoarele în cascadă sunt disponibile în OpenCV, cu cascade preinstruite pentru fețele frontale și partea superioară a corpului. Antrenarea unei noi cascade în OpenCV este, de asemenea, posibilă cu metodele haar_training sau train_cascades. Acest lucru poate fi utilizat pentru detectarea rapidă a obiectelor mai specifice, inclusiv a obiectelor non-umane cu caracteristici de tip Haar. Procesul necesită două seturi de eșantioane: negative și pozitive, unde eșantioanele negative corespund unor imagini arbitrare fără obiect. Constrângerea de timp în antrenarea unui clasificator în cascadă poate fi eludată folosind metode de cloud-computing.
.