by Rithwik Sudharsan and Alex Fung
This product scans chess scoresheets, but as per suggestions can be modified to work on other forms for processing. Open-sourced under the MIT license.
Website here: https://www.reinechess.com/
Chess.com article here, describing roughly how this works: https://www.chess.com/blog/ReineChess/scannable-scoresheets-free
Show HackerNews post here: https://news.ycombinator.com/item?id=19162876
We thank Marek Śmigielski's post here for the alignment algorithm and a general perspective on how we could solve this problem, another developer who attempted the same idea. Lots of Kaggle kernels, other Medium articles, and StackOverflow posts obviously helped too.
How it works:
- Take picture
- Align scoresheet
- Cut up scoresheet into boxes
- Preprocess boxes to look like EMNIST data
- Run boxes through CNN to get predictions
- Postprocess results by checking every combination of top 2 most likely characters for each box, looking for valid games. This way, as long as the correct characters are all in the top 2 predictions for each box, the game should be found.
- Download .pgn file (or .txt if complete game wasn't found, then edit and change to .pgn)
- Open in your engine of choice and analyze!