Physik | Technik

Marco Weder, 2001 | Sankt Gallenkappel, SG

 

Diese Arbeit beinhaltet die Idee, die Programmierung und das Testen einer AR-Applikation, um einen Rubik’s Cube zu lösen. Die Applikation soll möglichst praktisch sein. Dieses Ziel wird erreicht, indem die Applikation einen Zauberwürfel in einem Webcam-Video standortunabhängig erkennen kann. Wenn der Würfel in die Kamera gehalten wird, können die Farben aller Würfelfelder von der gezeigten Seite ausgelesen werden. Der Ablauf der Applikation besteht aus zwei Phasen: dem Scanning und dem Solving. Beim Scanning geht es darum, dass jede Seite des Würfels kurz in die Kamera gehalten wird, damit am Ende dieses Prozesses die Applikation die Permutation des gesamten Würfels kennt. Danach geht es im Solving darum, die Lösungsschritte zu berechnen und dem Nutzer diese möglichst einfach zu präsentieren. Ein wesentlicher Teil der Arbeit beinhaltet die Bestimmung und Optimierung einer möglichst robusten Würfelerkennung. Die fertige Applikation wird zur Einordnung mit zwei bereits erhältlichen Applikationen verglichen.

Fragestellung

Folgende Fragen sollten im Rahmen dieser Arbeit geklärt werden: (I) Wie kann ein Rubik’s Cube in einem Video erkannt werden? (II) Wie kann die Permutation des Würfels erhalten werden? (III) Welche Methode gibt es, um die Lösungsschritte zu berechnen und möglichst einfach zu präsentieren? (IV) Wie robust ist die Erkennung und wie könnte diese noch verbessert werden? (V) Wie schneidet die Applikation im Vergleich zu ähnlichen Applikationen ab?

Methodik

Für die Programmierung wurde die Entwicklerumgebung Unity und die Programmierbibliothek OpenCV verwendet. Die Applikation startet mit dem Scanning-Prozess. Währenddessen muss jede Würfelseite einmal in die Kamera gehalten werden. Durch Rotationspfeile im Webcam-Video wird der Nutzer durch diesen Prozess geführt. Die Erkennung der Würfelfelder beruht vor allem auf dem Prinzip der Kantenerkennung, da jedes Würfelfeld von einer Kante umgeben wird. Mit verschiedenen mathematischen Verfahren können alle erkannten Kanten innerhalb des Bildes bis auf die Kanten der Würfelfelder reduziert und an diesen Stellen die Farben ausgelesen werden. Sobald alle Seiten gescannt sind, werden die Lösungsschritte mit einem Zwei-Phasen-Algorithmus berechnet. Der Nutzer wird erneut mithilfe von Rotationspfeilen durch alle Lösungsschritte geführt. Um die Robustheit der Würfelerkennung zu verbessern, wurden 30 Bilder unter verschiedenen Bedingungen aufgenommen. Dann wurde die Erfolgsrate abhängig von mehreren Parameterwerten untersucht. Bei den Bedingungen handelt es sich vor allem um variierende Lichtverhältnisse und verschieden komplexe Hintergründe. Die fertige Applikation wurde mit ähnlichen Applikationen aus dem App Store verglichen. Dazu wurde bei jeder Applikation die Robustheit unter den verschiedenen Bedingungen geprüft.

Ergebnisse

Das Hauptergebnis meiner Arbeit ist eine funktionstüchtige Applikation, die aus ca. 5000 Codezeilen besteht. Durch das Miteinbeziehen einer Gerätekamera werden das Scanning-Verfahren sowie der Solving-Prozess für den Nutzer sehr einfach gehalten. Durch die Optimierung der Parameterwerte konnte eine Erfolgsrate von 77 Prozent erreicht werden. Es konnte auch eine Schwachstelle der Applikation ermittelt werden: Lichtreflexionen. Beim Vergleich mit anderen Applikationen schneidet diese Applikation sehr gut ab. Durch die Optimierung der Parameterwerte und das Miteinbeziehen des k-Means-Algorithmus bei der Farberkennung liegt die Applikation in Bezug auf Geschwindigkeit und Erfolgsrate meist auf dem ersten Platz.

Diskussion

Alle Fragen gemäss der Fragestellung konnten erfolgreich beantwortet werden. Das Hauptziel einer funktionstüchtigen AR-Applikation wurde erreicht. Bei der Prüfung der Robustheit konnte mit 77 Prozent ein hoher Wert erzielt werden. Es konnten verschiedene Schwachstellen, z. B. die Farbunterscheidung von Rot und Orange, erfolgreich behoben werden. Beim Vergleich mit anderen Applikationen zeigt sich, dass diese Applikation in Bezug auf Geschwindigkeit und Erfolgsrate gut mithalten kann. Für eine Veröffentlichung sollte jedoch zuerst das Problem mit Lichtreflexionen behoben werden.

Schlussfolgerungen

Die Applikation zeigt, wie mithilfe einer Gerätekamera das Zusammenspiel zwischen Computer und Realität möglich ist. Die Applikation ist bereits einsatzbereit und funktioniert auch bei verschiedenen Hintergründen und Lichtverhältnissen sehr gut. Um die Robustheit bei Lichtreflexionen zu verbessern, wird bereits an einem Update gearbeitet.

 

 

Würdigung durch den Experten

Philipp Kramer

Marco Weder hat mit viel Einsatz eine Applikation ausgearbeitet, welche den Benutzer leicht verständlich durch den Lösungsprozess eines Rubik Cube Würfels führt. Besonders anspruchsvoll ist dessen robuste Lokalisation auf den Videobildern inklusive der Farberkennung jedes Steins. Dies wird erschwert durch Bildrauschen, komplexe Hintergründe und Lichtreflektionen. Um dies zu überwinden hat er durch Austesten und mit systematischer Optimierung der Parameter eine überzeugende Kombination von Algorithmen erarbeitet, welche auch dem Vergleich mit professionellen Anbietern standhält.

Prädikat:

sehr gut

Sonderpreis ETH Student Project House

 

 

 

Kantonsschule Wattwil
Lehrer: Emil Müller