Bachelorarbeit
In meiner Bachelorarbeit habe ich mich 2015 mit dem Thema beschäftigt, wie man ein Go-Spiel am Besten aufzeichnen kann. Mittel der Wahl war eine Android-App, die unter Zuhilfenahme der Kamera des Handys das Spielbrett und die darauf liegenden Steine erkennt und den Spielern zuordnet. Änderungen an der Konfiguration der Steine wurden dabei als Spielzug gewertet.
Technologie
Die zugrundeliegende Technologie basiert auf dem Mustererkennungsframework OpenCV. Um die Geschwindigkeit zu erhöhen ist der eigentliche Erkenner in C++ geschrieben und per JNI in die Android-App integriert. Einen Blick auf die Codebase kann man auf Github werfen.
Andere, PC-gebundene Lösungen, erkennen nur die Linien des Brettes und setzen manchmal sogar darauf, einen festen Winkel zwischen Brett und Kamera zu haben. Meine Lösung erkennt nicht nur Linien sondern auch Spielsteine an sich und nimmt an, dass diese (den Regeln entsprechend) ungefähr auf den Schnittpunkten der Linien liegen. Aus den Koordinaten der Schnittpunkten und Steinen wird dann die Lage des Brettes im Raum mit dem RANSAC-Algorithmus errechnet, Fehler bei der Erkennung korrigiert und anschließend die Schnittpunkte klassifiziert.