树莓派 + OpenALPR 实现车牌识别

树莓派 + OpenALPR 实现车牌识别

原创Waao_426® 发布于2019-11-02 23:10:02 阅读数 69  收藏

展开

最下面有我这一路下来,所遇到的一些坑。

OpenALPR 简介

OpenALPR 是一个使用 C++ 编写的开源自动牌照识别库。
这个库能分析图像和视频流以识别车牌。

这个库,需要什么东西?

  1. 需要一些必要的软件包;
  2. 需要Tesseract OCR 软件依赖;
  3. 需要OpenCV 软件依赖。(是的,我们还需要安装OpenCV)

开始

步骤一:

先更新一下我们树莓派系统的软件包:

sudo apt-get update
sudo apt-get upgrade
  • 1
  • 2

然后开始安装一些软件:

apt-get install autoconf automake libtool
apt-get install libleptonica-dev
apt-get install libicu-dev libpango1.0-dev libcairo2-dev
apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install python-dev python-numpy libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
apt-get install virtualenvwrapper
apt-get install liblog4cplus-dev
apt-get install libcurl4-openssl-dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

↑ 嫌多?嫌麻烦?

或者直接使用下面这段来个痛快的:

apt-get install autoconf automake libtool libleptonica-dev libicu-dev libpango1.0-dev libcairo2-dev cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev virtualenvwrapper liblog4cplus-dev libcurl4-openssl-dev
  • 1

此处有第一个坑

步骤二:构建依赖

(1)安装Tesseract OCR

(a)安装Leptonica

为了安装 Tesseract OCR,我们需要先安装 Leptonica

Leptonica 是一个开源的图像处理和图像分析库,主要包括的操作有:位图操作、仿射变换、形态学操作、连通区域填充、图像变换及像素掩模、融合、增强、算术运算等操作。

为了编译Leptonica,我们需要安装这些依赖包:

apt-get install libjpeg-dev libtiff5-dev libpng12-dev gcc make
  • 1

然后下载包:

cd /usr/src
wget http://www.leptonica.org/source/leptonica-1.71.tar.gz
tar xf leptonica-1.71.tar.gz
  • 1
  • 2
  • 3

编译,并执行安装:

/usr/src/leptonica-1.71
./configure
make
make install
  • 1
  • 2
  • 3
  • 4

(b)安装Tesseract OCR

Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。

为了安装 Tesseract OCR,我们需要如下的软件包:

apt-get install ca-certificates git  
apt-get install autoconf automake libtool  
apt-get install autoconf-archive  
apt-get install pkg-config
  • 1
  • 2
  • 3
  • 4

如果想安装训练工具,我们还需要:

apt-get install libicu-dev  
apt-get install libpango1.0-dev  
apt-get install libcairo2-dev
  • 1
  • 2
  • 3

从 GIT 克隆代码:

cd /usr/src  
git clone https://github.com/tesseract-ocr/tesseract.git
  • 1
  • 2

此处有第二个坑

查看可以使用的 tag 号:

cd /usr/src/tesseract  
git tag
  • 1
  • 2

签出我们所需要的版本:

git checkout 3.04.01
  • 1

使用下面的命令安装:

cd /usr/src/tesseract  
./autogen.sh
./configure --enable-debug
make  
make install

我们便能获取到相应的版本:

root@openalpr-tst01:/usr/src/tesseract# tesseract -v  
tesseract 3.04.01  
 leptonica-1.71
   libjpeg 6b : libpng 1.2.50 : libtiff 4.0.3 : zlib 1.2.8

(2)安装OpenCV

OpenCV 的全称是 Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。 OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的 IPP 进行加速处理。

OpenCV 的安装同样有很多坑。。。

在 Raspberry Pi 上编译 OpenCV 需要大量的内存,因此我们可以选择创造出更多的交换空间:

fallocate --length 2GiB /root/2G.swap  
chmod 0600 /root/2G.swap  
mkswap /root/2G.swap  
swapon /root/2G.swap
  • 1
  • 2
  • 3
  • 4

可以使用free -m 查看内存使用情况

此处关于OpenCV 的安装请参考我的另一篇博客:
【手把手教学—超简单】树莓派安装OpenCV 3

步骤三:安装OpenALPR

OpenALPR 的安装必须要在OpenCV 安装完成之后,否则不能完成

  1. 下载代码:
cd /usr/src  
git clone https://github.com/openalpr/openalpr.git
  • 1
  • 2
  1. 构建:
cd openalpr/src  
mkdir build  
cd build  
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc ..  
make  
make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

若中途出错,可能需要如下软件包:

apt-get install cmake  
apt-get install liblog4cplus-dev libcurl3-dev  
sudo apt-get install beanstalkd  
apt-get install openjdk-7-jdk  
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/
  • 1
  • 2
  • 3
  • 4
  • 5

若在任何步骤中遇到任何类型的缺失库错误,请运行 ldconfig 命令。

最后我们可以简单测试测试:

(1)下载图片到本地并重命名为lp.jpg

wget http://plates.openalpr.com/h786poj.jpg -O lp.jpg  
alpr lp.jpg
  • 1
  • 2

在这里插入图片描述

(2)进行车牌识别:

alpr lp.jpg
  • 1

在这里插入图片描述

填坑

一、某些软件因缺乏环境而无法安装

上述第一个坑处:有的软件是需要其他某些软件作为环境基础的,又或者需要某些低级软件作为基础(可是你却安装了高版本的)。这个时候,我们要根据错误信息,不断去安装其所需要的软件(版本号有时需要指定)。

例如A 软件因为缺乏B 软件而无法安装,B 软件又需要C 软件…我安装过程中甚至嵌套了六层依赖关系,不要嫌麻烦,环境一点一点去配置,最后就可以全部安装完成。

二、网络环境不佳,下载中断

我们可以把http 换成git,这样成功率会高一点:

例如:

git clone https://github.com/tesseract-ocr/tesseract.git
  • 1

换成:

git clone git://github.com/tesseract-ocr/tesseract.git
  • 1

三、OpenCV 的坑详见OpenCV 的安装博客

【手把手教学—超简单】树莓派安装OpenCV 3

posted @ 2019-12-16 08:43  grj001  阅读(756)  评论(0编辑  收藏  举报