eprints (HSR Hochschule für Technik Rapperswil)
Not a member yet
1196 research outputs found
Sort by
Vehicle Platooning using Multi-Agent Reinforcement Learning: A Study on Autonomous Driving in the CARLA Simulator
We successfully trained a model using reinforcement learning that enables a car to identify and follow a leader vehicle, therefore creating a vehicle platoon in a simulation.
For this thesis, we are using CARLA, an open-source 3D environment simulator for autonomous driving research based on the Unreal Engine.
Specifically, we implemented the Double Deep Q-Network algorithm to train the policy.
The state is solely represented as the sensor input taken from the follower car's front camera.
From that, an Atari-style Convolutional Neural Network predicts the actions' Q-values .
A custom reward function, that combines the relative longitudinal and lateral positions of the two vehicles in the platoon, provides the necessary feedback of each action's performance.
Actions, discrete by definition of a DQN, comprise left and right steering, acceleration and slowing down, as well as braking.
The resulting model is capable of forming and maintaining a platoon.
While navigating in a multi-lane scenario, it even manages to cross intersections successfully.
It enables the follower car to identify the leader vehicle and imitate its actions in a previously unseen environment
SAMT: Compiler and Tools for an Extensible API Modeling Language
Zürcher Kantonalbank maintains various services built on diverse technologies, using proprietary domain-specific languages to model technology-agnostic data and service contracts.
This proven approach is implemented using the Xtext framework, which provides the core infrastructure for parsing source code, validating the resulting model, and integrating with the Eclipse IDE.
As the maintenance roadmap for Xtext is uncertain, Zürcher Kantonalbank faces a long-term operational risk and is looking for a sustainable solution.
The goal of this project is to design and develop a new open-source domain-specific language called Simple API Modeling Toolkit, or SAMT for short.
It retains the technology-agnostic modeling capabilities and employs custom generators that provide support for a specific target language and technology.
A Visual Studio Code extension is developed to provide an easy-to-use and modern development experience.
The development process includes an initial requirements engineering and language design phase, guided by developers familiar with the existing modeling language.
All critical requirements were fully met, with substantial "should-have" and "could-have" requirements also realized.
The project successfully developed the core systems of the new language, including a proof-of-concept code generator for the Kotlin-based Web framework Ktor and the SAMT Visual Studio Code Extension.
Usability tests with employees of Zürcher Kantonalbank have yielded positive feedback.
Future work includes improving the generator architecture and adding more functionality to the SAMT Visual Studio Code Extension
Gamification in einer Buchungs-App
Die vorliegende Semesterarbeit konzentriert sich auf die Weiterentwicklung der Vanlife Travel Web-Applikation, die das Buchen von individuellen Campingreisen erleichtert. Das Ziel besteht darin, die bestehende Buchungssoftware durch die Integration von Gamification und Verbesserungen in der User Experience aufzuwerten, um die Nutzerbindung zu erhöhen und die Buchungszahlen zu steigern.
Die Grundlage für diese Arbeit bildet eine Zielgruppenanalyse und Marktforschung. Die Ergebnisse der Recherche zeigen, dass spielerische Elemente klar einen positiven Einfluss auf die Nutzerbeteiligung und -bindung haben. Zudem werden soziale Aspekte sowie Belohnungen als besonders motivierend angesehen. Ebenfalls wird die aktuelle Software-Lösung von Vanlife Travel als nicht besonders benutzerfreundlich wahrgenommen.
Anhand der gewonnenen Erkenntnisse wird ein Konzept entwickelt, inwiefern Gamification in der bestehenden Lösung am wirkungsgvollsten eingesetzt werden kann. Die Umsetzung erfolgt agil und iterativ, was eine flexible Anpassung an das Feedback der Auftraggeber ermöglicht.
Die finale Lösung beinhaltet verschiedene Gamification-Elemente: Als Vanlifer hat man die Möglichkeit, für bestimmte Aktionen, wie z.B. das Buchen einer Tour oder das Schreiben einer Bewertung, Travel Points zu erhalten. Anhand der gesammelten Punkte wird ein Level bestimmt, das die Erfahrung des Nutzers widerspiegelt. Zusätzlich wird ein Rang ermittelt, der auf den in einem bestimmten Zeitraum gesammelten Travel Points basiert. Dieser dient dazu, besonders aktive Nutzer zu belohnen, indem z.B. Rabatte gewährt werden. Für spezielle Aktionen, wie die Buchung einer besonders langen Reise, werden Auszeichnungen vergeben. Der Nutzer wird über die erhaltenen Belohnungen benachrichtigt und hat die Möglichkeit, diese in seinem Profil einzusehen. Vergangene und zukünftige Reisen werden übersichtlich dargestellt. Um den sozialen Aspekt zu fördern, können gebuchte Touren mit Freunden geteilt werden.
Campingplätze können bewertet und auf einer eigenen Detailseite eingesehen werden. Zudem ist die Anwendung für die Nutzung auf mobilen Geräten optimiert. Darüber hinaus wird der Reifegrad der Software durch die Analyse und Behebung von bestehenden Fehlern verbessert, so dass z.B. die gleichzeitige Buchung von Touren durch mehrere Nutzer möglich ist.
Die Umsetzung der Lösung erfolgt in Form eines Prototyps, der die Funktionalität der Applikation demonstriert
LLM Assisted Development
Aufgabenstellung
Das Ziel dieser Arbeit bestand darin, ein Tool oder eine Methode zu entwickeln, die es ermöglicht,
mittels spezialisierter Software zu erkennen, ob ein Prüfungsteilnehmer oder eine Prüfungsteilnehmerin
während einer Online-Prüfung betrügerische Handlungen begeht. Der Einsatz einer solchen Soft-
ware bietet den Vorteil, dass Online-Prüfungen effektiv durchgeführt werden können. Zudem
ermöglicht es, dass Programmierprüfungen nicht mehr manuell, sondern in einem kontrollierten
und überwachten Umfeld absolviert werden können. Der Fokus dieser Arbeit lag speziell auf
der Überwachung der Offline-Aktivitäten der Prüfungsteilnehmenden. Dies umfasst die Beob-
achtung von auffälligen Körperbewegungen und Sprachaktivitäten.
Vorgehen / Technologien
Unser Ansatz zielte darauf ab, die Benutzerfreundlichkeit unserer Software sowohl für Studie-
rende als auch für Lehrende zu maximieren und einen strukturierten Prozess zu etablieren.
Der Ablauf beginnt damit, dass der Studierende die Software aktiviert, die mittels einer Web-
cam ein Video aufzeichnet und über ein ausgewähltes Mikrofon den Ton erfasst. Nachdem die
Prüfungsaufgaben gelöst wurden, wird die Software beendet. Der Studierende erhält dadurch
eine Video- und Audiodatei, die er eigenständig an einen schulischen Server übermitteln kann.
Nachdem der Schulserver alle Audio und Videodateien erhalten hat. Kann der Professor mittels
einer Webseite die Video und Audiodateien analysieren. Während der Analyse wird bei jedem
Prüfungsteilnehmer die Video und Audiodatei analysiert. Dabei wurden bestimmte Kriterien
von uns ausgewählt auf welche sich die Videoanalyse stützen soll.
Gesichtserkennung: In jedem Frame des Videos soll überprüft werden, ob genau eine Person
anwesend ist. Dies ist wichtig, da Pr ̈ufungen in der Regel Einzelarbeiten sind. Sollte keine oder
mehr als eine Person erkannt werden, wird dies als Betrugsversuch gewertet.
Munderkennung: Das System muss ständig den Mund erkennen können. Dies dient dazu,
heimliche Gespräche aufzudecken, auch wenn das Mikrofon während der Prüfung absichtlich
ausgeschaltet ist. Ein Betrugsversuch wird deklariert, sobald der Mund sich öffnet, um die
Spracherkennung zu schützen.
Kopfneigungserkennung: Die Kopfposition wird kontinuierlich überwacht, um auffällige Be-
wegungen, die auf einen zweiten Bildschirm oder ein externes Gerät hinweisen könnten, als
Betrugsversuche zu identifizieren.
Iriserkennung: Diese Technik dient dazu, ungewöhnliches Augenschillen zu erkennen. Sie
soll Prüflinge identifizieren, die zwar ihren Kopf nicht bewegen, aber dennoch nicht auf die
Prüfungsaufgaben schauen.
Resultat
Derzeit ist eine vollständig automatisierte Proctoring-Lösung noch nicht realisierbar. Mensch-
liches Eingreifen bleibt notwendig, um zu entscheiden, ob in bestimmten Situationen Betrug
vorliegt. Unsere Software hat jedoch den Analyseprozess von Audio- und Videodateien erheblich
effizienter gestaltet. Als nächsten Schritt zur Verbesserung der Software könnte die Erfassung
von Online-Aktivitäten in Betracht gezogen werden
Digitize historic architectural plans with OCR and NER transformer models
The Swiss Archive for Landscaping Architecture, located at OST in Rapperswil, administers more than 100’000 historic plans. These plans need to be digitzed to make them accessible. This paper proposes a three-model architecture consisting of a layout model to find text on the plans, an optical character recognition model to extract the found words, and finally, a named entity recognition model to label the relevant words like the client, location, or date. K-means clustering is used to group the text blocks from the layout model into related blocks for OCR.
Different deep-learning models are compared and evaluated. The most suitable models are then retrained on the NVIDIA DGX-2 system in a custom-built apptainer image with different training strategies to improve their accuracy. Different pre- and post-processing techniques are employed to improve the accuracy of the pipeline.
The final image pipeline achieves an F1 score of 48% with 35% precision and 77% recall. The chosen NER model ”German BERT” scored an F1-score of 86% after re-training and the OCR pipeline extracted 54% of words correctly and 18% close to correct.
The insights from this SA can be applied to future projects to build an application usable by the archive, enabling it to catalog its documents and make them accessible to the world
Knackpunkt BRK
The UN CRPD (United Nations Convention on the Rights for People with Disabilities) is a human rights instrument, aiming to change attitudes and approaches toward persons with disabilities.
The ZEN (Center for Ethics and Sustainability) of the OST (Eastern Switzerland University of Applied Sciences) has created a printable survey form, that focuses on several aspects of the UN CRPD.
This survey form allows institutions and homes for people with disabilities to evaluate themselves.
The goal of this project is to digitize the survey form created by the ZEN to simplify the entire process of distributing survey forms and tallying scores.
We ended up with a survey application that allows institutions to start surveys that are accessible via an online link.
The survey can then be filled out by respondents who received that link.
Once the survey is completed, institutions can view the results and receive recommendations on how to improve their implementation of the UN CRPD.
During the creation of the application, we placed great emphasis on accessibility, to make sure it can be filled out by almost everyone.
During the duration of the project we managed to implement a large part of the desired functionality, however, there are still some features missing.
Despite this, we have managed to create a usable product that provides value for institutions wishing to evaluate themselves
Type Systems for the OO Programmer
Many software developers learn imperative and/or objectoriented programming first in their career. Meanwhile, most of the research done on programming languages is based on
the Lambda-Calculus and functional programming languages.
These are often not intuitive to grasp for someone who has
worked exclusively with object-oriented languages. Some might
even be intimidated by the mathematical terminology. This
paper aims to show that most of these methods are in common
use in Java, but sometimes better known under different names
Zero-Knowledge Inclusion Proofs
This work discusses a solution for implementing a zero-knowledge inclusion proof using existing software components, referred to as automation frameworks. In the beginning, the use case that necessitates such proofs is stated together with establishing the contextual backdrop. This includes elaborating essential prerequisites such as cryptographic hash functions, commitment schemes, and Merkle trees.
Furthermore, it presents an overview of zero-knowledge proof systems, detailing their core characteristics, analogies, and real-world applications. The discussion delves into the two prominent implementation families, namely zkSNARK and zkSTARK, emphasizing their distinguishing features. To ensure resistance against potential threats originating from quantum computers, the proposed approach centers on utilizing non-interactively employed zkSTARK proofs enabled through the Fiat-Shamir transformation.
Finally, this work formally states the objective of the zero-knowledge inclusion proof for the specific use case and proposes an algorithmic specification. A curated selection of promising automation frameworks with the potential to facilitate the objective’s implementation is presented, with in-depth scrutiny applied to two specific frameworks: RISC Zero and the Winterfell. The work concludes by discussing initial experiences with these frameworks and outlining future endeavors to chart the path towards implementing a minimal viable product.
The appendix complements the discussion by providing an overview of current post-quantum cryptography developments
Embedded Programming with Embedded Domain-Specific Languages (EDSLs) in Haskell
Embedded domain-specific languages (EDSLs) make it possible to program embedded systems with Haskell. Programming in Haskell has many advantages such as the reduction of runtime errors and writing code more elegantly. The Haskell library Haskino provides two EDSLbased variants for programming Arduinos. In the first variant, commands are sent interactively to an Arduino that is connected to the computer. The second variant turns the Haskell code into an abstract syntax tree (AST) representing actions and computations. This structure can be used to generate C code that can be executed directly on the Arduino. The advantage of Haskell becomes apparent when using paradigms such as functional reactive programming (FRP). In the first variant offered by Haskino, FRP can be used without any problems because it is executed in the Haskell environment. In the second, it would be necessary to integrate the FRP functionality into the AST and to define the translation into C. The ability to run FRP code directly on Arduino is demonstrated by the frp-arduino library. This paper introduces EDSLs in Haskell, their application in the Haskino library, and shows an Arduino programming example using Haskell and FRP
Serious 3D-VR-Game mit realistischen Stadtwelten
Bisher vorhandene Projekte, welche OpenStreetMap (OSM) Daten als eine 3D-Welt darstellen, haben aus Sicht des Industriepartners zwei Probleme:
Das erste Problem ist, dass nur ein vordefinierter Bereich visualisiert wird. Es soll aber eine weltweite Abdeckung möglich sein. Das zweite Problem ist,
dass diese bestehenden Projekte nicht als Videospiel existieren, sondern eher als Karte, wie Google Maps. Das Ziel dieser Arbeit ist es, eine realistische 3D-Weltkarte zu erstellen,
in der man sich als Spieler frei bewegen kann, ähnlich wie in einem Open-World-Spiel. Für die Geodaten werden Daten von OSM verwendet. Für die Visualisierung der Geodaten wird die freie Game-Engine Godot und die integrierte Programmiersprache GDScript verwendet.
Die Geodaten werden in einem genormten, speichereffizienten Format geliefert, in sogenannten Mapbox-Vektorkacheln. Diese werden mithilfe einer externen Software namens Planetiler aus den OSM-Daten erstellt. Dabei handelt es sich um eine leicht abgeänderte Version des Planetilers.
Godot liest die Daten aus diesen Vektorkacheln aus und decodiert die Geometrien zur Darstellung der Objekte. Für das Auslesen der Vektorkacheln wird eine Software des Industriepartners verwendet, welche im Godot Projekt als Erweiterung integriert werden kann.
Folgende Objekte werden momentan dargestellt: Punktobjekte wie Bäume und Sitzbänke, Polygone wie Gebäude, Linienobjekte (Pfade) wie Strassen, Gehwege und Schienen sowie Flächenobjekte wie Bodenbedeckung, Flüsse und Seen, welche ebenfalls Polygone sind.
Die Qualität der dargestellten Objekte hängt von der Datenqualität in OSM ab. Beispielsweise sieht man in grossen bekannten Städten wie New York, dass viele Gebäude verschiedene Höhen haben.
In weniger bekannten Gegenden haben die meisten Gebäude keine Höhe in OSM. Die Qualität hängt ebenfalls von den Vektorkacheln ab, die vom Planetiler produziert werden.
Zu beachten ist, dass die vom Planetiler generierten Vektorkacheln nicht immer alle OSM-Daten enthalten. In dieser Arbeit hat man sich nicht mit der implementation des Planetilers befasst.
Als Spieler kann man die Software starten, und man landet an einem fix definierten Startpunkt. Der Spieler kann sich überall auf der Welt hinbewegen, oder den Startpunkt selbst anpassen.
Dabei wird immer ein Bereich von 4x4 Vektorkacheln dargestellt. Bewegt sich der Spieler in eine bestimmte Richtung, werden automatisch die neuen Vektorkacheln heruntergeladen und visualisiert.
Der alte Bereich, von dem sich der Spieler entfernt, wird gleichzeitig aus dem Speicher entfernt.
Der Nutzen dieser Arbeit besteht darin, eine Grundlage für die Verbesserung von OSM zu schaffen. In weiterführenden Arbeiten kann dieses Projekt so erweitert werden,
dass der Benutzer auf spielerische Weise Kartendaten aus der realen Welt - zum Beispiel von Mapillary oder Google Street View - mit der 3D-Welt in Godot vergleichen und fehlende Objekte oder Daten ergänzen kann,
beispielsweise die Höhendaten für Gebäude. Dies hilft letztlich, OSM mit Daten anzureichern. Je mehr Daten in OSM vorhanden sind, desto realistischer kann die 3D-Welt dargestellt werden.
Das Hauptziel dieser Studienarbeit bestand darin, eine Software zu entwickeln, welche die Geodaten aus OSM visualisieren kann. Dieses Ziel wurde erreicht.
Die Vektorkacheln beinhalten weitere Daten, mit denen man die Visualisierung realistischer gestalten könnte. Eine weitere Möglichkeit für die detaillierte Visualisierung der OSM-Daten wäre,
mithilfe von Terrain-Datasets die Höhen des Geländes darzustellen