gpt4 book ai didi

language-agnostic - 文档图像处理

转载 作者:行者123 更新时间:2023-11-30 08:23:05 24 4
gpt4 key购买 nike

我正在开发一个用于处理文档图像(主要是发票)的应用程序,基本上,我想将某些感兴趣的区域转换为 XML 结构,然后根据该数据对文档进行分类。目前我正在使用 ImageJ 来分析文档图像,并使用 Asprise/tesseract 进行 OCR。

现在我正在寻找一些能让开发变得更容易的东西。具体来说,我正在寻找一些东西来自动校正文档图像并分析文档结构(例如,将图像转换为四叉树结构以便于处理)。虽然我更喜欢 Java 和 ImageJ,但我对任何库/代码/论文都感兴趣,无论它是用什么编程语言编写的。

虽然我正在开发的系统应尽可能自动处理数据,但用户应监督结果,并在必要时更正系统建议的分类。因此,我有兴趣使用机器学习技术来获得更可靠的结果。当处理类似的文档时,例如特定公司的发票,其结构通常是相同的。当用户之前更正过公司文档的数据时,将来应考虑这些更正。我对机器学习技术的了解有限,想知道如何实现我的想法。

最佳答案

Mathematica 中的以下原型(prototype)查找文本 block 的坐标并在每个 block 内执行 OCR。您可能需要调整参数值以适合实际图像的尺寸。我不讨论问题的机器学习部分;也许您甚至不需要此应用程序。

导入图片,为打印部分创建二进制蒙版,并使用水平闭合(膨胀和腐 eclipse )放大这些部分。

enter image description here

查询每个 Blob 的方向,对方向进行聚类,并通过对最大聚类的方向进行平均来确定整体旋转。

enter image description here

使用之前的角度来拉直图像。此时 OCR 是可能的,但您会丢失文本 block 的空间信息,这将使后处理比需要的困难得多。相反,通过水平闭合来查找文本 block 。

enter image description here

对于每个连接的组件,查询边界框位置和质心位置。使用边界框位置提取相应的图像 block 并对 block 进行 OCR。

enter image description here

此时,您已获得字符串及其空间位置的列表。这还不是 XML,但听起来像是一个很好的起点,可以直接根据您的需求进行定制。

这是代码。同样,形态函数的参数(结构元素)可能需要根据实际图像的比例进行更改;另外,如果发票太倾斜,您可能需要大致“旋转”结构元素,以便仍然实现良好的“不倾斜”。

img = ColorConvert[Import@"http://www.team-bhp.com/forum/attachments/test-drives-initial-ownership-reports/490952d1296308008-laura-tsi-initial-ownership-experience-img023.jpg", "Grayscale"];
b = ColorNegate@Binarize[img];
mask = Closing[b, BoxMatrix[{2, 20}]]
orientations = ComponentMeasurements[mask, "Orientation"];
angles = FindClusters@orientations[[All, 2]]
\[Theta] = Mean[angles[[1]]]
straight = ColorNegate@Binarize[ImageRotate[img, \[Pi] - \[Theta], Background -> 1]]
TextRecognize[straight]
boxes = Closing[straight, BoxMatrix[{1, 20}]]
comp = MorphologicalComponents[boxes];
measurements = ComponentMeasurements[{comp, straight}, {"BoundingBox", "Centroid"}];
texts = TextRecognize@ImageTrim[straight, #] & /@ measurements[[All, 2, 1]];
Cases[Thread[measurements[[All, 2, 2]] -> texts], (_ -> t_) /; StringLength[t] > 0] // TableForm

关于language-agnostic - 文档图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com