在DLP系统中应用OCR技术的困难,或者我们如何准备OCR

图片 图像识别(OCR)问题的解决方案充满各种困难。 由于非标准配色方案或失真,无法识别该图片。 客户想要无限制地识别所有图像,而这远非总是可能的。 问题是不同的,并非总是能够立即解决它们。 在这篇文章中,我们将根据解决客户实际情况的经验提供一些有用的技巧。

但是首先,有一点历史。 自从发表有关如何重写过滤服务的文章以来,已经过去了很多时间。 在其中,我们讨论了有关过滤和消息处理的问题,以及有关整个过滤服务的安排方式。 这次,我们将尝试回答以下问题:“我们如何处理映像,服务如何交互以及系统在负载下会发生什么?” 如果我们撰写有关过滤服务的文章,那么现在我们将仅考虑服务交互的一个分支-这是过滤服务与OCR的交互。



什么是OCR?


在讨论服务的交互作用和使用OCR的问题之前,让我们尝试了解什么是OCR。 取自维基百科的复杂定义。

光学字符识别(OCR)-手写,打字或打字的文本图像的机械或电子翻译为文本数据,用于表示计算机(例如,文本编辑器)中的字符。

简而言之,他们拍摄了一张照片,将其发送以供识别,然后魔术在霍格沃茨之外,并接收了文字。



您也可以从ABBYY网站获取OCR定义,这看起来更简单。

光学字符识别(OCR)是一项技术,可让您将各种类型的文档(例如扫描的文档,PDF文件或数码相机中的照片)转换为可搜索的可编辑格式。

为什么我们需要(图像识别)?


我们甚至可以在家用PC上使用图像识别将数字图像转换为可编辑的文本数据,但是摆在我们面前的任务要广泛得多(毕竟是DLP系统):我们需要控制组织中的信息流。

DLP系统早已出现在市场上,现在已成为企业信息安全系统(信息保护工具)的一部分。 DLP面临着控制图形信息(扫描的文档,屏幕截图,照片)移动的任务。 不仅要控制图形文件的移动,而且还要首先分析其内容。 该系统应该能够准确地了解所遇到的信息,并将其与受保护信息的样本进行比较,并为用户提供进一步搜索此信息的机会。 使用其他分析工具(例如与数字指纹进行比较,哈希计算,按文件格式,大小和结构进行分析)也是有价值的信息来源,但是它们不允许回答以下问题:“此图片中传输了什么文本?” 同时,文本仍然是结构化信息(包括图形文件)中最常见的载体。

传统上,OCR技术用于识别图形信息(我们已经确定了)。 实际上,OCR通常是提供从图像中​​提取文本信息的能力的唯一一类技术。 因此,与其说是传统方法,不如说是缺乏选择。

每个DLP系统处理多少个图像?


没有OCR,您不能做吗? DLP中真的有那么多图像需要应用OCR吗? 这个问题的答案是“是!”。 每天有超过一百万张图像可以进入系统,并且所有这些图像都可能包含文本。



石油和天然气公司以及政府机构使用OCR作为Rostelecom-Solar DLP系统的一部分。 所有客户都使用OCR来检测扫描文档中的敏感数据。 这样的“时间表”可以包含什么? 是的,什么都可以。 这些可以是各种内部文档的扫描,例如包含PD的文档。 或来自商业秘密,粗纸板(供官方使用),财务报表等类别的信息。

OCR如何识别图像?


该过程如下:DLP截取包含图像的消息(文档扫描,照片等),确定该图像确实存在于消息中,然后提取图像并将其发送给OCR以进行识别。 在输出处,DLP以提取的TEXT / PLAIN的形式接收有关图像内容(以及整个消息)的信息。

如果我们直接在Solar Dozor系统中谈论服务的交互,那么过滤服务会将消息中的图像(如果有)发送到图像文本提取(OCR)服务。 识别完成后,后者会将接收到的文本发送到mailfilter。 事实证明,诸如处理图像和文本之类的东西。



让我们通过在我们自己的DLP中使用的OCR技术ABBYY的示例来更深入地考虑识别机制。

识别文本时,OCR的主要问题可能是字符的拼写。 如果我们采用任何字母(例如俄语或英语),那么对于每种字母,我们都会找到几个拼写选项。 OCR引擎通过多种方式解决了此问题:

  1. 通过模式查找字符。 例如,使用各种拼写字体。
  2. 识别书写字符的符号。

