EasyPR 一个开源的车牌检测+识别项目

一. 简介

EasyPR是一个中文的开源车牌检测+识别系统,其目标是成为一个简单、高效、准确的车牌识别引擎.相比于其他的车牌识别系统EasyPR有如下特点:

  • 它基于openCV开源库, 这意味着你可以获取全部源代码,并且移植到java等平台.
  • 它能够识别中文.
  • 识别率比较高,图片清晰的情况下,车牌检测和字符识别可以达到80%以上的精度.

二. 项目地址

https://github.com/liuruoze/EasyPR

三. 安装编译环境

[pzs@pzs-server:EasyPR]$ cat /etc/os-release                            # 系统环境
NAME="Ubuntu Kylin"
VERSION="16.04.5 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu Kylin 16.04.5 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
[pzs@pzs-server:EasyPR]$ cmake --version                                 # cmake版本
cmake version 3.12.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
[pzs@pzs-server:EasyPR]$ pkg-config --modversion opencv       # opencv版本
3.2.0
[pzs@pzs-server:EasyPR]$ pkg-config --libs opencv                    # opencv安装位置  
-L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
[pzs@pzs-server:EasyPR]$

四. 编译和使用

  1. 克隆项目到EasyPR/

  2. 进入EasyPR/ , 打开CMakeList.txt文件,修改opencv安装地址
    在这里插入图片描述
    (我的opencv安装地址为/usr/local/lib)

    接着打开EasyPR/include/easypr/config.h

    #define CV_VERSION_THREE_TWO #第四行修改CV_VERSION_THREE_ZERO 为 CV_VERSION_THREE_TWO。 README.md中有说明
    
  3. ./build.sh # 运行作者提供的编译脚本,编译后在根目录生成demo文件
    这里需要注意的是,如果你用了anaconda,而且在anaconda中安装了opencv,需要在./bashrc中注释掉anaconda环境,否则编译会报错
    在这里插入图片描述
    之前我就是没注释掉anaconda环境,而且anaconda安装了opencv3.4,导致使用的库不对,编译报错.

  4. 运行demo

    ./demo recognize -p 189.png 
    

    在这里插入图片描述
    车牌原图:
    在这里插入图片描述

实现原理和步骤

  1. 车牌检测
    EasyPR的车牌检测是使用SVM来做的, 先使用图像处理的方式获取到可能为车牌的区域, 然后使用训练好的SVM来对这些区域进行甄别.
    替代方案 : 这一步现在可以用yolo等更为优秀的检测算法来代替.

  2. 字符识别
    这个步骤的主要目的就是从上一个车牌检测步骤中获取到车牌图像,进行光学字符识别(OCR)这个过程.使用的是ANN(人工神经网络)的方式.
    代替方案: 作者在使用ANN进行字符检测之前还对车牌中的文字进行了分割, 如今可以使用crnn进行车牌字符识别, 这样还省掉了字符分割这以步骤.

  3. EasyPR 流程图
    在这里插入图片描述

发布了61 篇原创文章 · 获赞 44 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/HUXINY/article/details/88058052