Cascading classifiers

In dit gedeelte worden geen bronnen geciteerd. Help a.u.b. deze sectie te verbeteren door citaten naar betrouwbare bronnen toe te voegen. Materiaal zonder bronvermelding kan worden aangevochten en verwijderd.
Vind bronnen: “Cascading classifiers” – nieuws – kranten – boeken – scholar – JSTOR (juni 2019) (Leer hoe en wanneer u dit sjabloonbericht verwijdert)

Schalen en roterenEdit

Uit deze beschrijving kunt opmaken dat de classifier geen gezichten accepteert die ondersteboven staan (de wenkbrauwen staan niet op een correcte positie) of de zijkant van het gezicht (de neus staat niet meer in het midden en schaduwen aan de zijkant van de neus kunnen ontbreken). Aparte cascade classifiers moeten worden getraind voor elke rotatie die niet in het beeldvlak ligt (zijkant van het gezicht) en moeten opnieuw worden getraind of worden uitgevoerd op geroteerde kenmerken voor elke rotatie die wel in het beeldvlak ligt (gezicht ondersteboven of gekanteld naar de zijkant). Schalen is geen probleem, aangezien de kenmerken kunnen worden geschaald (centerpixel, leftpixel en rightpixel hebben alleen een dimensie ten opzichte van de onderzochte rechthoek). In recente cascades zijn pixelwaarden van een deel van een rechthoek ten opzichte van een ander deel vervangen door Haar wavelets.

Fase-eigenschappenEdit

Om een goede algemene prestatie te hebben, moet aan de volgende criteria worden voldaan:

  1. Elke fase moet alle gezichten valideren, en kan veel vals-positieven opleveren. Bijvoorbeeld, als fase 1 20% van de rechthoeken die een gezicht bevatten als “bevat geen gezicht” zou markeren (fout-negatief percentage=20%), dan kan de totale prestatie van de keten niet hoger zijn dan 80% fout-positieven, wat de volgende fasen ook zijn, omdat 20% van de gezichten al is afgewezen.
  2. Dit suggereert dat een goede fase 100% fout-positieven moet hebben en bijvoorbeeld 40% fout-positieven, dat wil zeggen alle rechthoeken die gezichten bevatten accepteren en ten onrechte veel rechthoeken markeren als mogelijk een gezicht bevattend, dat door latere fasen moet worden geëlimineerd. Voor een eerste fase, 100% waar-positief en 40% vals-positief geeft nog steeds veel vals-negatief, als slechts 1 op de 1000 rechthoeken in een beeld een gezicht bevat, zullen er nog steeds 400 tot 1 vals mogelijke gezichten zijn na de eerste fase.
  3. Als de eerste fase zeer snel is (een paar bewerkingen), hebben we 60% van de rechthoeken die geen gezicht bevatten zeer snel geëlimineerd.

De trainingsprocedure voor een trap is daarom om veel zwakke leerlingen te hebben (eenvoudige pixel verschil operatoren), train ze als een groep (verhoog hun gewicht als ze een correct resultaat geven), maar wees bedacht op het hebben van slechts een paar actieve zwakke leerlingen, zodat de rekentijd laag blijft.

De eerste detector van Viola & Jones had 38 stappen, met 1 kenmerk in de eerste trap, dan 10, 25, 25, 50 in de volgende vijf stappen, voor een totaal van 6000 kenmerken. De eerste stadia verwijderen snel ongewenste rechthoeken om de computationele kosten van de volgende stadia te vermijden, zodat de computationele tijd wordt besteed aan het diep analyseren van het deel van het beeld dat een hoge waarschijnlijkheid heeft om het object te bevatten.

Cascade trainingEdit

Cascades worden gewoonlijk gedaan door middel van kostenbewuste ADAboost. De gevoeligheidsdrempel (0,8 in ons voorbeeld) kan zo worden aangepast dat er bijna 100% ware positieven en enkele valse positieven zijn. De procedure kan dan opnieuw worden gestart voor fase 2, totdat de gewenste nauwkeurigheid/berekeningstijd is bereikt.

Na het initiële algoritme heeft men begrepen dat het trainen van de cascade als geheel kan worden geoptimaliseerd, om met minimale complexiteit een gewenste ware detectieratio te bereiken. Voorbeelden van dergelijke algoritmen zijn RCBoost, ECBoost of RCECBoost. In hun meest elementaire versie kunnen zij worden opgevat als het kiezen, bij elke stap, tussen het toevoegen van een trap of het toevoegen van een zwakke lerende aan een vorige trap, afhankelijk van wat het goedkoopst is, totdat de gewenste nauwkeurigheid is bereikt. Elke stap van de classificator mag geen detectieratio (gevoeligheid) hebben die lager is dan de gewenste waarde, zodat dit een beperkt optimaliseringsprobleem is. Om precies te zijn, de totale gevoeligheid zal het product zijn van de gevoeligheden van de trappen.

Cascade classifiers zijn beschikbaar in OpenCV, met voorgetrainde cascades voor frontale gezichten en het bovenlichaam. Het trainen van een nieuwe cascade in OpenCV is ook mogelijk met haar_training of train_cascades methoden. Dit kan worden gebruikt voor snelle objectdetectie van meer specifieke doelen, inclusief niet-menselijke objecten met Haar-achtige kenmerken. Het proces vereist twee sets van monsters: negatieve en positieve, waarbij de negatieve monsters overeenkomen met willekeurige niet-object beelden. De tijdsdruk bij het trainen van een cascade classificator kan worden omzeild door gebruik te maken van cloud-computing methoden.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.