Tesseract:给扫描图片补搜索层,也留下逐词核对的位置

开源项目猫目发布于 来源:Tesseract OCR 官方产品资料与使用说明
同一张图可以成为可搜索 PDF,或带词坐标和置信度的 TSV。
Tesseract:给扫描图片补搜索层,也留下逐词核对的位置

为什么值得关注

用官方 eurotext 输出解释 PDF 搜索层、hOCR 和 TSV 的不同作用,帮助扫描资料整理者选择成果格式。

适合谁:需要归档扫描资料、搭建本地校对流程的技术用户

这次有哪些亮点

  • PDF保留图片并增加独立文字层
  • TSV区分页块段行词,并给词位置和置信度
  • 中文语言数据与LSTM引擎需配套准备

使用前需要知道

命令行引擎无自带GUI;输入为图片而非直接读取PDF;中文需对应traineddata,搜索层不保证OCR文字无误。

把纸质资料扫描成图片 PDF 后,页面看起来很完整,却搜不到里面的名字。Tesseract 提供的一个朴素而实用的成果,是在原图之外补上一层可搜索文字。它还可以留下每个词所在的位置,供之后制作校对界面;因此,同一轮 OCR 不必只保存一份难以回溯的纯文本。

搜索层保留了什么

官方命令行文档使用 eurotext.png 演示多语言识别。在命令末尾加上 pdf,得到的文件保留输入图片,并增加独立的可搜索文字层。观看时仍能看到原页面,搜索与复制则依赖识别出的文字。

这适合解释一个归档任务:假设要整理一组中文旧通知,先把扫描页作为图片交给 OCR,再让生成的 PDF 进入资料夹。页面的原貌不会因为某个字识别错了而消失,但那个字可能搜不到,或复制出错。这是由文字层工作方式决定的边界,不能把“可搜索”理解成“已经校对正确”。

Tesseract 本身接受 PNG、JPEG、TIFF 等图片,仓库特别说明其图像读取库不负责打开 PDF。因此,对已有扫描 PDF,需要先有把页面转成图片的环节;不能把文档里的图片示例命令直接换成任意 PDF 路径,就当成完整 PDF 转换方案。

需要核对时,保存词与位置的关系

同一份官方文档还展示了 TSV。结果不仅有 text,也有 page_num、段落和行编号,以及 left、top、width、height。示例中的词 “The” 对应一个具体矩形框,并带有置信度;页面、区域等结构行则可能使用 -1,它不是低质量词的同义词。

由此可以搭一个很具体的校对流程:显示某行识别文本,按坐标打开原图对应区域,让人核对数字或姓名。这里的界面需要另外开发,Tesseract 只提供原料。hOCR 也保存页面、行、词层级,在 HTML 标记中携带位置和词置信度,适合需要保留结构的下游;只存 TXT 就没有这些定位信息。

中文资料要选语言数据,而非依赖默认值

项目 README说明当前稳定主版本为 5,项目包括引擎和命令行程序,不包含 GUI。默认识别语言是英语;官方语言数据说明列出简体中文 chi_sim、繁体中文 chi_tra,需要安装相应的 traineddata 并显式选择。混合语言可用加号组合,但官方也提醒语言顺序会影响输出与用时。

语言数据还有 tessdata_fast、tessdata_best 等不同系列。后两者只支持 LSTM 引擎,不能与旧式引擎参数任意搭配;其速度与精度说明来自官方特定评估,不代表中文档案的固定准确率。代码采用 Apache 2.0,图像质量仍会影响识别。

对资料归档来说,可以先确定自己最终要交付的东西:让人搜索原扫描页,保存 PDF;让人逐处校正识别文字,同时保存 TSV 或 hOCR。把原图与识别结果的关系留下来,后续纠错就有了具体落点。

原始资料:Tesseract OCR 官方产品资料与使用说明

以上为编辑整理,功能、许可与使用条件以官方说明为准。

返回每日分享