提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:龚雪|2015-07-07 09:36:30.000|阅读 337 次
概述:在本白皮书中,我们将讨论处理大量主表单的若干种策略,以及如何使用LEADTOOLS表单识别SDK快速准确地处理表单。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
无数公司使用纸质表单收集顾客、病人、学生的信息。表单的自动识别应用非常广泛,从一个简单的明信片到复杂的多页税单都能使用,同时它还节省了时间和财力。然而,大型企业如金融机构、政府机构和医院每天都要处理大量的表单,这会导致一些特殊的问题,若想正确有效的解决这些问题,必须有好的计划、合理的表单设计和正确的软件。
首先,在任何表单处理应用程序中有两种不同的表单:主表单和填写的表单。主表单是空模板,定义了从哪里提取数据。客户填写并提交填写好的表单,这些表单会与主表单比较(如,表单识别或分类),然后提取数据(如表单处理)。在任何组织中大量填写的表单都非常常见,但是大企业面临的特殊问题是存在大量的主表单。数以百计甚至数以千计的主表单需要指数级的处理时间。表单中可能存在相似的部分造成识别出错,因此准确率也会降低。
本白皮书中,我们将讨论处理大量主表单的若干种策略,以及如何使用LEADTOOLS表单识别SDK快速准确地处理表单。LEADTOOLS结合了多线程、云计算、条码和两阶段分类识别,因此创建的表单识别和处理程序可以处理任何大规模场景。
当今,使用多线程提高速度是不言而喻的。然而,确保你的应用程序充分利用了硬件提供的一切也是必须的。大多数SDK厂商意识到了这点,并以库的“线程安全”招徕顾客。但是一些客户可能没有理解这个表述有多模糊,因为他们没有保证这到底是怎么回事。很有可能“线程安全”功能被划分的非常简单,因为它强行运行在一个单独的线程上。
LEADTOOLS与它们不同的地方在于:可以非常简单、集成化和容易的支持多线程控制。无需大量创建线程、无需传递信息时还要确保没有缓冲区溢出、没有内存泄露,一切都正常运行。初始化AutoFormsEngine时为核心系统上的每一个处理器传递一个IOcrEngine,LEADTOOLS会为你处理接下来的事情。
// 为机器上的每一个处理器创建一个OCR引擎。允许在识别和处理过程中优先使用线程。 ocrEngines = new List<IOcrEngine>(); 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, masterFormsFolder); autoEngine = new AutoFormsEngine(formsRepository, ocrEngines, null, AutoFormsRecognitionManager.Default | AutoFormsRecognitionManager.Ocr, 30, 80, true);
LEADTOOLS Cloud SDK基于与多线程一样的基本原理,但是使用电脑网络将大量工作进行下一级别的分发。通过设计和控制自己的云端基础架构,识别速度的提升几乎是没有限制的。
在云上执行处理器集中任务的好处远远超出了效率和速度。你还可以显著减少运营成本,因为你的网络上的任意电脑都可以作为一个工作机器使用。当数以百计的电脑可以集合资源时,为什么要购置昂贵的专用服务器呢?LEADTOOLS充足的自定义让你能够利用正在使用的工作站上的未使用的处理能力。专注于电子表格和文字处理的员工真的充分利用了八核处理器的价值吗?你可以选择最大的CPU百分比、CPU核数、线程的数量 - 甚至一天的时间 - 这样你的工作进程利用了员工的机器,同时还没有阻碍他们的日常工作。云在处理填充表格的大量流时让人非常惊讶,但是网络上的每个节点仍有可能被大量主表单阻碍。既然你已经最大化了硬件的潜力,就必须专注于设计主表单,继续提高企业级表单识别应用程序的速度。
条码可能是将一个表单与其他大量表单区分开的最快速直接的方法。最明显的好处是,条码将大量信息存储在一个小空间里。尤其是二维码,如QR码能够存储4296个字母数字字符。尽管这个独特的标识符很小,但是它们提供了一个非常实用的手段,以最小的变化适应大量的在生产表单。
如果你可以使用简单的条码识别来识别表单,为什么要使用表单识别呢?使用表单识别可能乍一看有点夸张,但是LEADTOOLS高级的表单识别和处理技术有很有超出分类的好处。如果你打算使用OCR识别表单中用户提供的信息字段,必须采用额外的步骤准确提取信息。这包括但是不限于:图像清理、页面对齐、不同DPI的补偿偏移量以及识别提取的文本。实现这些步骤是一个艰巨的任务,需要成千上万行复杂的代码,但是使用LEADTOOLS用很少的代码就能自动完成。
// 创建AutoFormsEngine来使用条码识别 autoEngine = new AutoFormsEngine(formsRepository, ocrEngines, null, AutoFormsRecognitionManager.Barcode, 30, 70, true); // 在文档中运行表单识别和处理 AutoFormsRunResult runResult = autoEngine.Run(document, null);if (runResult != null) { // 处理识别的表单,提取需要的信息 foreach (FormPage formPage in runResult.FormFields) { foreach (FormField field in formPage) { // 使用提取出的字段数据... } } }
对于异常庞大的场景,运行表单识别算法两次通常更快一些:第一次确定类别,第二次在类别中识别表单。减少与填充表单比较的主表单数目可以节省时间。
例如,你的公司在多个国家或地区开展业务。每个区域使用相似的表格,但是有轻微的变化如联系信息、logo或字段。当设计表单时,识别和修正模板图像间的不同,创建一个类别主表单,如下图所示。
看看上面的示例,你会发现当我们对填充表单3进行两阶段识别时,它首先被确认为B类,在第二阶段与所有B类的其他表单进行比较,最后确认为表单3。使用LEADTOOLS,你可以缩小表单识别算法,只搜索库中指定的类别。尽管两阶段识别看起来是个很复杂的过程,但是代码却非常简单:
// 第一阶段我们识别类别 recognizeResult = autoEngine.RecognizeForm(filledForm, formsRepository.RootCategory.ChildCategories.Where( i => i.Name == "Categories").ToList()); if (recognizeResult != null) { // 第二阶段在已确认的类别里识别表单 foundMasterFormCategory = recognizeResult.MasterForm.Name; recognizeResult = autoEngine.RecognizeForm(filledForm, formsRepository.RootCategory.ChildCategories.Where( i => i.Name == foundMasterFormCategory).ToList()); if (recognizeResult != null) { foundMasterForm = recognizeResult.MasterForm.Name; } }
上面的例子非常简单,只有两个类别且每个类别只包含两个表单,速度的优势很难体现出来。然而,当处理包含成百上千个主表单的库时,优势非常明显。LEADTOOLS将精心设计的主表单与屡获殊荣的文档图像技术相结合,你可以使用它创建任何大型企业要求的在减少时间和成本上都有突破的表单识别应用程序。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