In the next Poker Copilot update there will be two small but important changes to the hand formatter.
1. Players are now anonymised. This is in keeping with poker forum etiquette.
2. Stacks change throughout the hand. Each player’s revised stack is now shown at the beginning of each street. This gives you an idea of how much a player’s current stack they are betting.
Note that the second change is only in the “Formatted” view at the moment. I’ll introduce this to the “2+2” format in a future update.
Here’s an example of me being a calling station with KTo.
Thanks to loyal Poker Copilot customer Gregory for suggesting these changes.
Like the subject says. Last last night I played 100 hands or so of Zoom Poker with the new Poker Copilot Zoom Poker HUD. It was recognising an increasing number of people successfully, so that eventually I was seeing statistics on most players.
Now for some tidying up, further OCR “teaching”, and then I can release a early-access version.
I’ve got the basics working. When I play Zoom Poker, Poker Copilot promptly identifies about 50% of the players correctly. The basic components are in place, but all need to be improved, tightened up, and tidied up. The biggest problem is the letter k – I’ll need to tune my code to handle this better.
My ScreenScraping Teaching tool I’m using to create the Poker Copilot Zoom Poker HUD shows an image on screen and what character it thinks that image contains. I tell the Teaching tool if the character is correct or not.
Problem is, I can’t tell whether it thinks an image is an upper case 0 or the number 0. I can’t tell if it thinks a letter is an upper case i (l) or a lower case L (l).
So I’ve created a small Java class which will give me a textual description of a character. Now it will tell me that l is either:
UPPERCASE LETTER I
or
LOWERCASE LETTER L
It will tell me that 0 is
UPPERCASE LETTER O
or
DECIMAL DIGIT NUMBER 0
The Java class is called Characters, and the source code follows:
public class Characters {
public static String getDescription(char ch) { return CharacterType.getDescription(ch); }
private static String getDescription(final int c) { final int type = Character.getType(c); final CharacterType characterType = CharacterType.values()[type]; return characterType.toString().replace('_', ' ') + ' ' + (char) Character.toUpperCase(c); }
In order to get Poker Copilot’s HUD working with PokerStars Zoom Poker, I need to know what symbols are acceptable for PokerStars. This a valid PokerStars screen name: ÀÁÂÃÄÅÆ
Now that’s going to be hard to determine purely via naïve screen scraping. Wish me luck.
Here’s another valid name: þ o k e r Ð
That name includes two icelandic letters, and five spaces. Incidentally, Iceland abolished the letter z in 1973. Things you learn from Wikipedia…
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…
The major improvements are “Zoom Poker” support (although not in the HUD yet), and the addition of the “unopened preflop raise” statistic. There are some bug fixes for obscure situations – thanks to people who dutifully send crash reports because they allow me to find and fix these problems.
What’s changed:
PokerStars “Zoom Poker” hands now successfully imported, although the HUD doesn’t yet work with Zoom Poker.
New “Unopened preflop raise” statistic added. Thanks to loyal Poker Copilot customer Graham for helping me test this and locate problems.
Rake for Merge Network now calculated
What’s fixed:
Correctly recognise PokerStars GBP (pounds sterling) hands as real money instead of play money.
Work-around for known sporadic apple exception thrown when plugging in or unplugging external monitor. Hopefully this will not longer crash Poker Copilot.
Removed “Rake Paid” from “More” -> “Advanced” menu as it didn’t make sense being there, and caused a crash if used while charting.
Fix for problem reading GDPoker preferences. Poker Copilot was looking in the wrong place and always reporting that the preferences weren’t found.
Work-around to make exported Merge Network hands importable by Poker Copilot
Fixed crash caused by combining “last 10,000 hands” with “only players seen recently” on player summary
Loyal Poker Copilot customer Fabrizio pointed out that filtering by table size doesn’t work with Ongame Network hands. This is indeed the case. My answer to Fabrizio, and all others affected by this:
Ongame Network hand history files don’t contain information about the table size. Therefore Poker Copilot can’t tell the table size, and sets all Ongame Network rooms at 10 players.
You should write to your Ongame Network software’s support email asking them to add this information to the hand history file.
Hopefully if enough people ask, they’ll do something about it.