  Chessboard and chess piece recognition is a computer vision problem that has
not yet been efficiently solved. However, its solution is crucial for many
experienced players who wish to compete against AI bots, but also prefer to
make decisions based on the analysis of a physical chessboard. It is also
important for organizers of chess tournaments who wish to digitize play for
online broadcasting or ordinary players who wish to share their gameplay with
friends. Typically, such digitization tasks are performed by humans or with the
aid of specialized chessboards and pieces. However, neither solution is easy or
convenient. To solve this problem, we propose a novel algorithm for digitizing
chessboard configurations.
  We designed a method that is resistant to lighting conditions and the angle
at which images are captured, and works correctly with numerous chessboard
styles. The proposed algorithm processes pictures iteratively. During each
iteration, it executes three major sub-processes: detecting straight lines,
finding lattice points, and positioning the chessboard. Finally, we identify
all chess pieces and generate a description of the board utilizing standard
notation. For each of these steps, we designed our own algorithm that surpasses
existing solutions. We support our algorithms by utilizing machine learning
techniques whenever possible.
  The described method performs extraordinarily well and achieves an accuracy
over $99.5\%$ for detecting chessboard lattice points (compared to the $74\%$
for the best alternative), $95\%$ (compared to $60\%$ for the best alternative)
for positioning the chessboard in an image, and almost $95\%$ for chess piece
recognition.
