超详细中文车牌识别开源库EasyPR入门实战(win10 您所在的位置:网站首页 小车牌安装视频讲解 超详细中文车牌识别开源库EasyPR入门实战(win10

超详细中文车牌识别开源库EasyPR入门实战(win10

2024-06-03 04:42| 来源: 网络整理| 查看: 265

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

本文目录 中文车牌识别库EasyPR配置全过程及编译问题解决(win10_VS2019_opencv34)一.开源库介绍二.准备工作EasyPR源码下载Opencv下载与编译软件环境配置 三.编译中的几个问题1.明明配置完成还是找不到opencv.hpp2.出现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++程序中调用、集成该库以及自己数据的训练过程。 希望本文对大家有所帮助!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有