Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Mon Nov 13, 2023 12:52 pm

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Fri Nov 25, 2016 10:56 pm 
Offline
Senior Member

Joined: Fri Nov 25, 2016 10:42 pm
Posts: 122
Hi,

I have a winning bot playing NL4 party poker fast forward tables with winrate at 5bb/100 and NL10 2bb/100. My bot also plays on 888 poker, around 3bb/100 winrate, rakeback sucks hard so I don't like it. My bot used to play on ipoker old client, but since ipoker updated new software, I don't see a way to screen scrap table information. The problem is that stacks and bet sizes, cards, names are all the time displayed in different ways, same font size but pixels look very different. I managed by applying different filters to read everything, but still it works around 99% of the time, I would like to have 100% accuracy. I also tried using ipokertools to increase font, replace card images, change font color, but still the same digits or letters look different. Tried also different table sizes.
Does anyone has solution for ipoker new client screen scraping? I have noticed that there are significantly less players playing at ipoker since they upgraded to new ipoker client, likely many bots can't screen scrap anymore.
I have also tried OCR from microsoft and google but doesn't work with 100 accuracy.

Regarding my bot, I have ruled based bot. I was playing poker myself for 2 years, had 8bb winrate at NL100 party poker, and stopped because having too much stress playing and was challenged to make a winning bot. I find it unmoral, but still challenge is stronger than moral. My bot is gto based, i have my own database for advanced statistics, I read from DB population tendencies for station, agro fish, tight player, regular, unknown player category, for different board textures, position, bet size and other parameters of the game state. I have also developed simulator, which simulates 6max gameplay, I can parse hand history from pokertracker and simulate it, see what ranges my bot plays at certain spot which helps me a lot at testing and improving, fixing bugs.
I finished master studies in AI, was doing 18 months phd in machine learning and stopped because was addicted with poker and didn't like topic and professor.
I use c# and partially vb.net for developing bot.

How to get to restricted topics?
Hope to see some answers,
Mlatinjo.


Top
 Profile  
 
PostPosted: Mon Nov 28, 2016 9:35 am 
Online
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
It's a tough problem.

A lot of people have problems with Tesseract. Can you get it to work on regular fonts?

Have you tried using neural networks? That is known to work for handwriting. You might need to use a GPU.

Even then there might be uncertainty recognising individual characters. To overcome that you would have to adopt a statistical approach to find the most likely given the context.


Top
 Profile  
 
PostPosted: Mon Nov 28, 2016 3:34 pm 
Offline
Senior Member

Joined: Fri Nov 25, 2016 10:42 pm
Posts: 122
Hi Spears,

thank you for your answer. I have tried so far only Tesseract and Microsoft ocr but it was not good enough, I need 100% accuracy. I have binaryse image, scale but it didn't help.

I haven't use neural networks yet, because that is much more effort than standard comparing of image pixels. It looks like that ipoker displays limited number of different fonts for digits, so I am solving the problem by finding all of different digits they display, save those digits as templates and compare unseen digit to saved black and white templates. So far I read everything 100% accurate except bot stack, I guess that I still didn't find all different digits for bot stack which ipoker displays. I parse player names from xml file which ipoker saves at the start of each hand in DataTemp folder, which saves a lot of work. My idea was to first try approach of converting image to black and white and save all templates of digits I find, which works fine so far and if it doesn't work to try to use neural networks. I was working on recognizing hand written digits using neural network during my phd, but there the database is large, there are many test samples, for ipoker I can provide to neural network only few samples for each digit, which would likely result in overfitting (learning by heart).

I have attached 3 different samples of digit 3 I have found so far for bot stack (bot stack differs from other stacks). It would be easy if I would know, there are 3 different font sizes ipoker uses to display digits, but I don't know how many different, I can only let bot play and throw exception if he doesn't read e.g. stack properly so I can cut the unseen digits and save it to templates, and do that until bot reads everything properly.


Attachments:
sample3.PNG
sample3.PNG [ 248 Bytes | Viewed 11622 times ]
sample2.PNG
sample2.PNG [ 248 Bytes | Viewed 11622 times ]
sample1.PNG
sample1.PNG [ 252 Bytes | Viewed 11622 times ]
Top
 Profile  
 
PostPosted: Tue Nov 29, 2016 9:09 am 
Online
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
I agree it's a lot of work to use NNs. But I don't understand why you can only get a few samples. Why not just play manually and record all digits at the same time? Or you could use a wide variety of fonts of suitable size scaled and repositioned as training sets.

Do you use exact pixel matching? You can just check the number of matching pixels is high enough. And you can try that for various fonts and font positions.


Top
 Profile  
 
PostPosted: Tue Nov 29, 2016 10:10 am 
Offline
Senior Member

Joined: Fri Nov 25, 2016 10:42 pm
Posts: 122
I got only few samples because some digits have high frequency so I read mostly them and that's why I am able to read bot stack most of the time, but some digits have low frequency which is why I still didn't collect all digits. E.g. 7.56$ I am able to read, but 7$ i can't because when it is single digit,
7 looks different. Similarly, 27,56$ looks different because there are 4 digits in the stack. So it is hard to get all different digits, I need for that different stack sizes, which takes time to collect, and I am never sure if I have collected everything.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group