在处理文档识别和表单处理的任务时,经常需要添加或与表单识别接口。然而,识别结果的准确性常常令人感到挫败。表单识别和处理是一个复杂的过程,有许多变量和因素影响着提取字段的准确性。尽管每个文档都有所不同,但大多数文档都存在一些相似的问题,如扫描质量、用户输入的清晰度、识别引擎的质量等,这些都会影响准确性。然而,很少有变量像表单对齐那样具有如此重要的影响。
对齐对于表单识别的准确性至关重要,因为表单字段被限制在主表单上非常特定的位置。因此,即使是微小的差异,比如几个像素或几度,也可能导致光学字符识别(OCR)或光学标记识别(OMR)引擎无法正确识别,除非重新扫描文档或以某种方式修正文档。
使用LEADTOOLS自动纠正对齐问题:
表单对齐本身就是一个多方面的问题,包括三个主要障碍:倾斜角度、偏移边距、扫描分辨率和非线性变形。LEADTOOLS利用其在文档成像行业数十年的经验和研究,使开发者能够轻松纠正扫描文档中的对齐问题。最重要的是,这些校正是自动完成的,只需要几行非常简单的代码。
// 创建一个OCR引擎,为机器上的每个处理器创建一个。
// 这允许在识别和处理过程中最优地使用线程。
ocrEngines = new List();
for (int i = 0; i < Environment.ProcessorCount; i++) {
ocrEngines.Add(OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false));
ocrEngines[i].Startup(formsCodec, null, String.Empty, String.Empty);
}
// 指向包含现有主表单的目录
formsRepository = new DiskMasterFormsRepository(formsCodec, _MasterFormFolder);
autoEngine = new AutoFormsEngine(formsRepository, ocrEngines, null,
AutoFormsRecognitionManager.Default | AutoFormsRecognitionManager.Ocr,
30,
70,
true);
// 在此文档上运行表单识别
AutoFormsRunResult runResult = autoEngine.Run(document, null);
if (runResult != null) {
// 处理识别的表单并提取所需信息
foreach (FormPage formPage in runResult.FormFields) {
foreach (FormField field in formPage) {
// ...
}
}
}
LEADTOOLS认为表单对齐对于表单识别和处理的成功至关重要,因此它自动作为其分类(识别)算法的一部分。这对开发者来说是一个巨大的好处,因为他们可以将更多的时间投入到应用程序的其他领域,而不是研究和调试由于表单未正确对齐而消失的不准确结果的问题。
不要仅仅相信话。让深入探讨这四个表单对齐障碍,它们如何对准确性产生不利影响,以及使用LEADTOOLS将对表单识别应用程序的整体质量产生巨大影响。
如果花过任何时间扫描文档,就会非常清楚纸张并不总是完全直的放下或送入。由于定义表单字段的区域是矩形的,因此很难让填写的文本适应限制性区域。即使是只有一度的微小倾斜角度,一些字段可能仍然落在它们的框内,这取决于它们与旋转原点的接近程度。然而,对于更大的倾斜角度,大多数字段的字符的顶部和底部可能会被剪切掉,或者甚至可能完全出现在一个完全不同的字段的框内。
偏移边距与倾斜角度类似,它是扫描文档时文档定位的问题。当扫描图像的左上角不在正确的位置时,会在扫描图像中添加或减去额外的边距,将所有内容向上或向下以及向左或向右移动,与原始文档相对。平板扫描仪比自动文档送纸器(ADF)更容易出现这个问题,但如果导轨选择不当或纸张滑动,也可能出现同样的不完美。
扫描分辨率在对齐表单中也起着重要作用。扫描文档的DPI(每英寸点/像素)设置了坐标系统,因此可能会弄错字段在位图中的物理位置。例如,在300 DPI图像上的(300,300)点实际上在200 DPI图像上会在(200,200)。
最后,最难克服的对齐不完美是非线性变形。每个扫描仪都不同,可能会在文档的某些区域造成拉伸和收缩,而其他区域看起来正常。这意味着在同一分辨率下扫描的文档可能不会与通过不同扫描仪送入的完全相同的纸张文档对齐。
这最常见的原因是ADF速度的差异。当文档送入扫描仪时,送纸器通常会从慢速开始,加速到全速,一些扫描仪甚至在文档结束时再次减速。这会导致文档的中间部分正确对齐,但顶部和/或底部被拉伸,从而导致字段错位。镜头的变化甚至扫描仪的年龄也可能导致非线性变形。这对于客户来说是一个巨大的问题,因为他们的表单识别通常只有在用与主表单完全相同的扫描仪扫描填写的表格时才能按预期工作。
很少有表单识别SDK能够进行这种高级图像处理,但LEADTOOLS自豪地领先于竞争对手,提供全面的表单识别文档对齐校正。在下面的最终图中,将看到一个已经完全用LEADTOOLS表单对齐校正过的表单。
正如上面所证明的,选择LEADTOOLS作为表单识别引擎有巨大的好处。它的自动表单对齐功能可以纠正倾斜角度、偏移边距、计算不同扫描分辨率的相对坐标,并考虑非线性变换;允许填写表格与主表单完美统一。当这种情况发生时,将获得更高的准确性、更快的处理速度、更多的安心以及更快的应用程序上市时间。