SigSys15 Sudoku-Löser
Autor: Anika Leinhäuser
Betreuer: Prof. Schneider
Motivation
Ein gedrucktes Sudoku-Rätsel soll gelöst werden, indem ein Matlab-Programm über eine Webcam (IP-Kamera) das Rätsel einliest und die Lösungen darin einträgt.
Ziel
Das zu lösende klassische 9x9 Suduko-Rätsel soll fotografiert und in Matlab gelöst werden. Die Lösung soll dabei in das fotografierte Rätsel von Matlab eingetragen werden.
Aufgabe
- Einarbeitung in die Schrift- und Linienerkennung
- Einlesen des Sudoku-Rätsels, sodass alle Ziffern über die Bildverarbeitung von Matlab erkannt und verwendet werden können
- Identifikation des Rätsels im Bild
- Perspektivische Entzerrung
- Untersuchung verschiedener Ansätze zur Erkennung der Zahlen (z.B. Template Matching gegenüber modelbasierten Ansätzen)
- Umsetzung eines Algorithmus zur Lösung des Soduko-Rätsels
- Zusammenführung des Erkennungsalgorithmus und des Lösungsalgorithmus
Kür: Echtzeit-Lösung des Rätsels über die Webcam incl. perspektivische Verzerrung (vgl. YouTube Video)
Hinweis: Eine Kopie der Lösung von Mathworks ist nicht zulässig.
Einleitung
Im Rahmen der Lehrveranstaltung „Signalverabeitende Systeme“ des Studiengangs „Business and Systems Engineering“ im Sommersemester 2015/16 gab es die Aufgabe, ein semesterbegleitendes Projekt im Bereich der Signalverarbeitung in Matlab durchzuführen. Die vorliegende Dokumentation befasst sich mit einem Sudoku-Löser.
Detailliert bestand die Aufgabe darin, sich in die Schrift- und Linienerkennung einzuarbeiten und das gewonnene Wissen für die Implementierung des Sudoku-Lösers anzuwenden. Dabei soll der Sudoku-Löser die Funktion bieten, ein Sudoku-Rätsel einzulesen, wobei über die Bildverarbeitung die vorgegebenen Ziffern erkannt und verwendet werden können. Dazu sollte eine Identifikation des Rätsels im Bild sowie eine perspektivische Entzerrung erfolgen. Darauf aufbauend galt es, unterschiedliche Ansätze zur Erkennung der Ziffern zu untersuchen. Über die Umsetzung der Ziffernerkennung hinaus beinhaltete die Aufgabe die Implementierung eines Algorithmus zur Lösung des Sudoku-Rätsels. Nach erfolgreicher Implementation des Erkennungs- und des Lösungsalgorithmus galt es, diese zusammenzuführen. Der letzte Schritt beinhaltete neben einer kontinuierlichen Verbesserung des Programms ein abschließendes Testen aller Funktionen des Sudoku-Lösers.
Die Dokumentation des Sudoku-Lösers und eine Live-Vorführung in Form eines Youtube-Videos stellten ebenfalls Erwartungen dar.
Konzept
Lösungen
Quellen
Weblinks
- Sudokus lösen mit MATLAB
- Solve Sudoku Puzzles Via Integer Programming
- A Matlab-based sudoku solver
- YouTube: Solving a Sudoku Puzzle Using a Webcam
- YouTube: LEGO Mindstorms Sudoku Solver
→ zurück zum Hauptartikel: Signalverarbeitende Systeme SoSe2015