tl;dr: Given an input image that has been cropped (and possibly enlarged) from an image in a small, known set, I want to find the image from which it has been cropped.
Have a set of ~3K images -- not photos, actually drawn art; of varying sizes; mostly but not always grayscale; often but not always including text. Want to code a solution that takes an input an image that is an arbitrary rectangular crop from one of the images in this set, possibly resized by an unknown factor but otherwise unmodified, and find the image in the set from which the input was cropped. Set is fixed so can preprocess fingerprints or something if that helps. Don't need any information about the position of the crop or anything like that, just want to identify the source image.
For a non-critical hobby project, so it's OK if it only gets it right ~90% of the time and only looking for a solution that would be practical to run on a home hardware like a Raspberry Pi 3 or cheap cloud server. Just looking for an answer along the lines of "hard problem you're not gonna solve" or a point in the direction of the relevant functions. Not even sure OpenCV is what I'm looking for but it was the first thing that came to mind. Thanks!