【EasyPR】Linux安装使用EasyPR开源车牌识别系统

零、安装OpenCV - 3.2.0

我使用的是Kali系统,基于Debian的一个Linux发行版本。

1.配置系统的软件源(配置正确可跳过)

–参考阿里云开发者网站:https://developer.aliyun.com/mirror/kali

修改源列表
执行命令

sudo vim /etc/apt/sources.list

按i键编辑,添加阿里云给出的镜像地址,或者直接把内容替换成下面的内容:

deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib

按Esc键退出编辑模式,输入

:wq

回车,保存并退出。

更新
执行命令以更新源

sudo apt-get update

更新软件(可选,无必要不建议)

sudo apt-get upgrade

2.安装cmake程序

检查安装
首先查看下系统安装了没有

cmake -version

如果没有版本信息,则到官网下载或者直接用软件源安装。版本必须大于2.8.7。
软件源安装(推荐)
输入命令:

apt-get install cmake

用上文所述方法检查版本,正常即可,否则可以用以下方法手动编译安装。

手动安装:下载

– 下载地址:https://cmake.org/download/
这里我使用3.13.2版本的cmake

wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz

手动安装:编译安装
解压下载得到的文件

tar xf cmake-3.13.2.tar.gz

进入到解压目录

cd cmake-3.13.2

配置

./bootstrap --prefix=$HOME/local

编译安装

make && make install

手动安装:检查安装

  • 设置环境
export PATH=$HOME/local/bin:$PATH
  • 检查版本
cmake -version
  • 出现版本信息则安装成功!

3.配置pkg-config环境

软件源安装
执行命令:

apt-get install pkg-config

或者手动安装:

下载pkg-config

这里我使用的是pkg-config的0.29.2版本
– pkg-config官网:https://www.freedesktop.org/wiki/Software/pkg-config/

下载

wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz

解压

tar -zxvf pkg-config-0.29.2.tar.gz

进入解压目录

cd pkg-config-0.29.2

依次执行下面的命令

./configure
make
make check
sudo make install

如果第一条报错,把第一条换成

./configure --with-internal-glib

如果第三条报错,把路径改为全英文并且重新解压执行,并在第三条命令前加上sudo再执行。

安装检查

pkg-config --version

正常输出版本号0.29.2即安装成功!

3.安装其他依赖

通过软件源安装libopenexr-dev:

sudo apt-get install libopenexr-dev

4.配置开发环境OpenCV - 3.2.0

这边EasyPR使用的是OpenCV - 3.2.0,我们也配置同样的开发环境。

下载OpenCV - 3.2.0

– 下载地址:https://github.com/Itseez/opencv/archive/3.2.0.zip(普通用户建议使用联通的网络,此时亲测更快)

wget https://github.com/Itseez/opencv/archive/3.2.0.zip

下载好之后解压

使用unzip解压,没有unzip的先安装unzip。
unzip安装

sudo apt-get install unzip

解压

unzip opencv-3.2.0.zip

进入opencv目录

cd opencv-3.2.0

创建release目录
有博客称在release目录下编译有错,在opencv-3.2.0目录下没有,我是在release目录下编译的,没错,反而在opencv-3.2.0目录下编译有错。

mkdir release

进入进入release目录
安装OpenCV时,所有的文件都会被放到这个release目录下

cd release

使用cmake编译OpenCV的源码,安装到/usr/local/目录下

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/ ..

如果出现这个错误:

/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录

把命令替换成

cmake -D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.1.0 ..

安装

sudo make install -j7

如果出现这个错误:

make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:180:modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:6687:modules/python3/CMakeFiles/opencv_python3.dir/all] 错误 2
make: *** [Makefile:163:all] 错误 2

看输出发现原因其实是这个:

/home/minuy/download/opencv-3.2.0/modules/python/src2/cv2.cpp:730:34: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
730 | char* str = PyString_AsString(obj);

解决方法:
编辑 opencv-3.2.0/modules/python/src2/cv2.cpp 文件,更改第730行:

