(介绍略)
一个开源的车牌识别系统。
github地址:https://github.com/szad670401/HyperLPR
一、下载
git clone https://github.com/szad670401/HyperLPR.git
一般使用Python版本大于3,所以有个文件夹包为hyperlpr_py3为我们使用的内容。
二、环境创建
本次环境为docker容器中的conda环境:
conda create -n HyperLPR python=3.7
具体可以参考以下安装相关库:
pip install Keras==2.3.1
pip install Theano
pip install Numpy
pip install Scipy
pip install opencv-python==3.4.3.18
pip install scikit-image
pip install pillow
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.1.0
接着执行:
pip install hyperlpr
此不兼容Python3及以上,所以将其文件夹中内容替换为git下来的hyperlpr_py3文件夹中内容:
踩坑1:
具体路径为:/opt/miniconda/envs/hyperLPR/lib/python3.7/site-packages/hyperlpr
并不是直接在.../lib/下创建!
接着运行:
from hyperlpr import pipline as pp
import cv2
踩坑2:
可能会报错AttributeError: 'str' object has no attribute 'decode':
问题原因:可能是h5py模块的版本过高,导致无法加载.h5文件。
所以降低版本:
pip install h5py==2.10 -i https://pypi.tuna.tsinghua.edu.cn/simple/
继续运行:
# 自行修改文件名
image = cv2.imread("./data/001.jpg")
image, res = pp.SimpleRecognizePlate(image)
print('-------------')
print(res)
踩坑3:
报错:cannot connect to X server
这是jupyter才可能遇到的问题。
错误原因为cv2.imshow函数没有注释,而jupyter没有相应可视化的工具。
踩坑4:
报错:not enough values to unpack (expected 3, got 2)
或者:numpy.AxisError: axis 3 is out of bounds for array of dimension 3
程序问题,修改如下:
/opt/miniconda/envs/hyperLPR/lib/python3.7/site-packages/hyperlpr/segmentation.py
/opt/miniconda/envs/hyperLPR/lib/python3.7/site-packages/hyperlpr/recognizer.py
至此,踩坑结束!
具体运行结果如下: