Skip to content
Reine - Handwritten Forms Processing (Chess Scoresheet Scanner)
Python HTML
Branch: master
Clone or download
Latest commit ca88cbf Aug 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
GameStats Add files via upload Jan 16, 2019
Reine models
Updated Reine models
templates Add files via upload Feb 8, 2019


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: article here, describing roughly how this works:

Show HackerNews post here:

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.

alt text

How it works:

  1. Take picture alt text
  2. Align scoresheet alt text
  3. Cut up scoresheet into boxes alt text
  4. Preprocess boxes to look like EMNIST data
  5. Run boxes through CNN to get predictions
  6. 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.
  7. Download .pgn file (or .txt if complete game wasn't found, then edit and change to .pgn) alt text
  8. Open in your engine of choice and analyze! alt text
You can’t perform that action at this time.