Erkennung und Verfolgung mit Arduino und OpenCV Gesicht


UPDATES

  • 20. Februar 2013: Als Antwort auf eine Frage von Student Hala Abuhasna wenn Sie der Serienklasse .NET verwenden möchten, verwenden Sie die Namenskonvention "\\\.\\COMn" und ersetzen Sie n mit einer Zahl > 9 Ihre com-Port für COM-Ports oberhalb von 9 wie COM10 COM11 usw. definieren.
  • 23. März 2012: Vorgestellten auf Adafruit Blog
  • 23. März 2012: Featured auf interaktives Design
  • 13. Dezember 2011: Featured auf Zahnseide für die Wissenschaft

Diesem Handbuch erhalten auch auf meinem Blog http://techbitar.blogspot.com/2012/04/face-detection-and-tracking-with.html

EINFÜHRUNG

In diesem Projekt habe ich eine Gesicht-Erkennung und Tracking-System zusammengebaut. Sie können das Video des endgültigen Projekts hier sehen:

Grundsätzlich sendet die Webcam video-Frames an OpenCV läuft auf einem Windows-PC. Wenn OpenCV ein Gesicht erkennt es verfolgt es und sein Zentrum X-und Y-Koordinaten zu berechnen. Die Koordinaten werden dann über eine serielle USB-Verbindung auf dem Arduino weitergegeben. Der Arduino steuert die Bewegung der Webcam mit Hilfe von zwei Schwenk/Neige-Servos, die erkannte Gesicht zu folgen.

OpenCV (öffnen Sie Quelle Computer Vision Bibliothek: http://opencv.willowgarage.com/wiki/) ist eine Open-Source-Bibliothek, die mehrere Hunderte von Echtzeit-Computer-Vision-Algorithmen enthält. Die OpenCV-2.x-Bibliothek ist eine C++-API.

Dies ist ein Integrationsprojekt zwischen Hardware- und Software-Tools. Das Bild Verarbeitung C++ Code-Beispiele werden bereitgestellt mit der OpenCV-Bibliothek und alles, was ich tat war, den Beispielcode für dieses Projekt zu ändern. Ich entfernte einige der unnötigen Code und serielle Kommunikation hinzugefügt, damit sie X, senden kann Y Werte mit Arduino.

KREDIT

Dieses Projekt wäre nicht möglich ohne das Team gewesen, die OpenCV entwickelt. Ich profitierte auch von Ryan Owens' Tutorial (http://www.sparkfun.com/tutorials/304) basiert auf Verarbeitung, OpenFrameworks und eine frühere Version von OpenCV. Ich habe versucht, Verarbeitung und OpenFrameworks ohne Glück zu installieren. So anstatt, ich mich für Microsoft Visual C++ 2010 Express und die neueste Version von OpenCV ist 2.3.1 ohne Middleware oder Wrapper entschied.

WERKZEUGE

Erforderliche Software

Arduino IDE 1.0 für Windows
OpenCV 2.3.1 SuperPack für Windows
Microsoft Visual C++ 2010 Express SP1
Serielle C++-Bibliothek für Win32 (von Thierry Schneider)

Code erforderlich

-OpenCV C++ (im Anhang) techbitarFaceDetection.cpp (basierend auf OpenCVs Beispiel facedetect.cpp)
-Arduino (angeschlossenen) cam_servo.ino (basierend auf Ryan Owens Beispiel SerialServoControl.pde)

Benötigte Hardware

-PC am besten mit Windows 7 SP1. Die schnellere CPU desto besser.
-Arduino Uno oder kompatibel + Energie Quelle.
-Standard-Servos 2 X.
-Webcam w/UBS Schnittstelle.
-Steckbrett.
-Jumper Kabel.
-Hobby Draht zu binden-Schwenk/Neige-Servos und Webcam zusammen.

In Verbindung stehende Artikel

Die Wireless, Hindernis Erkennung, Piepen Roboter mit Arduinos!

Die Wireless, Hindernis Erkennung, Piepen Roboter mit Arduinos!

Dies ist ein drahtlos gesteuerten, autonome Hindernis Erkennung Roboter!Vor einer Weile hatte ich habe diese Instructable und seitdem einige größere Upgrades machen wollte.Im folgenden werden die Roboter-Funktionen:-1.he ist drahtlos mit 433 MHz Tx/R
Real-Time Face Tracking-Roboter mit Arduino und Matlab

Real-Time Face Tracking-Roboter mit Arduino und Matlab

Real-Time Face tracking-bezieht sich auf die Aufgabe menschliche Gesichter in einem Videostream Ortung und Verfolgung der erkannten oder bekannte Gesichter. Heutzutage gibt es viele Anwendungen der realen Welt der Gesichtserkennung und andere Bildver
Eine schwebende Kugel dreht leuchtet und blinkt mit Arduino

Eine schwebende Kugel dreht leuchtet und blinkt mit Arduino

Ein schwebender wenig Todesstern in Instructables lud mich in das neue Projekt mit Arduino. Drei Richtlinien wurden beschlossen und gehalten, um es aus dem Vorgänger zu unterscheiden.Tun Sie es selbst mit konfektionierter keine (oder weniger).Drehen
NeoMickey: Mickey/Minnie Ohren mit Arduino und Neopixels

NeoMickey: Mickey/Minnie Ohren mit Arduino und Neopixels

Dieser Artikel wird Ihnen zeigen, wie man meine NeoMickey Ohren machen. Ich habe einen Satz der Ohren für meine Freundin und ich, im Disneyland zu verwenden. Die Ohren waren ein großer Erfolg und eine Menge Leute wollten wissen, wo sie zu bekommen. D
Objektverfolgung durch Farbe mit Python und OpenCV

Objektverfolgung durch Farbe mit Python und OpenCV

Das Ziel ist es, eine Skript schreiben, die macht ein Roboterauto eine blaue Markierung erkennen, in Richtung der Markierung bewegen, lesen die Zeichen dafür, dass auf den Marker und seine Richtung zu folgen, bis ein Stop-Schild gefunden wird.Das Vid
Subtrahieren den Hintergrund aus einem Video mit Intel Edison und OpenCV

Subtrahieren den Hintergrund aus einem Video mit Intel Edison und OpenCV

Dies ist ein Instructable zu zeigen, wie Sie den Hintergrund eines Bildes mit dem Intel Edison und OpenCV subtrahieren. Diese Technik kann verwendet werden, um bewegte Objekte in einem Video wie Autos, Menschen, etc. zu identifizieren.Schritt 1: Was
Home-Automation mit Arduino... Und JavaScript!

Home-Automation mit Arduino... Und JavaScript!

In diesem instructable (mein erstes One tatsächlich), ich werde dich zu Automatisierung in Ihrem Haus mit Arduino, führen ja, nicht so neu... Aber wir gehören auch JavaScript, mit Node.js und eine tolle Bibliothek zur Interaktion mit Arduino genannt
Decodierung und senden von 433MHz RF-codes mit Arduino und rc-Schalter

Decodierung und senden von 433MHz RF-codes mit Arduino und rc-Schalter

In diesem Tutorial werde ich zeigen, wie einen Arduino können Signale von RF-Fernbedienungen zu entschlüsseln, und erneut senden sie einige Netz-Schalter und ein Garagentor fernsteuern.Hinweis: Diese Anleitung wurde für Australien, geschrieben wo es
Wetter Anzeige mit Arduino und Raspberry Pi

Wetter Anzeige mit Arduino und Raspberry Pi

Dieses Projekt ist Wetter-Display-System mit 16 * 2 lcd, Arduino, Raspberry Pi, InternetDieses Bauprojekt ist sehr einfach Notwendigkeit sehr weniger MontageEs war das Wetter in irgendwelches Geschirr Welt auf 16 * 2 anzeigen, können Sie anpassen, wa
Branderkennung mit Arduino und Flamme Sensor

Branderkennung mit Arduino und Flamme Sensor

Flammenfühler ist eine Schnittstelle mit Arduino, Flamme zu erkennen. LED und Summer sind eine Schnittstelle mit Arduino an die Flamme.Hardware-Komponenten benötigt:-(1) Flammenfühler (analog Output)(2) Arduino(3) Brot board4) LED(5) Summer(6) Anschl
Arduino und Visuino: 4D Systems ViSi Genie Smart Touchscreen-Display mit Arduino verbinden

