Poker Copilot and Zoom Poker
On Sunday PokerStars released Zoom Poker. It seems to be equivalent to the late Full Tilt Poker’s Rush Poker.
I’m having a go at making a working HUD for Zoom Poker. Fortunately I went a long way down this path for an experimental Rush Poker HUD back in the day. So a lot of my necessary learning is already done, as is a semi-working solution.
Every hand in Zoom Poker is with a different set of opponents, so Poker Copilot’s approach of determining who is at the table from the hand history after a hand does’t work here. After ruling out other possible approaches, it seems clear to me that I need to use screen scraping.
To make the problem easier to solve, I’m setting some strict constraints at first: 9-player tables, using any of the “Nova” table themes, on one table, with the table made as big as PokerStars allows (1320 pixels by 932 pixels). Once I get that working satisfactorily here in the lab, I’ll make it available for eager testers, to weed out problems. Then once that is working, I can look at removing the constraints one at a time.
After two days’ work, I’ve got parts of the solution in place. In the following screenshot you can see some of the workings: in real-time, Poker Copilot is grabbing the player names in image form, then converting each image to a binary image via a technique called thresholding.
A further process trims each binary image, then separates the image into free-standing images of individual characters as much as possible. I intend to build up up a repository of as many images as possible so that I can “teach” Poker Copilot which image is equivalent to which character (or characters).
Here’s a glimpse of the tool I created to “teach” Poker Copilot about the letters. You can see the whole player name, the individual letters, and the third column where I manually tell Poker Copilot which letter is represented.
If any brilliant researchers into screen scraping and character recognition are reading this, please do send me links to any helpful documents in this area that I can use…