CN115004247A - 训练用于机器人过程自动化的光学字符检测和识别模型 - Google Patents

训练用于机器人过程自动化的光学字符检测和识别模型 Download PDF

Info

Publication number
CN115004247A
CN115004247A CN202080094920.8A CN202080094920A CN115004247A CN 115004247 A CN115004247 A CN 115004247A CN 202080094920 A CN202080094920 A CN 202080094920A CN 115004247 A CN115004247 A CN 115004247A
Authority
CN
China
Prior art keywords
text
model
computing system
epochs
ocr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080094920.8A
Other languages
English (en)
Inventor
D·A·拉扎
T·C·阮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yupas Co
Original Assignee
Yupas Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN115004247A publication Critical patent/CN115004247A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/1801Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
    • G06V30/18019Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections by matching or filtering
    • G06V30/18038Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters
    • G06V30/18048Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters with interaction between the responses of different filters, e.g. cortical complex cells
    • G06V30/18057Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Abstract

公开了用于训练光学字符识别(OCR)模型以检测并识别针对机器人过程自动化(RPA)的图像中的文本的技术。文本检测模型和文本识别模型可以被分别训练,然后被组合以产生OCR模型。合成数据和少量真实的、人工标记的数据可以用于训练以提高OCR文本检测模型和文本识别模型可以被训练的速度和精度。在OCR模型已被训练之后,可以生成包括调用OCR模型的活动的工作流,并且可以生成并部署实现该工作流的机器人。

Description

训练用于机器人过程自动化的光学字符检测和识别模型
相关申请的交叉引用
本申请要求2019年12月2日提交的美国非临时专利申请第16/700,494号的权益。该在先申请的主题通过引用整体并入本文。
技术领域
本发明大体上涉及机器人过程自动化(RPA),更具体地,涉及训练光学字符检测和识别(OCR)模型以识别用于RPA的图像中的文本。
背景技术
机器人过程自动化(RPA)允许重复和人工密集型活动的自动化执行。例如,RPA可以用于通过用户界面(UI)与软件应用交互,类似于人工与应用的交互方式。与UI的交互通常由RPA应用使用对返回坐标的集合的函数(即,“选择器”)的应用编程接口(API)调用执行。然后,RPA应用可以使用该信息来模拟按钮的鼠标点击,例如,这会使目标应用表现得就像用户手动点击了按钮一样。
如上所述,在针对本地计算系统的典型RPA实现中,选择器使用UI文本元素的基本属性来标识应用中的文本元素(例如,按钮、文本字段等)。然而,当试图分析图像时,诸如当试图在VDE中自动化相同的软件(诸如,由
Figure BDA0003769508450000011
Figure BDA0003769508450000012
(
Figure BDA0003769508450000013
远程桌面)提供的那些软件)时,这种技术就失效了。失效的原因是VDE以类似于视频流传输服务的方式流传输远程桌面的图像。在视频的图像(即,“帧”)中没有要标识的选择器。在分析图像(例如,JPEG、GIF、PNG、BMP等)时也会出现这个问题。例如,RPA应用因此不能进行API调用来确定要提供给应用的文本元素的位置。已尝试针对VDE场景使用常规的经训练的光学字符识别(OCR)和图像匹配来解决这一挑战。然而,这些技术已被证明针对RPA不够可靠,RPA通常需要高水平的精度。
例如,
Figure BDA0003769508450000021
的计算机视觉TM(CV)通过混合使用人工智能(AI)、OCR、文本模糊匹配和锚定系统来标识图形组件。CV模型标识图像中的特定图形元素。这提供了对图形元素(诸如,文本字段、按钮、复选框、图标等)的更准确的标识。
为了识别图形元素,可以使用AI算法,诸如更快的基于区域的卷积神经网络(R-CNN)。参见,例如,Shaoqing Ren等人,“更快的R-CNN:利用区域建议网络实现实时对象检测(Faster R-CNN:Towards Real-Time Object Detection with Region ProposalNetworks)”,arXiv:1506.01497v3(2015年6月4日提交)。更快的R-CNN通过具有空洞卷积(dilated convolutions)(也被称为膨胀卷积(atrous convolutions))的ResNet传递目标应用界面的图像,其中该空洞卷积输出特征图或者张量(即,具有2048个通道的较小图像)。这些特征图进一步通过另一神经网络,区域建议网络(RPN),其建议其中感兴趣的图形元素被认为可能已被发现的成数千个可能的矩形以及关于哪些区域被认为是图形元素的猜测作为坐标列表。特征图是网格,针对网格上的每个方块都有建议(也被称为锚)。针对每个锚,RPN提供分类。此外,存在0与1之间的图形元素匹配得分以及指示锚需要移动多远以匹配特定图形元素的回归部分。换言之,RPN输出其认为发现图形元素的区域,以及这些图形元素被认为可能是什么以及相关的概率。
通过这些建议,根据来自主干ResNet的特征张量输出进行许多裁剪。在这些大特征张量中,特征维度被裁剪。裁剪后的框再次通过CNN的几层,这样可以输出更精确的位置和类别分布。图1A中示出了用于图形元素检测(例如,检测不同的图形元素类型,其中可以在图像中标识文本框,但是不检测文本实际上是什么)的更快的R-CNN的这种实现100。针对文本识别,可以使用文本识别模型,诸如来自图1B中的
Figure BDA0003769508450000031
Figure BDA0003769508450000032
文本识别系统110。
然而,训练用于RPA的OCR模型具有挑战性,常规的技术通常不会产生足够高的置信区间。这个训练问题也不同于训练CV模型来识别图像中的图形元素。因此,训练对UI变化鲁棒的用于RPA的OCR模型的改进方法可能是有益的。
发明内容
本发明的某些实施例可为当前图像分析技术尚未完全标识、理解或者解决的现有技术中的问题和需求提供解决方案。例如,本发明的一些实施例涉及训练OCR模型来检测并识别用于RPA的图像中的文本。
在一个实施例中,计算机程序被体现在非暂时性计算机可读介质中。该程序被配置为使至少一个处理器生成用于训练用于RPA的文本检测模型的第一合成数据的第一集合。合成数据的第一集合包括图像。该程序还被配置为使至少一个处理器在多个时元(epoch)内使用合成数据的所生成的第一集合来训练文本检测模型,并且在第一多个时元中的每个时元,针对评估数据集评估文本检测模型的性能,直到性能的精度的水平开始下降为止。该程序还被配置为使至少一个处理器在第二多个时元内使用经增强的人工标记的数据的集合来训练文本检测模型,并且在第二多个时元中的每个时元,针对评估数据集评估文本检测模型的性能,直到性能的精度的水平开始下降为止。人工标记的数据的集合比合成数据的第一集合少至少一个数量级的图像。
在另一实施例中,计算机实现的方法包括由计算系统生成用于训练用于RPA的文本检测模型的第一合成数据的第一集合。合成数据的第一集合包括图像。该计算机实现的方法还包括由计算系统在多个时元内使用合成数据的所生成的第一集合来训练文本检测模型,并且在第一多个时元中的每个时元,由计算系统针对评估数据集评估文本检测模型的性能,直到性能的精度的水平开始下降为止。该计算机实现的方法还包括由计算系统在第二多个时元内使用经增强的人工标记的数据的集合来训练文本检测模型,并且在第二多个时元中的每个时元,由计算系统针对评估数据集评估文本检测模型的性能,直到性能的精度的水平开始下降为止。另外地,该计算机实现的方法包括由计算系统生成合成数据的第二集合,由计算系统在第三多个时元内、在经增强的人工标记的数据和合成数据的第二集合上训练用于RPA的文本识别模型,并且在第三多个时元中的每个时元,由计算系统针对评估数据集评估文本检测模型的性能,直到性能的精度的水平开始下降为止。
在另一实施例中,计算机实现的方法包括由计算系统生成合成数据的集合。该计算机实现的方法还包括由计算系统在多个时元内、在经增强的人工标记的数据和该合成数据的集合上训练用于RPA的文本识别模型,并且在多个时元中的每个时元,由计算系统针对评估数据集评估文本检测模型的性能,直到性能的精度的水平开始下降为止。
附图说明
为了使本发明的某些实施例的优点将容易被理解,将参考附图中所示的具体实施例,对上面所简要描述的本发明进行更具体的描述。虽然应理解,这些附图仅描绘了本发明的典型实施例,并且因此不应被认为是对其范围的限制,但是将通过使用附图以附加的特征和细节来描述和解释本发明,在附图中:
图1A图示了用于图形元素检测的更快的R-CNN的实现。
图1B是图示了来自
Figure BDA0003769508450000041
Figure BDA0003769508450000042
文本识别系统的架构图。
图2是根据本发明实施例的图示了RPA系统的架构图。
图3是根据本发明实施例的图示了已部署的RPA系统的架构图。
图4是根据本发明实施例的图示了设计器、活动和驱动器之间关系的架构图。
图5是根据本发明实施例的图示了RPA系统的架构图。
图6是根据本发明实施例的图示了被配置为训练OCR模型以检测和识别用于RPA的图像中的文本的计算系统的架构图。
图7是根据本发明实施例的图示了用于训练OCR模型以检测和识别用于RPA的图像中的文本的过程的流程图。
具体实施方式
一些实施例涉及训练OCR模型以检测和识别用于RPA的图像中的文本。OCR模型可以包括文本检测模型和文本识别模型。在一些实施例中,文本检测模型和文本识别模型可以被单独训练,然后被组合以用于OCR模型中的生产(例如,通过运行文本检测模型来标识文本位于何处,然后对图像的识别出文本的部分运行文本识别模型)。在一些实施例中,文本检测模型可以基于使用ResNet-50作为主干的更快的R-CNN架构。文本检测模型可以首先仅在合成数据上训练。可以针对其他评估合成数据评估检测模型。
当检测模型达到良好的精度的水平(例如,使用F2或者F4阈值进行检测并且大约2000个时元时,达到97-98%或者更好)并且在评估合成数据上不再取得进展时,可以停止合成数据训练阶段。在一些实施例中,在不脱离本发明的范围的情况下,可以使用F1得分、F2得分、F4得分、或者任何其他合适的技术来确定精度的水平。然后,训练可以在具有增强(例如,缩放、旋转、平移、改变颜色、其任意组合等)的真实的、人工标记的数据上继续,并且可以在真实数据上评估性能。通过以这种方式训练,检测模型在评估真实数据时以相对较高水平的精度开始,并且检测模型倾向于更好地泛化。
在一些实施例中,可能不知道可以达到何种精度的水平。因此,当分析评估数据时,一些实施例可以检查精度是否开始下降(即,模型在训练数据上表现良好,但是在评估数据上开始表现不太好)。在某些实施例中,包括文本检测模型和文本识别模型的经训练的OCR模型可以仅在精度优于当前部署的OCR模型的情况下被部署。
一些实施例的文本识别模型可以使用具有ResNet-18以及具有用于文本解码的连接主义时间分类(connectionist temporal classification,CTC)的单个长短期记忆(LSTM)层的架构。可以同时在真实的、人工标记的数据和合成数据上执行训练。在一些实施例中,相同的图像可以用于训练文本检测模型和文本识别模型。一些实施例对真实训练数据和合成训练数据进行大约200遍(即,时元)。在一些实施例中,真实图像和合成图像可以各自具有大约100个词,并且在针对每个时元的训练中可以使用大约500个真实图像和500个合成图像。可以针对每个时元新生成用于合成数据的词。因此,在该示例中的200个时元内,可以分析大约10,000,000个合成词。然而,在不脱离本发明的范围的情况下,可以使用任何合适数目的图像、词和/或时元。
在训练期间,具有新的图像供系统分析通常是有益的,并且由于可以随意生成合成数据,因此可以在每个时元生成新的合成图像/词,如上所述。尽管真实的、人工标记的图像的数目相对有限,这可能有助于使训练有效。可以针对训练识别执行增强,但是评估可以仅基于真实数据。可以使用单独的数据集进行端到端评估,以确定该模型针对生产是否足够好。
训练通常使模型表现更好,但是在训练集上训练过多时,模型可能将训练集“学习”地太好,并且可能对不在训练集中的新数据表现不佳。因此,一些实施例在其中模型在评估集上表现最佳的步骤处使用单独的数据集评估模型性能。这有助于产生通常对看不见的数据表现良好的模型。
在OCR模型中,可以首先使用文本检测模型来检测图像中似乎可能包含文本的框。使用一种被称为“裁剪和调整大小”的技术,候选框可以从原始图像中被剪切出来,被调整大小到固定的高度和可变的宽度,因为词可以具有可变的字符数。这些框可以被组合成批量(batch),并且运行通过文本识别模型(例如,通过具有LSTM层的ResNet(例如,ResNet-18)以在将特征运行通过CTC层以用于解码之前提取该特征)。所提取的特征可以是潜在/隐藏空间中的数字矩阵,并且网络可以自由选择其能够找到的最佳特征来实现良好的预测。然而,存在与原始图像的对应关系。例如,图像左侧的像素可能仅影响矩阵左侧的特征,这有点类似于当调整图像大小时,图像左侧的特征如何保持在左侧。
CTC在将可变(通常较长)输入解码为可变到可变(通常较短)输出方面表现良好。在一些实施例中,CTC输入是变换图像(LSTM输出),输出是预测。因为词中的每个字符通常不具有相同的宽度,所以可能不知道哪个像素对应于哪个字符。在一些实施例中,CTC可以通过允许可变数目的输入特征对应于一个输出字符来计算最佳预测。
在一些实施例中,可以使用比合成图像小得多的人工标记的图像的集合(例如,数百、500、1000等)来训练OCR模型。例如,据观察,高达90%的F1得分是不够的,甚至高达93%的得分都在犯重大错误。然而,一些实施例实现了95.8%或者更高的检测精度。应注意,在不脱离本发明的范围的情况下,可以使用任何数量的人工标记的数据。然而,这往往更加耗时和昂贵。
在OCR模型(即,文本检测模型和文本识别模型)在真实评估数据上达到足够高水平的精度之后,OCR模型可以准备用于生产部署。可以生成RPA工作流,其包括调用文本元素检测模型和OCR模型的一个或多个活动。然后,可以生成并部署实现RPA工作流的机器人,从而允许终端用户检测和识别用于RPA目的的文本(例如,用于文档处理、识别在用户屏幕上显示图像的软件应用中的文本等)。
一些实施例采用具有在顶部使用递归神经网络(RNN)层的ResNet-18和CTC层的文本识别模型的架构,以考虑某些字母比其他字母宽的事实。虽然一些常规的OCR技术使用多个LSTM层,但是这可能需要更长的时间来训练和执行,因为从处理的角度来看,LSTM层是昂贵的。某些实施例使用多个LSTM层,但是已确定使用多个LSTM层相对于使用单个LSTM层的好处并不大,并且不能证明某些应用的处理时间增加是合理的。因此,某些实施例使用对CNN层进行了一些修改的单个LSTM层(例如,使用比ResNet-18更少的来自CNN层的输出),这实现了与使用多个LSTM层的实施例相似的精度或者甚至更好的精度。
在生成合成数据时,一些实施例试图以编程方式生成尽可能接近OCR模型在部署后将遇到的真实图像的图像。脚本可以用于在图像中放置词、添加一些噪声、按块(例如,段落、类似表格的框、包括随机放置的词的框等)配置图像等等,类似于文本倾向于在计算系统显示器上呈现的方式。例如,图像可以首先被分割成部分(或者窗口)。每个窗口可以被随机分配一种类型(例如,段落、随机文本、表格等)。每个窗口类型在该窗口中放置对象的方式可能不同。例如,段落可以在对象行中一个接一个地添加对象,类似于书写文本的段落。随机文本可以是放置在该窗口中随机位置的对象。表格可以将对象对齐放置在表格结构中。
对象可以是包括词的文本对象或者不具有文本的不同对象。文本对象可以具有随机的背景颜色和足够明显(例如,以RGB值)的分配的文本,以便与背景文本相区别。可以从字典(例如,基于真实文本)、数字、日期格式、随机生成的字符序列、其任意组合等中分配文本。非文本对象可以从图像列表、随机绘制的多边形、噪声生成点、其任意组合等中导入。对象可以被缩放和旋转(例如,旋转0-5度)。在一些实施例中,可以基于与真实图像相比较的字体列表来生成文本对象。
一些实施例添加元素,诸如不具有文本的图标、随机噪声(例如,随机添加的各种大小和形状的点)、在图像中绘制各种类型、形状和大小的随机多边形(例如,基于互连顶点的随机数和/或位置)等。如上所述,可以生成非常大量的合成数据,因为这可以利用现有计算系统的硬件能力容易地实现。
合成数据通常不完全像真实数据。例如,一些实施例在合成图像中包括随机放置的文本对象和/或非文本对象,而不是使用运行的具有菜单的应用、具有文本的图标、阴影、来自计算机分辨率或者图像压缩的伪像的实际图像。合成生成的图像可以被缩放,图像可以被放大或者缩小,图像和/或其中的元素可以被旋转,颜色可以被改变,图像和/或其中的元素可以被拉伸、平移、翻转等。
一些实施例使用该合成数据作为“模型引导”,以将文本检测模型训练到足以开始在真实的、人工标注的图像上训练文本检测模型的检测精度。在一些实施例中,可以使用小得多的人工标注的数据的样本,因为如上所述,生成该数据通常更加昂贵和耗时。合成数据训练阶段允许文本检测模型基于相对少量的真实样本变得准确。
该人工标注的数据可以被修改以提高训练的精度。可以执行“图像增强”(例如,填充、旋转、颜色变化(例如,灰度、反色、通道置换、色调偏移等)、缩放、裁剪、添加随机噪声(例如,随机点/线)、添加JPEG噪声、缩放和缩减等)。除了提高文本识别精度以外,这还可以使预测更加稳定。换言之,当图像稍微改变时,预测可能不会显著改变。文本不同于其他图像组件,因为如果过度缩放文本(例如,经由缩小),可能会失去识别文本的能力。
可以对一些实施例进行训练,以在屏幕上识别所需字体数目的文本,因为这样的文本在不同图像之间往往相对相似。可以建立常用字体的列表,并且可以随机选择和混合这些字体的文本(例如,不同的字体、间距、方向、大小等)。例如,不同字体的大小和间距会有所不同。某些实施例可以被训练来识别手写文本。然而,这种训练过程可能更广泛,并且需要更多的合成和真实样本,因为从一个人到另一个人的手写文本中存在更大程度的变化。
在某些实施例中,可以使用相对少量的字符类型(例如,100个不同的字符,其小于ASCII字符集合)。针对一些实施例,诸如采用于识别发票中的文本的那些实施例,这可以包括在生产中可能遇到的大多数或者所有字符(例如,在发票是英文的并且包含针对特定终端用户的美元值的情况下)。更有限的字符集合也有助于提高训练OCR模型的速度,并且可以提高精度。由于使用了更少的字符,实际数据可以集中在这个更小的字符集合上。OCR模型将在训练期间看到这些字符中的每一个的更多示例,并且因此将学习更有效地检测这些字符。真实图像很难针对OCR进行标记。即使从已经训练好的OCR模型开始预加载预测,人工处理每幅图像也需要一个多小时。因此,减少对真实图像的需求是一些实施例的显著优点。
在训练之后,OCR模型可能相对较大,并且针对其中需要快速获得结果和/或其中运行OCR模型的计算系统处理能力不足的一些实现来说,速度不够快。因此,一些实施例使用较大的OCR模型来训练较小并且较快的OCR模型。较大的OCR模型最初可以用于从所有训练数据中学习。然后,这个较大的模型可以用于为较小的模型提供标签。较小的模型将更快,并且可能具有更多用于训练的数据,因为可以使用来自较大的OCR模型的一些预测。
针对一些常规OCR技术,存在围绕拆分词出现的问题。例如,没有标准的方法来确定OCR算法应输出的“词”(例如,标记(token))由什么组成。例如,考虑
Figure BDA0003769508450000101
OCR,标点符号(例如,逗号、句号、分号、问号、感叹号等)用于分隔词。然而,在包含浮点数的情况下,诸如货币值101.11,这将被分成三个标记“101”、“.”,和“11”。
一些实施例可以应用几何方法解决该问题。可以基于间隔阈值距离来拆分词。例如,“$100”可能被识别为单个词,但是“$100”可能被识别为两个单独的词。逗号、分号等可以被分配给前面的词。
在一些实施例中,进行后处理,该后处理根据规则来组合框。例如,可以通过将货币符号附加到值、识别其中字符处于相对较大距离的浮点数(例如,由于收据可能被书写的方式)、执行日期格式化等来适应货币。
一些实施例能够认识到通过应用特定规则应将货币值分组成单个词。例如,如果该数字前面有一个货币符号(例如,$、€、£、¥等),子程序一般可以被写成:
开始
将货币符号后面的每个整数附加到词;
如果不是整数或者小数点,则忽略;
如果发现小数点后至少有一个数字:
附加小数点;
在小数点后附加每个整数;
结束
这样的子程序也可以通过首先搜索具有位于其间的小数点的数字、但是在小数点后以两个整数结束的相邻字符,来适应可能是货币但没有货币符号的浮点数。
为了提高OCR模型执行的速度,可以使用CPU处理一些元素,并且使用GPU处理其他元素。在运行OCR模型时,虽然大多数操作在GPU上更快,但是移动所有数据以进行GPU处理(即,从CPU到GPU的内存拷贝)会增加成本,一些功能无法有效地针对GPU实现,等等。为了提高速度的目的,大多数时候可能会使用GPU,但是会增强CPU处理以提高速度。
在一些实施例中,不仅需要标识哪些元素包括文本,还需要标识哪些元素不包括文本。例如,OCR算法最初可以将按钮的边缘标识为括号。反规则有助于系统做出这样的区分。这可能是从合成数据生成阶段开始的一个问题,在这个阶段,在生成的数据中提供高质量的反例更加困难。真实图像往往有各种没有文本的伪影,因为它们往往很多,所以很难复制。为了帮助训练,可以并入图标、取自图像的随机框(同时不与文本重叠)、以及导致错误预测的图形元素。
例如,用于训练OCR模型的数据往往与用于训练图形组件检测模型的数据大相径庭。在图形元素检测中,组件边缘周围的框可能不需要完美。例如,如果没有非常准确地绘制框以用于检测按钮,这往往不会对精度产生太大影响。然而,针对文本,如果框没有被准确地绘制(例如,向右一点),则框可能不再被认为包含第一个字母。因此,OCR模型阶段将不能标识正确的词。换言之,针对文本,如果框太小并且字母与图形组件的边缘相交,则字母可能无法被识别。例如,如果字母“p”的尾部被边缘切掉,则OCR模型可以确定该字符看起来更类似于“a”,并且将其标识为“a”。因此,在文本元素检测模型训练和标记中,可以将更多的重点放在图形组件的边缘上。在一些实施例中,可以采用提供更准确的框边距的模型,诸如级联R-CNN。
根据上述内容,在一些实施例中,视频图像可以来自VDE服务器,并且可以是视觉显示器或者其一部分。一些示例VM包括但不限于由
Figure BDA0003769508450000121
远程桌面等提供的VM。然而,图像也可以来自其他源,包括但不限于Flash、Silverlight、或者PDF文档、各种格式的图像文件(例如,JPG、BMP、PNG等)、或者任何其他合适的图像源而不脱离本发明的范围。这种图像可以包括但不限于窗口、文档、财务收据、发票等。
图2是根据本发明实施例的图示了RPA系统200的架构图。RPA系统200包括允许开发者设计和实现工作流的设计器210。设计器210可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和商业IT过程的解决方案。设计器210可以促进自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器210促进了工作流和机器人的开发和部署。
自动化项目通过给予开发者对执行顺序和在工作流中开发的自定义步骤集(在此定义为“活动”)之间的关系的控制,实现基于规则的过程的自动化。设计器210的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以是嵌套的或者嵌入的。
一些类型的工作流可以包括但是不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可能特别适合于线性过程,能够从一个活动流向另一个活动,而不会使工作流变得混乱。流程图可能特别适合于更复杂的业务逻辑,通过多个分支逻辑操作符以更多样化的方式实现决策的集成和活动的连接。FSM可能特别适合于大型工作流。FSM可以在它们的执行中使用有限数目的状态,这些状态由条件(即,转换)或者活动触发。全局异常处理程序可能特别适合于在遇到执行错误时确定工作流行为以及调试过程。
一旦在设计器210中开发了工作流,业务过程的执行由指挥器220协调,指挥器220协调执行在设计器210中开发的工作流的一个或多个机器人230。指挥器220的实施例的一个商业示例是UiPath OrchestratorTM。指挥器220便于管理环境中资源的创建、监测和部署。指挥器220可以充当具有第三方解决方案和应用的集成点。
指挥器220可以管理机器人230队,从集中式点连接和执行机器人230。可以被管理的机器人230的类型包括但不限于有人值守机器人232、无人值守机器人234、开发机器人(类似于无人值守机器人234,但是用于开发和测试目的)和非生产机器人(类似于有人值守机器人232,但是用于开发和测试目的)。有人值守机器人232由用户事件触发,并且在相同计算系统上与人工并肩工作。有人值守机器人232可以与指挥器220一起用于集中式过程部署和记录介质。有人值守机器人232可以帮助人工用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器220开始,和/或它们不能在锁定的屏幕下运行。在某些实施例中,有人值守机器人232只能从机器人托盘或者从命令提示符(command prompt)启动。在一些实施例中,有人值守机器人232应在人工的监督下运行。
无人值守机器人234在虚拟环境中无人值守运行,并且可以使许多过程自动化。无人值守机器人234可以负责远程执行、监测、调度和为工作队列提供支持。在一些实施例中,针对所有机器人类型的调试可以在设计器210中运行。有人值守和无人值守机器人都可以自动化各种系统和应用,包括但不限于大型机、Web应用、VM、企业应用(例如,由
Figure BDA0003769508450000131
等生产的应用),以及计算系统应用(例如,桌面和膝上型应用、移动设备应用、可穿戴计算机应用等)。
指挥器220可具有各种能力,包括但不限于供应、部署、配置、排队、监测、记录和/或提供互连性。供应可以包括创建和维护机器人230和指挥器220之间的连接(例如,Web应用)。部署可以包括确保将分组版本正确传递给指定的机器人230以供执行。配置可以包括机器人环境和过程配置的维护和传递。排队可以包括提供队列和队列项的管理。监测可以包括跟踪机器人标识数据和维护用户许可。记录可以包括将日志存储和索引到数据库(例如,SQL数据库)和/或另一种存储机制(例如,提供存储和快速查询大型数据集的能力的
Figure BDA0003769508450000141
)。指挥器220可以通过充当第三方解决方案和/或应用的集中式通信点来提供互连性。
机器人230是运行设计器210内建立的工作流的执行代理。(多个)机器人230的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人230默认安装微软
Figure BDA0003769508450000142
服务控制管理器(SCM)管理的服务。结果是,这样的机器人230可以在本地系统帐户下打开交互式
Figure BDA0003769508450000143
会话,并且具有
Figure BDA0003769508450000144
服务的权限。
在一些实施例中,机器人230可以安装在用户模式中。针对这种机器人230,这意味着它们具有与安装了给定机器人230的用户相同的权利。该特征也可以用于高密度(HighDensity,HD)机器人,其确保每台机器的最大潜能得到充分利用。在一些实施例中,任何类型的机器人230可以被配置在HD环境中。
一些实施例中的机器人230被拆分为若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测
Figure BDA0003769508450000145
会话,并且充当指挥器220和执行主机(即,机器人230在其上执行的计算系统)之间的代理。这些服务被信任并且管理机器人230的凭证。本地系统下的SCM启动控制台应用。
在一些实施例中,用户模式机器人服务管理和监测
Figure BDA0003769508450000146
会话,并且充当指挥器220和执行主机之间的代理。用户模式机器人服务可以被信任并且管理针对机器人230的凭证。如果没有安装SCM管理的机器人服务,
Figure BDA0003769508450000147
应用可能会被自动启动。
执行器可以在
Figure BDA0003769508450000148
会话下运行给定作业(即,它们可执行工作流)。执行器可能知道每台监测器的每英寸点数(dots per inch,DPI)设置。代理可以是在系统托盘窗口中显示可用作业的
Figure BDA0003769508450000151
呈现基础(
Figure BDA0003769508450000152
Presentation Foundation,WPF)应用。代理可以是服务的客户。代理可以请求开始或者停止作业以及更改设置。命令行是服务的客户端。命令行是控制台应用,其可以请求开始作业并且等待作业的输出。
如上所述,将机器人230的组件拆分开,有助于开发者、支持用户和计算系统更轻松地运行、标识和跟踪每个组件正在执行什么。可以通过这种方式为每个组件配置特殊行为,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以总是知道每个监测器的DPI设置。结果是,工作流可以在任何DPI执行,而不管它们在其上被创建的计算系统的配置如何。在一些实施例中,来自设计器210的项目也可以独立于浏览器缩放级别。在一些实施例中,针对不知道DPI或者故意标记为不知道的应用,可以禁用DPI。
图3是根据本发明实施例的已部署的RPA系统300的架构图。在一些实施例中,RPA系统300可以是图2的RPA系统200,或者可以是其一部分。应注意,在不脱离本发明的范围的情况下,客户端侧、服务器端或者两者可以包括任何期望数目的计算系统。在客户端侧,机器人应用310包括执行器312、代理314和设计器316。然而,在一些实施例中,设计器316可能不在计算系统310上运行。执行器312正在运行过程。几个业务项目可能同时运行,如图3中所示。在该实施例中,代理314(例如,
Figure BDA0003769508450000153
服务)是所有执行器312的单个联系点。该实施例中的所有消息被记录到指挥器330中,指挥器330经由数据库服务器340、索引器服务器350或者两者进一步处理这些消息。如上关于图2所述,执行器312可以是机器人组件。
在一些实施例中,机器人代表机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如,
Figure BDA0003769508450000154
服务器2012)上,可能有多个机器人同时运行,每个机器人使用唯一的用户名在单独的
Figure BDA0003769508450000155
会话中运行。这就是上面提到的HD机器人。
代理314还负责发送机器人的状态(例如,定期发送指示机器人仍在运行的“心跳”消息),以及下载要执行的所需版本的分组。在一些实施例中,代理314和指挥器330之间的通信总是由代理314发起。在通知场景中,代理314可以打开稍后由指挥器330用来向机器人发送命令(例如,开始、停止等)的WebSocket通道。
在服务器侧,包括表示层(Web应用332、开放数据协议(OData)代表状态传输(REST)应用编程接口(API)端点334以及通知和监测336)、服务层(API实现/业务逻辑338)和持久层(数据库服务器340和索引器服务器350)。指挥器330包括Web应用332、OData RESTAPI端点334、通知和监测336以及API实现/业务逻辑338。在一些实施例中,用户在指挥器320的界面中(例如,经由浏览器320)执行的大多数动作是通过调用各种API来执行的。在不脱离本发明的范围的情况下,这种动作可以包括但不限于在机器人上开始作业、在队列中添加/移除数据、调度作业以运行无人值守等。Web应用332是服务器平台的可视层。在该实施例中,Web应用332使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不脱离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或者任何其他格式。在该实施例中,用户经由浏览器320与来自Web应用332的Web页面交互,以便执行各种动作来控制指挥器330。例如,用户可以创建机器人组,向机器人分配分组,分析每个机器人和/或每个过程的日志,开始和停止机器人等。
除了Web应用332,指挥器330还包括暴露OData REST API端点334的服务层。然而,在不脱离本发明的范围的情况下,可以包括其他端点。REST API由Web应用332和代理314两者利用(consume)。在该实施例中,代理314是客户端计算机上的一个或多个机器人的监管器。
该实施例中的REST API涵盖配置、记录、监测和排队功能。在一些实施例中,配置端点可以用于定义和配置应用用户、许可、机器人、资产、版本和环境。记录REST端点可以用于记录不同的信息,诸如错误、机器人发送的明确消息以及其他特定于环境的信息。如果开始作业命令在指挥器330中被使用,机器人可以使用部署REST端点来查询应执行的分组版本。排队REST端点可以负责队列和队列项管理,诸如向队列添加数据、从队列获取事务、设置事务的状态等。
监测REST端点监测Web应用332和代理314。通知和监测API336可以是用于注册代理314、向代理314传递配置设置以及用于从服务器和代理314发送/接收通知的REST端点。在一些实施例中,通知和监测API 336也可以使用WebSocket通信。
在该实施例中,持久层包括一对服务器—数据库服务器340(例如,SQL服务器)和索引器服务器350。该实施例中的数据库服务器340存储机器人、机器人组、相关联的过程、用户、角色、时间表等的配置。在一些实施例中,该信息通过Web应用332来管理。数据库服务器340可以管理队列和队列项。在一些实施例中,数据库服务器340可以存储由机器人记录的消息(除了或者代替索引器服务器350)。
索引器服务器350,在一些实施例中为可选的,存储并索引由机器人记录的信息。在某些实施例中,可以通过配置设置来禁用索引器服务器350。在一些实施例中,索引器服务器350使用
Figure BDA0003769508450000171
其是开源项目全文搜索引擎。由机器人记录的消息(例如,使用像记录消息或者写入行这样的活动)可以通过记录(多个)REST端点发送到索引器服务器350,在索引器服务器350处它们被索引以供将来使用。
图4是根据本发明实施例的示出了设计器410、活动420、430和驱动器440之间的关系400的架构图。如上所述,开发者使用设计器410来开发由机器人执行的工作流。工作流可以包括用户定义的活动420和UI自动化活动430。一些CV活动可以包括但不限于点击、键入、获取文本、悬停、元素存在、刷新范围、突出显示等。在一些实施例中,点击使用例如CV、OCR、模糊文本匹配和多锚来标识元素,并点击该元素。键入可以使用元素中的上述和类型来标识元素。获取文本可以标识特定文本的位置,并使用OCR扫描该特定文本。悬停可以标识元素并悬停在其上。元素存在可以使用上述技术检查元素是否存在于屏幕上。在一些实施例中,可能有数百甚至数千个活动可以在设计器410中实现。然而,在不脱离本发明的范围的情况下,任何数目和/或类型的活动是可用的。
UI自动化活动430是以低级代码编写的特殊低级活动的子集(例如,CV活动),并且促进与屏幕的交互。UI自动化活动430经由驱动器440促进这些交互,其中驱动器440允许机器人与期望的软件交互。例如,驱动器440可以包括OS驱动器442、浏览器驱动器444、VM驱动器446、企业应用驱动器448等。
驱动器450可以在较低层次与操作系统互动,用于寻找挂钩、监测密钥等。它们可以促进与
Figure BDA0003769508450000181
等的集成。例如,“点击”活动经由驱动器450在这些不同的应用中执行相同的角色。
图5是根据本发明实施例的示出了RPA系统500的架构图。在一些实施例中,RPA系统500可以是或者包括图2和/或3的RPA系统200和/或300。RPA系统500包括运行机器人的多个客户端计算系统510。计算系统510能够经由运行在其上的Web应用与指挥器计算系统520通信。指挥器计算系统520又能够与数据库服务器530和可选的索引器服务器540通信。
关于图3和图5,应注意的是,虽然在这些实施例中使用了Web应用,但是在不脱离本发明范围的情况下,可以使用任何合适的客户端/服务器软件。例如,指挥器可以运行与客户端计算系统上的非基于Web的客户端软件应用通信的服务器侧应用。
图6是根据本发明实施例的计算系统600的架构图,该计算系统600被配置是根据本发明实施例训练OCR模型以检测和识别用于RPA的图像中的文本。在一些实施例中,计算系统600可以是这里描绘和/或描述的一个或多个计算系统。计算系统600包括总线605或者用于传递信息的其他通信机制,以及耦合到总线605用于处理信息的(多个)处理器610。(多个)处理器610可以是任何类型的通用或者专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器610还可以具有多个处理核心,并且至少一些核心可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器610的至少一个可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可能不需要冯诺依曼计算架构的典型组件。
计算系统600还包括存储器615,用于存储信息和将由(多个)处理器610执行的指令。存储器615可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、诸如磁盘或者光盘之类的静态存储器、或者任何其他类型的非暂时性计算机可读介质或者其组合的任意组合。非暂时性计算机可读介质可以是可以由(多个)处理器610访问的任何可用介质,并且可以包括易失性介质、非易失性介质或者两者。该介质也可以是可移动的、不可移动的或者两者兼有。
另外地,计算系统600包括通信设备620,诸如收发器,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,通信设备620可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、通用分组无线业务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、高级LTE(LTE-A)、802.11x、Wi-Fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭节点B(HnB)、蓝牙、射频识别(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线电(NR)、它们的任何组合、和/或任何其他当前存在的或者未来实现的通信标准和/或协议,而不脱离本发明的范围。在一些实施例中,通信设备620可以包括一个或多个天线,这些天线是单一的、阵列的、相控的、切换的、波束成形的、波束控制的、它们的组合,和/或任何其他天线配置,而不脱离本发明的范围。
(多个)处理器610还经由总线605连接至显示器625,诸如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性基板显示器、投影显示器、4K显示器、高清晰度显示器、
Figure BDA0003769508450000201
显示器、面内切换(IPS)显示器或者任何其他适用于向用户显示信息的显示器。显示器625可以被配置为使用电阻、电容、表面声波(SAW)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多点触摸显示器等。在不脱离本发明的范围的情况下,可以使用任何合适的显示设备和触觉I/O。
键盘630和光标控制设备635,诸如计算机鼠标、触摸板等还耦合到总线605,以使用户能够与计算系统600交互。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器625和/或触摸板(未示出)与设备交互。根据设计选择,可以使用任何类型和组合的输入设备。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一个计算系统远程地与计算系统600交互,或者计算系统600可以自主操作。
存储器615存储在由(多个)处理器610执行时提供功能的软件模块。这些模块包括计算系统600的操作系统640。这些模块还包括RPA OCR模块645,其被配置为执行这里描述的全部或者部分过程或者其衍生物。计算系统600可以包括一个或多个附加功能模块650,该一个或多个附加功能模块650包括附加功能。
本领域技术人员将理解,在不脱离本发明范围的情况下,“系统”可体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或者任何其他合适的计算设备或者设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例中的一个示例。实际上,本文公开的方法、系统和装置可以以符合计算技术(包括云计算系统)的本地化和分布式形式来实现。
应注意的是,本说明书中所描述的一些系统特征已作为模块呈现,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(VLSI)电路或者门阵列、诸如逻辑芯片、晶体管或者其他分立元件的现成半导体。模块也可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地在软件中实现,以用于由各种类型的处理器执行。可执行代码的标识单元可以例如包括计算机指令的一个或多个物理或者逻辑块,其可以例如被组织为对象、过程或者功能。然而,所标识的模块的可执行代码不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,构成该模块并且实现该模块的所陈述的目的。此外,在不脱离本发明的范围的情况下,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这种非暂时性计算机可读介质。
实际上,可执行代码的模块可以是单个指令或者多个指令,甚至可以分布在多个不同代码段、不同程序和多个存储设备中。类似地,操作数据在这里可以在模块内被标识和示出,并且可以以任何合适的形式被具体化并且被组织在任何合适类型的数据结构内。操作数据可以作为单个数据集被收集,或者可以分布在不同的位置上,包括在不同的存储设备上,并且可以至少部分地仅仅作为系统或者网络上的电子信号而存在。
图7是根据本发明实施例的示出了用于训练OCR模型以检测和识别用于RPA的图像中的文本的过程700流程图。该过程开始于在705生成用于训练文本检测模型的合成数据。可以针对文本检测模型的初始训练生成大量的合成训练数据。在一些实施例中,文本检测模型可以基于使用ResNet-50作为主干的更快的R-CNN架构,并且可以在被认为包括文本或者本身就是文本的组件周围绘制框。然后,在710,在多个时元内训练文本检测模型,直到其针对评估数据集达到其最佳精度的水平为止。然后,在715,在具有增强(例如,缩放、旋转、平移、改变颜色、其任意组合等)的真实的、人工标记的数据上继续训练,直到获得针对评估数据集的最佳精度为止。
然后,在720,在多个时元内,在真实和合成数据上同时训练文本识别模型。一些实施例的文本识别模型可以使用具有ResNet-18的架构和具有用于文本解码的CTC的单个LSTM层。在一些实施例中,相同的图像可以用于训练文本检测模型和文本识别模型。在某些实施例中,尽管真实的、人工标记的图像的数目相对有限(例如,在一些实施例中为500或者更少),但是针对每个时元生成的新的合成图像/词使训练更有效。在某些实施例中,对训练数据执行增强,但是评估仅在真实数据上进行。在一些实施例中,可以使用单独的数据集进行端到端评估,以确定OCR模型针对生产来说是否足够好,或者是否优于现有的OCR模型。
在生成合成数据时,一些实施例试图以编程方式生成尽可能接近OCR模型在部署后将遇到的真实图像的图像。脚本可以用于在图像中放置词、添加一些噪声、按块(例如,段落、类似表格的框、包括随机放置的词的框等)配置图像等等,类似于文本倾向于在计算系统显示器上呈现的方式。在一些实施例中,可以向训练图像添加各种元素,诸如不具有文本的图标、不具有文本的框和底部边缘、随机噪声(例如,随机添加的各种大小和形状的点)、在图像中绘制各种类型、形状和大小的随机多边形等。如上所述,可以生成非常大量的合成数据,因为这可以利用现有计算系统的硬件能力容易地实现。在一些实施例中,合成数据不完全像真实数据。在某些实施例中,用于训练文本检测和/或识别模型的合成数据可以包括反例。除了正例以外,提供反例可能有助于使合成数据针对训练目的更有效。图标、取自图像的随机框(同时不与文本重叠)、导致不好预测的图形元素等可作为反例并入。
在一些实施例中,OCR模型可确定浮点数、日期等是单个词。在某些实施例中,OCR模型执行的速度可以通过使用CPU处理一些元素并且使用GPU处理其他元素来提高。在一些实施例中,OCR模型不仅确定哪些元素包括文本,还确定哪些元素不包括文本。
在一些实施例中,可训练小得多的人工标注的数据的样本,因为生成该数据通常更昂贵和耗时。合成数据训练阶段允许OCR模型基于相对少量的真实样本变得准确。这种人工标注的数据可以经由训练被修改以提高精度。例如,标记的图像可以被缩放,图像可以被放大或者缩小,图像和/或其中的元素可以被旋转,颜色可以被改变,图像和/或其中的元素可以被拉伸、平移、翻转等。文本不同于图形组件,因为如果过度缩放文本(例如,经由缩小),可能会失去识别文本的能力。
可以对一些实施例进行训练,以在屏幕上识别所需字体数目的文本,因为这样的文本在不同图像之间往往相对相似。可以建立常用字体的列表,并且可以随机选择和混合这些字体的文本(例如,不同的字体、间距、方向、大小等)。例如,不同字体的大小和间距会有所不同。某些实施例可以被训练来识别手写文本。然而,这种训练过程可能更广泛,并且需要更多的合成和真实样本,因为从一个人到另一个人的手写文本中存在更大程度的变化。
在某些实施例中,可以使用相对少量的字符类型(例如,100个不同的字符,其小于ASCII字符集合)。针对一些实施例,诸如采用于识别发票中的文本的那些实施例,这可以包括在生产中可能遇到的大多数或者所有字符(例如,在发票是英文的并且包含针对特定终端用户的美元值的情况下)。更有限的字符集合也有助于提高训练OCR模型的速度,并且可以提高精度。
一旦文本检测模型和文本识别模型已被训练,它们在725被组合成OCR模型。在一些实施例中,在训练之后,OCR模型可能相对较大,并且针对其中需要快速获得结果和/或其中运行OCR模型的计算系统处理能力不足的一些实现来说不够快。因此,在一些实施例中,在730,使用较大的OCR模型来训练较小并且较快的OCR模型。
在735生成包括调用经训练的OCR模型的活动的工作流。这可以是步骤730的初始的较大的OCR模型和/或较小的OCR模型。然后在740生成实现工作流的机器人,并且在745部署该机器人。
根据本发明的实施例,图7中所执行的过程步骤可以由计算机程序执行,该计算机程序对用于(多个)处理器执行图7中所描述的(多个)过程的至少部分过程的指令进行编码。计算机程序可以体现在非暂时性计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这样的介质或者介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图6的计算系统600的(多个)处理器610)以实现图7中所描述的全部或者部分过程步骤的编码指令,该编码指令也可以存储在计算机可读介质上。
计算机程序可以在硬件、软件或者混合实现中实现。计算机程序可以由彼此可操作通信的模块组成,并且这些模块被设计成将信息或者指令传递给显示器。计算机程序可以被配置为在通用计算机、ASIC或者任何其他合适的设备上运行。
容易理解的是,本发明各种实施例的组件,如本文附图中一般描述和说明的,可以按各种不同配置进行排列和设计。因此,如附图中所示,本发明的实施例的详细描述不旨在限制所要求保护的本发明的范围,而仅仅是本发明的选定实施例的代表。
本说明书中所描述的本发明的特征、结构或者特性可以在一个或多个实施例中以任何合适的方式组合。例如,在整个说明书中,对“某些实施例”、“一些实施例”、或者类似语言的引用意味着结合该实施例描述的特定特征、结构或者特性包括在本发明的至少一个实施例中。因此,在整个说明书中出现的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”、或者类似语言不一定指同一组实施例,并且所描述的特征、结构或者特性可以以任何合适的方式在一个或多个实施例中组合。
应注意,本说明书中对特征、优点、或者类似语言的引用并不意味着本发明可实现的所有特征和优点应位于本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为意指结合实施例描述的特定特征、优点或者特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的特征和优点的讨论以及类似的语言可以(但是,不一定)指相同实施例。
此外,本发明的所述特征、优点和特性可以在一个或多个实施例中以任何合适的方式组合。相关领域的技术人员将认识到,本发明可以在没有特定实施例的一个或多个具体特征或者优点的情况下实践。在其他情况下,在某些实施例中可以认识到可能不存在于本发明的所有实施例中的附加特征和优点。
本领域普通技术人员将容易理解,上述本发明可以通过不同顺序的步骤和/或不同于所公开配置的硬件元件实践。因此,尽管已基于这些优选实施例描述了本发明,但是对于本领域的技术人员来说,在保持在本发明的精神和范围内的同时,某些修改、变化和替代结构将是显而易见的。因此,为了确定本发明的界限和范围,应参考所附权利要求。

