|
@@ -0,0 +1,105 @@ |
|
|
|
|
|
# HyperLPR车牌识别文档 |
|
|
|
|
|
|
|
|
|
|
|
## 介绍 |
|
|
|
|
|
|
|
|
|
|
|
HyperLPR是一个基于Python的使用深度学习针对对中文车牌识别的实现,与开源的[EasyPR](https://github.com/liuruoze/EasyPR)相比,它的检测速度和鲁棒性和多场景的适应性都要好于EasyPR。我们设计了较为鲁棒的算法来完成在复杂场景下的车牌识别。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 设计流程 |
|
|
|
|
|
|
|
|
|
|
|
目前的车牌识别算法的Pipeline 如下 |
|
|
|
|
|
|
|
|
|
|
|
> step1. 使用opencv 的 HAAR Cascade 检测车牌大致位置 |
|
|
|
|
|
> |
|
|
|
|
|
> step2. Extend 检测到的大致位置的矩形区域 |
|
|
|
|
|
> |
|
|
|
|
|
> step3. 使用类似于MSER的方式的 多级二值化 + RANSAC 拟合车牌的上下边界 |
|
|
|
|
|
> |
|
|
|
|
|
> step4. 使用CNN Regression回归车牌左右边界 |
|
|
|
|
|
> |
|
|
|
|
|
> step5. 使用基于纹理场的算法进行车牌校正倾斜 |
|
|
|
|
|
> |
|
|
|
|
|
> step6. 使用CNN滑动窗切割字符 |
|
|
|
|
|
> |
|
|
|
|
|
> step7. 使用CNN识别字符 |
|
|
|
|
|
|
|
|
|
|
|
接下来的文章会逐一的介绍本框架使用的算法流程和详细过程。 |
|
|
|
|
|
|
|
|
|
|
|
## 安装须知 |
|
|
|
|
|
|
|
|
|
|
|
由于本项目是基于Python2开发,在未来的一段时间内,将会转为Python3开发。所以目前的版本仅支持Python2开发。所需的依赖如下: |
|
|
|
|
|
|
|
|
|
|
|
- Keras (>2.0.0) |
|
|
|
|
|
- Theano(>0.9) or Tensorflow(>1.1.x) |
|
|
|
|
|
- Numpy (>1.10) |
|
|
|
|
|
- Scipy (0.19.1) |
|
|
|
|
|
- OpenCV(>3.0) |
|
|
|
|
|
- scikit-image (0.13.0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 依赖安装 |
|
|
|
|
|
|
|
|
|
|
|
###### Windows |
|
|
|
|
|
|
|
|
|
|
|
在Windows下,由于没有给Python2的tensorflow版本所以,可以选择theano和CNTK作为Keras的后端。在Windows下,推荐使用adaconda来配置环境,具体教程可以[参考此文](https://github.com/szad670401/dlwin)。在安装完Keras和及其backend后。 |
|
|
|
|
|
|
|
|
|
|
|
由于Numpy和Scipy在adaconda中已经集成了。接下来需要安装OpenCV |
|
|
|
|
|
|
|
|
|
|
|
`pip install opencv-python` |
|
|
|
|
|
|
|
|
|
|
|
###### Linux(Ubuntu) |
|
|
|
|
|
|
|
|
|
|
|
Linux下安装较为简单,输入在bash中执行以下命令即可: |
|
|
|
|
|
|
|
|
|
|
|
更新本地索引 |
|
|
|
|
|
|
|
|
|
|
|
`sudo apt-get update` |
|
|
|
|
|
|
|
|
|
|
|
安装Python环境 |
|
|
|
|
|
|
|
|
|
|
|
`sudo apt-get install python2.7 python-pip` |
|
|
|
|
|
|
|
|
|
|
|
`sudo pip install numpy opencv-python scipy` |
|
|
|
|
|
|
|
|
|
|
|
`sudo pip install theano` |
|
|
|
|
|
|
|
|
|
|
|
`sudo pip install keras==2.0.0` |
|
|
|
|
|
|
|
|
|
|
|
###### Mac |
|
|
|
|
|
|
|
|
|
|
|
Mac下安装同样很简单,Mac是自带Python2环境的,由于Mac没有自带的包管理器,如果没有安装Python环境的话,需要下载类似于Linux的包管理器HomeBrew,可以在[这里](https://brew.sh)参考安装。 |
|
|
|
|
|
|
|
|
|
|
|
安装Python |
|
|
|
|
|
|
|
|
|
|
|
`brew update` |
|
|
|
|
|
|
|
|
|
|
|
`brew install python` |
|
|
|
|
|
|
|
|
|
|
|
`sudo pip install numpy opencv-python scipy` |
|
|
|
|
|
|
|
|
|
|
|
`sudo pip install theano` |
|
|
|
|
|
|
|
|
|
|
|
`sudo pip install keras==2.0.0` |
|
|
|
|
|
|
|
|
|
|
|
### 使用HyperLPR |
|
|
|
|
|
|
|
|
|
|
|
下载HyperLPR可以使用Git(但是提前必须安装Git命令行工具)也可以从[Github](https://github.com/zeusees/HyperLPR)直接下载Zip |
|
|
|
|
|
|
|
|
|
|
|
`git clone https://github.com/zeusees/HyperLPR.git` |
|
|
|
|
|
|
|
|
|
|
|
`cd HyperLPR` |
|
|
|
|
|
|
|
|
|
|
|
HyperLPR的训练好的默认模型放在model目录下,训练模型的代码暂未开源。 |
|
|
|
|
|
|
|
|
|
|
|
需要使用请将hyperlpr和model一起移动到工程目录。 |
|
|
|
|
|
|
|
|
|
|
|
接着就可以通过如下代码开始简单使用了 |
|
|
|
|
|
|
|
|
|
|
|
```python |
|
|
|
|
|
from hyperlpr import pipline as pp |
|
|
|
|
|
import cv2 |
|
|
|
|
|
image = cv2.imread("filename") |
|
|
|
|
|
image,res = pp.SimpleRecognizePlate(image) |
|
|
|
|
|
``` |