实现数据提取快速配置(适用于简单类型的文档)是ABBYY FlexiCapture Engine 10.0这个软件开发工具包的一大特点。为了让用户可以充分使用该功能,ABBYY FlexiCaptureEngine 10.0中特意配置了API。此外,我们还创建了一个易用工具(也提供了源代码形式),使用这个工具,用户可以在几分钟内创建数据提取解决方案模板。
这篇文章由开发人员撰写,并面向开发人员介绍了这项技术的特点和局限性——这些内容在宣传材料中是找不到的。
限制数据捕获技术推广的原因之一是:用户需要在最初投入时间和精力来使用这个软件处理某些类型的文档。为此,开发人员/ 集成人员需要掌握大量新工具,并熟悉数据采集技术的细节;然后,他们才能创建解决方案模板并评估整个项目的效益。
有了这套新工具以后,用户就暂时不必了解数据采集技术的细枝末节。这项新功能并不能完全取代FlexiLayout Studio,但用户可以利用它完成简单的识别任务,提取必要的数据,或为复杂的识别任务创建简单实用的模板。
要使用API提取数据,只需书写几行代码,其中包括以下内容:
// 创建FlexiCapture处理器,并使用一个或多个文档定义文件来配置处理器
IFlexiCaptureProcessorprocessor = engine.CreateFlexiCaptureProcessor();
processor.AddDocumentDefinitionFile(sampleFolder + "Invoice_eng.fcdot" );
这行代码用于配置FlexiCapture工具,使之能够处理特定类型的文档。
扩展名为FCODT(FlexiCapture文档模板)的文件中包含了对数据提取对象及应用限制的描述、在图像中定位相关数据的方法、识别设置以及导出设置(可选)。该文件是使用Flexilayout Studio工具在FlexiCapture中创建的。
处理样本任务很容易。但我们如何才能针对现实中的数据识别任务,创建精确的文档定义呢?
在ABBYY FlexiCapture10发布之前,您需要安装FlexiCapture桌面版,并学会使用其文档定义工具和FlexiLayout Studio。同时,该最新版本中包含“自动生成模板”的软件向导,您可以利用向导在几分钟之内创建出有效的模板。下面,我们结合实例来看看它的工作原理。
问题
假设我们想开发一个将发票登入某会计系统的应用程序。我们需要处理一批发票扫描文件。首先,我们将选出相同类型的发票,用来为我们的应用程序创建一个文档识别模板。
以下是ABBYYFlexiCapture Engine 10.0在实际应用中的不足和潜力:
•它无法创建一个适用于所有发票的通用模板:该模板只能够从结构类似的发票(最好是来源相同)中捕捉数据;
•它无法描述复杂的结构(如表格)——这样的工作只能在FlexiLayout Studio中完成;
•但是,它创建的模板可以提取“扁平化”数据,如发票编号、日期、金额等。
解决方案
首先,我们需要创建一个文件夹,选择3-5张要处理的图片放入其中。这些训练图片(training images)必须非常清晰,几乎没有颗粒,这样我们才能基于理想的数据识别任务创建模板。
1.打开模板生成器,然后选择训练图片所在的文件夹:
选择训练图片所在的文件夹。如果您以前使用过该文件夹,您可以继续训练现有的项目。
2. 选择语言:
选择名称和语言
选择文档类型的名称,以及图像整体分析所用的语言。
3. 选择要导出的数据字段,并命名:
选择数据字段
用鼠标框出要提取数据的一个或多个数据字段。
4.现在到了整个过程中唯一较为复杂的步骤:创建参照元素。参照元素是图像中的一些固定对象,根据它们可以确定可变数据字段的相对位置。数据字段的标题通常是很好的参照元素(以截图为例)。
特别注意:并非每个数据字段都需要参照因素。事实上,参照元素太多会导致页面混乱;对于某些文件来说,一个参照元素就足够了。
参照元素文本可能会有所不同:例如有些发票可能使用“总和”,而不是“总量”;出现这种情况时,应在训练阶段将这俩视为同义词。此外,参照元素文本应该是唯一的——比如,如果文档同时包含“合计”和“价税合计”,则不应使用“合计”作为单独的参照因素。
选择参照元素
找出大多数此类图片共有的某些属性。最好选择一些简短独特的文本标签,如表头或字段描述。用鼠标框出这些属性。
5.接下来,检查剩余训练图片的布局;系统已经根据训练结果生成了一个布局(layout)。此时,我们需要纠正其中的各种错误:调整字段位置、删除多余的字段并恢复丢失的字段。在示例中,检查第一张图像之后,没有发现错误,但识别时出现了小问题。
特别注意:许多数据识别问题应该归因于我们使用的默认设置,此时最好能调整这些默认设置(如指定要使用的字体、限制可能出现的字母,等等)。
特别注意:有些图像中可能不包括某些字段。
特别注意:您可以通过“模板\修改语言和字段”菜单随时编辑要选择的语言和字段。