的LEADTOOLS形式认可和表单处理Engine为开发人员提供了一套全面的高级工具,以最少的编码创建表单识别和处理应用程序。它快速、准确、可靠。
一般来说,a形式认可处理系统执行以下步骤:
LEAD提供以下两个级别的功能:
的LEADTOOLSAutoFormsEngine是一个优化实现的识别和处理系统。它建立在低级引擎之上,自动创建表单属性,将其与存储库中的主表单进行比较,并处理表单字段。为了加速识别和处理,LEADTOOLSAutoFormsEngine
还可以利用多核处理器在设置为使用其多线程模式时的优势。的Leadtools.Forms.AutoNamespace提供了一组丰富的类、接口和方法,可以减少以下操作的实现时间:
AutoFormsEngine
自动对齐已识别的表单并处理其字段。这些字段将使用处理结果进行更新。AutoFormsEngine
自动对齐已识别的页面并处理其字段。这些字段将使用处理结果进行更新。虽然大多数ECM(企业内容管理)系统可以同时利用识别和处理,但每个识别或处理步骤都有一个非常具体的任务工作流。
形式认可是在没有人工干预的情况下自动识别任何未知形式的名称、类型和ID的过程。只要被识别的表单存在主表单,LEADTOOLS识别引擎就可以快速准确地将其与无限数量的预定义主表单区分开来。该引擎使用极其精确的算法来提取独特的特征(属性),并将它们存储在XML文件中。这个文件是可移植且高效的:因为不再需要为主表单存储所有原始映像,所以可以回收磁盘空间。在为您希望处理的所有表单创建主表单之后,就可以为所有表单自动化识别过程了。使用哪种来源(档案,扫描仪等)或分辨率不再重要;不管这个形状是变形的,还是电脑生成的等等,都无关紧要。
LEADTOOLS识别引擎是业界领先的识别引擎。有了它,程序员可以针对要处理的特定类型的表单对引擎进行微调。在创建主表单时需要考虑许多因素属性,包括文本、条形码和表单中的唯一对象。
LEADTOOLS创建了独特的子引擎,称为对象管理器,以处理所有这些不同的因素。一个对象管理器允许您选择在创建主表单时应该考虑的因素属性。你可以用单杯对象管理器,或一组。每个管理器都有一个独特的目的:选择合适的管理器将提高绩效和准确性形式认可。例如,如果期望所有表单都具有唯一的条形码,那么很可能只有条形码管理器是必要的。其他经理也一样,但是条形码管理器将是唯一必要的(可能节省使用其他引擎所花费的处理时间)。
除了自动创建表单属性通过不同的对象管理器,引擎可以突出显示表单中的重要信息,例如公司或表单名称。无论使用哪个对象管理器,引擎都会为您提供有关识别的全面结果,包括每个表单的置信度。的形式认可引擎提供了以下“对象管理器”:
表单识别基本上通过创建来工作FormRecognitionAttributes对象主形式和你想要认识的形状。然后运行与存储库中的主表单的比较。主形式选择基于比较返回的置信度值。如果特定比较的置信度值高于指定的最小置信度值,则停止搜索以节省不必要的表单比较的时间。以下一般步骤概述了如何在一个或多个页面上执行表单识别。
SetLicense ();
//设置包含主表单的文件夹名称
字符串根=@“C: \ LEADTOOLS21 \资源\ \ \ MasterForm集形式\ OCR图像\”;
RasterCodecs =新RasterCodecs ();
DiskMasterFormsRepository repository =新DiskMasterFormsRepository(编解码器、根);
//创建OCR引擎实例,并使用LEADTOOLS OCR模块- LEAD引擎
ocreginengine = ocreginmanager . createengine (ocregintype . lead);
//启动OCR引擎
ocrEngine。启动(零,零,零,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);
//创建Main BarcodeEngine实例
BarcodeEngine =新BarcodeEngine ();
AutoFormsEngine
类。//创建主AutoFormsEngine实例
AutoFormsEngine =新AutoFormsEngine(repository, ocreengine, barcodeEngine, 30,80;真正的);
//设置识别选项
autoEngine。RecognizeFirstPageOnly =真正的;
autoEngine。minimumconfenceknownform = 40;
//获取要处理的文件列表
字符串[] files =目录。getfile (@"C:\LEADTOOLS21\Resources\Images\Forms\Forms要被识别\OCR\",“* .tif”);
//调用包含主识别进程的函数
processfile (autoEngine、文件);
调用AutoEngine。运行
同时识别和处理形式,或调用AutoEngine。RecognizeForm
只认识形式。下面的代码显示了如何处理AutoFormsEngine
类在多线程应用中:
私人静态无效processfile (AutoFormsEngine autoEngine,字符串[]文件)
{
控制台。WriteLine (“开始处理文件……”);
//获取要处理的文件数
intfileCount = files.Length;
//当所有工作完成时通知我们
使用AutoResetEvent =新AutoResetEvent (假))
{
//循环遍历指定文件夹中的所有文件
foreach(字符串文件在文件)
{
//捕获文件名,因为我们使用的是匿名函数
字符串fileToProcess = file;
//在线程中处理它
ThreadPool.QueueUserWorkItem((国家)= >
{
试一试
{
//显示名称
字符串name = Path.GetFileName(fileToProcess);
控制台。WriteLine (处理“{0}”、名称);
//处理
AutoFormsRunResult result = autoEngine。运行(fileToProcess零);
//检查结果
如果(结果。形式场s !=零&& result.RecognitionResult.MasterForm零)
控制台。WriteLine (字符串.Format (" Master Form Found \"{0}\" for {1}", result.RecognitionResult.MasterForm。名称,名字));
其他的
控制台。WriteLine (字符串.Format (“b{0}找不到主表单”、名称));
}
抓(异常交货)
{
控制台。WriteLine (“错误”{0}, ex.Message);
}
最后
{
如果(联锁。衰减率(裁判fileCount) == 0)
{
//完成后,通知主线程
finishedEvent.Set ();
}
}
});
}
//等待所有操作完成
finishedEvent.WaitOne ();
控制台。WriteLine (“已完成的加工文件”);
}
}
有关识别表单的详细大纲,请参阅识别和处理表单的步骤
表单处理是从表单中的预定义字段提取已填入的数据信息的过程。每个页面都定义了字段,因此可以很容易地创建由多个页面组成的表单的字段,并从所需的字段/页面提取其数据。每个字段包含以下内容属性与之相关的:
场无论图像分辨率、比例或其他形式生成特征如何,都可以处理信息。无论使用哪种字段类型,引擎都会提供处理的综合结果,包括每个结果的置信度值。表单处理引擎提供了以下字段类型:
OcrFormField
键入、文本或Omr。表长度不能固定:表长度在处理过程中自动扩展,以检测表的所有行。除上述预定义外场类型,处理引擎允许您创建自己的自定义字段,以满足您可能拥有的任何独特需求。
AutoFormsEngine
。AutoFormsEngine
只能使用OCR引擎,并使用LEADTOOLS OCR模块- LEAD引擎。AutoFormsEngine
。
低级形式认可可以设计用于识别和表单比较的自定义算法。鉴于高层形式认可搜索满足或超过“最小值”的第一个表单信心值,低级的形式认可对存储库中的所有主表单执行搜索,以查找具有最高置信度值的表单。注意,这需要加载存储库中的所有主表单。
下面概述了在一个或多个页面上执行表单识别所涉及的一般步骤。
FormRecognitionEngine
使用表单识别引擎类。主形式属性是否可以加载并保存到磁盘GetData
和SetData
方法。在大多数情况下,应该保存所有主表单属性到磁盘。然后,当识别一个填表格,加载每个主表单属性文件并将其与属性要识别的表单的,以查看哪个返回最高的置信度值。注意,搜索必须在存储库中的所有主表单上执行。有关使用表单识别的简单教程,请参阅识别的形式。
低级表单处理使自定义对齐和处理成为可能。下面概述了在一个或多个页面上执行表单处理所涉及的一般步骤。
属性将字段加载并保存到磁盘LoadFields
和SaveFields
方法。在大多数情况下,应该将每个主表单的所有字段保存到磁盘上。然后,在处理a填表格,从文件中加载适当的表单字段,以便在FormProcessingEngine。有关使用表单处理的简单教程,请参阅处理形式。
对象管理器创建属性的条形码字段主形式。
0到100之间的值,表示对结果的置信度。值为“100”表示完全可信,值为“0”表示不可信。
一个没有特征或属性必需的形式识别。
已识别表单上的预定义区域,您需要从中提取文本、条形码、复选框、图像或自定义数据。
用户在预定义字段中添加到表单中的任何数据。使用LEADTOOLS表单处理引擎,可以从可识别的表单中提取这些数据。
表单是具有需要识别和/或处理的字段和属性的结构化文档。
使已识别的表单与其相应的表单对齐所必需的信息主形式。
类中类似主表单的集合或逻辑分组形式存储库。表单类别可以包含主表单和/或子类别。
以可识别的形式从预定义字段中提取用户填充数据的过程。
表单类别的存储系统。这是集合的顶层。
具有特征或特征的地区属性必需的形式识别。
类中的文本字段创建属性的对象管理器主形式。
将已识别的表单页与控件中的相应页对齐所需的信息主形式。
这是一个非常重要的领域属性必需的形式识别。这些区域用于突出显示公司或表单名称等重要功能。