Arduino und Visuino: 4D Systems ViSi Genie Smart Touchscreen-Display mit Arduino verbinden

Es kommt eine Zeit, wenn Sie ein Touchscreen-Display mit dem Arduino-Board verbunden haben wollen. Es gibt viele verschiedene Anzeigeoptionen und Größen verfügbar, aber die meisten von ihnen erfordern beträchtliche Menge an Code gesteuert werden, und
Ferngesteuerter Webcam mit Arduino, SensorMonkey, jQuery und Justin.tv

Ferngesteuerter Webcam mit Arduino, SensorMonkey, jQuery und Justin.tv

webfähig Ihre interaktive Sensoren über Desktop, Smartphone und Tablet-PCs.Dieses Tutorial beschreibt im Detail, wie mithilfe der kostenlosen SensorMonkey -Service aus der Ferne steuern, einer Pfanne und kippen Webcam an einem Arduino mit nichts mehr
Strom, Wasser und Zentralheizung meter auslesen mit Arduino, WR703N Router und Linux Webcams

Strom, Wasser und Zentralheizung meter auslesen mit Arduino, WR703N Router und Linux Webcams

Dateien beschreiben wie man Richtung smart-Home und Auslesesystem für Energie und Wasserzähler.-Optischer Sensor Strom Messgerät Festplatte auslesen. Funktioniert gut. Live im Http://barbara320.gotdns.com:8083 /-Webcam Rebreathertauchen Warmwasser Zä
Lese-/emulieren Fernbedienungen mit Arduino und Raspberry Pi

Lese-/emulieren Fernbedienungen mit Arduino und Raspberry Pi

Fernbedienungen sind überall. Sie sind die Schnittstelle zu Ihrem Fernseher, Musikanlagen und was nicht. Sie haben wahrscheinlich ein paar Ersatzteile herumliegen, bei dem Untergang der ihre besseren Hälften verwüstet. Sie aufzumuntern und wieder in