ElixirConf 2023 - Barrett Helms - Chess Vision!

"Discover how to build a chess vision system using Elixir, Rust NIF, and OpenCV, achieving 100% accuracy with a trained model and#candy edge detection."

Key takeaways
  • Choose a chapter, complete all exercises (30-40), and use validation set to check accuracy.
  • Use 8 for validation, 10 for test epochs to achieve 100% accuracy.
  • Implement a Chess Vision using Rust NIF and OpenCV, but start with Elixir for the model.
  • Use candy edge detection to detect edges in images, and hue line transform to identify chessboard squares.
  • Preprocess images by converting them to grayscale, detecting edges, and identifying squares.
  • Use a simple algorithm to find intersections of detected lines, and crop squares into individual images.
  • Train a model to predict square images using labeled tensors with hot encoded labels.
  • Perform model training, prediction, and validation in Elixir using judgments and OpenCV.
  • Implement a FIN system to describe a chessboard at a given state, and use it to generate training data.
  • Use Rust NIF to integrate OpenCV functions into Elixir, allowing for seamless interaction.
  • Achieve 100% accuracy using FIN and a trained model to predict chessboard squares.
  • Implement a live demo to show the Chess Vision in action, with perfect input and training data.