As I said in another comment, normal cards are easy. The issue is with everything else where each card might have a picture with different animals and you are looking for the lama giving you the bird.
As for software, there are engines out there that do content-based image retrieval (CBIR) out of the box [1]. It should be possible to build something quickly in OpenCV. You may be able to get away using simple image template matching by putting a few constraints on how the camera sees each card. Something more robust can be also be build using image descriptors and approximate nearest neighbors, as in [2].
[1] https://en.wikipedia.org/wiki/List_of_CBIR_engines
[2] https://blog.francium.tech/feature-detection-and-matching-wi...