Claims (20)

1.一种被体现在非暂时性计算机可读介质上的计算机程序,所述程序被配置为使至少一个处理器:
生成用以训练用于机器人过程自动化(RPA)的文本检测模型的第一合成数据的第一集合,合成数据的所述第一集合包括图像;
在第一多个时元内,使用合成数据的所生成的所述第一集合来训练所述文本检测模型;
在所述第一多个时元中的每个时元,针对评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止;
在第二多个时元内,使用经增强的人工标记的数据的集合来训练所述文本检测模型;以及
在所述第二多个时元中的每个时元,针对所述评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止,其中
人工标记的数据的所述集合比合成数据的所述第一集合少至少一个数量级的图像。
2.根据权利要求1所述的计算机程序,其中所述文本检测模型被配置为检测合成数据的所述第一集合的图像中的包括文本的框,从合成数据的所述第一集合的相应的所述图像剪切检测到的所述框,以及调整所剪切的所述框的大小。
3.根据权利要求1所述的计算机程序,其中合成数据的所述第一集合的所述生成包括:在图像中放置词、添加随机噪声、按块配置所述图像、或者其任意组合。
4.根据权利要求1所述的计算机程序,其中合成数据的所述第一集合的所述生成包括:添加不具有文本的图标,在所述图像中的一个或多个图像中绘制各种类型、形状和/或大小的随机多边形,或者其任意组合。
5.根据权利要求1所述的计算机程序,其中合成数据的所述第一集合的所述生成包括生成反例。
6.根据权利要求1所述的计算机程序,其中所述程序还被配置为使所述至少一个处理器:
生成合成数据的第二集合;
在第三多个时元内,在所述经增强的人工标记的数据和合成数据的所述第二集合上训练用于RPA的文本识别模型;以及
在所述第三多个时元中的每个时元,针对所述评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止。
7.根据权利要求6所述的计算机程序,其中新的合成数据针对所述第三多个时元中的每个时元而被生成。
8.根据权利要求6所述的计算机程序,其中所述文本识别模型被配置为将浮点数或者日期确定为单个词。
9.根据权利要求6所述的计算机程序,其中由所述文本识别模型识别的字符类型的数目小于或者等于100。
10.根据权利要求6所述的计算机程序,其中所述程序还被配置为使所述至少一个处理器:
将所述文本检测模型和所述文本识别模型组合成光学字符识别(OCR)模型。
11.根据权利要求10所述的计算机程序,其中所述程序还被配置为使所述至少一个处理器:
使用所述OCR模型来训练更小、更快的OCR模型。
12.根据权利要求10所述的计算机程序,其中所述程序还被配置为使所述至少一个处理器:
生成包括调用所述OCR模型的活动的工作流;
生成实现所述工作流的机器人;以及
部署所述机器人。
13.根据权利要求1所述的计算机程序,其中合成数据的所述第一集合的所述生成包括:建立字体的列表,并且随机选择、混合和插入这些字体的文本到所述合成数据中。
14.一种计算机实现的方法,包括:
由计算系统生成用以训练用于机器人过程自动化(RPA)的文本检测模型的第一合成数据的第一集合,合成数据的所述第一集合包括图像;
由所述计算系统在第一多个时元内,使用合成数据的所生成的所述第一集合来训练所述文本检测模型;
在所述第一多个时元中的每个时元,由所述计算系统针对评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止;
由所述计算系统在第二多个时元内,使用经增强的人工标记的数据的集合来训练所述文本检测模型;
在所述第二多个时元中的每个时元,由所述计算系统针对所述评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止;
由所述计算系统生成合成数据的第二集合;
由所述计算系统在第三多个时元内,在所述经增强的人工标记的数据和合成数据的所述第二集合上训练用于RPA的文本识别模型;以及
在所述第三多个时元中的每个时元,由所述计算系统针对所述评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止。
15.根据权利要求14所述的计算机实现的方法,其中新的合成数据针对所述第三多个时元中的每个时元而被生成。
16.根据权利要求14所述的计算机实现的方法,还包括:
由所述计算系统将所述文本检测模型和所述文本识别模型组合成光学字符识别(OCR)模型。
17.根据权利要求16所述的计算机实现的方法,还包括:
由所述计算系统生成包括调用所述OCR模型的活动的工作流;
由所述计算系统生成实现所述工作流的机器人;以及
由所述计算系统部署所述机器人。
18.一种计算机实现的方法,包括:
由计算系统生成合成数据的集合;
由所述计算系统在多个时元内,在经增强的人工标记的数据和合成数据的所述集合上训练用于机器人过程自动化(RPA)的文本识别模型;以及
在所述多个时元中的每个时元,由所述计算系统针对所述评估数据集评估所述文本检测模型的性能,直到所述性能的精度的水平开始下降为止。
19.根据权利要求18所述的计算机实现的方法,还包括:
由所述计算系统将文本检测模型和所述文本识别模型组合成光学字符识别(OCR)模型。
20.根据权利要求19所述的计算机实现的方法,还包括:
由所述计算系统生成包括:调用所述OCR模型的活动的工作流;
由所述计算系统生成实现所述工作流的机器人;以及
由所述计算系统部署所述机器人。
CN202080094920.8A 2019-12-02 2020-08-20 训练用于机器人过程自动化的光学字符检测和识别模型 Pending CN115004247A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/700,494 US11157783B2 (en) 2019-12-02 2019-12-02 Training optical character detection and recognition models for robotic process automation
US16/700,494 2019-12-02
PCT/US2020/047169 WO2021112930A1 (en) 2019-12-02 2020-08-20 Training optical character detection and recognition models for robotic process automation

