Using neural networks to build an automatic number plate recognition system. See this blog post for an explanation. This repo is based on Deep ANPR repo.
Usage is as follows:
-
./extractbgs.py SUN397.tar.gz
: Extract ~3GB of background images from the SUN database intobgs/
. (bgs/
must not already exist.) The tar file (36GB) can be downloaded here. This step may take a while as it will extract 108,634 images. -
./gen.py 1000
: Generate 1000 test set images intest/
. (test/
must not already exist.) This step requirespalab.ttf
, which is bold Palatino Linotype, to be in thefonts/
directory. You can include other font weights/types infonts/
directory to improve generalizability. But we will use only bold Palatino Linotype for the class project. -
./train.py
: Train the model. A GPU is recommended for this step. It will take around a few hours to converge, depending on your network structure, fonts, etc. When you're satisfied that the network has learned enough pressCtrl+C
and the process will write the weights toweights.npz
and return. -
./detect.py in.jpg weights.npz out.jpg
: Detect number plates in an image.
The project has the following dependencies:
- TensorFlow
- OpenCV
- NumPy