当前位置: 首页 > 后端技术 > Python

使用Python进行OCR图像识别

时间:2023-03-26 11:29:32 Python

资料采集怕遇到图片,只能看不能复制怎么办。手动提取文本需要大量工作。比如下图,某楼盘的一房一价表,如何找到单价低的房子呢?肉眼很难找到,电脑能识别文字,然后分析数值信息吗?先提取图片中的单价,然后生成图片:可以用python实现,使用现在流行的OCR图片识别。主要思想是利用机器学习的方式,通过已有的图片,人工训练一个图像识别模型。具体步骤如下:1.对图片进行预处理,使计算机更容易识别(1)对图片进行灰度处理,使用open-cv库对图片进行处理。使用如下图所示的变灰图像,可以消除干扰信息,使识别更加稳定。(2)划分图片将图片划分成小方块,一是为了提高识别准确率,二是方便以表格的形式存储数据。可以设置参数,将图片按照坐标系裁剪成小方块,如下图,保存为jpg格式。2.建立图像识别模型(1)将分割后的小方块图片合并成tiff文件下载jTessBoxEditor,打开jTessBoxEditor.jar,使用tools下的合并tiff工具将图片合并成tiff文件。(2)使用现有模型初步识别tiff文件,下载安装tesseract,并配置环境变量,将Tesseract-OCR和tessdata的路径添加到环境变量下的路径中。Tesseract自带图像识别模型,比如简体中文识别模型chi_sim.traineddata,英文识别模型eng.traineddata。这些模型可以在网上下载并放入tessdata中使用。然后进入tiff所在的文件夹。在命令窗口输入:tesseract***.tif***-l+++-psm7batch.nochopmakebox,回车生成box文件。其中,***是tif的文件名,+++是要生成的traindata的文件名。(3)使用jTessBoxEditor调整tiff和box文件打开jTessBoxEditor.jar,点击boxeditor中的打开按钮,打开需要编辑的tif文件。编辑好后保存生成box文件。保存在同一个文件夹中。(4)使用tiff和box文件生成模型在tiff和box文件中,在命令窗口中输入以下代码,最终生成模型(traindata文件)。上面的脚本也可以写成bat文件,运行脚本生成traindata,最后只需要将traindata复制到tessdata中就可以使用模型了。3.图像识别模型安装和训练完成后,模型必须在python中使用。安装pytesseract,找到pytesseract.py文件,打开编辑器,将“tesseract_cmd='tesseract'”修改为tesseract的安装路径(如C:\ProgramFiles\Tesseract-OCR\tesseract)。因为模型是用灰化图像训练的,所以也使用灰化来进行识别。4.优化图像识别模型。如果在使用过程中出现错误,可以保存并添加到训练库中,以优化图像识别模型。一段时间后,一般识别错误的图片。累加成tif文件。注意:类似错误已经选择了几个标记,训练库尽量小而精。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能领取大量学习资料。或者去编程学习网了解更多编程技术知识。