
It took some time, but finally Magic Sorter has a new brain! The recognition engine has been improved, you can took a look at the previous article for further details.
But what changed? And why?
As previously written, the old recognition engine was working fine, but it was stretched far beyond its capabilities. Blurry or shadowed images were almost impossible to identify (e.g. Wall of Mist) and trying to improve the accuracy was always delicate balance between correct results and false positives. On top of that, there were technical difficulties to keep using the same engine: to add new cards to the index I had to recalculate everything from scratch (in about 4-5 hours), resulting files were very large (approx size of 8Gb) which needed to be loaded directly in memory (I had to run a server with a dedicated memory of 16Gb just for me).
Everything was slow and hard to manage, but most importantly there isn't any room for improvements.
Brain update
The only solution was to switch to another method to identify the cards and, as written in the article above, I decided to stick a specific deep learning framework, that allows me to easily and quickly train and retrain the model with new cards.
Currently results are better than before, but they will get better and better as I gather more data for training.

In the last 30 days, a total of 647,027 cards were sorted, with 29,505 cards flagged as "Not Found"; if you do the math, this means an accuracy of 95%!
I'm pretty happy of the result, since in those "Not found" cards there are cards put in the wrong direction, tokens and flipped cards (with the back facing up).
But that's only the tip of the iceberg.
Powered by the new skills that I acquired, I was able to spin a lot of new classifiers that before weren't performing as good as wanted, one of them was the icon set recognition.
Set recognition with Magic: The Gathering cards is hard. That's because Wizard of the Coast changed idea several times during the years, because there are sets that are basically all the same (hello core sets M10, M11 M12 ...) and the icon is actually very very small compared with the rest of the card. Anyway, I was able to bring home some very nice results:

Everything was achieved automatically without bothering the users. Since recognition is running on cloud servers, I was able to run both engines in parallel to double check that everything was running fine and finally perform the switch without any service interruption.
Actually the switch has been made about a month ago, I'm only writing it right now.
But wait, there's more!
A new brain means new capabilities, so stay tuned for new games being added!