如果您给出一个非常粗糙的工作示例,则OCR会将文本分解为图像中先前标识的字符,并将其强加于现成的模板上。 然后检查该符号是否看起来像模板拼写。 识别出字符后,将使用所使用的编码将其转换为字符代码。 作为此过程的结果,符号被添加到单词中,句子被添加到最终文本中。

关于OCR的工作有很多不同的文章。 您可以在例如https://sysblok.ru/knowhow/iz-pikselej-v-bukvy-kak-rabotaet-raspoznavanie-teksta/中阅读有关OCR工作的更多信息。

如何准备整个OCR以便获得认可?


我们已经发现,可以将超过一百万张图像导入DLP。 但是,这百万美元中的所有图像对我们有用吗?

这个问题的答案是显而易见的-当然不是。 但是,为什么不是所有图像都对我们有用? 这个问题的答案也是非常透明的:邮件中的“走”邮件签名中的许多图片。 大约90%的消息(如果不是更多消息)将包含公司徽标。

这样的图片太小,无法识别;它们中可能根本没有任何文字。 在这里,我们可以建议(甚至强烈建议)对已识别图像的大小设置限制。 在这种情况下,必须在下边界和上边界上都设置限制。 发送重文件进行处理的可能性低于签名中的图片,但仍然很高。

值得注意的是,数字图像通常具有不同的缺陷。 DLP不太可能总是获得高分辨率的文档扫描。 相反,扫描将始终不会获得最佳质量并且存在很多缺陷。

例如,在数字照片中,透视图可能会失真,透视图可能会变亮或反转,扫描线可能会弯曲。 这种失真会使识别复杂化。 因此,OCR引擎可以对图像进行预处理,以准备对其进行识别。 例如,可以扭曲图像,将其转换为黑白,反转颜色并校正线偏斜。 所有这些都可以在OCR设置中进行设置,因此,这些工具可以帮助改善图像中的文本识别。

结果,我们得出了准备OCR以供认可的基本原则:

  1. 确定我们将识别的图像大小(以像素和Mb计)。
  2. 启用图像预处理。

为了提高OCR的效率,您还可以缓存已识别的数据,以免多次发送相同的图像进行识别。

准备OCR时,您还需要注意什么,我们将在下面的示例中介绍在战斗实践中使用该技术的示例。

在高负载下在DLP中使用OCR时可能遇到哪些挑战?


1.识别图像的尺寸限制太大

让我们从我们已经提到的内容开始-有限制。

根据我们的惯例,客户通常对识别的图像文件的大小设置太宽的限制。 是的,为了使OCR正常工作,您需要限制图像尺寸。 但客户努力控制一切,认为即使在100x100像素和5 KB大小的图片中,有价值的数据也会泄漏。 通常,当然,100x100像素和5 Kb也是限制,但是这些阈值太低。

另一个极端是希望识别数百MB的沉重文件。 显然,由于对发送邮件大小的限制,此类图像不会通过公司邮件进行爬网。 但是在这里,在其他侦听通道(例如,来自公司网络球)上,重量级文件始终试图识别。 如果客户要向其中添加大量高分辨率图像,则为此需要具有适当的服务器容量。 结果,由于对于识别的文件的大小具有如此宽的最小和最大阈值,因此在服务器上创建了很高的处理器负载,这降低了所有子系统的运行速度。

在这里可以推荐什么? 首先,分析公司使用的“时间表”中包含机密数据,然后估计对监视图像大小的合理最小和最大限制。 我们通常建议客户将图像分辨率的下限固定为200像素,最好是400像素(沿X和Y轴),文件大小至少为20 Kb,最好更大。 将繁重的图像发送到OCR也是没有意义的-它们只会使服务器超载,而不会被识别。

2.筛选队列和请求处理超时

由于上述原因,服务器上的过度负载通常会导致整个链条增加图像识别和查询处理的时间。 结果,用于过滤的消息队列在DLP系统中开始增加。 此外,原则上无法识别的图形文件(繁重的文件,质量差等)可能会到达OCR模块中,从而导致图像处理超时。 如果存在大量无法识别的文件,并且系统具有较高的识别超时时间,则筛选服务将等待直到发生此超时为止,然后才继续处理下一个请求。 整个加工过程会受到严重阻碍。

我们能提供什么建议? 如果有用于处理图形图像的队列,则需要查看DLP系统中的OCR设置并尝试查找制动原因。 例如,由于服务器本身上的进程间通信问题,可能会发生这种情况。 通常,这些问题值得单独讨论。 有关一般问题的一些详细信息,请参见文章“在Linux上引入进程间通信”

另外,设置OCR时的重要一点是设置足够的图像识别超时时间。 通常,90秒足以准确识别图像。 如果在90秒钟内没有从图像中提取文本,则可以认为OCR原则上不能识别图像。 此时,当OCR配置问题设置较高的识别超时并因此尝试识别无法识别的问题时,也可能会发生OCR配置问题。

还有什么可能导致超时? 在这里,我们回到系统配置的问题。 像OCR服务一样,筛选服务与处理消息和图像的线程一起运行。 就筛选服务处理程序的数量和OCR处理程序的数量而言,系统可能配置不正确。 例如,过滤服务将有许多线程处理程序,而OCR将只有一个。 在这种情况下,OCR有时可能根本没有时间处理所有识别请求,因此图像处理超时将出现。

系统的这种行为暗示了有关设计问题和体系结构中的错误的想法,但实际上并非如此。 我们的DLP架构可灵活配置系统并根据客户需求对其进行自定义。 例如,我们可以简单地将一个OCR配置为与两种过滤服务一起使用而不会牺牲性能。

3.无法识别的图像

如果OCR无法识别的图像进入DLP系统进行分析,则有多种解决方案。

由于什么原因可能无法识别图像? 例如,通过以下方式:

1.图像的非标准配色方案。

2.低分辨率图像。

3.图像及其在空间中包含的文字的方向不正确。

4.行偏斜和图像中文本比例的变形等。
这是一个示例:在监视过程中,一位客户发现OCR无法识别以非标准配色方案执行的pdf文档。 也就是说,图像是在正常模式下从PDF文档中提取的,但是在处理OCR模块时,他不了解图片的配色方案,因此在输出中产生了“ Malevich square”。 在我们的界面中,图片看起来像这样:



OCR引擎具有用于自动图像校正的各种功能,这大大增加了成功识别其中包含的文本的机会。 但是,实际上,这些魔术工具并不总是有效。 在这种特殊情况下,我们为客户定制了OCR模块,以便他识别这种非标准的配色方案。

5.文档参数之一与指定大小的不一致
图片。

例如,在系统配置中,将识别图像的大小限制设置为200x1000像素,并在OCR中接收大小为500x1500像素的文件(超出上限)。 在这种情况下,您需要更正OCR设置才能识别此类图像。
在被告知OCR不起作用之后,这可能是最流行的系统重新配置方案之一。

为什么OCR不在代理商上?


DLP系统中的OCR有两种版本-在代理和服务器上。 我们支持第二种方法,因为直接在工作站上进行图像识别会在其处理器上造成很大的负担,因此会减慢其他应用程序的工作。 即使对于服务器来说,OCR本身也是一项非常繁琐的技术,其应用需要对处理器容量和性能监控进行适当的规划。

但是,许多国内公司,尤其是公共部门的公司,仍然拥有相当老的PC机队。 在这种情况下会发生什么? 用户开始向IT部门投诉PC的“制动”,IT专家最终发现制动的原因是DLP系统的OCR模块。 这使他们和无法快速解决工作任务的用户感到烦恼。 最终,所有这些加重了承担许多其他任务的保安人员的头痛。

仅当DLP系统“独立”运行时,才有理由在代理上使用OCR。 在这种情况下,图像识别应恰好在用户在其工作站上对该图形文件执行操作时进行。 也就是说,DLP系统应立即确定包含该图像的文档的命运-允许发送/复制或禁止它。 但是实际上,只有少数客户在主动阻止模式下使用DLP系统,这不仅适用于我们自己的DLP。 原则在这里起作用:“必须在服务器上执行检查服务器上可以取出的所有内容。”

合计


OCR技术提供图形识别功能,此外,我们始终会为系统配置提供一般性建议。 但是,在特定项目中,可能有必要在解决方案的试验和实施阶段以及其工业运行阶段重新配置OCR模块以满足客户的特定需求。 这不仅是正常现象-这是唯一可以带来切实成果,使OCR在公司中尽可能高效地工作,并最大程度地减少机密信息通过图形图像泄漏的正确方法。

Rostelecom Solar首席服务工程师Nikita Igonkin

Source: https://habr.com/ru/post/zh-CN460881/


All Articles