PHP OCR拭魅战:用Tesseract从图像中读取笔墨语言&工具

来源:互联网 / 作者:SKY / 2016-08-15 07:37 / 点击:
Tesseract是一个能实现OCR的开源项目。你能在*Nix体系,Mac体系和Windows体系上运行这个项目,可是只要行使一个库,我们就能在PHP项目中行使它了。本教程的目标

Optical Character Recognition (OCR)即光学字符辨识是把打印文本转换成一个数字暗示的进程。它有各类百般的现实应用–从数字化印刷书本、建设收条的电子记录,到车牌辨认乃至破解基于图像的验证码。

Robotic eye

Tesseract是一个能实现OCR的开源项目。你能在*Nix体系,Mac体系和Windows体系上运行这个项目,可是只要行使一个库,我们就能在PHP项目中行使它了。本教程的目标是教你怎样行使。

安装

筹备

为了让工作变得简朴和同等的, 我们将行使假造机(本文行使Vagrant)来运行应用措施,这会涉及到安装PHP和Nginx,我们将安装 Tesseract来别离演示进程。假如你想本身基于现有Debian-based体系安装Tesseract,你可以跳过下一部门—可能查察the README来得到在其他*nix上,Mac体系可能Windows的安装指导.

设置Vagrant

为了设置Vagrant以跟上本教程,完成如下步调。可能你也可以简朴的从Github得到代码。

输入以下呼吁来下载Homestead Improved Vagrant设置到一个名为orc的文件夹:

git clone https://github.com/Swader/homestead_improved ocr

将Nginx设置文件Homestead.yml中的以下代码:

sites: 

    - map: homestead.app 

      to: /home/vagrant/Code/Project/public 

修改成:

sites: 

    - map: homestead.app 

      to: /home/vagrant/Code/public 

同样要在hosts文件中添加

192.168.10.10       homestead.app 

安装Tesseract

下一步是安装Tesseract

由于Homestead Improved 行使debian,我们可以在行使vagrant ssh登岸假造机后行使apt-get 来安装它,简朴运行如下呼吁:

sudo apt-get install tesseract-ocr 

正如上文提到的,在the README中有其他的操纵体系对应教程。

测试并定制安装

我们将行使PHP包装,可是之前我们可以在呼吁行测试Tesseract。

起首生涯这个图片sign.png

在假造机中,执行如下呼吁来从图片中读取笔墨

tesseract sign.png out 

这将在当前文件夹建设一个文件:out.txt内里应该有单词:CAUTION

此刻实行sign2.jpg

tesseract sign2.jpg out 

这次发生单词Einbahnstral’ie。很靠近但不正确—固然图像中的笔墨相等清楚,它没能辨认字符ß。

为了获使Tesseract正常读取字符串,我们必要安装一些新的说话文件—就本例来说,德语。

这里有一个全面的可用说话文件列表,但我们直接下载所需的文件:

wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.deu.tar.gz 

解压:

tar zxvf tesseract-ocr-3.02.deu.tar.gz 

然后把文件复制到如下目次:

/usr/share/tesseract-ocr/tessdata 

譬喻

cp deu-frak.traineddata /usr/share/tesseract-ocr/tessdata 

cp deu.traineddata /usr/share/tesseract-ocr/tessdata 

此刻我们再次执行原本的呼吁可是要用 –l

tesseract sign2.jpg out -l deu 

 

    “deu” 是德语的 ISO 639-3码. 

这次,笔墨应该是Einbahnstraße(正确的)。

可以通过一再上述进程来行使恣意说话。

设置应用措施

我们将行使这个库来用PHP行使Tesseract。

我们将成立一个极简的web应用:用户上传图片,并查察OCR处理赏罚功效。我们将行使Silex microframework 来实现。不要担忧你不认识它,这个应用自己很简朴。

记着这篇教程的全部代码都能在Github上得到。

第一步是用Composer来安装依靠文件:

composer require silex/silex twig/twig thiagoalessio/tesseract_ocr:dev-master 

然后成立三个文件夹:

public 

- uploads 

- views 

我们必要上传表单(views\index.twig):

<html> 

  <head> 

    <title>OCR</title> 

  </head> 

  <body> 

 

    <form action="" method="post" enctype="multipart/form-data"

      <input type="file" name="upload"

      <input type="submit"

    </form> 

 

  </body> 

</html> 

必要一个功效展示页面(views\results.twig)::

<html> 

  <head> 

    <title>OCR</title> 

  </head> 

  <body> 

 

    <h2>Results</h2> 

 

阅读延展

1
3