A web application that takes a photograph of a Pokémon Base Set card and tells you exactly which one it is, returning the name, number, set and year in real time. Built end to end: a TensorFlow CNN classifier behind a Flask + Jinja2 web app, served with a clean HTML / CSS / JS front-end.
The model was originally trained on the French Base Set 2 (the cards I grew up with), but generalises well to the entire Base Set, including the English release. Edge cases (lighting, glare, partial framing) are handled by the augmentation strategy used during training.
It scratched a personal itch: collectors like me often need to look up a card’s edition / value on the fly. Pointing a phone camera at the card and getting an instant identification was the right user experience.
CNN
Vision model
TensorFlow
Flask
Web app
Python + Jinja2
FR / EN
Base Set
cross-language
2023
Side project
open source
What it does
- Card detection. Upload a photo and the model recognises the card from the Pokémon Base Set.
- Metadata extraction. Returns the card’s name, number, set and release year, ready to display or pipe to a collection database.
- Cross-language. Trained on the French Base Set 2 but accurately classifies English Base Set cards too. The visual signal carries.
- Lightweight stack. A single Flask app, a TensorFlow CNN, a Jinja2 template, Git LFS for the model weights. No heavy framework, deploys anywhere Python runs.
Stack
Repository
Code, model, training data and a complete README on GitHub.
Credits
- Concept & engineering
- Ammar Kheder
- Stack
- TensorFlow · Flask · Jinja2 · HTML / CSS / JS · Git LFS
- Training data
- Pokémon Base Set 2 (French release), generalising to English Base Set
- Status
- Open source on GitHub