C++, OpenCV, Raspberry Pi, Pi Kamera, Raspiraw
Das Ziel dieser Arbeit ist herauszufinden, ob mit einem günstigen Raspberry Pi Setup (Computer und Kamera) ein Tischfussballschuss erkannt und verarbeitet werden kann. Es werden Kameras untersucht und eingebunden. Damit müssen Schüsse erkannt und der getroffene Torsektor errechnet werden. Ergebnis soll ein Prototyp einer Schusstrainingslösung sein.
Der Tischfussballverein 'Tablesoccer beider Basel' sucht nach einer digitalen Lösung zur Unterstützung des Trainingsprozesses. Die Schüsse sind zu schnell, als dass sie mit dem menschlichen Auge genau verfolgt werden können. Für das Training ist es jedoch essenziell zu wissen, wo im Tor der Schuss einging. Für die Lösung soll ein Raspberry Pi Computer und eine damit verbundene Kamera verwendetet werden.
Im Verlauf dieser Arbeit wurden diverse Kameras für den Raspberry Pi integriert. Mit einer Open Source Software namens Raspiraw wird auf die Kamera zugegriffen und ein Bildstrom mit 350 Frames pro Sekunde erzeugt. Auf den erhaltenen Bildern soll der Ball erkannt werden. Der offizielle Ball ist orange und hebt sich dadurch farblich vom restlichen Spielbereich ab. Diese Eigenschaft wird mithilfe von Bildverarbeitung ausgenutzt. Die Software wird für einen minimalen wie maximalen Orangefarbton kalibriert. Anhand dieser Grenzen wird das ganze Bild in ein Binärbild umgewandelt. Ein Binärbild hat nur schwarze oder weisse Pixel. Bei korrekter Kalibrierung enthält das Bild danach nur noch Informationen über den Ball. Das folgende Bild zeigt, wie sich ein Schuss über den gefilmten Bereich bewegt, wie das Binärbild aussieht und wo die Ballposition erkannt wurde.
Um zu bestimmen, in welchem Torsektor der Ball einging, braucht es die Schussbahn. Es muss möglichst viel Informationen über einen Schuss gesammelt werden. Darum werden bis zu 8000 Bilder in ein Puffer gesichert. Über diese Bilder wird iteriert, wenn ein Schuss erkannt wurde. Die Software beobachtet den Torraum. Sobald eine Ballposition innerhalb des Torraums entdeckt wurde, werden noch einige weitere Bilder gesammelt und danach der Bildstrom gestoppt. Es wird über den ganzen Buffer iteriert und in jedem Bild nach Ballpositionen gesucht. Diese werden anschliessend verwendet, um die Schussbahn zu approximieren. Das folgende Bild zeigt alle gefundenen Ballpositionen als rote Kreise und die gelbe errechnete Schussbahn.
Der letzte Abschnitt der Schussbahn wird verwendet, um zu errechnen wo der Ball im Tor einging. Während des Trainings wird dies dem Spieler auch angezeigt. Die getroffene Zone wird hervorgehoben. Es wird zusätzlich ausgerechnet, wie schnell der Schuss war.
Die Kamera ist mit einer selbst gebauten Halterung am Tisch befestigt. Das folgende Bild zeigt den Aufbau.
Projektdauer: 20.09.2021 - 25.03.2022
Aufwand in Personenstunden: 720h
Teamgrösse: 2 Personen
Tischfussballverein Tablesoccer beider Basel
Beatrice Berner
www.tablesoccerbeiderbasel.ch
Naemi Matter
Informatik berufsbegleitend
naemi.matter@students.fhnw.ch
Moritz Wirth
Informatik berufsbegleitend
moritz.wirth@students.fhnw.ch
Prof. Dr. Christoph Stamm
christoph.stamm@fhnw.ch