Target Tracking: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 26: Zeile 26:
=== Objekterkennung (roter Ballon vor weißem Hintergrund) ===
=== Objekterkennung (roter Ballon vor weißem Hintergrund) ===
Um ein rotes Objekt in einem Live Videobild aus einem weißen Hintergrund zu selektieren müssen folgende Schritte durchgeführt werden:  
Um ein rotes Objekt in einem Live Videobild aus einem weißen Hintergrund zu selektieren müssen folgende Schritte durchgeführt werden:  
# Im ersten Schritt muss jedes Frame aus dem rgb-Bild  einzelt ausgelesen werden. <br /> [[Bild:Rak r2b1.jpg|100px |Schritt 1]]
# Im ersten Schritt muss jedes Frame aus dem rgb-Bild  einzelt ausgelesen werden. <br /> [[Bild:Rak r2b1.jpg|100px |Schritt 1]]<br />  Quelle: http://arindambose.com/blog/?p=72
# Der zweite Schritte besteht darin sich nur den roten Teil des RGB-Bildes zu  holen. <br /> [[Bild:Rak r2b5.jpg|100px |Schritt 2]]   
# Der zweite Schritte besteht darin sich nur den roten Teil des RGB-Bildes zu  holen. <br /> [[Bild:Rak r2b5.jpg|100px |Schritt 2]]<br /> Quelle: http://arindambose.com/blog/?p=72  
# Darauf in wird das Bild aus dem rgb-Farbraum in ein Graustufenbild umgewandelt. <br /> [[Bild:Rak r2b2.jpg|100px |Schritt 3]]  
# Darauf in wird das Bild aus dem rgb-Farbraum in ein Graustufenbild umgewandelt. <br /> [[Bild:Rak r2b2.jpg|100px |Schritt 3]]<br />  Quelle: http://arindambose.com/blog/?p=72
# Nun wird der rote Teil des RGB-Bildes vom Graubild subtrahiert.  <br /> [[Bild:Rak r2b3.jpg|100px |Schritt 4]]
# Nun wird der rote Teil des RGB-Bildes vom Graubild subtrahiert.  <br /> [[Bild:Rak r2b3.jpg|100px |Schritt 4]]<br /> Quelle: http://arindambose.com/blog/?p=72
# Auf das Graubild wird ein Median Filter eingesetzt um störende Verrauschungen zu entfernen. <br />  [[Bild:Rak r2b4.jpg|100px |Schritt 5]]  
# Auf das Graubild wird ein Median Filter eingesetzt um störende Verrauschungen zu entfernen. <br />  [[Bild:Rak r2b4.jpg|100px |Schritt 5]]<br />  Quelle: http://arindambose.com/blog/?p=72
# Das gefilterte Bild wird nun in ein Binärbild umgewandelt. Die roten Objekte werden hierfür weiß gemacht der Rest wird schwarz.  <br /> [[Bild:Rak r2b6.jpg|100px |Schritt 6]]  
# Das gefilterte Bild wird nun in ein Binärbild umgewandelt. Die roten Objekte werden hierfür weiß gemacht der Rest wird schwarz.  <br /> [[Bild:Rak r2b6.jpg|100px |Schritt 6]]<br />  Quelle: http://arindambose.com/blog/?p=72


<br />
<br />

Version vom 19. Juni 2014, 17:50 Uhr

Autor: Martin Berysztak
Betreuer: Prof. Schneider

Raketenwerfer von getdigital.de

Ziel

Ein roter Luftballon soll in Bewegung vor einem weissen Hintergrund erkannt und vom Raketenwerfer getroffen werden.

Aufgabe

  1. Erkennen Sie den Luftballon vor seinem Hintergrund mit einer Webcam.
  2. Fokussieren Sie den Raketenwerfer auf den Luftballonschwerpunkt.
  3. Treffen Sie den Luftballon in einer Flugsequenz mit 3 von 4 Schüssen.


Lösung

Die Lösung der Aufgabenstellung teilt sich in drei Teilschritte:

Ansteuern des Raketenwerfers

Zur Lösung der Aufgabe ist der von getdigital.de vertriebene Raketenwerfer ist zur Lösung der Aufgabe nicht geeignet da so nur eine Ansteuerung über die gegebene Software möglich ist. Für die vorliegenden Lösung wurde ein Raketenwerfer mit einer neuen Ansteuerung über [| Arduino] entwickelt.

Bei Fragen zur Entwicklung der neuen Ansteuerung Jan Kifmann Umgebauter Raketenwerfer


Objekterkennung (roter Ballon vor weißem Hintergrund)

Um ein rotes Objekt in einem Live Videobild aus einem weißen Hintergrund zu selektieren müssen folgende Schritte durchgeführt werden:

  1. Im ersten Schritt muss jedes Frame aus dem rgb-Bild einzelt ausgelesen werden.

    Quelle: http://arindambose.com/blog/?p=72
  2. Der zweite Schritte besteht darin sich nur den roten Teil des RGB-Bildes zu holen.
    Schritt 2
    Quelle: http://arindambose.com/blog/?p=72
  3. Darauf in wird das Bild aus dem rgb-Farbraum in ein Graustufenbild umgewandelt.
    Schritt 3
    Quelle: http://arindambose.com/blog/?p=72
  4. Nun wird der rote Teil des RGB-Bildes vom Graubild subtrahiert.
    Schritt 4
    Quelle: http://arindambose.com/blog/?p=72
  5. Auf das Graubild wird ein Median Filter eingesetzt um störende Verrauschungen zu entfernen.
    Schritt 5
    Quelle: http://arindambose.com/blog/?p=72
  6. Das gefilterte Bild wird nun in ein Binärbild umgewandelt. Die roten Objekte werden hierfür weiß gemacht der Rest wird schwarz.
    Schritt 6
    Quelle: http://arindambose.com/blog/?p=72


Diese Schritte werden im Code während der While-schleife immer wieder für jedes Bild durchgeführt. Anhand dessen kann nun mit Hilfe des BlobAnalysis-Befehls nun die roten Objekte selktiert werden.

Objekt Tracking

Um das Objekt zu verfolgen wird auf die zuvor im vision.BlobAnalysis-Befehl ausgebenen und in der centroid-Variable gespeicherten Mittelwertskoordinaten zugegriffen. Außerdem wird die Tatsache genutzt, dass der Raketenwerfer etwas über dem Mittelpunkt des Kamarabildes schießt. Dieser befindet sich in einem Bereich von:

  • X-Richtung: 330-380
  • Y-Richtung: 360-290

Dadurch wird die Annahme getroffen, dass wenn das zu treffende Objekt sich in Bildmittelpunktbereich befindet, es getroffen wird. Dies wird erreicht indem anhand von if-Bedingungen und der Centroid Variable geprüft wird ob sich der Mittelpunkt des Objektes sich bereits im Abschussbereich befindet, wenn dies nicht der Fall ist soll der Raketenwerfer sich solange in diese Richtung bewegen.

Befinden sich nun der Mittelpunkt des Objektes oberhalb des Kameramittelpunktes, werden alle Bewegungen des Raketenwerfers eingestellt und das Objekt wird abgeschossen.

Bedienung des Tools

Ausblick

Aufgrund der gegeneben Hardware kann Raketenwerfer schnell bewegene Objekte schlecht treffen.




→ zurück zum Hauptartikel: Digitale Signal- und Bildverarbeitung SoSe2014