Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Ausgewählte Lösung
Hochschule Karlsruhe Logo Informationstechnik
Swimming Pixel Kamera-Ortung
Winterersemester 2020
rasa1013@hs-karlsruhe.de
gech1023@hs-karlsruhe.de

Ausgewählte Lösung

Im Folgenden wird aufgezeigt, welche Lösungsvarianten verwendet wurden, um die Herausforderungen der Lokalisierung der Swimming Pixel mit Hilfe der Kamera-Ortung zu bewältigen. Da ein Großteil des Projekts die Software betrifft, wird in dem Kapitel Softwaredoku näher auf das Programm eingegangen.

Ziel unserer Gruppe war es das Bildverarbeitungsprogramm mit den diversen Funktionen als Klasse auszulagern, sodass man es einfach und unkompliziert in das Hauptprogramm implementieren kann.

Die Smartphone-Kamera wurde mit der Freeware iVCam mit dem Laptop gekoppelt. Durch die App konnte der Laptop auf die Smartphonekamera zugreifen und die Bilder der Objekte einlesen. Im Laufe des Projekts lief jedoch die Testversion ab und es konnten keine 4k Videos mehr übertragen werden, weshalb wir die Vollversion erworben haben.

Letztendlich ist man aber nicht an die App gebunden. Es gibt genügend Möglichkeiten die Smartphone-Kamera mit dem Laptop zu koppeln. Wie die App auf dem Smartphone und dem Laptop eingerichtet wird, ist in folgender PDF beschrieben.

data/Anleitung Inbetriebnahme SP_KO.pdf

Für die Erprobung der Software wurde eine "dummy-main" geschrieben, in der die Klasse CCameraDetection implementiert wurde. Für den Versuchsaufbau wurden keine Swimming Pixel verwendet unter anderem aufgrund der Covid19-Situation und zum anderen, weil es für die Ausführung des Projekts Kamera-Ortung nicht notwendig war.
Somit konnte unsere Gruppe unabhängig von den anderen Teilgruppen arbeiten.


Im Laufe des Projekts kristallisierten sich zwei größere Herausforderungen heraus, für die wir eine Lösung finden mussten, um die genaue Lokalisierung der Swimming Pixel per Kamera zu ermöglichen.


1. Perspektiven-Transformation

Um eine genaue Lokalisierung zu ermöglichen ist es wichtig die Flucht des Kamerabildes mit zu berücksichtigen. Wenn man die Swimming Pixel mit einer Drohne aus der Vogelperspektive filmen würde, würde diese Problemstellung wegfallen. Da die Pixel mit einer Kamera auf einem Stativ aufgenommen werden, ist eine Perspektiven-Transformation deshalb unumgänglich.

Perspektiven-Transformation

Zu Beginn wurde die Lösungsalternative, eine mathematische Umrechnung des Welt-Koordinatensystems auf das Koordinatensystem innerhalb des Frames, in Betracht gezogen. Jedoch wurde schnell klar, dass dies einen sehr hohen Rechenaufwand zur Folge haben würde, wenn alle Parameter mit berücksichtigt werden sollen.

Durch weitere Recherchen und Einarbeitung in das Bildverarbeitungsprogramm openCV wurde eine Möglichkeit herausgearbeitet, um die Perspektive der Kameraaufnahme umzuwandeln, dass mit wenigen Benutzereingaben (siehe Softwaredoku) eine Vogelperspektive der Fläche, wie im nachfolgenden Bild, entsteht.

Kameraperspektive
Kameraperspektive


Umgewandelte Vogelperspektive
Transformierte Perspektive

Nach der Transformation der Kameraperspektive wird eine nxn-Matrix über das neu erstellte Frame gelegt. Somit ist eine eindeutige Detektion der Positionen der Swimming Pixel möglich.

2. Detektierung der Swimming Pixel


Um die Position der einzelnen Pixel im Wasser zu ermitteln, muss zunächst der Pixel von der Kamera erkannt werden. Wir haben uns für die Detektionsmethode der Farberkennung entschieden. Hierbei werden die LED-Ringe der einzelnen Swimming Pixel im Wasser nacheinander eingeschalten.

Anschließend wird mit Hilfe des HSV (Hue Saturation Value) Farbraums der Farbwert, die Farbsättigung und der Hellwert des Pixels aus dem Kamerabild gefiltert. Übrig bleibt das weiße detektierte Objekt, der Swimming Pixel und der schwarze Hintergrund.


HSV Farbraum
Abb. HSV Farbraum, Quelle: wikipedia.org


HSV Detektierung


Mit Hilfe einer einprogrammierten Control-Trackbar können die HSV-Werte so angepasst werden, sodass der Pixel im Wasser erkennbar wird. Anschließend sind Funktionen in dem Programm implementiert (siehe auch Softwaredoku), die die Pixel so ausfiltern, dass das Objekt besser erkannt wird.

Trackbar
Nachdem der Pixel aus dem Bild gefiltert ist, wird der Mittelpunkt des LED-Rings berechnet und die Position in der Matrix durch einen Kreis auf dem Bild angedeutet. Mit Hilfe der Koordinaten des Punktes in dem Frame wird die Position in der Matrix bestimmt und an das Hauptprogramm gesendet.


  Mit Unterstützung von Prof. J. Walter Winterersemester 2020