当前位置: 首页 > 面试题库 >

如何使用Tesseract训练基于Python的OCR,以训练不同的国民身份证?

杜曜灿
2023-03-14
问题内容

我正在使用python制作一个OCR系统,该系统可从ID卡读取并提供图像的准确结果,但是由于tesseract读取的错误字符过多,因此无法提供正确的答案。我该如何训练tesseract,使其能够完美地读取ID卡并为我们提供正确和准确的详细信息,此外,我如何才能进入.tiff文件并使tesseract用于我的项目。


问题答案:

改善Pytesseract识别的步骤:

1)清洁图像阵列,以使只有文本(生成字体,而不是手写字体)。字母的边缘应无扭曲。 应用阈值(尝试不同的值)
。同时应用一些平滑过滤器。我还建议使用Morfholofical开/关-但这仅是一个奖励。这是应该以数组形式输入pytesseract识别的夸张示例:https
://i.ytimg.com/vi/1ns8tGgdpLY/maxresdefault.jpg

2)使用您要识别的文字将图像调整为更高的分辨率

3)Pytesseract通常应该识别任何类型的字母,但是通过安装用于书写文本的字体,可以极大地提高准确性。

如何在pytesseract中安装新字体:

1)以TIFF格式获取所需字体

2)将其上传到http://trainyourtesseract.com/并将经过培训的数据接收到您的电子邮件中

3)将训练后的数据文件(* .traineddata)添加到此文件夹C:\ Program Files(x86)\ Tesseract-OCR \
tessdata

4)将此字符串命令添加到pytesseract重构函数中:

  • 假设您有2种经过训练的字体:font1.traineddata和font2.traineddata

  • 要同时使用这两个命令

txt = pytesseract.image_to_string(img,lang = ‘font1 + font2’

这是测试您对网络图像的识别的代码:

import cv2
import pytesseract
import cv2
import numpy as np
import urllib
import requests
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
TESSDATA_PREFIX = 'C:/Program Files (x86)/Tesseract-OCR'
from PIL import Image

def url_to_image(url):
    resp = urllib.request.urlopen(url)
    image = np.asarray(bytearray(resp.read()), dtype="uint8")
    image = cv2.imdecode(image, cv2.IMREAD_COLOR)
    return image

url='http://jeroen.github.io/images/testocr.png'


img = url_to_image(url)


#img = cv2.GaussianBlur(img,(5,5),0)
img = cv2.medianBlur(img,5) 
retval, img = cv2.threshold(img,150,255, cv2.THRESH_BINARY)
txt = pytesseract.image_to_string(img, lang='eng')
print('recognition:', txt)
>>> txt
'This ts a lot of 12 point text to test the\nocr code and see if it works on all types\nof file format\n\nThe quick brown dog jumped over the\nlazy fox The quick brown dog jumped\nover the lazy fox The quick brown dog\njumped over the lazy fox The quick\nbrown dog jumped over the lazy fox'


 类似资料:
  • 我试图从图像中对ASCII字符串进行OCR识别。我正在使用Tesseract3库,但是在正确识别方面有一点问题,所以我需要用新的字符集(这是特定的)来训练它。我已经发现了这个how-to:TrainingTesseract3,但教程中有一些不必要的过程,我不需要,因为我的图像测试集很简单。我的图像数据集只包含1个行,其中每个ASCII字符在所有图像中都是相同的(没有旋转,没有缩放),但行中字符之间

  • 利用 Google Fit Workout™ 应用程式,您可以追踪训练课或开始力量训练挑战。 开启训练课 按下侧边电源按钮打开应用程式菜单,找到并轻触Fit Workout (健身训练)。 轻触您想进行的训练 轻触 START(开始)。 如需了解更多关于 Google Fit Workout 应用程式的使用信息,请参见Wear OS by Google 帮助网站。

  • 我想为一个新角色训练我现有的tesseract模型。我已经在 https://github.com/tesseract-ocr/tesseract/wiki/trainingtesseract-4.00#lstmtraining-命令行 (微调?几个字符)(我用的是MAC) 但它不起作用。如果我评估(即使是在训练数据上),它也不能识别±'字符。 我安装了: 通过: 我将以下GitHub存储库克隆到

  • 利用 Polar 应用程式、Polar Flow 应用程式以及 Polar Flow 网络服务获得有关您的训练的即时分析,深入了解您的训练。 M600 上的训练总结 在每次训练后,您将在您的手表上收到您的即时训练总结。 总结中显示的信息取决于运动内容。可提供的细节包括: 时间长度:训练时长 距离(如适用于您的运动):指训练中已完成的距离。 平均心率:指训练期间您的平均心率。 最大心率:指训练期间您

  • 训练视图 浏览训练视图 上下滑动屏幕。 或 将手腕向内再向外轻快移动。 观看如何在训练期间使用 Polar 应用程式的相关视频教程。 您在训练视图上看到的信息取决于您对所选的运动内容的编辑。您可以在 Polar Flow 应用程式或 Polar Flow 网络服务中对每项运动内容进行设置。 例如,训练视图可提供以下信息: 您的当前心率 心率 ZonePointer 训练时长 训练期间到目前为止完成

  • 所有数字都提供在一个透明背景的png文件中。如果我从它创建一个盒子文件,训练它等等-所有工作都很好! 正如你所看到的,数字是完全一样的,以及位置等等。与图像1的唯一区别是,我使用了黄色背景,从现在开始,没有什么工作了。我创建了一个框文件,我设置了与第一个图像相同的位置: 然后我训练了这个盒子,但是结果的。tr文件是完全空的。我没有在这里停下来,完成了所有其他步骤。结果字体无法使用! 所以我的问题是

  • 问题内容: 我正在尝试运行以下Colab项目,但是当我想将训练数据分为验证和训练部分时,出现此错误: 我使用以下代码: 如何解决此错误? 问题答案: 根据Tensorflow Dataset docs ,百分比拆分是可能的,例如 如示例所示,更改列表时,您的代码将起作用: 使用上面的代码,有2590个条目,而有1080个。

  • 尝试一周,能改变一些旧习 一个一个练,反复的使用即可 不求多,以下练熟悉即可 practice makes prefect~ 放弃鼠标 全键盘和触摸板,你可以么? 从熟悉快捷键开始 全屏 专心写代码,减少干扰 ctrl + command + f 放大到全屏 设置Workbench主菜单快捷键,快速切换 设置Workbench主菜单快捷键,然后就有了command + 1到4的快捷键,快速切换,效