Ausarbeitung und Implementierung eines Feedback-Systems, welches Kamerabilder in Echtzeit auf die relevanten Eigenschaften überprüft.
C++, CUDA, NVIDIA Jetson, Bildverarbeitung
In dieser Arbeit soll ein Feedback-System entwickelt werden, welches Kamerabilder in Echtzeit bezüglich des aufgenommenen Bildausschnittes analysiert und ein Feedback generiert, das angibt, wie die Kamera verschoben/ausgerichtet werden muss, damit sie den erwünschten Bildausschnitt erfasst.
Trackscore, ein Projekt der Fachhochschule Nordwestschweiz FHNW im
Auftrag von SR Media, hat zum Ziel, eine automatische In/Out Erkennung
für den Tennissport zu ermöglichen. Trackscore soll eine
kostengünstige Alternative zu den etablierten Systemen darstellen und
somit für den Amateursport eingesetzt werden können.
Trackscore besteht aus einem Verbund von verschiedenen Kameras: einer
Übersichtskamera und mehreren Linienricherkameras. Auf die
eingesetzten Hardwarekomponenten von Trackscore wird im Kapitel
Überblick über die Hardware von Trackscore genauer eingegangen. Jede
dieser Kameras ist an einen Computer angeschlossen. Die Ausführungen
der Algorithmen, welche für die In/Out Entscheidungen eingesetzt
werden, geschieht direkt auf dem angeschlossenen Computer. Über einen
gemeinsam genutzten Wifi Access Point verbinden sich die verschiedenen
Computer in ein Netzwerk und können über dieses kommunizieren.
Damit Trackscore korrekt funktioniert, müssen die verschiedenen
Kameras vor dem Spielbetrieb kalibriert werden. Es ist notwendig,
verschiedene Parameter zu überprüfen und einzustellen, damit ein
korrekter Spielbetrieb gewährleistet ist. Das Kalibrieren sollte
möglichst einfach und intuitiv sein, damit es von Laien selbständig
und schnell durchgeführt werden kann.
Im Rahmen dieser Bachelorthesis wurde ein System erarbeitet, welches das Kalibrieren von Bildschärfe und Ausrichtung der Central Unit, dem zentralen Element des Linecalling-Systems Trackscore, ermöglicht. Dabei wurde das bestehende Softwareprojekt dahingehend erweitert, dass Liveübertragung von Kamerabildern und Kommunikation mit einer neu entwickelten Webapplikation möglich wird. Dies wurde durch die Erweiterung des Threadingmodells und Implementation eines WebSocket- sowie eines HTTP-Servers unter Verwendung der bekannten C++ Open Source Bibliothek Boost erreicht. Die Pipeline liest Bildmaterial von zwei Kameras mit einer Auflösung von je 3840 x 2160 Pixeln ein und analysiert diese auf Bildschärfe sowie Ausrichtung des Bildausschnittes. Unter realen Bedingungen dürfte diese Performance problemlos erreicht und sogar übertroffen werden. Ein endlicher Zustandsautomat bildet die verschiedenen Phasen der Kalibrierung ab. In jeder Phase werden unterschiedliche Parameter geprüft und ein spezifisches Feedback erstellt. Die mit dem Videoplayer und Entwicklungshardware durchgeführten Tests haben gezeigt, dass die Implementation einen kombinierten Durchsatz von knapp 30 Bildern pro Sekunde erreicht.
| Zeitraum | 20.09.2021 - 25.03.2022 |
| Aufwand | 720 Stunden |
| Teamgrösse | 2 Studenten |
| SR Media |
| Gartenstrasse 17 |
| 5400 Baden |
Kevin Buman
Pascal Hauser