中文车牌识别库EasyPR配置全过程及编译问题解决(win10_VS2019_opencv34)

本文目录

  • 中文车牌识别库EasyPR配置全过程及编译问题解决(win10_VS2019_opencv34)
    • 一.开源库介绍
    • 二.准备工作
      • EasyPR源码下载
      • Opencv下载与编译
      • 软件环境配置
    • 三.编译中的几个问题
      • 1.明明配置完成还是找不到opencv.hpp
      • 2.出现ANN_MLP有关的问题
      • 3.检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MT_StaticRelease”
      • 4.找不到opencv_world3413.dll
    • 四.简单的运行结果
    • 五.后续工作

一.开源库介绍

EasyPR是一个中文的开源车牌识别系统,其目标是成为一个简单、高效、准确的车牌识别引擎。相比于其他的车牌识别系统,EasyPR有如下特点:它基于openCV这个开源库。这意味着你可以获取全部源代码,并且移植到java等平台。它能够识别中文。例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。它的识别率较高。图片清晰情况下,车牌检测与字符识别可以达到80%以上的精度。

二.准备工作

EasyPR源码下载

使用git或者直接在github仓库下载压缩包。地址如下:
EasyPR

Opencv下载与编译

在windows下使用opencv库方法主要分为两种:1.从源码使用cmake进行编译,过程比较复杂。常见于使用非VS的idle如用mingw使用opencv;2.直接使用编译好的lib库和和可执行文件dll。本文在VS2019下使用opencv,所以使用编译好的文件以求便捷。具体过程如下:

首先,进入opencv官方的库分发地址中,下载opencv3.4的最新windows安装文件。下载地址

将下载好的压缩包解压到合适的地方,得到下列文件,下文将介绍如何使用:

软件环境配置

解压好EasyPR库文件,文件目录一目了然,打开程序的sln文件:
)
过程中如果出现新旧VS版本的提示问题,点确定即可:
)
可以看到有两个子模块:

首先右键单击demo,选择其属性,选择release_64位进行配置,选择合适的sdk版本,不然会报很多缺少头文件的错误。

接下来,分别将头文件目录,库文件目录和链接添加到VS工程相应的属性设置中。

将opencv的头文件和库本身的本地头文件添加到包含目录中,如下:

库目录选择VS2019对应的vc15里的lib文件夹:\opencv\build\x64\vc15\lib,如下:

将系统里的原有的链接器修改为自己对应的版本,比如本文的版本为:
)

对libeasypr做同样的配置,这里不再赘述。注意因为libeasypr生成的是lib文件,所以不需要配置链接器。
当运行未出现以下错误时,说明基本配置成功。

三.编译中的几个问题

1.明明配置完成还是找不到opencv.hpp

本文配置试下64位的release下,查看是否在其他运行,如下:

2.出现ANN_MLP有关的问题

这个是由于opencv版本的问题,作者已经在主页中进行说明,具体解决方法为:

对于Opencv3.2或以上版本,如果碰到编译问题,例如“ANN_MLP”相关的错误,尝试将config.h中将#define CV_VERSION_THREE_ZERO改为#define CV_VERSION_THREE_TWO试试.

3.检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MT_StaticRelease”


这个为生成lib对应的是debug而不是release,解决方法:libeasypr工程上右键-》属性-》c/c+±》代码生成-》运行库改成(release为MT,debug为MTD)即可解决:

4.找不到opencv_world3413.dll

使用opencv常见的错误,具体原理大致为程序链接了该dll库,但是自己可用的地址中找不到。所以有两种解决方式:1.将该\opencv\build\x64\vc15\bin文件夹添加到系统环境变量。2.本文推荐,将\opencv\build\x64\vc15\bin下的opencv_world3413.dll直接复制到本工程和exe的同目录,如:

四.简单的运行结果

进行编译运行:

当出现此界面时,恭喜你基本已经编译完成,但是当选择1-1的定位测试时,程序可能没有反应,这是因为两个原因:1.测试图片的相对路径是在linux下的路径方式,虽然说相对路劲等价,但是直接使用总是会有点问题;2.查看demo主程序中写的路径,demo文件下并没有此文件夹,这个resources文件在系统目录下,而且训练好的模型model的文件也在EasyPR下,所以我们使用命令行的方式进行EasyPR的识别功能的简单测试,训练功能以后再尝试。
下面是官方提供的使用示例:官方使用说明

#利用提供的SVM和ANN模型来识别一张图片里面的所有车牌
$ ./demo recognize -p resources/image/plate_recognize.jpg --svm model/svm.xml --ann model/ann.xml
#或者更简单一些(注意模型路径)
$ ./demo recognize -p resources/image/plate_recognize.jpg

将model文件夹和resource文件夹放入demo.exe的同名文件夹下:

在地址栏输入cmd并回车,或者使用任何其他的命令行在此文件下打开:

因为windows下的地址是反斜杠而且可执行文件不同,所以略微有一些区别:

$ .\demo.exe recognize -p resources\image\plate_recognize.jpg


识别成功:

其他相应的功能,可以输入.\demo.exe -h进行查看。
在网上随便找一张车牌图片,改名为test.jpg放在demo.exe同目录下:

数字识别成功,但是汉字失败,说明还有不少改进的空间:
同时,由于已经将model和resources文件夹放好,所以批量测试是可以使用的:
在命令行中选择2.批量测试—1.general_test,可以执行。

五.后续工作

因为时间和篇幅的问题,本文暂时结束于此,后续有机会将介绍如何在自己的C++程序中调用、集成该库以及自己数据的训练过程。
希望本文对大家有所帮助!

超详细中文车牌识别开源库EasyPR入门实战(win10_VS2019_opencv34)相关推荐

  1. 车牌识别算法库EasyPR的编译实战

    编译环境:Win10(64位),OpenCV3.4.6,VS2015(64位) 准备: 1.clone easyPR工程在github上,下载官方的vs2015(64位),下载最新的OpenCV3.4 ...

  2. EasyPR--一个开源的中文车牌识别系统

    EasyPR是一个中文的开源车牌识别系统,其目标是成为一个简单.灵活.准确的车牌识别引擎. 相比于其他的车牌识别系统,EasyPR有如下特点: 它基于openCV这个开源库,这意味着所有它的代码都可以 ...

  3. EasyPR中文车牌识别系统开发

    EasyPR中文车牌识别系统开发,我主要介绍如何使用开源的EasyPR中文车牌识别系统,我会介绍训练机器学习 SVM 支持向量机和 ANN 人工神经网络模型在车牌识别的应用,并公开训练数据. 目录: ...

  4. HyperLPR 高性能开源中文车牌识别框架

    概要 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...

  5. 基于Opencv的开源的中文车牌识别系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于Opencv的开源的中文车牌识别系统. 二.实现功能 车牌定位 车牌判断 车牌监测 字符分割 字符鉴别 字符识别 车牌识别 车牌抽象 训练车牌识 ...

  6. 【车牌识别和动态称重系统】(二)基于树莓派+HyperLPR的中文车牌识别

    引言 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...

  7. Python3 HyperLPR 中文车牌识别

    HyperLPR 高性能开源中文车牌识别框架 github地址: https://github.com/szad670401/HyperLPR 在使用的过程中真的踩了好多坑,GitHub中项目文件很多 ...

  8. 基于深度学习的中文车牌识别与管理系统(含UI界面,Python代码)

    摘要:本文详细介绍基于深度学习的中文车牌识别与管理系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中既可以选择需要识别的车牌视频.图片文件.批量图片进行检测识别,也 ...

  9. C++中文车牌识别检测系统源码

    下载地址:C++中文车牌识别检测系统源码 其目标是成为一个简单.高效.准确的非限制场景(unconstrained situation)下的车牌识别库. 相比于其他的车牌识别系统,EasyPR有如下特 ...

  10. 超详细中文注释的GPT2新闻标题生成项目

    超详细中文注释的GPT2新闻标题生成项目:https://zhuanlan.zhihu.com/p/338171330 笔者开源了一个带有超详细中文注释的GPT2新闻标题生成项目. 该项目参考了GPT ...

最新文章

  1. Python编写爬虫编写到Excel中
  2. 数据库 ACCESS与SQL SERVER 2000分页SQL语句 分析
  3. 真的不值得重视吗?ETH Zurich博士重新审视贝叶斯深度学习先验
  4. 关于Xcode6编译Pods工程出错问题
  5. YBTOJ洛谷P2839:最大中位数(主席树、二分答案)
  6. 反向算法_10分钟带你了解神经网络基础:反向传播算法详解
  7. 几种开源NOSQL数据库
  8. 推荐:PHPCMS v9 安全防范教程!
  9. 基于 RISC-V SoC 的可配置 FFT 系统设计(10)1024 点 FFT 程序的交叉编译
  10. jmeter TCP接口压力测试
  11. iphone双重认证关闭不了怎么办_iPhone双重认证怎么关闭?苹果手机关闭双重认证的两种方法[多图]...
  12. 《我奋斗了18年才和你坐在一起喝咖啡》,而我奋斗了18年,不是为了和你一起喝咖啡(转载)...
  13. ICCV2021中的时序动作检测算法
  14. Failed to start component [Connector[HTTP/1.1-20001]]报错
  15. Milton 1.5.1发布,开源服务器端类库
  16. C语言编程——随机排座位+指定座位
  17. 如何固定输出每行打印的个数
  18. Itunes制作手机铃声,图文版
  19. 常用短信平台一览,记得收藏哦
  20. CameraX Java 1.0.0-alpha10 安卓开发

热门文章

  1. python的matplotlib画图时独立窗口_解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题...
  2. centos7 python2换成python3后,yum报错解决
  3. js php c语言for循环,JS for循环语句
  4. mysql_TCL语言(事务)
  5. UCBCS188 AI学习笔记(1)uninformed search (无启发函数搜索)
  6. micropython thread_功能更新!C 函数也能在 MicroPython 中被调用啦
  7. back函数php,PHP callback函数使用方法和注意事项
  8. linux: 空指令(:)
  9. 四种常见排序算法----php代码实现
  10. Git 远程仓库 git remote