Annular Codes App

Entwicklung zweier Apps zur Erstellung und Decodierung von Annular Codes. Analyse und Optimierung von Decodierungsalgorithmus.

Ausgangslage

In zahlreichen Anwendungsbereichen, bei denen nur runde Flächen zur Verfügung stehen, erweisen sich quadratische QR-Codes aus geometrischen Gründen als ungeeignet. In solchen Fällen bieten sogenannte Annular Codes, die eine ringförmige Struktur haben, eine weitaus bessere Alternative.
Aktuell befinden sich zwei Versionen von Annular Codes in der Entwicklung: Version 3, welche die gesamte Ringfläche vollständig ausnutzt, und Version 4, die einen Teil der Fläche für zusätzliche menschenlesbare Informationen freihält.
Für beide Versionen ist der Code zum En- und Dekodieren bereits in C++ vorhanden.

Zielsetzung

Das Ziel dieser Arbeit bestand zum einen in der Entwicklung einer Web-App zum Generieren von Annular Codes und zum Anderen in der Erstellung einer plattformunabhängigen Mobile-App zum Scannen und Decodieren dieser Codes. Darüber hinaus sollen Vorschläge zur Optimierung des Decodierungsalgorithmus für Annular Codes V4 erarbeitet werden.

Annular Code V3

FHNW

Ein klassischer Annular Code der Version 3.

Annular Code V3 Color

FHNW

Ein Annular Code der Version 3 mit speziellem, rundem Design der Module und der Einfärbung der Modulblöcke um die Datendichte zu erhöhen.

Annular Code V4

FHNW

Ein Annular Code der Version 4 mit zusätzlichem, menschenlesbarem Text.

Ergebnisse

Mit der entwickelten React-Web-App mit Node.js-Backend können Annular Codes in beiden Versionen erstellt werden und mithilfe der Flutter-Mobile-App können die Codes decodiert werden.
Durch Performance- und Codeanalysen des Decodierungsalgorithmus der Annular Codes V4, konnte festgestellt werden, welche Detektionsschritte fehlerhafte Ergebnisse liefern. Für diese wurden alternative Algorithmen erarbeitet oder Verbesserungsvorschläge für die bestehenden Schritte aufgezeigt.

Technische Schlüsselbegriffe

  • Annular CodesRingförmige codierung von Daten.
  • C++Programmiersprache in welcher die Codierung und Decodierung von Annular Codes stattfindet.
  • ReactJavaScript Library, welche für das Frontend der Web-App verwendet wurde.
  • Node.jsJavaScript Runtime, welche für das Backend der Web-App verwendet wurde.
  • FlutterCross-Plattform Development Kit, welches für die Entwicklung der Mobile-App verwendet wurde.

Kunde

Logos

xeraina
Christoph Stamm
Binzallee 15
8055 Zürich
https://www.xeraina.ch/

Team

Pascal Hürzeler
Fabian Heuberger

Betreuerin
Christoph Stamm