
Convert a physical chessboard into a digital one - ingve
https://tech.bakkenbaeck.com/post/chessvision
======
dvt
Interesting work, and here are a few thoughts (in no particular order).

10 seconds seems very high for what's being done here. We can get realtime
facial recognition (at like 30-60fps). Recognizing chess pieces ought to be
trivial by comparison.

If you're taking the rules seriously, there should be a _lot_ more rules:
there are many (many) invalid board states. It seems strange focusing on just
a couple. In fact, it seems strange looking at rules altogether. Why not
simply have your algorithm figure out what piece is at what position?

SURF or SIFT might be useful here; where you're looking for features that
identify specific pieces. In other words, I'm not totally sure if ML is
necessary. I would consider processing the image with something like a canny
filter and then running a shape detection on the contours.

Either way, really cool project, and great write-up!

------
nightnight
The chess pieces don't have to be recognized via a neural network. You just
need to track the delta of fields with chess pieces between moves and then you
know which piece moved to which field.

So, just an optical recognition of empty field vs used field is required. This
works since the starting position of chess pieces is always the same.

This way old inductive chess computer from Mephisto worked (the high-end
models had inductive fields).

~~~
cyborgx7
I don't think this is being built to follow along a game in progress (though
that would be an interesting application) but rather capture a current
position and transfer it to a digital representation, for example for computer
analysis. So there is no delta to track.

------
soup10
Rated standard tournament chess involves a tedious process of annotating moves
on a carbon copy as you play. One to give to the tournament director to enter
the game into the database and one to review the game after. So there is a
niche market for this.

~~~
slphil
This makes no difference. Players are required to keep notation in tournament
games, and the use of external software (like what is used at the top boards
at some tournaments) does not absolve the players of this responsibility.
Writing down the moves of the game as it is being played is a major part of
playing chess, and it is one of the most important things for players to learn
because it directly improves play (even disregarding reviewing the games
afterwards!).

~~~
rixed
In case this was not meant to be ironical, could you explain how noting moves
improves play?

~~~
slphil
I am a chess professional, although more as a teacher than a player, so I have
a lot of experience in this field. As caro_douglos pointed out, it slows down
the initial reaction to opponent's moves, which is one reason why it instantly
improves performance for new players. It forces the player to settle into a
certain rhythm of play which prevents silly mistakes.

It is also permitted (and encouraged) to write down the time on the clock
after each move, and to record all draw offers, both of which are valuable
information during and after the game. If one of my goals is to grind down my
opponent's clock in a complex position where I have the initiative, seeing how
much more time he is using on average gives me an idea of how long I need to
maintain the tension to gain a sufficient time advantage. For example, in a
game where both players start with two hours, entering the endgame with 1 hour
versus my opponent's 15 minutes is an enormous advantage, even in a position
which should otherwise be drawn with perfect play.

Also, in some time controls, players gain extra time after a certain move
(generally the 40th), so it can be very important to know exactly when you're
going to get that extra hour. These time controls are less common than they
used to be.

I have students as young as 5 years old learn how to keep notation after only
a few weeks of learning chess. It is a very important skill.

------
darkmighty
If you're going the ML way, I recommend an end-to-end approach to get
significantly more performance (at a data preparation and training cost).
Simply generate a dataset of chess boards, and then render them using a 3D
software of choice (pretty easy job in blender/etc.). For robustness then you
can add various kinds of perturbations, like different camera angles, small
displacements for each piece, etc.

------
lspears
I did something similar, but with an end-to-end ML approach:
[https://towardsdatascience.com/transcribe-live-chess-with-
ma...](https://towardsdatascience.com/transcribe-live-chess-with-machine-
learning-part-1-928f73306e1f)

------
Cactus2018
similar story to
[https://github.com/Elucidation/tensorflow_chessbot](https://github.com/Elucidation/tensorflow_chessbot)

------
dsjoerg
Very promising! Put me on your mailing list!

