训练Tesseract为图标加标签

时间:2019-09-18 14:21:54

标签: python-tesseract

我正在尝试为Tesseract 4.0创建培训数据,以识别屏幕截图中的图标(例如,评论,共享,保存)。这是一个示例屏幕截图:
sample screenshot

我想微调Tesseract以实现如下输出:
像147
评论29
已保存5
动作
58
动作
个人资料访问24
跟随2

我已按照https://pretius.com/how-to-prepare-training-files-for-tesseract-ocr-and-improve-characters-recognition/

中的说明进行了逐步操作

我修改了箱形文件,如下所示:
-心:喜欢
-对话气泡:评论
-书签:已保存
-箭头:分享

但是,最终的训练数据未能按我的意愿读取图标。我得到的错误示例是“像不在unicharset中”。为图标创建unicharset时,我需要做些不同的事情吗?

1 个答案:

答案 0 :(得分:0)

我知道了。框编辑器期望使用单个字母/数字而不是完整的单词。我已经使用Unicode字符来解释我的图标。步骤如下:

  1. 裁剪所有希望Tesseract检测到的目标图标并将其保存在一个文件中(在我的情况下为own.std.exp0.png
  2. 使用命令“ tesseract own.std.exp0.png own.std.exp0 makebox”创建盒子文件
  3. 打开jTessBoxEditor并在char列中输入unicode。可以在程序字符映射(https://sites.psu.edu/symbolcodes/windows/charmap/)下找到受支持的Unicode列表。示例:对于心脏符号,我使用了U + 2665。请注意,不支持某些unicode。它显示为空白正方形。因此,请继续尝试直到找到可行的方法。我最终编辑的框文件如下所示。
    edited box file
  4. 创建最终的训练文件,该文件将是own.trainneddata(可以按https://medium.com/apegroup-texts/training-tesseract-for-labels-receipts-and-such-690f452e8f79所示进行操作,也可以使用jTessBoxEditor进行训练)。
  5. 将own.traineddata复制到目录Tesseract / tessdata,然后使用lang ='own + eng'运行Tesseract。我使用pytesseract,输出如下:
    tesseract output