Using OpenCV libraries to build an automatic number plate recognition system.
NOTE: This is an experimental project and is incomplete in a number of ways. This project is for be test it in Windows 10 64bits, and the code has been modify to generate licence plate patterns from Ecuador.
- Python v3.6.+ (64bits)
- NumPy v1.14.+
- OpenCV v3.14.+ (for cv2)
- h5py v2.7.+
- keras v2.1.+
- MatPlotLib v2.1.+
- TensorFlow v1.+
Note: For install libraries use CMD terminal.
- Download Python 3.6.+ (last version of 64bits), and install it. Guide Video
- Installing numpy library (if not included)
py -m pip install numpy
- Installing OpenCV library
py -m pip install opencv-python
- Installing Keras library
py -m pip install keras
- Installing h5py library
py -m pip install h5py
- Installing MatPlotLib
py -m pip install matplotlib
- Installing TensorFlow (CPU or GPU) library
#*CPU version*
py -m pip install --upgrade tensorflow
or
#*GPU version*
py -m pip install --upgrade tensorflow-gpu
Create a folder name anpr and copy the following py files and folders:
bgs\(backgrounds images)fonts\(ttf file)test\(generated licence plate, empty)common.py(Common variables)model.py(py dependencie)gen.py(For generate test set images)train.py(For train the model with generate images)detect.py(For test result)
Usage is as follows:
-
(optional but recommended)
./extractbgs.py SUN397.tar.gz: Extract ~3GB of background images from the SUN database intobgs/(bgs/must be empty). The tar file (36GB) can be downloaded here. This step may take a while as it will extract 108,634 images. -
./gen.py: Locate variablegenerate_amountand set the number you want (default 100), it will safe the test set images intest/(test/must be empty). This step requires a.ttffiles to be in thefonts/directory. -
./train.py: Train the model. A GPU is recommended for this step. It will take around 100,000 batches to converge. When you're satisfied that the network has learned enough press Ctrl+C once and the process will create aweights.npzfile and write the weights. -
./detect.py in.png CPUweights.npz out.png: Detect number plates in an image and give and output image. if get a tensorflow gpu error, you should uninstall itpy -m pip unistall tensorflow-gpu
Reproduce: Deevoluation