Проблема получения исправления на доске и определения движения фигур может быть решена независимо, если предположить, что вы не перемещаете доску, а также перемещаете фигуры.
Некоторые мысли о том, как бы я подошел к этому:
Определение ориентации доски
Вы должны быть в состоянии обращаться с доской, которая поворачивается на месте, а также перемещается, пока поддерживается некоторый угол, который позволяет вам видеть фигуры. Было бы полезно, если бы на доске было что-то, что вы могли бы легко идентифицировать (например, маркер на каждом углу), чтобы в случае потери ориентации (например, если кто-то полностью отодвигает доску от камеры), вы могли легко найти это снова.
Для отслеживания доски вам нужно смоделировать положение камеры относительно доски в трехмерном пространстве. Это та же проблема, что и при определении местоположения камеры, перемещаемой вокруг неподвижной доски. Проблема Эгомоция . Как только вы решите это, вы можете перейти к следующему этапу - обнаружению движения и отслеживанию объектов.
Обнаружение движения фигур
Это, вероятно, более простая часть проблемы. Существует множество алгоритмов обнаружения объектов в видео. Я бы только добавил, что вы можете использовать «ключевые» кадры. Под этим я подразумеваю идентифицировать те кадры, в которых вы видите только доску до и после одного хода. например вы не видите, как рука перемещает ее, закрывая фигуры и т. д. Получив кадр «до / после», вы можете выяснить, что было перемещено и где оно расположено относительно доски.
Возможно, вам не удастся распознать форму каждой фигуры, если вы предполагаете непрерывность (то есть, что вы отслеживали все движения с момента первоначального расположения доски, что хорошо известно).