New Card Identification Algorithm Experiment
This new algorithm felt cute. Might delete later.
Playing around with neural networks and some new scanning algorithms.
Uses a couple of custom-trained neural networks -- one to predict card corner points (the "detector"), and another to hash / vectorize the image (the "identifier") and do nearest-neighbor search to find the closest match in our image database. It does not need to be re-trained every time new cards are released.
Both models are sized to be pretty small and lightweight -- should be able to run locally in fairly limited resources (in a browser, or on a phone, or in a Raspberry Pi). This current demo is just slapped together, and streams images up to a local web server running on my home network. Not optimized at all -- the FPS I'm sure could be much faster, but I set the framerate to 3 fps out of convenience and didn't think to bump it up before recording.
This is all still extremely preliminary and not super-tuned yet. The corner detector only has 15 epochs into it, and I think it can get a lot better.
The identification network is looking good, and still has a lot of headroom to improve, but I stopped training because I didn't want to overfit too much on Magic, and wanted to make sure I got some other CCGs into the mix before training it too much more.
This is not tied to any of my previous work, and could be licensed for use in your product. Interested? Send me a message!