zoukankan      html  css  js  c++  java
  • 树莓派 + 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

  • 相关阅读:
    Python中所有的关键字
    关于selenium的8种元素定位
    对提示框的操作
    selenium+webservice进行百度登录
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled...报错解决
    Vue中使用echarts
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142解决方法
    插入排序
    冒泡排序优化
    roject 'org.springframework.boot:spring-boot-starter-parent:XXX' not found 解决
  • 原文地址:https://www.cnblogs.com/grj001/p/12223149.html
Copyright © 2011-2022 走看看