Sudoku, a puzzle in which players insert the numbers one to nine into a grid consisting of nine squares subdivided into a further nine smaller squares in such a way that every number appears once in each horizontal line, vertical line, and square. Today we are going to build a model for the Sudoku Solver program using OpenCV, Deep Learning, and Backtracking Algorithm are used to solve the puzzle. First, build the Character Recognition model that can extract digits from a Sudoku grid image and then work on a backtracking approach to solve it.
Here, we can divide the process into 3 Parts:
- 1. Looking for a sudoku puzzle in the image.
- 2. Extracting numbers from sudoku.
- 3. Solving the Sudoku using backtracking.
Deep Learning based AI_Sudoku_Solver architecture uses OpenCV (opencv==4.2.0) and Python (python==3.7). The model Convolution Neural Network(CNN) uses Keras (keras==2.3.1) on Tensorflow for Digit Recognition.
Following are the technologies used for the sudoku solver game:
- 1. Image Recognition: CNN trained using Keras
- 2. Image Processing: OpenCV
- 3. The algorithm used to solve sudoku: Peter Novig’s optimized version of backtracking
HOW TO EXECUTE CODE:
- 1. You will first have to download the repository and then extract the contents into a folder.
- 2. DMake sure you have the correct version of Python installed on your machine. This code runs on Python 3.6 above.
- 3. Now, install the required libraries.
- 4. Now, you can use pretrained digit recognition model, it’s inside Resources Folder. The MNIST is used for digit recognition using Deep Learning CNN model.
- 5. Now, Open terminal and type the following command:
python Main.py -i "path to sudoku image"
The above command is used for solving sudoku in images, and for real-time sudoku solver, use webcam (Opencv for capturing Video).
Note: Apart from the auto solve of the Sudoku Game, the game can also be played by User.
- 1. Sudoku Solver
- 2. Digit Recognition
- 3. Backtracking Algorithm
!! DOWNLOAD CODE NOW !!
Devashi Choudhary has been working on this inspiring project using a real-time webcam to solve the sudoku problem. This initiative will potentially help AI developers to spend more time on creative tasks and research more on the latest AI topic.
☺ Thanks for your time ☺
What do you think of this Sudoku Solver with steps? Let us know by leaving a comment below. (Appreciation, Suggestions, and Questions are highly appreciated).