具体实施方式
本公开提供了基于改进的IoU公式来评估目标检测模型的方法和设备,该改进的IoU公式考虑到以下因素:(1)对于文本检测,交集较小比并集较大更糟糕,因为这可能会导致文本的某些区域丢失并影响随后的OCR结果,以及(2)对于文本检测,预测文本框与其他真值文本框之间的交集也可能会对随后的OCR结果产生不利影响。如下面更详细的描述,基于分数来进行评估,该评估不仅会惩罚交集较小和并集较大这样的组合(如传统IoU公式的做法),而且对较小交集的惩罚会比对较大并集的惩罚更重。另外,该评估惩罚预测文本框和其他多个真值文本框之间的交集。因此,给定若干不同的目标检测模型,该评估可以识别或选择最适合文本检测的模型。
将仅通过示例的方式参考附图来描述实施例。附图中相同的附图标记和字符表示相同的要素或等同物。
按照对计算机存储器内数据进行运算的算法和功能或符号表示的方式,来明确地或隐含地呈现以下部分描述。这些算法描述和功能或符号表示是数据处理领域的技术人员用来向本领域其他技术人员最有效地传达其工作实质的手段。这里,算法通常被认为是导致期望结果的步骤的自洽序列。这些步骤是需要对物理量,例如能够被存储、传输、组合、比较和以其他方式操纵的电、磁或光信号,进行物理操纵的步骤。
除非另有特别说明且从后续内容可以明显看出,否则可理解的是,在整个说明书中,使用诸如“扫描”、“接收”、“计算”、“检测”、“确定”、“替换”、“生成”、“初始化”、“输出”、“评估”之类的术语的讨论涉及计算机系统或类似的电子设备的操作和进程,该计算机系统或该电子设备将表示为计算机系统内的物理量的数据处理并转换为表示为计算机系统或其他信息存储、传输或显示设备中的物理量的其他数据。
本说明书还公开了用于执行所述方法的操作的装置。这样的装置可以为所需目的而专门构造,或者可以包括计算机或由存储在计算机中的计算机程序选择性地激活或重新配置的其他设备。本文提出的算法和显示与任何特定计算机或其他装置没有内在的关联。根据本文的教导,各种机器可以与程序一起使用。或者,构建更专业的装置来执行所需方法步骤可能是合适的。适合于执行本文描述的各种方法/过程的计算机的结构将从本文的描述中显示出来。
另外,本说明书还隐含地公开了一种计算机程序,因为对于本领域技术人员而言,本文所述方法的各个步骤显然可以通过计算机代码来实现。该计算机程序并不旨在限于任何特定的编程语言及其实施方式。可理解的是,各种编程语言及其代码可以用于实现本文所包含的本公开的教导。此外,该计算机程序并不旨在限于任何特定的控制流。计算机程序还有许多其他变体,这些变体可以使用不同的控制流而不会背离本发明的主旨或范围。
此外,计算机程序的一个或多个步骤可以并行而不是顺序地执行。这样的计算机程序可以存储在任何计算机可读介质上。计算机可读介质可以包括存储设备,如磁盘或光盘、存储芯片、或适合与计算机交互的其他存储设备。计算机可读介质还可以包括诸如在互联网系统中示例的硬连线介质,或者包括无线介质,诸如在GSM、GPRS、3G或4G移动电话系统中示例的,以及诸如蓝牙、ZigBee、Wi-Fi的其他无线系统示例的。当在这样的计算机上加载并执行该计算机程序时,有效地产生了实现优选方法步骤的装置。
本发明也可以被实现为硬件模块。更具体的,在硬件方面,模块是被设计为与其他组件或模块一起使用的功能硬件单元。例如,模块可以使用分立的电子元件来实现,或者模块可以构成整个电子电路的一部分,例如专用集成电路(Application SpecificIntegrated Circuit,ASIC)或现场可编程门阵列(Field Programmable Gate Array,FPGA)。还有许多其他的可能性存在。本领域技术人员将理解,该系统还可以被实现为硬件和软件模块的组合。
根据各种实施例,“电路”可以理解为任何种类的逻辑实现实体,其可以是专用电路或执行存储在存储器、固件(firmware)或其任何组合中的软件的处理器。因此,在一个实施例中,“电路”可以是硬线逻辑电路或可编程逻辑电路,如可编程处理器,例如微处理器(如,复杂指令集计算机(Complex Instruction Set Computer,CISC)处理器或精简指令集计算机(Reduced Instruction Set Computer,RISC)处理器)。“电路”也可以是处理器,其执行的软件,例如任何种类的计算机程序,例如使用诸如Java的虚拟机代码的计算机程序。根据替代实施例,可以在本文中更详细描述的各个功能的任何其他种类的实施方式也可以被理解为“电路”。
图1示出了根据实施例的例示了用于评估目标检测模型的性能的方法的流程图100。
在步骤102中,基于目标检测模型生成表示目标的预测边界框。该目标附近通常还存在一个或多个相邻目标。例如,该目标可以是与其他多个文本串(例如,句子或段落内的其他多个词和多个短语)接近的文本串(例如,单词或短语)。诸如预测边界框的大小和位置之类的参数可能因目标检测模型的不同而不同。因此,目标检测模型的性能取决于该预测边界框。
在步骤104中,确定该预测边界框和该目标的真值边界框之间的交集面积。通常,该预测边界框和该目标的真值边界框之间的交集面积越大,表示边界框之间的重叠程度越高,更期望较大的交集面积而非较小的交集面积。
在步骤106中,通过如下操作(1)和(2)来确定该预测边界框与该目标的真值边界框之间的修正并集面积,其中:(1)基于一个或多个权重,确定该预测边界框与该真值边界框之间的加权并集面积,以及(2)在该加权并集面积中加上该预测边界框与一个或多个相邻目标的至少一个真值边界框之间的交集面积。
如下面参考图2a进一步说明的,由于两个目标之间的并集面积是它们的交集面积和多个非交集面积的总和,因此在本示例中,预测边界框和真值边界框之间的加权并集面积可以通过对各个组成面积分配适当的权重来确定,该各个组成面积包括预测边界框与目标的真值边界框之间的多个非交集面积。
参考图2b,进一步示出了预测边界框与一个或多个相邻目标的至少一个真值边界框之间的交集面积。
步骤106的最终结果是的修正并集面积,如果预测边界框与目标的真值边界框没有很好地重叠和/或预测边界框与一个或多个相邻目标的一个或多个真值边界框重叠,则修正并集面积较大。通常,更期望较小的并集修正面积,而非较大的并集修正面积。
在步骤108中,确定将该预测边界框与该目标的真值边界框之间的交集面积除以修正并集面积而获得的分数。该分数表示目标检测模型的性能。例如,如果目标检测模型产生较大的并集修正面积,则分数会较低。另一方面,如果目标检测模型产生较小的并集修正面积,则分数会较高。分数接近1表示目标检测准确性较高。
图2a和图2b示出了在图1的方法中确定修正并集面积的实施方式的示意图。在该实施方式中,目标和多个相邻目标是包含字符和数字的文本字符串,并且边界框也可称为“文本框”。然而,本领域技术人员可以理解,文本检测仅仅是一个示例,本方法可以应用于其他类型的目标检测。
参考图2a至图2b,可以将预测边界框标记为集合A,将该目标的真值边界框标记为集合B,并且将多个相邻目标的多个真值边界框分别标记为集合C和D。给定带标签的验证数据,已知B、C和D的大小和位置,而A的大小和位置可以根据所使用的检测模型变化。尽管在该示例中示出了两个相邻目标的边界框,但是应当理解,该计算可以应用于更多数量的相邻目标。
在图1的步骤106中的修正并集面积modified(A∪B)可以表示为:
modified(A∪B)=weighted(A∪B)+A∩C+A∩D(I)
其中,weighted(A∪B)代表集合A和集合B之间的加权并集面积,A∩C代表集合A和集合C之间的交集,并且A∩D代表集合A和集合D之间的交集。A∩C和A∩D对应的面积如图2b所示。
参照图2a,标准并集面积是交集(A∩B)的面积和多个非交集(A1和B1)的面积之和,在公式(I)中,weighted(A∪B)的值是通过考虑以下因素来确定的:B1越大,意味着预测边界框与真值边界框的交集越小,而A1越大,则并集越大。因此,在本实施例中,B1比A1受到更重的惩罚。
例如,weighted(A∪B)可以表示为:
weighted(A∪B)=w1A1+w2B1+(A∩B) (II)
在公式(II)中,权重w1和w2用于调整对A1和B1的惩罚。B1越大,交集越小,而A1越大,并集越大。因此,B1应受到更重的惩罚,这意味着w1<w2。w1和w2的准确值可以基于如实际数据来选择,并且可以根据情况而变化。在一个非限制性示例中,w1+w2=2。A1、B1和A∩B对应的面积如图2a所示。
通过合并以上两个公式(I)和(II):
modified(A∪B)=w1A1+w2B1+(A∩B)+A∩C+A∩D (III)
参考图1的步骤108,分数可以计算为:
在公式(III)和(IV)中,w1<w2,在一个非限制性示例中,w1+w2=2。
从上面的公式(IV)可以看出,尽管分子与用以确定传统IoU的相同,但分母被调整以:(1)较重地惩罚集合A和B之间的较小交集,并较轻地惩罚集合A和B之间的较大并集(如w1<w2),以及(2)惩罚集合A和C之间或集合A和D之间的任何交集(如分量A∩C和A∩D不为零)。换句话说,如果出现条件(1)和(2)中的一个或两个,则分数较低(表示目标检测模型的性能低)。相反,如果集合A和B之间的交集较大,而集合A和C之间或集合A和D之间没有交集,则分数较高。较高的分数(如接近1)表示目标检测模型的准确性更高。
如上所述的评估方法可以通过以下方式来进行目标检测,即首先识别用于检测任务的适当模型,然后再使用该模型来对实际数据进行分析。图3为根据一个实施例示出的目标检测方法的流程图300。
在步骤302中,接收未标记的实际数据和多个目标检测模型。目标检测模型可以由神经网络(例如,卷积神经网络)基于标记的训练数据来生成。未标记的实际数据可以是目标的光学图像的图像数据的形式。例如,该光学图像可以是客户上传的扫描文档或文档的照片,其中包含客户希望提供的文本信息。
在步骤304中,给定标记的验证数据,使用如上参考图1和图2a至图2b所描述的方法来评估每个所述目标检测模型,以识别具有最高分数的目标检测模型。在步骤306中,使用识别出的目标检测模型,在所述未标记的实际数据中检测目标。
在图3的目标检测方法的实施例中,步骤302中的多个目标检测模型可以有相关联的超参数,并且在步骤306中识别出具有该相关联的超参数的分数最高的目标检测模型。然后,使用识别出的模型和相关联的超参数来在该未标记的实际数据中检测目标。
图4是根据一个实施例示出的目标检测器400的示意图。该目标检测器包括耦合到装置404的接收器模块402。装置404包括目标检测模块406和评估模块408。通常,标记的验证数据集合410被提供给评估模块408。接收器模块402被配置为接收未标记的实际数据和多个目标检测模型。多个目标检测模型由神经网络基于标记的训练数据生成。装置404可以基于验证数据评估每个目标检测模型,以识别具有最高分数的目标检测模型。
在一个例子中,目标检测模块406被配置为基于目标检测模型来生成表示目标的预测边界框。该目标附近存在一个或多个相邻目标。评估模块408被配置为确定该预测边界框与该目标的真值边界框之间的交集面积,并确定该预测边界框与该目标的真值边界框之间的修正并集面积。修正并集面积是以下面积之和:预测边界框和真值边界框之间的基于一个或多个权重的加权并集面积;以及预测边界框与一个或多个相邻目标的至少一个真值边界框之间的交集面积。评估模块408还被配置为确定将该预测边界框与该目标的真值边界框之间的交集面积除以该修正并集面积而获得的分数,并基于该分数来评估目标检测模型的性能。针对每个目标检测模型执行这些步骤以识别分数最高的目标检测模型。
然后,目标检测模块406可以基于所识别的目标检测模型来在未标记的实际数据中检测目标。
所描述的方法、系统和设备在应用于文本检测时,可以改善文本框检测中模型选择的性能,并提高OCR的最终准确性。若依据检测模型在预测文本框和目标文本字符串的真值文本框之间呈现小的交集,则该检测模型输出的数据可能会不完整或被截断。同样,若依据检测模型在预测文本框和多个相邻文本字符串的真值文本框之间呈现某种程度的交集,则该检测模型输出的数据可能会有噪声或不准确。根据本实施例,这样的检测模型具有低的评估分数,将不会被选中。相反,若依据检测模型在预测文本框和目标文本字符串的真值文本框之间呈现大的交集,并且在预测文本框和多个相邻文本字符串的真值文本框之间没有交集,则该检测模型具有高的评估分数并被选中。当用于检测真实/实际光学图像中的文本框时,所选中的模型可以输出准确的数据,以帮助提高后续OCR步骤的准确性。
图5描绘了示例性的计算设备500,在下文中也可称为计算机系统500,其中一个或多个这样的计算设备500可以用于图4的目标检测器400,或者用于实现图1和图3中所述方法的一些或全部步骤。以下对计算设备500的描述仅以示例的方式提供,而无意于进行限制。
如图5所示,示例计算设备500包括用于执行软件例程的处理器504。尽管为了清楚起见示出了单个处理器,但是计算设备500也可以包括多处理器系统。处理器504连接到通信基础设施506,用于与计算设备500的其他组件进行通信。通信基础设施506可以包括例如通信总线、交叉开关或网络。
计算设备500还包括诸如随机存取存储器(Random Access Memory,RAM)之类的主存储器508和辅助存储器510。辅助存储器510可以包括,例如硬盘驱动器512和/或可移动存储驱动器514,可移动存储驱动器514可以包括软盘驱动器,磁带驱动器,光盘驱动器等。可移动存储驱动器514以常规方式对可移动存储单元518进行读取和/或写入。可移动存储单元518可以包括由可移动存储驱动器514读取和写入的软盘、磁带、光盘等。相关领域技术人员可以理解,可移动存储单元518包括其上存储有计算机可执行程序代码指令和/或数据的计算机可读存储介质。
在一种可选实施方式中,辅助存储器510可以额外包括或选择性包括用于允许将计算机程序或其他指令加载到计算设备500中的其他类似装置。这样的装置可以包括例如可移动存储单元522和接口520。可移动存储单元522和接口520的示例包括:程序卡带(cartridge)和卡带接口(例如可在视频游戏控制台设备中找到的程序卡带和卡带接口)、可移动存储芯片(例如EPROM或PROM)和相关联的插槽、以及其他可移动存储单元522和允许软件和数据从可移动存储单元522传输到计算机系统500的接口520。
计算设备500还包括至少一个通信接口524。通信接口524允许软件和数据经由通信路径526在计算设备500和外部设备之间传输。在本发明的各种实施例中,通信接口524允许数据在计算设备500和诸如公共数据或私有数据通信网络之类的数据通信网络之间传输。通信接口524可用于在不同的计算设备500之间交换数据,这些计算设备500形成互连的计算机网络的一部分。通信接口524的示例可以包括调制解调器、网络接口(诸如以太网卡)、通信端口、具有相关电路的天线等等。通信接口524可以是有线的或者可以是无线的。经由通信接口524传输的软件和数据为信号形式,该信号可以是能够被通信接口524接收的电、磁、光或其他信号。这些信号经由通信路径526被提供给通信接口。
如图5所示,计算设备500还包括显示器接口502和音频接口532,显示器接口502执行用于将图像渲染到关联的显示器530的操作,音频接口532用于执行通过关联的扬声器534播放音频内容的操作。
在本申请文件中,术语“计算机程序产品”部分程度上可以指代:可移动存储单元518、可移动存储单元522、安装在硬盘驱动器512中的硬盘、或承载着软件通过通信路径526(无线链路或电缆)到通信接口524的载波。计算机可读存储介质是指将记录的指令和/或数据提供给计算设备500以执行和/或处理的任何非暂时的有形的存储介质。这种存储介质的示例包括软盘、磁带、CD-ROM、DVD、蓝光TM光盘、硬盘驱动器、ROM或集成电路、USB存储器、磁光盘、或诸如PCMCIA卡之类的计算机可读卡等等,这些部件无论是在计算设备500的内部还是外部均可。瞬态或非有形计算机可读传输介质也可以参与向计算设备500提供软件、应用程序、指令和/或数据,这种传输介质的示例包括无线电或红外传输信道、到另一台计算机或另一个联网设备的网络连接、以及包括电子邮件传输和记录在网站上的信息等的互联网或内联网。
计算机程序(也被称为计算机程序代码)存储在主存储器508和/或辅助存储器510中。也可以经由通信接口524来接收计算机程序。此类计算机程序在被执行时使计算设备500能够执行本文所讨论的实施例的一个或多个特征。在各种实施例中,计算机程序在被执行时,使处理器504能够执行上述实施例的特征。因此,此类计算机程序代表计算机系统500的控制器。
软件可以存储在计算机程序产品中,并使用可移动存储驱动器514、硬盘驱动器512或接口520加载到计算设备500中。替代地,可以通过通信路径526将计算机程序产品下载到计算机系统500。该软件在由处理器504执行时促使计算设备500执行本文描述的实施例的功能。
应该理解,图5的实施例仅以示例的方式给出。因此,在一些实施例中,可以省略计算设备500的一个或多个特征。而且,在一些实施例中,计算设备500的一个或多个特征可以被组合在一起。另外,在一些实施例中,计算设备500的一个或多个特征可以被分成一个或多个组成部分。
可以理解的是,图5所示的要素起到了提供执行以上实施例中所描述的服务器的各种功能和操作的途径的作用。
在一种实施方式中,服务器通常可以被描述为包括至少一个处理器和至少一个包括计算机程序代码的存储器的物理设备。所述至少一个存储器和计算机程序代码被配置为与所述至少一个处理器一起促使所述物理设备执行必要的操作。
本领域技术人员可以理解的是,在不脱离如广泛描述的本发明的精神或范围的情况下,可以对如特定实施例所示的本发明进行多种变更和/或修改。例如,所描述的方法、系统和设备可以适合于不同类型的目标检测,例如面部检测或车辆检测。因此,本实施例在所有方面都应被认为是说明性的,而不是限制性的。