CardRecog is an app that recognizes playing cards from a standard deck. There are five modes that can be chosen in the settings; multiple, single, update, pre-flop and raw. You touch the screen to start recognition, hold the camera still, put some cards in front, and wait. You stay in recognition mode until you touch the screen again to return to idle mode. Once recognition occurs the recognized cards are displayed and sometimes spoken.
In raw mode recognized cards are shown without filtering and in real-time. In other modes once recognition occurs no further cards will be recognized unless you restart the recognition process. There are two ways to do this; the easiest is remove all cards from view for around 1/2 second, and then place the cards to be recognized in front of the camera. The second way is to touch the screen to stop recognition and go to idle, and touch the screen again to start recognition. The file http://www.kgrothapps.com/files/cardrecog-example.pdf has some example hands. If you do not own a set of Bicycle playing cards print the page and try recognition of the hands.
When you start recognition the camera focuses (if possible), so if recognition fails you should touch the screen to stop, and then touch again to restart recognition to be sure you have an in focus image.You can also tilt the cards slightly to see if that improves results. If recognition fails for all cards then try setting the ISO (if it is in the settings) to the highest possible value, instead of the default automatic.
For devices with auto focus (i.e. Nexus line) recognition works well even for a large number of cards. However, you always need an in focus image, and reasonably bright lighting. For lower end devices recognition will work well in single card mode, but fewer cards are recognized successfully in multiple card mode. But even for low end devices (including those with no auto focus) recognition works well in single card mode.
In multiple card mode if the bottom of a card is visible that card is still only recognized once. In single card mode we look for the same card number and suit in both the top and bottom of the card. So both must be visible before the card is recognized in single card mode, but only one is required for recognition in multiple card mode. In single card mode if multiple cards are present recognition fails, you need exactly one card. In update mode we can add/remove a single card at a time to a hand of cards. In raw mode the unfiltered results are shown and you do not need to repeatedly restart recognition. The current mode is shown in the action bar text.
In the long run I will integrate this app with different card games. A simple integration is pre-flop mode where we show the percentage odds for the first two cards in hold em poker. I also perform standard blackjack card counting (can force display of count in the settings) to demonstrate another card application.
Most card recognition systems (i.e. the Blackjack counting detection systems) look for the card outline. In my method I do not require the outline of the cards, instead I only look at the card number and the associated suit. So as long as the suit and number are visible recognition will occur successfully; the rest of the card can be occluded. Skip to 1 minute, 23 seconds of the video below and you will see successful recognition of cards in the typical "fan" shape used in card games. No other system that I know of can perform multi-card recognition as accurately and quickly.
The app is real time in the sense that it is recognizing a number of times a second, as shown in raw mode. In the other modes the results are grouped to achieve a consensus, which is why it takes one or two seconds for a recognition result. I believe this is the best card recognition system for something like Google glass where you are looking at the cards in someone's hands. I welcome any comments, but remember this is not a final product, it is a technology demo.
CardRecog是一个应用程序,从一个标准的甲板识别的扑克牌。有迹象表明,可在设置被选择五种模式;多单,更新,翻牌前和原材料。你触摸屏幕开始认可,握持相机,把一些卡在前面,和等待。你留在识别模式,直到你再次触摸屏幕,返回到待机模式。一旦确认出现的认可卡显示,有时说的。
在原始模式的认可卡不显示过滤和实时。在其它模式下,一旦确认出现,除非您重新启动识别过程没有进一步的卡将被识别。有两种方法可以做到这一点;最简单的是从视图中移除所有的卡约1/2秒,然后将卡在照相机的前部被识别。第二种方式是触摸屏停止认可和去闲着,再次触摸屏幕开始认可。文件http://www.kgrothapps.com/files/cardrecog-example.pdf有一些例子手中。如果你没有自己的一套自行车扑克牌打印页面,并尝试识别的手中。
当您启动识别相机对焦(如果可能的话),所以如果承认失败,你应该触摸屏幕停止,然后触摸再次重启认可,以确保你有一个焦点image.You也可以倾斜卡略见如果能够提高成绩。如果承认失败,所有卡再尝试设置ISO(如果它是在设置),以尽可能高的价值,而不是默认的自动。
对于具有自动对焦装置(即Nexus的线)的识别效果很好,即使是大量的卡。不过,你总是需要一个聚焦图像,并合理明亮的灯光。对于低端设备识别将很好地工作在单卡模式,但很少卡多卡模式成功的认可。但即使是低端设备(包括那些没有自动对焦)识别效果很好单卡模式。
在多卡模式,如果卡的底部可见该卡仍然只承认一次。在单卡模式下,我们寻找在顶部和卡的底部相同的卡号和诉讼。所以,这两个必须是可见的在卡单卡模式的认可,但只有一个需要识别多个卡模式。在单卡模式下,如果有多个卡存在识别失败,就需要精确地一张卡。在更新模式下,我们可以添加/删除一张卡在同一时间,以一手牌。在原始模式未过滤的结果显示,你无需反复重启的认可。当前模式显示在操作栏中的文本。
从长远来看,我会融入这个程序有不同的纸牌游戏。一个简单的整合是翻牌前的模式,我们展示的百分比的赔率为保持EM扑克前两个卡。我也执行标准二十一点算牌(可以强制计数在设置显示屏)展示另一张卡的应用程序。
大多数卡识别系统(即大酒杯计数检测系统)查找卡轮廓。在我的方法,我不要求出牌的轮廓,而不是我只看了卡号和相关的诉讼。所以只要西装和数量都将出现明显的识别成功;该卡的其余部分可以被遮蔽。跳转到1分钟,下面的视频23秒,你会看到在典型的“粉丝”在纸牌游戏中使用形状成功识别卡。据我所知,没有其他系统能以准确,快速地进行多卡识别。
该应用是实时的,即它被识别的次数的第二,如图原始模式。在其它模式中,结果被分组,以达到一个共识,这就是为什么需要一秒或两秒的识别结果。我相信这是像谷歌的玻璃,你正在寻找的卡在别人的手中最好的牌识别系统。我欢迎任何意见,但请记住,这是不是最终产品,它是一个技术演示。