Publications (1)

Publication Number Publication Date
CN115004247A true CN115004247A (zh) 2022-09-02

Family

ID=76091737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080094920.8A Pending CN115004247A (zh) 2019-12-02 2020-08-20 训练用于机器人过程自动化的光学字符检测和识别模型

Country Status (5)

Country Link
US (2) US11157783B2 (zh)
EP (1) EP4070233A1 (zh)
JP (1) JP2023504146A (zh)
CN (1) CN115004247A (zh)
WO (1) WO2021112930A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114863429A (zh) * 2022-03-16 2022-08-05 来也科技(北京)有限公司 基于rpa和ai的文本纠错方法、训练方法及其相关设备
CN115294588B (zh) * 2022-08-17 2024-04-19 湖北鑫英泰系统技术股份有限公司 一种基于rpa流程机器人的数据处理方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271552A1 (en) 2006-05-19 2007-11-22 Pulley Robert A System and method for packaging software
US9536315B2 (en) 2015-01-13 2017-01-03 Xerox Corporation Annotation free license plate recognition method and system
US9501707B2 (en) 2015-04-16 2016-11-22 Xerox Corporation Method and system for bootstrapping an OCR engine for license plate recognition
US9858496B2 (en) 2016-01-20 2018-01-02 Microsoft Technology Licensing, Llc Object detection and classification in images
US20180157386A1 (en) 2016-12-05 2018-06-07 Jiawen Su System and Method for detection, exploration, and interaction of graphic application interface
US20180189228A1 (en) 2017-01-04 2018-07-05 Qualcomm Incorporated Guided machine-learning training using a third party cloud-based system
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US11288508B2 (en) 2017-10-02 2022-03-29 Sensen Networks Group Pty Ltd System and method for machine learning-driven object detection
JP2021500113A (ja) 2017-10-20 2021-01-07 ニューヴェイジヴ,インコーポレイテッド 椎間板モデリング
CN109697442B (zh) 2017-10-20 2023-04-07 阿里巴巴集团控股有限公司 一种字符识别模型的训练方法和装置
US10890898B2 (en) 2017-11-03 2021-01-12 Drishti Technologies, Inc. Traceability systems and methods
US11194596B2 (en) 2017-11-30 2021-12-07 Lendingclub Corporation Simulating human interface interaction resilient to user interface changes
CN108052937B (zh) 2017-12-28 2019-05-31 百度在线网络技术(北京)有限公司 基于弱监督的字符检测器训练方法、装置、系统及介质
KR20190095651A (ko) 2018-02-07 2019-08-16 삼성에스디에스 주식회사 문자 학습 트레이닝 데이터 생성 장치 및 그 방법
US11055557B2 (en) 2018-04-05 2021-07-06 Walmart Apollo, Llc Automated extraction of product attributes from images
CN110135427B (zh) 2019-04-11 2021-07-27 北京百度网讯科技有限公司 用于识别图像中的字符的方法、装置、设备和介质
US10990876B1 (en) 2019-10-08 2021-04-27 UiPath, Inc. Detecting user interface elements in robotic process automation using convolutional neural networks

Also Published As

Publication number Publication date
US11810382B2 (en) 2023-11-07
US20220067462A1 (en) 2022-03-03
EP4070233A1 (en) 2022-10-12
WO2021112930A1 (en) 2021-06-10
JP2023504146A (ja) 2023-02-01
US11157783B2 (en) 2021-10-26
US20210166093A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
US11599775B2 (en) Detecting user interface elements in robotic process automation using convolutional neural networks
CN113748413B (zh) 文本检测、插入符号追踪以及活动元素检测
US11810382B2 (en) Training optical character detection and recognition models for robotic process automation
CN116391174A (zh) 使用计算机视觉来训练人工智能/机器学习模型以识别应用、屏幕和用户界面元素
JP7115805B2 (ja) テキスト検出、キャレット追跡、及びアクティブ要素検出
EP3905131A1 (en) Text detection, caret tracking, and active element detection
JP7115804B2 (ja) テキスト検出、キャレット追跡、及びアクティブ要素検出
KR102373943B1 (ko) 텍스트 검출, 캐럿 추적, 및 활성 엘리먼트 검출
CN113785301A (zh) 文本检测、插入符号追踪以及活动元素检测

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination