找回密码
 立即注册
搜索

用Python停止OCR图像辨认,小白一定要收藏


数据采集就怕遇到图片,只能看不能复制怎样办。手动将文字提取出来,要耗费很大的工作量。例如下图,某楼盘的一房一价表,怎样样发现单价低位的房子?光凭肉眼很难发现吧,能否让计算机停止文字的辨认,然后再对这些数值型信息停止数据分析。



首先把图片中的单价提取出来,



进而生成图像:



用python就可以完成,采用如今盛行的OCR图像辨认。次要思绪是运用机器学习形式,经过已有图片手动训练出一个图像辨认模型,详细步骤如下:

一、将图片预处理,更方便计算机辨认

(一)把图像灰化

运用open-cv库对图片停止处理。



运用灰化后的图片,如下图,扫除干扰信息,能让辨认愈加波动。



(二)把图片分割

将图片分割成小方块,一是提高辨认精度,二是方便将数据储存为表格方式。可以设定好参数,根据坐标系把图片裁剪成一个个小方块,如下图,储存为jpg格式。



二、建立图像辨认模型

(一)将分割好的小方块图片合并成tiff文件

下载jTessBoxEditor,打开jTessBoxEditor.jar,运用tools下的merge tiff工具,将图片合并成tiff文件。

(二)运用已有模型对tiff文件停止初辨认

下载并安装tesseract,并配置好环境变量,将Tesseract-OCRtessdata的途径加入到环境变量下的path下面。Tesseract自带图像辨认的模型,例如中文简体汉字辨认模型chi_sim.traineddata,英文辨认模型eng.traineddata,这些模型可以网上下载,放到tessdata外面即可运用。

然后进入tiff所在文件夹。在命令窗口,输入:tesseract ***.tif *** -l +++ -psm 7 batch.nochop makebox,按回车生成box文件。其中***tif的文件名,+++为要生成的traindata的文件名。

(三)运用jTessBoxEditortiffbox文件停止调整

打开jTessBoxEditor.jar,在box editor中的open按钮,打开要编辑的tif文件。编辑之后保存,生成box文件。保存在同一个文件夹里。

(四)运用tiff和box文件生成模型

在tiff和box的文件中,在命令窗口输入以下代码,最终生成模型(traindata文件)



上述脚本也可以写在bat文件中,运转脚本来生成traindata,最终仅需求将traindata复制到tessdata外面,即可运用该模型。

三、运用图像辨认模型

安装完,训练完模型之后,就要在python中运用模型了。安装pytesseract,找到pytesseract.py文件,打开编辑,将其中的“tesseract_cmd = 'tesseract'”,改成tesseract的安装途径(如C:\Program Files\Tesseract-OCR\\tesseract)。

由于模型是采用灰化后的图片训练的,所以在辨认时也要运用灰化。



四、优化图像辨认模型

在运用中,假如有错误,可以存上去,加入训练库,优化图像辨认模型。在普通是辨认错误的图片,积累一阵子后。累积做成tif文件。留意:同类错误选择几个记号了,训练库尽量小而精。

最后

假如你觉得这篇文章还不错,请大家 点赞、分享、留言 下,由于这将是我持续输入更多优质文章的最强动力!
更多爬虫、数据分析、全栈开发、人工智能学习材料自取

私信@林夕编程回复关键词【材料】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

怨念的伊吹萃香 2021-4-10 15:28:01 来自手机 显示全部楼层
支持,楼下的跟上哈~
回复

使用道具 举报

前排,哇咔咔
回复

使用道具 举报

四维钢铁 2021-4-12 13:19:58 显示全部楼层
那个啥吧。。。就是这个。。。你知道我要说啥吧。。。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies