- Grid Detection
- Data generation
- CNN training
- Solving the grid with backstrapping
- App creation
- opencv == 4.2.0
- Tensorflow == 2.2.0
- Numpy == 1.18.5
- Pillow
- Scipy
(details and code for this section can be found in this notebook)
First, some preprocessing:
Detect the grid contour and corners using opencv:
Extraction of digit area:
(details and code for this section can be found in this notebook)
First, generate random digit image with random field around the digit area:
Produce random noise and elastic deformation for model robustness:
Some exemples of Generated images:
(details and code this notebook)
Evaluation on validation set composed of "real life" sudoku images: 43 grids, 3483 images (sudoku cells) for a total accuracy of 99.86%.
see this notebook for details.
For this secton we will use Kivy, an opensource python library for application developpement on multiple OS. The code is available in the kivy_app folder.