我使用的是Kali系统,基于Debian的一个Linux发行版本。
–参考阿里云开发者网站: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检查安装 首先查看下系统安装了没有
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 出现版本信息则安装成功!软件源安装 执行命令:
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即安装成功!
通过软件源安装libopenexr-dev:
sudo apt-get install libopenexr-dev这边EasyPR使用的是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; }再重新编译安装就好了。
可以直接到gitee上点击“克隆/下载”按钮以下载 –地址:https://gitee.com/easypr/EasyPR
也可以输入以下命令来克隆仓库到本地:
git clone https://gitee.com/easypr/EasyPR.git为了避免系统中安装的老版本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")进入到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-dev和pkg-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-dev和pkg-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 -j7 cd .. cd EasyPR/ ./build.sh然后再重新编译一下EasyPR即可。