VISION SYSTEM FOR MONITORING BOARD GAMES AND METHOD THEREOF
20170100661 ยท 2017-04-13
Inventors
Cpc classification
G06F3/0425
PHYSICS
A63F13/75
HUMAN NECESSITIES
A63F13/213
HUMAN NECESSITIES
International classification
A63F13/75
HUMAN NECESSITIES
Abstract
The present invention relates to a method of monitoring a board game, comprising: a) tracking movement and position of game pieces on the game board during a game session by at least one camera adapted to monitor the board game; and b) verifying the correctness of said movement according to rules of the played game and/or tournaments by using a processing device adapted to detect moves and other relevant game data from received board game images and to verify them according to game rules as defined by a game engine.
Claims
1. A method of optically monitoring a board game, comprising: a) acquiring key frame images of said board game from a video stream, wherein each key frame of the board game is partitioned into an array of board squares images; b) extracting shapes of game pieces from said images and training a machine learning module to distinguish between said game pieces and to detect whether each square is occupied or free, and if occupied, with a game piece of which player, and combining the extracted shapes into a matrix that represents the game pieces of each player and blank squares on the board game; c) comparing each key frame image of said board game with a previous one in order to track movement and position of game pieces on said board game during a game session, wherein the extraction of game pieces shapes enables to complete missed or undefined moves; and d) verifying the correctness of said movement according to game/tournament.
2. The method according to claim 1, further comprising transferring verified moves and relevant data to a remote server.
3. The method according to claim 2, wherein the verified moves are converted into an electronic notation format.
4. The method according to claim 1, further comprising detecting a sequence of played board game moves using a game engine that leads from one game board state to another, wherein the game engine is configured to process game sessions and to monitor their compliance with game/tournament rules by comparing and matching each detected move with pre-stored rules.
5. The method according to claim 4, further comprising recording timing of each played move, thereby enabling to act as a real-time game clock.
6. The method according to claim 4, further comprising detecting if more than one move occur from previous key frame to the next one, and applying a procedure for figuring the sequence of moves that leads from one board game state to another, by relying on the game/tournament rules, thereby enhancing the detection of the moves.
7. The method according to claim 1, further comprising monitoring the usage and state of an electronic chess clock along with board game state monitoring, such that the location of the clock's buttons which players press after the move was made is detected, and by measuring an optical flow at that region of image, the precise moment the move was finished is detected.
8. The method according to claim 1, further comprising simultaneously monitoring multiple game boards using a single camera.
9. The method according to claim 1, further comprising a scoring module adapted to provide scoring data to external players scoring systems thereby enabling to update players' ratings after a tournament or match, or after individual games.
10. The method according to claim 1, further comprising providing background subtraction algorithm to track objects that conceals parts of the board game, by maintaining the stationary state of a video stream which is considered as background and marks the regions of images which are different from the background to indicate moving objects.
11. A system of optically monitoring a board game, comprising: a) a processing device adapted to detect moves and game data from key frame images received from video streams of said board game and to verify the correctness of said detected moves according to game/tournament rules as defined by a game engine, by partitioning each key frame image into an array of board squares images, extracting shapes of game pieces from said images and training a machine learning module to distinguish between said game pieces and to detect whether each square is occupied or free, and if occupied, with a game piece of which player, and combining the extracted shapes into a matrix that represents the game pieces of each player and blank squares on the board game, so that the extraction of game pieces shapes enables to complete missed or undefined moves; b) at least one camera adapted to stream images of said board game to the processing device.
12. The system according to claim 12, in which a full view of the board game is obtained from at least one camera located above said board game.
13. The system according to claim 12, in which a full view of the board game is obtained from more than one camera, wherein the cameras are positioned in such a way that the lens of each camera will be able to provide at least partial view of said board game, while the combination of each camera enables to provide a full board view.
14. The system according to claim 12, further comprising a server adapted to receive and store the detected moves and the relevant game data.
15. The method according to claim 1, wherein the comparing of key frame images is done by computing an optical flow between said key frames, wherein said optical flow describes the transition from one key frame image to another.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] In the drawings:
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
DETAILED DESCRIPTION OF THE INVENTION
[0040] Reference will now be made to several embodiments of the present invention, examples of which are illustrated in the accompanying figures. Wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
[0041]
System Setup Stage
[0042] Camera 3 is positioned in such a way that its lens will be able to provide a view of the game board 4, e.g., an optimal field of view with respect to the game board 4 may include the entire board. For example, the camera 3 can be located above the game board 4 as shown in
System Initial Setup Stage
[0043] Referring now to
[0053] According to an embodiment of the present invention, the extraction of game pieces shapes can be used as a moves backup feature, which may help to identify one or more moves that have been missed by the system. This may enable to complete missed or undefined moves by the system.
Per Frame System Operation
[0054] Referring now to
[0055] As soon as motion ceases, a frame is proclaimed as a key frame (block 56) and the following procedure is performed. A key frame refers to a frame at which no motion was detected, immediately following the sequence of frames with motion. It is assumed that board state can't change without an optically noticeable motion over the board, so each time detected motion ceases the system checks if any changes in board state took place. At next, block 57, each key frame of the game board 4 is partitioned into an array of board squares images (e.g., an 88 array). At next, block 58, the system sends each square to Machine Learning Module that decides its category and combines to 88 matrix of categories. For each square the machine learning system (as trained in system initial setup) is asked to detect whether it is occupied or free, and if occupied, with a piece of which player (white or black). This information is combined into a matrix (e.g., 88 matrix as shown in
[0056] Referring now to
[0060] According to some embodiments of the invention, this marking can be obtained in two ways: first, large moving foreground regions of an image are identified as player's hand or head which conceals parts of the board (as indicated by region 258|26685) and should be avoided when computing matrix of categories at block 58 of
[0061] At block 64, all key frame images and relevant data produced during the system operation are recorded and stored on the processing device for future reference.
[0062] All the above will be better understood through the following illustrative and non-limitative examples as shown in the
[0063]
[0064] According to an embodiment of the invention, the system (using the processing device and the game engine) further adapted to detect and validate of abnormal and normal game behavior of players. For example, recognizing when a player touches a game piece (since in some game, if a player touches a game piece than he is obligated to play with that piece), in absence of game clock, keeping track of the total time each player takes for his or her own moves, in order to ensure that neither player overly delays the game, identifying the moment when a player complete a move (e.g., when the player leaves the game piece after moving it form one position to another, etc.)
Game Electronic Clock Monitoring
[0065] If an electronic chess clock is present, its state and operation is monitored and recorded, along with board state monitoring. The clock location in the input image is marked by the operator at the initialization step. Assuming that digits on the clock are distinguishable via the camera their location are detected and maintained during the game. The location of the clock's buttons which players press after the move was made is detected, and by measuring the optical flow at that region of image, the precise moment the move was finished can be detected. Digits display region on the clock is extracted and since their structure is known digits display image is divided into separate digit image, then each is passed though machine learning system which determines it value, alternatively the system observes the change in the displayed value, and by comparing it to computer's local time, the system can obtain its value. Switching the clock is also used to generate a key frame procedure call in addition to those detected using optical flow.
Multiple Boards Monitoring
[0066] Locating the system's camera above the board allows tracking multiple game boards that fell in the viewport of the camera simultaneously, as shown in
[0067] According to an embodiment of the invention, the system may include a scoring module adapted to provide scoring data to external players scoring systems thereby enabling to update players' ratings after a tournament or match, or after individual games, such as a chess rating system used by the FIDE or the US Chess Federation (USCF).
[0068] As will be appreciated by the skilled person the embodiments described hereinabove results in a system and method for automatically monitoring board games, such as chess.
[0069] The following discussion is intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the invention described hereinabove in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a processing device 2, those skilled in the art will recognize that the invention may also be implemented in combination with other program modules.
[0070] Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0071] Therefore, embodiments of the invention as described hereinabove may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
[0072] Although, the functions described herein may be performed by executable code and instructions stored in computer readable medium and running on one or more processor-based systems. It will be apparent to a person skilled in the art that state machines, and/or hardwired electronic circuits can also be utilized. Further, with respect to the example processes described hereinabove, not all the process states need to be reached, nor do the states have to be performed in the illustrated order. Further, certain process states that are illustrated as being serially performed can be performed in parallel.
[0073] Similarly, while certain examples may refer to a processing device in form of a Personal Computer (PC) system, other computer or electronic systems can be used as well, such as, without limitation, a tablet, a network-enabled personal digital assistant (PDA), a network game console, a networked entertainment device, a smart phone and so on.
[0074] All the above description and examples have been given for the purpose of illustration and are not intended to limit the invention in any way. Many different mechanisms, methods of analysis, electronic and logical elements can be employed, all without exceeding the scope of the invention.