Kameratracking mit OpenCV

Um ein interaktives Spielerlebnis bieten zu können ist es notwendig das Spielfeld verfolgen zu können. Dazu wird eine Farbe auf dem Spielfeld von einer Kamera getrackt, die dann von einem Roboter überdeckt werden kann. Dadurch, dass der Roboter die Farbe verdeckt und sie nicht mehr erkannt wird, bekommt das Spiel das Signal, dass das Ziel erfüllt wurde.

Denkbar ist es auch das Kameratracking ohne Roboterbau zu verwenden um damit beispielsweise eine Art Twister zu spielen, bei dem Spieler immer eine Farbe überdecken müssen.

Das fertige und ausführbare Programm, um das Spielfeld zu steuern und mit der Kamera zu tracken steht hier zum Download bereit: 

https://www.dropbox.com/sh/4ss0pbbrix549pa/AADypXY-kWzbfbGEEWd8LMFua?dl=0

Wenn man Änderungen am Code vornehmen möchte, oder das Tracking für eine eigene Anwendung verwenden möchte, muss ein paar Sachen auf dem PC installieren: Wir benutzen OpenCV in Microsoft Visual Studio Express 2013 (Achtung: die Steuerung der Roboter wird per Visual Studio 2015 umgesetzt, ihr benötigt für das Tracking aber die 2013er Version).

Installation von Visual Studio 2013 Express:

  • Link zum Download von Visual Studio 2013 Express: https://www.microsoft.com/de-de/download/details.aspx?id=44914
  • Visual Studio funktioniert auf Windows, nicht auf OS X von Mac (außer Bootstrap wird installiert)
  • Hierfür werden 6 GB Speicher benötigt
  • Wir programmieren in C++, hierfür muss ggf. ein zusätzliches Sprachpaket heruntergeladen werden
  • Vor dem Verwenden wird man aufgefordert ein Microsoft Konto anzulegen

Als nächstes müsst ihr den benötigten Code herunterladen. Diesen findet ihr hier:

 https://github.com/SiHaas/RoboMove_Cameratracking_Release

Das Projekt müsst ihr dann im Projektverzeichnis von Visual Studio ablegen und könnt es dann dort in Visual Studio finden.

Installation von OpenCV:

  • Visual Studio 2013 Express öffnen
  • Folgende Schritte ausführen:
  • Code öffnen → obere Aktionsleiste von Visual Studio: Extras → NuGet-Paket-Manager → NuGet-Pakete für Projektmappe verwalten → auf der linken Seite “Online” bzw. nuget.org auswählen → oben rechts Suchfenster anklicken→ “opencv” eingeben → “OpenCV” v2.4.10 von Itseez auswählen → Installieren

Verwendung des Kameratrackings:

Achtet darauf dass vor dem Starten des Programms oder Projektes eure Kamera angeschlossen ist, da es sonst zu Fehlern kommt. Nach dem Starten öffnen sich einige Fenster auf eurem Bildschirm:

  1. Debug Console: wird zum debuggen benötigt, falls ihr Änderungen am Code vornehmen wollt
  2. “Background”: liefert das sich ändernde Spielfeld für das Beamerbild
  3. “Original Image”: der Kamerainput wird hier abgebildet, auf diesem Fenster kann man durch gedrückt halten und ziehen der Maus einen Farbbereich zum Tracking markieren
  4. “HSV Image”: hier sieht man das Kamerabild wie es sich in HSV Werten darstellt
  5. “Trackbars”: hier kann man manuell einen HSV Wert festlegen den man tracken möchte oder nachprüfen welche Farbwerte der aktuell ausgewählte Bereich hat
  6. “Thresholded Image”: hier wird das Kamerabild nach der ausgewählten Farbe gefiltert, das heißt, dass alle Bereiche die mit dem ausgewählten Farbwert übereinstimmen in einem schwarzen Kontrast erscheinen

Zum Verwenden des Trackings zieht ihr nun das Fenster “Original Image” so an den rechten Rand des Bildschirms, dass es ca. 50% des Bildschirms ausmacht. Über die übrig bleibende linke Hälfte des Bildschirms legt ihr nun das Fenster “Background”. Auf diese Weise kann sowohl der Hintergrund als auch das Kamerabild gleichzeitig abgebildet werden. Um das Tracking zu kalibrieren und das Spiel zu initialisieren zieht man nun mit der Maus auf dem Fenster “Original Image” über der von dem Beamer abgebildeten und von der Kamera aufgenommenen Münze ein Kästchen. Dieses sollte einen möglichst großen Teil der Fläche der Münze erfassen, ohne dabei über den Rand der Münze hinauszuragen. Wenn das geschafft ist setzt man das Fenster “Background” auf Vollbild und das Spiel kann losgehen.

Tipp:

Ob die Münze richtig erkannt wird kann man in dem Fenster “Thresholded Image” erkennen, oder wenn im Fenster “Original Image” oben “Tracking Object” erscheint.

Wenn es Probleme damit gibt, dass die Münze nicht richtig erkannt wird, kann es helfen die Lichtverhältnisse zu ändern, oder das Tracking mit den oben beschriebenen Schritten nach einem Neustart des Programms neu zu kalibrieren.

Advertisements