Chess Vision
Convert an image of a chessboard into a digital representation
Battle Plan
- LiveView to capture image and store it. File or S3?
- Parse image into array of images of 64 squares
- Canny edge detection - Rust nif
- Hough line detection - Rust nif
- order is important: top left of board will be element 0
- orientation is not guaranteed; A1 could be any corner of the board
- Convert each of those images into data points by feeding them to an image recognition neural network
- train NN
- training/test sets of tactics book images and live board images. Use step 1 to help with this.
- Use Nx
- output is array of structs containing { piece_type, piece_color, square_color }
- Convert that data into a FEN string
- Render FEN string as a chess board in the web app UI