------韦访 20181016 1、概述上一讲学习了怎么样用opencv识别车牌,但是,我们只做到了将车牌上的字符分割出来,还没有对字符进行识别,这一讲先来学习OCR(Optical Character Recognition,光学字符识别)。目前OCR用的比较多的是开源框架Tesseract-OCR,所以就挑这个来学学。 2、Tesseract-OCR安装Ubuntu的话,直接执行命令: sudo apt-get install tesseract-ocr 就可以安装了,我没试过。下面我们用源码安装。 下载tesseract-ocr源码: Github地址为:https://github.com/tesseract-ocr/tesseract 安装步骤可以参考文档:https://github.com/tesseract-ocr/tesseract/wiki/Compiling 安装依赖: 首先安装一些依赖工具和库: sudo apt-get install g++ # or clang++ (presumably) sudo apt-get install autoconf automake libtool sudo apt-get install pkg-config sudo apt-get install libpng-dev sudo apt-get install libjpeg8-dev sudo apt-get install libtiff5-dev sudo apt-get install zlib1g-dev 如果想自己训练数据,则还要安装以下工具: sudo apt-get install libicu-dev sudo apt-get install libpango1.0-dev sudo apt-get install libcairo2-dev 再安装Leptonica: 注意Tesseract和Leptonica版本的对应,如下表,
安装命令如下, wget http://www./source/leptonica-1.74.4.tar.gz tar -zxvf leptonica-1.74.4.tar.gz cd leptonica-1.74.4/ ./configure make -j8 编译安装: 先cd到源码的根目录,然后运行 mkdir local ./autogen.sh ./configure --with-extra-libraries=/usr/local/include make -j8 sudo make install sudo ldconfig 如果上面命令都通过,再执行命令 tesseract 如果打印如下信息则说明安装成功。 安装语言包: git clone https://github.com/tesseract-ocr/tessdata.git 然后将所有的.traineddata文件拷贝到/usr/local/share/tessdata/文件夹。 用tesseract测试文字识别:
我们要识别的图片如上图,运行以下命令, tesseract 05.png 05 -l chi_sim -l可以指定字库文件,chi_sim是识别中文的字库,运行后会生成05.txt文本文件,
可以看到,中文识别出来了,但是英文的都识别出什么鬼咯!那指定一个英文的字库文件看看效果如何?运行命令, tesseract 05.png 05_en -l eng 运行结果, 这下英文识别正确,中文没识别出来。就不能同时识别中文和英文吗?字库就不能混用吗?百度了以下,蛮多人都有这个疑问的,找了老半天,在这个博客找到方法, https://www.jianshu.com/p/f09045a4fc8a 把两个字库用加法”+”连起来就可以了,命令如下, tesseract 05.png 05 -l chi_sim+eng 运行结果, 3、Python编程想让python调用tesseract,得先执行以下命令安装pytesseract, sudo pip install pytesseract 安装好以后,识别图片里的字符就很简单了,执行以下代码,
运行结果: 4、试着用官方字库识别车牌上面的例子既然能识别中文、英文和数字,那么,能否直接用来识别我们上一讲提取出来的车牌呢?试试看, 扣出来的字符图片为
运行结果: 什么都没识别到,试试中文呢?原图片为 也什么都没识别出来。 5、训练既然使用官方的字库无法识别出字符,那么,我们就应该训练自己的数据,训练需要用到一个工具---jTessBoxEditorFX,这个工具是java写的,我的系统是ubuntu,jTessBoxEditorFX根目录如下图, Windows系统直接双击train.bat文件即可,linux系统则运行train脚本,我电脑运行脚本后,提示错误如下: Error: Could not find or load main class net.sourceforge.tessboxeditor.JTessBoxEditor 搞了半天不知什么原因,在我自己的电脑上运行也是这个问题,我就想会不会是这个工具不支持openjdk导致的?因为我两台电脑安装的都是openjdk,然后,将openjdk改成Oracle的,果然就可以了。因为公司电脑要编译安装7.1系统,只能用Openjdk,所以就不改公司电脑环境了,先往后学,以后再补上OCR自己训练字库这部分。
如果您感觉本篇博客对您有帮助,请打开支付宝,领个红包支持一下,祝您扫到99元,谢谢~~
|
|