秒懂小常识新东游正规平台房卡包(新美人房卡包如何购买)

  ABBYY FlexiCapture Engine能够为用户的软件解决方案提供嵌入式图像数据提取技术,降低开发成本。

  本文将从程序员的视角来介绍如何使用该SDK:让您有机会与API亲密接触,并向您传授独家秘诀,让您可以将此SDK轻松自然地集成到大多数应用程序(桌面程序、服务器、云系统等)中去。

  ______________________________________________________________________

  首先,我们来了解如何使用FlexiCapture Engine(这种情况非常适合于简单的桌面应用程序)进行基本的图像数据提取,然后,我们将探讨在此基础上可以作哪些改变,以便适应用户的应用需求,以及实现方式。

  宣传材料介绍的图像数据提取流程如下:

  代码如下所示(参见注解):

  [C #]

  // 载入当前进程FCEngine

  IEngineLoader engineLoader=New FCEngine.InprocLoader();

  IEngine Engine=engineLoader.Load(serialNumber, “” );

  // 创建处理器实例,并进行设置,添加一个或多个文档定义

  IFlexiCaptureProcessor=Engine processor.CreateFlexiCaptureProcessor();

  processor.AddDocumentDefinitionFile(sampleFolder + “Invoice_eng.fcdot”);

  // 将图像文件添加到内部处理队列

  processor.AddImageFile(sampleFolder + “Invoices_1.tif”);

  processor.AddImageFile(sampleFolder + “Invoices_2.tif”);

  // 开始识别,获得首个(也是唯一的)结果文档

  IDocument document=processor.RecognizeNextDocument();

  assert(document!=null); // 没有处理错误

  assert(document.DocumentDefinition !=null); //定义文档类型,提取数据

  assert(document.Pages.Count==2 ); //两个图像都添加到文档中

  //获取并使用提取出来的数据

  string=InvoiceNumber Documents.Sections[0].Fields[0].Value.AsString; //为简单起见,通过索引来访问

  现在,我们来详细介绍这个应用的每个步骤,它们分别对应于上述各个代码段:

  下载 FlexiCapture Engine

  加载对象就相当于加载引擎并初始化可执行模块,按照规则,只需在启动或首次使用时执行此操作即可。

  有几种加载方案。如上例所示,Engine可以直接加载到主进程中,这适用于简单的桌面应用程序。另外,也可以通过独立的进程加载Engine,这样可以提升可靠性,对于服务器解决方案,推荐使用这种方案。

  当通过独立进程启动Engine时,您就可以管理该进程的优先级别和运行时间。您也可以创建一系列进程,此时这些进程会同时运行Engine,它们彼此完全独立,而且会周期性地循环。(代码示例中提供了现成的系列进程实现代码。)

  Engine的使用几乎不依赖于加载方式,所以相同的代码可以重复使用,但您可以选择易于执行的加载方式。

  创建和配置 CPU

  

  FlexiCapture Processor是一种小型可配置的处理对象,它接收输入图像,并将它们转换成包含输出数据的文件。在单个进程中,这种对象的数量只受可用资源的限制。可 (色彩)选择在正式场合所戴的手表,其色彩应力戒繁杂凌乱,一般宜选择单色手表、双色手表,不应选择三色或三种颜色以上的手表。不论是单色手表还是双色手表,其色彩都要清晰、高贵、典雅。金色表、银色表、黑色表,即表盘、表壳、表带均有金色、银色、黑色的手表,是最理想的选择。金色表壳、表带、乳白色表盘的手表,也能经得住时间的考验,在任何年代佩戴都不会落伍。 (图案)除数字、商标、厂名、品牌外,手表上没有必要出现其他没有任何作用的图案。选择使用于正式场合的手表,尤其需要牢记此点。倘若手表上图案稀奇古怪、多种多样,不仅不利于使用,反而有可能招人笑话。以在每次使用前新建处理器,也可以将处理器存储在缓存中(这样可以节省加载布局所用的时间)。

  要启动处理器,需要指定一组文档布局。你可以如示例中那样,直接上传存储在磁盘文件中的现成布局,也可以通过存储器(应用程序资源、数据库、共享的网络存储器等)上的字节流上传布局。您还可以临时从头创建文档定义,或者基于“灵活”或“固定”的几何布局描述创建文档定义。(一般建议使用事先创建并经过visual FlexiCapture工具调试过的模板。在有些情况下,可能需要通过API创建或修改定义。例如,如果你要处理一批类似的表格,表格的几何布局随年份而不同,但数据语义或多或少都相同,那么,为了简化维护工作,你就可以这样做)。

  通过使用多个处理器,我们可以进行多级处理,其中一个处理器在入口处基于一些简单的规则对文档进行基本分类,并将结果传送到某个专用处理器那里,这个专用处理器会检测出文件的准确类型并提取数据。当需要处理大量不同的文件类型时,这种方法可以提高性能。此外,多个专用处理器可以并行工作,从而进一步提升整个解决方案的处理能力。

  输入图像

  处理器可以接受一系列图像。在最简单的情况下,可能正如示例中一样,它们只是一些文件链接 – 这些链接会被添加到处理器的内部队列中。您还可以创建一个自定义原始图像队列,将其输入到处理器中。

  经处理器请求,自定义队列可以提供指向图像文件(存储器流)或被下载图像(FlexiCapture Engine内部格式)的链接。根据最新方案,您还可以先对图像进行预处理(使用内置的成像工具或自定义算法),然后再发送给处理器。此外,用户在自定义队列时,可以让处理器等候下一个图像出现(描述如下)。

 

  操作循环

  在上例中,系统只需要识别一个文件,这是个很普通的任务。然而,在更多的情况下,我们可以在此创建一个处理循环,系统每次从队列中选择一列图像,将其转化成与之对应的一个最终文档或者错误(无法访问图像、图像破碎等)。

  通过自定义队列和图像处理循环,处理器可以拉式接收图像,它会将图像从队列中“抽”出来,而且在加载下一幅图像时可能会挂起。

  一个图像队列也可以同时由多个处理器进行处理,因此非常容易实现并行化处理(多个CPU同时不间歇地从队列中“抽取”图像加以处理,在示例中可以找到这种方法的实现编码)。

  处理结果

  处理器会生成输出文件,文件中包含树状结构,节点上储存着提取的数据以及图像页面,页面几何布局显示出被搜索数据的位置。

  文档中的数据可以直接检索,或独立存储在文件或数据库中(包括图像的必要组件),或进行进一步的处理。您还可以通过内置的导出工具将数据导出为它所支持的文件格式。

  您也可以将文档作为中间结果保存为文件或存储器流,后期再封送或进一步加工。比如,后期再使用内置的验证工具核查数据。

  通过内置的验证工具,可以将数据分组,从而尽可能地减少手动验证大量数据所需要的时间。除这个方法以外,通常还可以通过编程轻松地完成验证(绕过文件,对照数据库、字典、校验和等来验证数据)。

  自定义引用解析机制

  在上例中,我们使用引用链接,以文件系统路径的形式来引用文档定义文件和图像文件。使用引用链接通常很方便,您可以推迟加载对象,直到必要的时候再加载。链接在进程之间传递起来也更为容易。

  通过重新定义引用解析机制,您完全可以根据自身的需求,重新设计处理器的引用处理规则。将链接简单地当做字符串,对此机制而言不会导致任何混淆。链接可能是URL或数据库中的标识符,也可能是两者的组合并具有协议标识。引用解析机制只需找到路径对应的本地磁盘(临时)文件或存储器字节流即可。

  此外,通过引用也定义了返回对象的保存期管理协议(以便及时地删除临时文件和从存储器上卸载对象)。

  结论

  产品介绍中的应用示例涵盖了本文描述的大多数问题。这样,使用ABBYY FlexiCapture Engine技术的开发人员就可以立足于业已成熟的工作方案,根据自身的需求在此基础上加以改进。应用示例包括下列应用程序:

  1.桌面应用程序(使用单独的处理器,直接下载到用户进程中,图像为磁盘上的系列文件)

  2.高性能的多线程服务器程序(多个CPU从共享队列中提取图像)

  3.Web服务(多个处理器同时处理客户端请求)

  还有一段代码是专门为程序员写的,它包含许多现成的小脚本,这些脚本和开发人员当初设计得一模一样,并已经完成了测试。

  我们还提供了一个很好的帮助文档,它详细描述了所有的对象、方法及其应用。

  如果您想了解有关ABBYY FlexiCapture Engine的更多信息,可以查看online ABBYY。

  开发人员产品部Alexei Kalyuzhny

换言之,以华为为代表的智能手表厂商们目标非常明确,当智能手表诞生多年,已经过了“推广普及”的阶段后,现在他们的目标群体其实是那些佩戴传统豪华手表的高收入群体。对这些用户来说,他们佩戴的高价手表虽然有饰品价值,但缺少智能化,不能带来健康监测等实用功能;因此华为打造的高端智能手表一方面提供智能化能力,一方面也要打造奢华感,能达到饰品价值、带来身份认同。有了前面的数据支撑,我们知道这样的思路其实是行得通的,甚至可能是智能手表品类未来发展过程中,为数不多真正行得通的办法。在低端价位,智能手表已经无法做出功能上的差异化,加上供应链的成熟让不同品牌之间的产品拉不开体验差异,想内卷都不知道如何内卷;智能手环的快速成熟、功能越发增多,大有取代低端智能手表的态势,未来智能手表专攻高端领域,似乎已经无法避免。

原创文章,作者:leping,如若转载,请注明出处:https://www.zhjiashun.com/zjsb-68288.html

(0)
上一篇 2023年6月25日 13:52
下一篇 2023年6月25日 13:55

相关推荐