Our company buys and sells millions of trading cards (sports, Magic, Pokemon, etc.) every year but the majority of these are sold for fractions of a penny if they're sold at all. From what I can see there are two options for us to get more out of these cards, both of which are incredibly time-consuming and not worth the effort without the process being automated. I'm hoping someone here can help direct me towards a solution for either option that I'll detail below.
Often times the cards are purchased in large lots where boxes may contain cards primarily from the same year/set, i.e. 10,000 2012 Topps baseball cards, 20,000 2015 Upper Deck baseball cards, etc. The idea would be to take cards from various sources and shuffle them in a way that there is little or no consecutive duplication, basically creating "grab bags" of X number of cards per package. Think of shuffling 10 decks of playing cards simultaneously then dealing 10-card "hands" that are individually packaged. The trick is making sure those 10-card hands have a variety of cards instead of all from the same set.
This one is much more difficult but I can't imagine it wouldn't be possible given advances in OCR technology...same as option #1 but have the cards sorted by teams and then randomized.
Potential issue is handling/shuffling of the cards as they can't be damaged, so that needs to be addressed in any possible solution.
Any ideas feel free to contact me directly, whether individual engineer or corporate.
Sorting. Are you looking for some algorithm or a machine or both? This probably isn't the right place to ask about a machine for shuffling. If you want an algorithm that decides what should go into 10-card hands, then we need to know what kind of properties/effects you are looking for. If you want to ensure that there is little or no duplication in a 10-card hand, then a purely random shuffle probably isn't sufficient. Music players with a random shuffle feature rarely do a purely random shuffle for the same reason. They want to make sure the same set of songs isn't accidentally played over. Additionally, do you want to ensure that the average value of the cards in a 10-card hand is consistent? What do the distribution of cards and their values look like?
Card Identification. The difficulty of this problem depends a lot on some details. If you have pictures of one of every kind card in the deck and an associated team, this sounds easy. If you want to write an algorithm that detects the baseball team without that, that will be much harder unless there's something like a consistent logo in a consistent location or if the name of the team is somewhere on the card etc. If I were writing this, I would probably first try to extract the players name from the card and look up which teams they've played for. This would provide a short list of canidate teams to choose from.
First thing we need is the machine that can do this, which is my primary objective in posting this. The rest is irrelevant without that...
Sorting: This doesn't have to be exactly perfect but what we're trying to avoid is putting too many cards from the same set into packs so there's consistent variety. Since the cards are typically purchased and grouped by set, the labor of shuffling them by hand is way too cost prohibitive and slow. My thought is to have multiple bins of cards, each separated by set, with cards from each bin making the packs. The value of the majority of the cards isn't relevant but I envision one of the bins to be strictly higher value cards that would be inserted 1 per X packs.
Card Identification: We definitely won't have images of all cards going in. Assuming cards are again sorted by set, the team logo will typically be in the same place but in the rare instance it isn't, it will definitely be somewhere on the card. I can see how this could be easily programmed for cards with logos in the same location but there will be plenty of instances where cards may not be sorted by set and are a mix of many sets/years. That said, team logos don't change often so if there's a way to quickly scan the card and send it to the appropriate team bin, that would be great!
At the end of the day, there's the perfect/ideal solution and there's good enough (for now)...so if a requirement to make this work has to be that all cards are sorted by set, so be it.
Making a machine like that isn't easy and really is out of the scope the kind of help you can expect from this forum. I would run this by Wolfram Solutions. They do software mostly (As far as I know), but might be able to help you. My guess is you need someone who will work together on both the hardware and software.
I will check them out...thanks Sean!
It's an appropriate forum if you are looking for a Wolfram Language (WL) implementation of the shuffle/sorting and/or the team recognition from card images. Which would imply, among other things, technology for extracting the images in a form that can readily be imported into a WL platform.