【EasyPR】Linux安裝使用EasyPR開源車牌識別系統


【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 -j7

cd ..
cd EasyPR/
./build.sh

然后再重新編譯一下EasyPR即可。

三、總結

參考資料:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM