Ansiktsigenkänning och spårning med Arduino och OpenCV
- 20 feb 2013: Som svar på en fråga från student Hala Abuhasna om du vill använda klassen .NET seriell, använda namnkonventionen "\\\.\\COMn" och ersätt n med en nummer > 9 definiera com-porten för COM-portar över 9 som COM10, COM11, etc.
- 23 mar 2012: Skisserat på Adafruits blogg
- 23 mar 2012: Med på interaktiv Design
- December 13, 2011: Med på Floss för vetenskap
Denna guide kommer också att fortsätta på min blogg http://techbitar.blogspot.com/2012/04/face-detection-and-tracking-with.html
INTRODUKTION
I detta projekt har jag samlat ett ansikte identifiering och spårning system. Du kan se videon av slutliga projektet här:
I grund och botten sänder webkameran videobildrutor till OpenCV körs på en Windows-dator. Om OpenCV upptäcker ett ansikte kommer det spåra det och beräkna dess center's X-, Y-koordinater. Koordinaterna är sedan vidare till Arduino via en seriell USB-anslutning. Arduino kontroll av förflyttningar av webbkamera med hjälp av två pan/tilt servon följer det upptäckta ansiktet.
OpenCV (öppna dator Vision bibliotek: http://opencv.willowgarage.com/wiki/) är ett öppen källkod bibliotek som innehåller flera hundratals realtids dator vision algoritmer. OpenCV 2.x biblioteket är ett C++ API.
Detta är ett integrationsprojekt mellan hårdvara och mjukvara verktyg. Image processing C++ kodexemplen är försedda med openCV bibliotek och allt jag gjorde var att ändra exempelkoden för detta projekt. Jag tog bort några av onödiga koden och lagt till seriell kommunikation till det så att det kan skicka X, Y värden till Arduino.
KREDIT
Detta projekt skulle inte ha varit möjligt utan det team som utvecklade OpenCV. Jag gynnades också av Ryan Owens tutorial (http://www.sparkfun.com/tutorials/304) som bygger på en tidigare version av OpenCV bearbetning och OpenFrameworks. Jag försökte installera bearbetning och OpenFrameworks utan lycka. Så i stället, jag valde Microsoft Visual C++ 2010 Express och den senaste versionen av OpenCV som är 2.3.1 utan mellanprogram eller omslag.
VERKTYG
Programvara som krävs
Arduino IDE 1.0 för Windows
OpenCV 2.3.1 SuperPack för Windows
Microsoft Visual C++ 2010 Express SP1
Seriella C++-bibliotek för Win32 (av Thierry Schneider)
Koden krävs
-OpenCV C++ (bifogas) techbitarFaceDetection.cpp (baserat på Opencvs exempel facedetect.cpp)
-Arduino (bifogade) cam_servo.ino (baserat på Ryan Owens exempel SerialServoControl.pde)
Maskinvara som krävs
-PC helst kör Windows 7 SP1. Snabbare CPU desto bättre.
-Arduino Uno eller kompatibel + ström källa.
-Standard servon X 2.
-Webcam w/UBS gränssnitt.
-Skärbräda.
-Hoppare ledningar.
-Hobby tråd att knyta pan/tilt servon och webbkamera tillsammans.