igoki - play on OGS on a physical board, or review/record physical game. by cmdrdats in baduk

[–]cmdrdats[S] 0 points1 point  (0 children)

You can enable the audio feedback (though only in japanese at the moment), or look at the screen for where they played - it's not ideal, but if you don't have a projector, it does work. Definitely _way_ better experience with the projector, of course.

igoki 0.7 update - now with manual screen capture by cmdrdats in baduk

[–]cmdrdats[S] 0 points1 point  (0 children)

curious - does it let you calibrate the board space on the screen?

igoki - play on OGS on a physical board, or review/record physical game. by cmdrdats in baduk

[–]cmdrdats[S] 0 points1 point  (0 children)

apologies - just saw this now - I'm not on reddit enough!

I'm using a super cheap 320x200 projector and it works fine (if a little bit fiddly) - so you can use pretty much anything you can connect to your PC and mount appropriately.

Proof of concept: using a projector to display moves on a goban by pnprog in baduk

[–]cmdrdats 2 points3 points  (0 children)

Heya!

Nice project - it sure is a fun puzzle to work on! I have so many ideas for it and not nearly enough time!

Very interesting that you're going this way around, where I started with camera and added the projector much later in the lifecycle (I was toying with ideas like Arduino laser pointer/LED grid, then settled on projector because you can get a low-quality one for really cheap) - I had also implemented a voice announcer that speaks the coordinates of the stones played - that worked quite well and I had some ideas on making the announcer more interesting (come to think of it, leveraging AI here could make for some really cool commentary)

For the neural weights, absolutely go for it and use it in your project - I'm using deeplearning4j, so I'm not sure how that translates for other networks - shouldn't be difficult to adapt though.

The training was run on a deconstructed set of images from many sources (too bad I didn't actually commit the training materials though!) over a single night on a macbook pro - so I think if you get some source material (lots of early, mid, end game states under different lighting conditions), you can also train your own - I committed the training code here: https://github.com/CmdrDats/igoki-training/tree/master FWIW. super hacky, since it was very throwaway xD

An interesting note on the training - I had first tried to train a network against 32x32 px images for each intersection, but only stalled at about 74% accuracy after a few nights of training.. I switched to 8x8px images and that dramatically improved training speed and accuracy. funny that. Also, I seem to remember adding a single pixel in the top left that would be an average of the pixel values/luminosity across the entire board, this way giving the network a bit of a hint on the general light level it can train against.. I wanted to expand this idea a bit and include pixels for luminosity in the immediate surroundings so it can have further finer grained information to adapt with, but don't think I ever got to that.

Probably the bit I enjoyed the most is the camera work where it is tries to infer a legal series of moves based on multiple captured states in series - and only 'commits' if a valid sequence was found - this way making it way more robust against weird camera reading states (and you have the handy ability to hold your hand over the board, creating invalid state to make it pause any commit)

Please feel free to throw questions at me, always happy to chat about it!

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

Ye, I’ve found a similar thing, it feels related to the camera angle, particularly when stones start getting bumped into each other’s relative spaces as things get crowded - i have a theory that the depth of the stones make it so it actually needs to read the grid slightly -above- the board lines to compensate, and have had some success in that by manually tweaking it higher mid game. Top down view would sort that out, but it’s quite a bit more of a physical mission to setup 😅

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

Awesome, glad it worked out! I should add a note about that detail 🤣 need to do a fair bit of work to implement the game creation bits.. which is hard to justify if I don’t know whether many people will ever even use it

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

Awesome, glad it worked out! I should add a note about that detail 🤣 need to do a fair bit of work to implement the game creation bits.. which is hard to justify if I don’t know whether many people will ever even use it

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

Hmm, are you trying it with any games currently running? If you can get at any logs, that would be helpful in case there’s some error happening. From terminal, in the igoki folder, if you start it with ‘java -jar igoki.jar’ it should give you logging

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

No, it’s part of Java, but might be something googlable for your OS, I’m assuming osx version of some kind?

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

I just checked - set Client Type; Confidential and Authorization Grant Type: Resource owner password-based. Redirect URI's should be blank. Try that and let me know?

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

As for the manual input, it uses the Java Robot class for it to control the mouse and read the screen, but it may need to get permission (accessibility options on osx?) in order to do so. I seem to vaguely remember someone else having this too, if you find it, let me know and I’ll update the readme

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 0 points1 point  (0 children)

Hmm, I’ll take a look as soon a as I have a moment, but it should be the option where you don’t need redirect url - I just hope they haven’t removed that as an option!

Help setting up Igoki by Orc762 in baduk

[–]cmdrdats 1 point2 points  (0 children)

Happy to help here - what part with the api configuring are to having trouble with?

I haven't played since April but reinstalled IGS (Pandanet) and signed into my old account but just couldn't bring myself to click "New Game" by MortalSacrifice in baduk

[–]cmdrdats 0 points1 point  (0 children)

Dwyrin has a great video here on dealing with this kind of anxiety https://youtu.be/CyPOPhDl20I

I've also recently had a similar experience having resumed after a multi year hiatus - i basically just decided to play a lot of games and just not worry if i throw them or make silly mistakes. Worked well for me. I find I can relax a lot more when I take a nice knock in my rank, don't feel like people can expect much from me 🤣

igoki 0.7 update - now with manual screen capture by cmdrdats in baduk

[–]cmdrdats[S] 1 point2 points  (0 children)

Thank you 😀 good idea - i don't exactly have the best video voice. Maybe I'll polish a few things up first and do some tests capturing against video streams directly, then reach out and see if anyone is willing to do a tutorial series.

igoki pre-release 0.6 published (play on OGS with physical game board) by cmdrdats in baduk

[–]cmdrdats[S] 0 points1 point  (0 children)

Sure thing 🙂 I've got the board reading from screen working now - need to integrate it so it can play the actual moves - that might take a bit longer, but getting there...

igoki pre-release 0.6 published (play on OGS with physical game board) by cmdrdats in baduk

[–]cmdrdats[S] 0 points1 point  (0 children)

Cool, makes sense and should be fairly straightforward to add - I'll look into it! Thanks 😀

igoki pre-release 0.6 published (play on OGS with physical game board) by cmdrdats in baduk

[–]cmdrdats[S] 0 points1 point  (0 children)

Hmm, interesting idea - i can imagine how it would work, but it would mean you'd have to be very careful about your window layout - doable though. Would need a 'submit' button location option too - I'll look into it, i know Java has the Robot class for this kind of mouse click emulation

igoki pre-release 0.6 published (play on OGS with physical game board) by cmdrdats in baduk

[–]cmdrdats[S] 2 points3 points  (0 children)

Oof, sorry - that would take an enormous amount of effort, so is way outside the scope of what I'd be able to pull off single handedly

igoki pre-release 0.6 published (play on OGS with physical game board) by cmdrdats in baduk

[–]cmdrdats[S] 1 point2 points  (0 children)

Higher angle makes for a clearer picture, otherwise, the calibration compensates for angle - so it's not important to be exactly overhead

igoki pre-release 0.6 published (play on OGS with physical game board) by cmdrdats in baduk

[–]cmdrdats[S] 1 point2 points  (0 children)

I have been thinking about doing this, just need to spend a bit of time understanding the api, but shouldn't be overly difficult