问题标签 [hocr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tesseract - 在 hocr 输出中获取准确的字体大小
我正在使用 Tesseract 从大量页面中提取文本和格式,如下所示:
(我的原始图像是 1200 DPI;我已降低到 600 DPI 并重新编码以保持文件大小正常。)
当本书使用块引用时(例如占据本页左栏大部分的引用),最显着的区别是字体大小略小。
问题是当我在我的 hocr 配置文件中将 hocr_font_info 设置为 1 时,xml 输出会产生如下的单词标签:
x_fsize 属性通常在小行上为 6,在较大行上为 7,但 Tesseract 有时会将值 7 分配给较小的行 - 并且会为整行分配值,所以我不能依赖相邻的单词解决问题。(在某些情况下,我可以使用相邻行,但并非总是如此。有时我会处理一个孤立的文本行,所以如果可能的话,我真的需要精确的大小。)
在我的字体大小中获得更多粒度的最佳方法是什么?在紧要关头,如果我有每个字符的确切高度和宽度,我可能会过得去,尽管带有小数位的字体大小(例如“x_fsize='6.62'”)会更容易使用。
linux - 如何在 tesseract 4 中启用 hocr 字体信息?
我在 ubuntu 16.04 上使用 tessseract 4。因此,当在 tesseract 中使用 hocr 功能并在 hocr 配置文件(hocr_font_info 1)中激活字体信息后,我仍然没有得到“x_font”信息。
有没有其他方法可以在 tesseract4 中启用字体信息?
json - 将 hOCR 格式的文本转换为 Json
尝试实现一个 java 类来将 hOCR 输出从 Tesseract 转换为 JSON 格式的数据。目前,我们将 Abbey 用于我们的 OCR 服务,它们为 OCR 图像上的 Words 位置返回 JSON 格式的数据。但是 Tesseract 只返回 hOCR。所以需要转换 tesseracts 输出以匹配 Abbey 的输出。
xsl-fo - 有没有办法用 HOCR 输入文件生成 FO?
有没有办法创建一个 XSL-FO,它可以将使用 tesseract 生成的 HOCR 作为输入,以生成带有可搜索文本的 PDF?
tesseract - 带有 Tesseract 的 hOCR 文件 / 确定 PDF 是否具有高质量的文本层
我有一个 Tesseract 4.0 设置,我们正在使用用于 OCR 的 LSTM 模型;传入的扫描 PDF 被解构为单独的 300dpi 上采样 PNG,然后进行去偏斜和 OCR 处理,然后重新组合成带有文本层的 PDF,同时还保存每个页面的 PNG 以便在网络浏览器中进一步显示。
有时我们会收到已经用文本图层进行专业转录的 PDF,在这些文件上运行 Tesseract 会导致准确性下降。
我们还需要稍后根据特定标签对 PNG 页面的某些部分进行分类,以用于机器学习应用程序。
所以问题将是这些:
1)有没有办法确定PDF是否已经有文本层并确定该文本的准确性?
2) 是否可以将已经包含文本图层的 PDF 分解为单独的每页 hOCR 文件,以便可以使用边界框和从相应 hOCR 文件中为该区域检索的文本突出显示 PNG 格式的这些页面的特定区域?
3) 当使用 Tesseract 将 OCR 文本保存为 hOCR 格式时,这是否提供了足够的信息,以便能够从 hOCR 文件中检索与创建 hOCR 文件的 PNG 上的确切区域相对应的任意文本块?
提前致谢
python - 从 tesseract hocr xhtml 文件中提取数据
我正在尝试使用 Python 从 Tesseract 的 hocr 输出文件中提取数据。我们仅限于 tesseact 3.04 版,因此没有可用的 image_to_data 函数或 tsv 输出。我已经能够使用 beautifulsoup 和 R 来做到这一点,但这在需要部署它的环境中都不可用。我只是想提取单词和信心“x_wconf”。下面是一个示例输出文件,我很乐意返回 [90, 87, 89, 89] 和 ['the', '(quick)', '[brown]', '{fox} ','跳跃!']。
lxml 是环境中元素树之外唯一可用的 xml 解析器,所以我对如何继续感到有点茫然。
python - 使用 Python 将 hOCR 解析为 JSON
我正在使用 tesseract-ocr 并以 hOCR 格式获取输出。我需要将此 hOCR 输出存储到数据库中(在我的例子中是 PostgreSQL)。
由于我可能需要单独来自此 hOCR 的每条信息(其中 80%),这将是正确的方法?它应该存储为 XML 数据类型还是解析为 JSON 并存储?如果是 JSON,如何使用 Python 将此 hOCR 解析为 JSON。其他相关建议也值得赞赏。
ocr - 限制 Tesseract 中的空间大小
我用 Python 编写,如果需要,使用pytesseract
或直接Popen
调用。
我尝试对具有不规则结构的文档进行 OCR,一封如下所示的字母:
问题出在.hocr
Tesseract 生成的文件中,我得到由左右列组成的行,如“收件人:发件人:”
我想要实现的是从左列和右列分开的输出。如果有合理的详细解释,使用第三方 Python 实用程序对图像进行预处理是一种可接受的解决方案。该脚本必须是自主的,并且以某种方式检测到此问题,因为并非所有字母都有这种奇怪的格式。
尝试/想法:
用于--psm 1
允许输入格式检测 - 对默认值没有改进,可能是因为结构太复杂。
调整一些配置文件选项,例如gapmap_use_ends
和textord_words_maxspace
- 我找不到关于这些的好的文档,并且可能存在正确的值组合,但有 57 个选项名称为“空格”......对这些的任何见解将不胜感激。
编辑.hocr
- 不确定如何为不干扰其他任何地方的正常文本的单词框编写适当的分组规则......
tesseract - 如何使斜杠在 HOCR 输出 (Tesseract OCR) 中充当单词分隔符?
有没有办法告诉 Tesseract OCR 将某些字符视为 HOCR 输出中的单词分隔符?
例如,假设我有一份关于 Scranton/Wilkes-Barre RailRiders 的文档,并且我希望将斜杠视为单词分隔符。所以代替这个输出:
我需要看起来像这样的输出(估计 bboxes):
我尝试了两种可能的解决方案:
将“tessedit_char_blacklist”设置为“/”。这不起作用,因为 Tesseract 只是将斜杠更改为小写 L。
将“chs_trailing_punct1”设置为“).,;:?!/”(默认字符加上斜线)。这根本没有改变输出。