Stap 2: Haar Cascades--een Intro
Voor beter of slechter, de meeste mobiele telefoons en digitale camera's vandaag menselijke gezichten detecteren kunnen, en, zoals gezien in de vorige stap, het duurt niet al te veel moeite om eenvoudige gezicht detectiecode die wordt uitgevoerd op een Android telefoon (of een ander platform), met behulp van OpenCV.
Dit is allemaal dankzij de Viola-Jones-algoritme voor de opsporing van het gezicht, met behulp van Haar gebaseerde trapsgewijs classificaties. Er is veel informatie over dit online, maar een zeer mooie uitleg kan worden gevonden op de website van OpenCV.
Het is eigenlijk een machine leren algoritme die gebruikmaakt van een heleboel beelden van als niet-gezichten te trainen van een classificatie die later kan worden gebruikt voor het detecteren van gezichten in realtime.
Het algoritme geïmplementeerd in OpenCV kan ook worden gebruikt om op te sporen van andere dingen, zolang u de juiste classificaties hebben. Mijn OpenCV distributie kwam met classificaties voor ogen, bovenlichaam, handen, frontale gezicht en profiel gezicht. Op zoek naar informatie over hoe om hen te trainen, vond ik classificaties voor bananen, pennen en iPhones.
Eigenlijk is dat laatste link voor meer dan alleen iPhones. In zijn Spiegel Test project is Jeff Thompson eigenlijk opleiding computers herkennen zichzelf in een "niet-utilitaire, gebrekkige poëtische/technologische act".
Vergelijkbaar met wat we willen, maar omdat wij hebben een zeer specifieke telefoon te ontdekken, hebben we besloten om onze eigen classificatie trainen.
De OpenCV tutorial voor opleiding Cascade Classifiers is een goede plaats om te beginnen. Het verklaart de 2 binaire hulpprogramma's gebruikt in het proces (opencv_createsamples en opencv_traincascade), en al hun command line argumenten en opties, maar het niet echt een voorbeeld geven van een stroom te volgen, noch verklaart het alle mogelijke toepassingen voor het hulpprogramma opencv_createsamples .
Aan de andere kant, Naotoshi Seo's tutorial is eigenlijk heel grondig en verklaart dat de verschillende 4 gebruikt voor het hulpprogramma opencv_createsamples . Thorsten Ball schreef een tutorial Naotoshi Seo's scripts gebruiken om te trainen op een classificatie om te detecteren van bananen, maar het vereist wat perl scripts uitvoeren en compileren van sommige C++... teveel werk...
Jeff heeft ook enkele mooie notities over hoe hij zijn gegevens, en een script voorbereid voor het automatisch doorlopen over een aantal opties voor de 2-hulpprogramma's.
De manier waarop we deden het werd geïnspireerd door alle van deze tutorials, met enkele kleine wijzigingen en optimalisaties.