• 树莓派 + 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

  • 相关阅读:
    PHP Cookbook读书笔记 – 第18章安全和加密
    ANDROID开发之http调试常见错误
    GD库之有意思的imagesetstyle
    PHP Cookbook读书笔记 – 第06章函数
    PHP Cookbook读书笔记 – 第09章表单
    PHP Cookbook读书笔记 – 第04章数组
    PHP Cookbook读书笔记 – 第17章图形
    PHP常见面试问题
    SQL SERVER 表分区实施步奏
    PHP Cookbook读书笔记 – 第12章XML
  • 原文地址:https://www.cnblogs.com/grj001/p/12223148.html
Copyright © 2020-2023  润新知