Aktuell habe ich folgende Ideen für Projektarbeiten. Interessierte Studenten können sich gerne bei mir melden.
Der Bewerbungsprozess der Fachhochschule Wedel soll modernisiert werden. Ein Ansatz ist "mobile first". Anstelle einer unübersichtlichen Website soll ein dialogbasiertes Bewerberportal entworfen und umgesetzt werden. Der Bewerbungsprozess wird durch das Senden einer Kurznachricht (Signal, Telegram, WhatsApp,…) gestartet. Ein automatisierter Dialog fragt den Bewerber sequentiell nach allen notwendigen Informationen und Dokumenten ("schicke mir jetzt Photos von deinem Zeugnis"). Die Verarbeitung der Eingaben darf beliebig dumm sein ("Sende 1 für Hauptmenü"), darf aber auch Ansätze der künstlichen Intelligenz für einen natürlicher wirkenden Dialog verwenden.
OpenRoadEd hat viele Interessenten auf der ganzen Welt – obwohl es noch nichtmal funktioniert. Jemand sollte sich drum kümmern. Vorkenntnisse in Qt und OSG sind hilfreich, aber nicht MInf oder CGT beschränkt.
In der Robotik verwenden wir gerne ArUco Marker. Das Erkennen dieser Marker braucht mehr Rechenleistung als die CPU des Steuerungsrechners. In diesem Projekt sollen die rechenintensiven bildverarbeitenden Schritte mit Hilfe von CUDA auf die GPU ausgelagert werden.
Trotz des Bezugs zur Robotik und Bildverarbeitung ist dies Softwarearbeit mit allgemeinen Herausforderungen. Jeder Inf, TInf, MInf, CGT, STec, ITE ist willkommen.
At the Robotics Lab at the Fachhochschule Wedel, we like to use ArUCO markers. In particular the function cv::aruco::detectMarkers provided by OpenCV. However, on some systems, we experience performance problems. Since the systems we are working on do have powerful GPUs, I would like to use CUDA. There is a project that allegedly implements ArUCO marker detection with CUDA. However, it does not work for the markers we have and the code looks so messy I cannot really read it: https://github.com/nbergst/cuda_aruco
My preliminary research using gporf leads me to believe that I
found a repeated call to cv::adaptiveThreshold. This may offer an
opportunity for a speed-up, since about a third of the total time
is spent there:
One of the first things you should do is verify my findings by
using gporf yourself. For details, look at the parallel_for-loop
in _detectInitialCandidates
calling _threshold. cv::findContours looks also pretty costly in
terms of run-time, but I have no idea on how to speed that up.
I would like to move the repeated call to cv::adaptiveThreshold
into the GPU using CUDA. I have no experience with CUDA and do not
know how to use it efficiently in this context. I could imagine
that one would upload the input image into the VRAM once, then the
GPU runs the loop, creating N images (or one image with N layers,
or one image of N-times the size) which are then downloaded back
to the RAM. The result must be checked for correctness: The
traditional implementation and our CUDA implementation should
calculate the same images. The result also must be evaluated using
gporf to see whether it actually offers an improvement in terms of
speed. The implementation can be done in a relatively
non-intrusive manner and may be puglished. If you manage to write
code so good that it is accepted into the OpenCV project, I will
give you the best possible grade. ;)
So far, the result should help us with all our CUDA-enabled systems. For an additional and optional challenge, we can take a closer look at our Nvidia Jetson TX2 system. It features a powerful GPU and a relatively weak CPU. For this reason, the camera (it is called "argus", but I do not know if the name refers to the camera, the interface or a library) writes images directly into the VRAM. This may offer opportunity for a huge increase in performance since we can bypass the (slow) CPU for everything up to (but excluding) the call to cv::findContours. I did some preliminary research on this topic. Find my test programs attached. Since I do not have any experience with CUDA, the problems I ran into are plentiful. I took code and information from these sources:
https://www.ximea.com/support/wiki/apis/Using_OpenCV_with_CUDA_on_the_Jetson_TX2
https://medium.com/@aleozlx/live-streaming-from-jetson-tx2-with-custom-cuda-filters-part-i-ef06366a92c1
https://forums.developer.nvidia.com/t/gstreamer-nvmm-opencv-gpumat/52575/21
https://forums.developer.nvidia.com/t/nano-not-using-gpu-with-gstreamer-python-slow-fps-dropped-frames/107291/22
Unfortunately, because this is the way Nvidia does things, you must use the dated Ubuntu 18 in this context.
All things considered, this project is best done by someone who knows their way around Linux, C++, CUDA, and gporf. Or is really eager to learn about it.
Die Sicherheitseinrichtung des KUKA Roboters im Labor für Robotik erfüllt nur die Mindestanforderungen. Eine Erweiterung auf Grundlage der Erfahrungen mit der bestehenden Einrichtung ist erwünscht.
Es existieren verschiedene Übersichts- und Raumpläne der Fachhochschule Wedel. Sie sind je nach Variante aktuell, intuitiv verständlich, leicht lesbar, hilfreich und wiederverwendbar (wähle eins). Es soll ein neuer Übersichtsplan erstellt werden, welcher auch als Basis für einen virtuellen Rundgang oder ein Leitsystem dienen kann. Passende Pläne (Grundrisse) liegen vor. Eine Abstimmung mit den Mitarbeitern der Öffentlichkeitsarbeit, Mediengestaltung, Computergraphik und Web-Anwendungen muss erfolgen.
Die FH Wedel besitzt eine Insta 360 Pro, einen Eddie Roboter und diverse VR Brillen. Es sollte möglich sein, einen Live-Stream mit niedriger Latenz von der Panoramakamera direkt an die VR Brille zu senden. Das Anpassen der Blickrichtung geschieht also beim Empfänger. Über ein beliebiges Eingabegerät (VR Controller, Gamepad, Gesten) kann der Roboter bewegt werden.
Es ist unklar, ob die Panoramakamera sich zur Kooperation überreden lässt. Dieser Teil des Projektes hat daher zunächst den Charakter einer Machbarkeitsstudie.
Für Gruppen sind Zusatzfunktionen wie beispielsweise das bidirektionale Übertragen von Ton oder ein automatisches Ausrichten des Roboters (Fahrtrichtung in Sichtrichtung) denkbar.
For this project, we need a team that brings combined knowledge of a wide range of fields:
The currently existing proof of concept implementation supports
moving the robot with the game-pad. Making this work remotely with
a simple UDP server/client approach (gamepad on one PC, the
robot's high-level system being the other PC) is too easy for a 5
ECTS project. Creation of a package for ROS 2 "humble" using ROS's
built-in communication features with clean code a nice
documentation which can then be used for future projects would be
okay. I would like to see some measurements illustrating the delay
between the remote input and actual movement.
Im Wintersemester 2020 wurde ein virtuelles Modell des BFFT/digitalwerk ADAS Audi Modellfahrzeugs erstellt. Sie Genauigkeit der Simulation soll erhöht werden. Dazu sind umfangreiche Messreihen am Realweltfahrzeug (Beschleunigung, Bremsverhalten, Wendekreis, …) notwendig. Programmiersprache des Simulators gazebo ist C++.
Die FH Wedel bietet für Studentys Parkplätze an. Leider werden diese Parkplätze auch von anderen Personen genutzt. Es soll ein digitaler Parkausweis entwickelt werden. Der Parkausweis soll das eingeschriebene Studenty selbst ausdrucken können. Gleichzeitig soll die Echtheit des Parkausweises öffentlich überprüft werden können.
Idee zur Umsetzung: Ein Server erzeugt nach Login mit studentischen Daten einen QR-Code. Der QR-Code enthält das Nummernschild des zu registrierenden Fahrzeugs sowie die Matrikelnummer des registrierenden Studenty. Die Daten sind geschützt durch eine digitale Signatur mit zeitlich begrenzter Gültigkeit. Den privaten Schlüssel zum Erzeugen der Signatur hat nur der Server.
Eine öffentliche Web-Anwendung kann den QR Code von der intergrierten Kamera eines mobilen Gerätes einlesen mit Hilfe einer JavaScript Implementierung des kryptographischen Verfahrens (RSA bietet sich an) und überprüfen. Jeder kann Falschparker beim Sekretariat melden. Eine Fahrzeugdatenbank muss nicht angelegt werden.
In der Biologie kommen häufig schematische Darstellungen für die Struktur von Blüten zum Einsatz. Auch für die optisch etwas weniger ansprechenden Flechten sind solche Piktogramme definiert, wie dieses Beispiel zeigt:
Die Abteilung für Lichenologie der Biologischen Fakultät der Universität Hamburg sucht nach einer Software zur Erstellung solcher Darstellungen.
In diesen modernen Zeiten bietet sich eine Implementierung als Web-Anwendung an. Ein Minimalbeispiel sowie ein Lastenheft zur Zieldefinition einer vollständigen Ausarbeitung existiert bereits. Es gibt zwei unvollständige Implementierungen, auf welchen aufgebaut werden kann.