Chessboard detection with OpenCV.
Piece location and color detection with OpenCV.
The view from the eye.
Setup with RaspberryPi and JBL Pulse 2 speaker.
Computers have revolutionized the practice of chess: not only can grandmasters analyze their games with unmatched precision, hundreds of thousands of amateurs can find opponents of their level online at any hour of the day. We wish to benefit from these incredible advances while preserving the joy of playing with a real chess set.
What it does
ChessEye is a computer vision system coupled with a chess-aware controller; it tracks chess pieces on regular, unmodified, chess boards and, because it understands the logic of the game, can follow along the moves as they are played. ChessEye also includes an artificial intelligence and can play against humans, or comment on their games. All feedback is given through speech synthesis. ChessEye can run and has been tested both on a commodity laptop and on a RaspberryPi.
How we built it
We used OpenCV with its Python bindings to gather an estimate of the position on the board. This continuous scanning is fed into a ReactiveML controller, whose responsibility is to both eliminate noise and ensure that the moves are conforming to the rules of chess. The controller finally issues feedback sentences to the speech synthesis module which relies on the IBM Watson APIs to produce the sound samples.
Challenges we ran into
- Poor lightning led to noisy data from the camera sensor.
- Also, chess is hard.
Accomplishments that we're proud of
- It works.
- It works on a RaspberryPi.
What we learned
- You can hack your way through any problem.
- You should always feed your cats.
What's next for ChessEye
- Connecting it to online correspondence chess servers.