The following embodiments generally relate to a game monitoring device. In one embodiment, a game monitoring device is provided comprising a display device; a memory configured to store rules of a game; at least one camera configured to capture images of a gaming table on which the game is played; and a processor. The processor is configured to: analyze images, captured by the at least one camera, of game objects and chips on the gaming table to determine an outcome of the game; and display, on the display device, a notification regarding the outcome of the game. The game monitoring device is a self-contained, stand-alone device in that the analyzing and displaying both occur in the game monitoring device without a need to communicate with a remote device during game play.
Other embodiments are possible, and each of the embodiments can be used alone or together in combination.
As discussed above, casinos often use a series of cameras to detect fraud or mistakes made by a dealer, but it is often a manual process that requires casino staff to monitor the video feeds of the cameras. While automated processes have been proposed, they are usually not adopted due to the cost, complexity, and incompatibility with a casino's existing infrastructure. For example, some systems may require network cabling to run between a remote server and the local cameras or other devices at a gaming table. For an established casino, this may require tearing down parts of the casino's ceiling, floors, or walls, if such remodeling is even possible. Also, such systems often require setting up several cameras around each gaming table and may require special floorplan layouts. Further, using special chips with integrated circuits adds cost and complexity. Additionally, some systems are used to detect mistakes or fraud at some later time and do not provide real-time monitoring of a dealer's chip redemption and collection or real-time detection of in-game betting violations.
The following embodiments can be used to address these issues. In one embodiment, a self-contained game monitoring device is used. In this embodiment, the game monitoring device is “self-contained” in that the camera(s), processing, and dealer and/or player notification system are all housed in a single device and in that the game monitoring device does not communication with a remote server or other device during game play to perform its game monitoring functions (although updates, game histories, and learning files, for example, can be communicated outside of game play through a wired or wireless connection).
As shown in
The processor 200, which can be a micro-processor, can execute computer-readable program code (e.g., firmware) stored in the memory 210 (which can store other data) or in another computer-readable medium in the game monitoring device 100. The processor 200 can also take the form of a pure-hardware configuration using processing circuitry, logic gates, switches, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a programmable logic controller, for example. This configuration will also be referred to herein as a processor. Also, multiple processors may be used, such as when a central processing unit (CPU) is used with a graphics processing unit (GPU). So, the term “processor” can refer to one or more processors. The firmware and/or hardware of the processor 200 can be configured to perform the various functions described below and shown in the flow diagrams. The processor 200 can also be configured to control the camera(s), the display/notification area 130 (touch screen), and any other component(s) in the device 100. In one embodiment, the processor 200 takes the form of a Raspberry Pi. Of course, other implementations are possible.
The game monitoring device 100 also has a wireless communication interface 220 (e.g., a cellular and/or WiFi interface) and/or a physical input/output port 230 to accept a wired connection or a storage device (e.g., a USB drive). While connection to an outside device/server through these communication channels 220, 230 is not required during the monitoring of the game (because the device 100 is a stand-alone device), these communication channels 220, 230 can be used to provide the device 100 with game rules, configuration information, training information, software updates, etc. and also serves as a way for the device 100 to output stored historical data. The device 100 can contain other components.
The game monitoring device 100 of this embodiment is a self-contained, stand-alone device that analyzes images taken by the device's camera(s) of the gaming table and displays a notification concerning the outcome of the game, all without a need to communicate with a remote device during game play (as mentioned above, communication with a remote device can occur outside of game play to, for example, receive various updates). Being self-contained avoids the problems mentioned above with respect to networked systems that rely upon a plurality of cameras located around a gaming table to communicate with a remote server device. However, being self-contained also provides some challenges. For example, because all the camera(s) are located in the device 100 itself, positioning in the device 100 so that it sees the entire relevant field of view of the table 20 can be important. To assist in this, in one embodiment, the processor 200 is configured to provide auto-focusing of the camera(s) (e.g., using artificial intelligence). Also, to make sure there are a sufficient number of good images on which to base an analysis, the processor 200 can cause the camera(s) to capture images at a selected high frequency (e.g., throughout game play). That way, if a card or chip is not clearly recognizable in one image, it may be recognizable in one of the many other images that are captured. However, because the memory 210 of the device 100 may be limited and because all of the captured images are stored internal to the device 100 by virtue of it being self-contained, it is possible for the memory 210 to run out of space. To address this, the processor 200 can used an intelligent storage algorithm, in which the retention time of any given image is based on its use. Also, because a casino may use multiple devices 100, one for each of its many gaming tables, a centralized batch training and configuration tool can be used to customize each device 100. This will be discussed in more detail below.
Turning again to the drawings,
As illustrated in
In general, the processor 200 of the game monitoring device 100 uses the images of the cards and chips captured by the camera(s), in conjunction with its knowledge of the rules of the game, to determine the outcome of the game and monitor the payouts at the end of the game, possibly even assisting with the payouts via the display area 130. More specifically, the display area 130 can serve one or more purposes. One purpose can be to notify dealers and/or supervisors in real-time about a potential dealer error on payout of a bet or the player's violation on a particular bet during the game. For example, when a dealer makes a mistake (e.g., an incorrect amount is paid to player), the device 100 can provide a visual alert (e.g., a dashboard warning light on the display area 130) and/or an auditory alert (via a speaker (not shown) in the device 100) to attract immediate attention from the dealer and/or floor supervisor. The device 100 can display a “clear” button to dismiss visual and auditory alerts, and the floor supervisor can press the “clear button” to reset the device 100 after the dealer error is rectified or to clear up alerts in case it was caused by an unexpected issue from the device 100 itself. The display area 130 can also offer outcome suggestions in real-time for each play (e.g., the win/lose outcome of the game and its monetary value of winnings or losses can be displayed once the game is finished), which can be used for both players and dealers. Further, the display area 130 can be used to display the dealer chip count in real time. The device 100 can be configurable (e.g. by a supervisor) to only have some of these features enabled.
Using the images of the cards and chips captured by the camera(s) of the game monitoring device 100, the processor 200 can use edge computing, artificial Intelligence, and/or machine learning to monitor the game for dealer errors in game judgment and wage payouts and/or assist the dealer in avoiding such errors, which can be due to stress, inattention, or being tired. The processor 200 can generate real-time suggestions and notifications to the dealer/supervisor and display them on the display area 130 of the device 100. The processor 200 can also provide real-time monitoring on game rule violations by human participants in the game, such as a violation on the minimum/maximum wage allowed on each bet, and check if a subsequent bet complies with the game rules. The processor 200 can also provide analytics, such as game statistics and dealer performance statistics, which may be highly valuable to casino management.
Specifically, for example, in a casino table game, a dealer makes a judgment on who wins the game (against the dealer or against the other players) and delivers a payout to the player or sweeps the player's bet. Human mistakes can happen in the judgment of who won the hand and in the payout to the winner. The error rate is elevated when the dealer is a new hire or not familiar with the game or when the dealer is tired. It is also possible that a dealer is not good at calculating a payout in a complicated game with multiple bets. Those errors are usually against the casino, as errors not in favor of players are likely caught by the players and corrected. Also, an error should be corrected promptly before the player leaves the game. So, a monitoring process is very valuable in identifying/correcting human mistakes on the spot and evaluating performance of different dealers for a specific game, so that management can assign appropriate dealers to the games. On the other hand, casinos may not want to make extensive changes to accommodate the monitoring process. Accordingly, this standalone, independent monitoring device 100 can be highly desirable, as it provides the casino with the capability of automatic monitoring/correcting/verifying table games with no infrastructure changes needed. That is, the game monitoring device 100 of these embodiments is a stand-alone device that needs, at most, only minimal integration with the existing infrastructure of a casino. The device 100 is highly portable, easily installed, easily configured, and easily updated with new game rules. These features afford the casino operator with little interruption for initial installation and subsequent upgrade and makes the device 100 independent of other existing systems adopted by a casino.
The game monitoring device 100 can have additional functionality as well. For example, the processor 200 can also implement a data tracking and analysis module that provides historical data for table performance and/or dealer performance analysis if the casino chooses to retain data for the more analytics. Historical data can be accessed, for example, from the device 100 via a local area network (LAN) computer or a cloud server per permission granted by casino management. More specifically, the data tracking and analysis module can store data in the memory 210 from historical plays for a certain period of time, including timestamps, player and dealer's cards, betting and win/loss amounts, as well as their corresponding settlement images. The historical chip counts in the dealer's chip trays can also be recorded. The casino management can turn on this feature to sync/export the captured data into their information technology (IT) systems (or provide application programming interface (API) access to the data) for further analysis.
When a human error is detected, an additional field can be added to the dataset to indicate that. By analyzing the data log, the return on investment and effectiveness of the device 100 can be closely monitored. Management at the casino can assess the profitability of the game or side bets, the performance of different dealers for the game, fraud detection, and error rate for the game. Upon request from the casino, the device 100 can be configured to connect to cloud servers for more data labeling (e.g., image annotation) and the supervised learning and training of neural networks. This helps improve the machine-learning algorithms and also can be used to provide automated software upgrades for the device 100.
In another embodiment (see
The following paragraphs provide example implementations of the game monitoring device 100 of these embodiments. It should be understood that these are merely examples, and the details presented herein should not be read into the claims unless expressly recited therein.
In one example implementation, the camera(s) 110, 120 of the game monitoring device 100 take snapshots covering the entire game table 20, and the processor 200 provides artificial-intelligence-powered autofocusing to automatically zoom in and out to get high-resolution images on the areas of interest of the table 20. In one embodiment, the processor 200 is configured with a computer-vision software module with embedded image analytics. The computer-vision software module can be used to perform automatic image recognition on captured continuous representations of images to identify all relevant gaming objects (e.g., cards, chips, and dices) along with the values of interested objects (e.g., suit and rank of a card) on the game table 20 using a machine-learning algorithm and/or a deterministic algorithm, for example. The computer vision software module can be called by multiple steps in the processor's game judgment algorithm when the value of cards, chips, or dice need to be checked.
More specifically, in one embodiment, the processor's computer vision software module performs automatic image recognition by performing a two-step process. First, the processor 200 identifies objects of interest on the gaming table 20 using one or both of the following approaches. In one approach, the processor 200 detects specific geometric shapes (e.g., the shape of a card, the shape of a chip pile, etc.) in a captured image using an edge detector to identify objects of interest and associates those objects with either a seat position, the dealer, or the community. The processor 200 can analyze the image captured by the device's camera(s) to identify individual betting areas for card(s) for each player, an area for card(s) for the dealer, and area for community card(s). The number and the location of betting spots for players may vary in different games. An image of the table layout can be stored with correct areas labeled.
In the second approach, the processor 200 identifies objects of interest for each area identified (e.g., cards, chips, dice, etc.). For example, objects of interest can be cards in dealer's cards/community cards and in player's cards areas and chips in betting areas. Objects can be associated with players or the dealer corrected in order for the processor's game judgment algorithm to work correctly.
The processor 200 then causes the camera(s) to take a picture of the empty gaming table 20 at the initial calibration time and uses that image as a benchmark image. The embedded AI-based image process can automatically identify betting areas for each designated seat within the benchmark image. When a new image of the table top is taken, the embedded software in the processor 200 can rotate and rescale the new image to match the table edge with the table edge in the benchmark image. Given that the game table is static during the course of the game, the processor 200 can use the difference between the newly-captured image of the table top 20 and the benchmark image to identify objects of interest. Coupled with the boundaries of betting areas for each seat position, the embedded software in the processor 200 can then associate identified objects with individual players. As shown in
Next, the software model in the processor 200 can identify the value(s) of objects of interest using image recognition. The values for a playing card can include the value and suit, the value for a casino chip can be the face value chip in local currency nominal value, and the value for a dice can be the dice number shown. The processor 200 can use computer-vision image recognition to recognize the card and the chip. In card recognition, the processor 200 recognizes both the suit and rank. The recognition technique can be based on, for example, the matching technique described in “Playing Card Recognition Using Rotational Invariant Template Matching” published by Zheng and Green from University of Canterbury, Christchurch, New Zealand in December 2007. The embedded software can come with a variety of templates on suits and ranks, but if the cards used are very different from regular poker cards, the processor 200 can have the option of card learning on each poker card during the initial activation process in order to generate a new set of templates specific for that casino. The corner of the card can be extracted to perform both rank match and suit match. The color of the suit can also be used to verify suit recognition, especially between a spade and a heart.
For chip recognition, the processor can capture the side view of a stack of chips, as shown in
Every time the computer vision module is called, the processor 200 can have the information about each player's bet(s); each player's card(s), if any; the dealer's card(s), if any; and the community card(s), if any. Before the game monitoring device 100 is used in live casino games, supervised learning on both casino cards and all varieties of chips can be performed during the initial system setup.
To improve the accuracy of image recognition, high-quality images can be used. The processor 200 can first detect the area of interest, then use the context of the table game 20 to determine which object within an image should stay in focus and adjust the camera angle and zoom settings towards the specific area automatically. Then, the processor 200 can examine the target object to decide if it is sufficiently sharp. In a short amount of time, the processor's. AI-powered autofocus system can learn and adjust the camera to bring the target object sufficiently into focus.
To overcome the challenge that partially blocked chips may affect the accuracy of chip value detection, the processor 200 can use a continuous representation of images to monitor the entire chip betting process, from the initial chip gathering all the way to the final placement of chips at each betting area. This process can accurately detect main bets, side bets, and tips, regardless of whether the chips are blocked. The processor 200 can also cache previous bets for intelligent analysis in case there is no chip change in the same betting area. The continuous representation can require the processor 200 to store some informative images, which can occupy quite a lot of memory space. The processor 200 can use an intelligent storage space releasing algorithm to ensure the system efficiently deletes images no longer in use.
In addition to performing the functions of the computer vision software module, the processor 200 can implement a game judgment algorithm to detect the start of a game, record the wage on each betting spot for each player and check whether the bets satisfy betting rules (such as each bet is within a minimum and maximum wage, certain bets are equal in value for each play if designed to be equal, etc.), detect the end of a game, determine win/loss/push of each bet for each active player in the game, look-up payout odds and calculate theoretical payout for each winning bet of each player, and determine if dealer actions are consistent with the algorithm outputs for each bet active on the game table. The dealer actions can include, but are not limited to, taking a player's bet away if a player loses, no action when a player pushes, paying the player on each winning bet where the payout value is detected by computer vision software module, and outputting a warning signal if an action is inconsistent with its theoretical output.
A separate game judgment algorithm can be designed for each specific casino game. For example, for different games, different number of cards are dealt, the sequence of dealing cards can be different, the timing of determining win/lose can be different, the location of community cards, if any, can be different, and/or the dealer may not even have cards (such as in Mississippi Stud or Cajun Stud). Also, for the same game, the payout odds can be different among different casinos. As a result, the game judgment algorithm can be implemented specific for a specific game in a specific casino.
First, to check if it is the start of a new game, a picture of the game table is generated constantly by the camera(s). The computer vision module analyzes the image to see if there are no card(s) on table (by looking for either the back or front of the card(s)) and if there is at least one bet in the designated betting area. If a game starts, the processor 200 records the bet(s) and checks if any bet violates the game rules (e.g., min/max bet or equal wage value between two bets for the player). If there is a violation, the notification system 130 will notify the dealer if there is a bet violation and the dealer should let the player correct the violation.
Next, the processor 200 checks if any card is dealt out, which indicates that the initial bets are all set. If no cards have been dealt, the processor 200 performs the above-described acts again to see if the player(s) might still set up new bet(s). If the cards have been dealt, the processor 200 checks if all active player(s) with bet(s) received card(s). If not, the processor 200 waits and checks again until all active players have received card(s). The processor 2002 then updates bet(s) for all active player(s) and records the community cards exposure status (i.e., the number of cards exposed along with their values/suits and the number of cards not exposed yet). If there is no community card, the processor 200 skips all the steps related to the community cards. If there is a community card, the processor 200 checks if all community cards have been exposed. If not, the processor waits for all community cards to be exposed and then checks for the dealer's cards. The processor 200 waits until dealer's cards are exposed or determines that there are no dealer's cards in the game. The processor 200 then performs a final update on bets and checks for bet violations. Finally, the processor 200 determines win/loss/push for each bet on the table and calculates payout for each win. This is called a theoretical outcome. For each player, the processor 200 checks if the dealer's action is consistent with the theoretical outcome. If there is any inconsistency, the notification system 130 is activated to notify the dealer/supervisor about the incorrect payout. Otherwise, this round of the game is finished, and the processor 200 repeats the above steps for the next round of the game.
There are many alternatives that can be used with these embodiments. Some examples of these alternatives are listed below. It should be understood that these are merely examples and should not be read into the claims unless expressly recited therein. For example, the non-invasive standalone device can be powered by edge computing and computer vision. The device can comprise one or multiple artificial-intelligence (AI)-powered autofocus camera(s), embedded processor(s) (e.g., a central processing unit (CPU), graphics processing unit (GPU), tensor processing unit (TPU), etc.), memory chip(s), and other hardware to support the standalone operating system. The device can use a continuous image capture process that captures real-time images of the entire gaming table or portion of the gaming table at a certain frequency without capturing players' faces to avoid privacy issues. The device can have software that uses computer vision technologies in combination with a camera and artificial intelligence to achieve image recognition to identify objects on the game table including, but not limited to, card value, dice face value, and chip face value even when chips are in a stacked pile. A pre-trained, built-in machine learning module can be used to re-train models offline with real-time images and objects, and software with a configurable game rules engine can be used to determine if a specific bet violates rules predefined by the casino and to determine the win/loss of competing hands for any table game and to calculate payouts to all winning bets. A display/notification area on the device can display betting violations and/or win/loss results along with payout on each bet in real-time before the dealer collects or deals out chips for each player. The notification system can also detect dealer mistakes in real-time and alert the dealer/manager with predicted results. A physical interface on the device can be provided to allow the dealer to verify/reject/consult notifications. A built-in software module can be used to store historical data for table performance and/or dealer performance analysis for in-depth analytics. Historical data can be accessed live or batch exported from a local-area-network (LAN) computer to a cloud server. A built-in data analytics module in the device can determine profitability of each side bet within each game, so that a casino can make decision on which side bets are to be included in a particular game. Multiple devices can be configured in batch via a mobile app or a software application running on a processor of a separate computing device, and some device settings can also be adjusted at the device (e.g., by a supervisor).
It should be understood that all of the embodiments provided in this Detailed Description are merely examples and other implementations can be used. Accordingly, none of the components, architectures, or other details presented herein should be read into the claims unless expressly recited therein. Further, it should be understood that components shown or described as being “coupled with” (or “in communication with”) one another can be directly coupled with (or in communication with) one another or indirectly coupled with (in communication with) one another through one or more components, which may or may not be shown or described herein.
It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a definition of the invention. It is only the following claims, including all equivalents, which are intended to define the scope of the claimed invention. Finally, it should be noted that any aspect of any of the embodiments described herein can be used alone or in combination with one another.
Casinos often use a series of cameras to detect fraud or mistakes made by a dealer, but it is often a manual process that requires casino staff to monitor the video feeds of the cameras. Automated processes have been proposed. For example, U.S. Pat. No. 8,172,672 describes a system in which a series of cameras positioned around a gaming table sends images of playing cards on the gaming table to a remote server device located in a management room of the casino. The remote server device automatically judges the game win/lose result of the players and the dealer through image recognition of the images from the cameras. The remote server device also automatically judges the payouts to the players via wireless integrated circuit tags in the game chips. If the dividends are inconsistent with the expected result, the remote server device notifies the dealer and a casino hotel manager. As another example, U.S. Pat. No. 10,032,335 uses a series of cameras positioned around at a gaming table to capture images of the playing cards and chips on the table. Artificial intelligence is used to analyze the images to determine if fraud took place.