bool pyopencv_to(PyObject* obj, String& value, const char* name)
{  (void)name;  if(!obj || obj == Py_None)  return true;  char* str = (char *)PyString_AsString(obj);//这是文件的第730行,更改这行,在=后面加(char *)if(!str)  return false;  value = String(str);  return true;
}

再重新编译安装就好了。

一、安装EasyPR

1.下载EasyPR

可以直接到gitee上点击“克隆/下载”按钮以下载
–地址:https://gitee.com/easypr/EasyPR

也可以输入以下命令来克隆仓库到本地:

git clone https://gitee.com/easypr/EasyPR.git

2.修改cmake配置文件

为了避免系统中安装的老版本opencv对编译的影响,需要在 CMakeLists.txt 中修改:

set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "/usr/local/opt/opencv3")

路径指向opencv3的安装目录,该目录下应该有OpenCV的CMake配置文件。
例如,我的opencv的源码目录是/home/minuy/download/opencv-3.2.0
则修改为

set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "/home/minuy/download/opencv-3.2.0")

3.编译

进入到EasyPR的目录:

cd EasyPR

直接执行命令:

./build.sh

如果出现这个错误:

make[2]: *** [CMakeFiles/easypr.dir/build.make:141:CMakeFiles/easypr.dir/src/core/plate_judge.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:73:CMakeFiles/easypr.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
[ 48%] Linking CXX static library libthirdparty.a
[ 48%] Built target thirdparty
make: *** [Makefile:84:all] 错误 2

解决方法:
修改EasyPR/include/easypr/config.h文件的第四行:

#ifndef EASYPR_CONFIG_H_
#define EASYPR_CONFIG_H_  #define CV_VERSION_THREE_TWO//修改这一行,将#define CV_VERSION_THREE_ZERO改为#define CV_VERSION_THREE_TWO

出现[100%] Built target demo之后即编译成功!

二、测试

直接运行dome

./demo

输出以下信息:


EasyPR Option:
1. 测试;
2. 批量测试(推荐);
3. SVM训练;
4. ANN训练;
5. 中文字符训练;
6. 生成字符;
7. 感谢名单;
8. 退出;  请选择一项操作:

测试时出现以下错误

test_plate_locate
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /home/minuy/download/opencv-3.2.0/modules/highgui/src/window.cpp, line 583
terminate called after throwing an instance of 'cv::Exception'
what(): /home/minuy/download/opencv-3.2.0/modules/highgui/src/window.cpp:583: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage

解决方法:
安装libgtk2.0-devpkg-config

sudo apt-get install libgtk2.0-dev

安装时出现以下错误

下列软件包有未满足的依赖关系:
libc6-dev : 破坏: libgcc-9-dev (< 9.3.0-5~) 但是 9.2.1-22 正要被安装
E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。

解决方法:
执行以下命令,过程提示全选同意:

sudo apt install gcc-9-base

然后再重新安装libgtk2.0-devpkg-config,安装好之后重新编译OpenCV-3.2.0(之前的工具可能失效,需要重新安装,下面的命令里有重新安装)
即依次执行以下命令:

sudo apt-get install libgtk2.0-dev pkg-config
cd ..
cd opencv-3.2.0/
cd release/
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0 libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/ ..
sudo make install -j7cd ..
cd EasyPR/
./build.sh

然后再重新编译一下EasyPR即可。

三、总结

参考资料:

  • cmake https://blog.csdn.net/alw2009/article/details/85345715
  • OpenCV https://www.cnblogs.com/wycBlog/p/7217498.html
  • pkg-config https://www.bilibili.com/read/cv5651011
  • glib-2.0>=2.16错误 https://blog.csdn.net/alading2009/article/details/20039281
  • 没有头文件错误 https://blog.csdn.net/renweiyi1487/article/details/104160879
  • cv2.cpp编译错误 https://blog.csdn.net/qq_44357371/article/details/105966714
  • config.h编译错误 https://github.com/liuruoze/EasyPR
  • 测试安装出错 https://www.cnblogs.com/awakenedy/articles/13446982.html

【EasyPR】Linux安装使用EasyPR开源车牌识别系统相关推荐

  1. EasyPR中文开源车牌识别系统 开发详解

     在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao ...

  2. HyperLPR 开源车牌识别系统搭建踩坑全记录

    (介绍略) 一个开源的车牌识别系统. github地址:https://github.com/szad670401/HyperLPR 一.下载 git clone https://github.com ...

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

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

  4. 【OpenCV+Qt】使用车牌识别系统EasyPR识别车牌号

    EasyPR是一个中文的开源车牌识别系统,其车牌识别划分为了两个过程:即车牌检测(Plate Detection)和字符识别(Chars Recognition)两个过程: 车牌检测(Plate De ...

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

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

  6. 你不知道的车牌识别系统

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 有小伙伴后台和小白说,能不能推荐几个适合入门的开源视觉项目,因为根 ...

  7. 给你的树莓派部署一个车牌识别系统

    代码仓库 1.码云Gitee:https://gitee.com/yangkun_monster/raspberrypi-License-Plate-Recognition 2.Github:http ...

  8. 【深度学习】你不知道的车牌识别系统

    有小伙伴后台和小白说,能不能推荐几个适合入门的开源视觉项目,因为根据实际项目和代码学起来相对来说比较快.小白收集了一些比较简单的开源的项目,会陆陆续续的分享给大家,文末有源码地址. 今天首先带来的是一 ...

  9. python车牌识别系统开源代码_北京百万庄车牌识别的软件人气火爆

    北京车牌识别厂家直销 北京百万庄车牌识别的软件人气火爆 与字符数据库模板中的标准字符表达形式进行匹配判别,结果输出:将车牌识别的结果以文本格式输出,以上就是车牌识别系统的工作原理,希望能够帮助大家更好 ...

  10. 【毕设】车牌识别系统的设计与实现

    车牌识别系统的设计与实现_毕设记录 1 前言[源码见评论区] 2 开发环境 3 VS2017配置OpenCV运行第一个小程序(19.12.27) 3.1 第一个小程序 3.2 参考链接汇总 4 车牌定 ...

最新文章

  1. 清华AI学堂班:姚期智担任首席教授,2019年首批招收30人
  2. 被人画是怎样一种体验?
  3. 《C++ Primer 5th》笔记(7 / 19):类
  4. php循环建立新的文件根据文件名移动文件到指定文件夹修改文件名称
  5. 合并excel文件 C语言,如何用VBA函数合并多个文件
  6. Linux下安装Kafka(单机版)
  7. 数据分析流程和特征工程
  8. 计算机设备及维护招标公告,列“State”不属于表 。
  9. P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)
  10. hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)
  11. springcloud工作笔记101---强大的代码自动提示工具_aiXcoder智能编程_以及开源java工具大全_提升开发效率
  12. (转)别只盯着比特币!“野蛮生长”的ICO江湖:2年30倍只是寻常
  13. 西南科技大学OJ题 11 And 11! 0259
  14. java服务器测速_服务器测速,php在线测速
  15. 入侵检测系统,浅析几个著名的入侵检测系统
  16. “21 天好习惯”第一期-7
  17. WinAPI执行外部程序和创建新进程:CreateProcess()的使用
  18. 基于Aforge的手势识别之一~~~简单的手写识别
  19. 淘宝封杀selenium的ua算法分析
  20. 管理学原理 【1049】

热门文章

  1. 计算机一级考试考什么呢,计算机一级考试考些什么呢
  2. 超级详细的Vmware下载与安装过程
  3. windowsxp系统怎么装iis服务器,XP系统如何安装IIS?IIS安装教程
  4. 如何看待职场猝死?燕麦企业云盘教你9大绝招提升职场幸福感
  5. vb连接odbc连接mysql数据库_vb6通过ODBC连接mysql数据库
  6. 名编辑电子杂志大师教程 | 添加搜索功能
  7. java怎么销毁session_java怎么销毁session?
  8. 安捷伦or是德信号源+频谱仪操作: 从程控到自动测试 (三)互调检测的程控实现
  9. 中国生物医药产业集群产业战略布局及运营管理模式分析报告2021-2027年
  10. 从零开始研发GPS接收机连载——1、想法的萌发