CN111414915A - 一种文字识别方法以及相关设备 - Google Patents
一种文字识别方法以及相关设备 Download PDFInfo
- Publication number
- CN111414915A CN111414915A CN202010109201.0A CN202010109201A CN111414915A CN 111414915 A CN111414915 A CN 111414915A CN 202010109201 A CN202010109201 A CN 202010109201A CN 111414915 A CN111414915 A CN 111414915A
- Authority
- CN
- China
- Prior art keywords
- control point
- character
- point parameter
- area
- recognition
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 197
- 230000008569 process Effects 0.000 claims abstract description 83
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000012549 training Methods 0.000 claims description 240
- 238000001514 detection method Methods 0.000 claims description 114
- 230000006870 function Effects 0.000 claims description 103
- 230000015654 memory Effects 0.000 claims description 49
- 238000010586 diagram Methods 0.000 claims description 43
- 238000011478 gradient descent method Methods 0.000 claims description 14
- 238000005070 sampling Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 19
- 238000013461 design Methods 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Character Discrimination (AREA)
Abstract
本申请实施例公开一种文字识别方法以及相关设备,该方法可用于人工智能的文字识别领域中,方法可以包括:获取待处理图像并生成与待处理图像对应的第一控制点参数,根据第一控制点参数生成目标曲线,目标曲线用于指示待处理图像中的目标区域,目标区域为待处理图像中的文字区域;对目标区域进行文字识别,得到识别结果,由于曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,以实现对任意形状的文字的识别操作;按照曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;直接根据曲线得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种文字识别方法以及相关设备。
背景技术
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。利用人工智能进行文字识别是人工智能常见的一个应用方式。
现实中存在大量任意形状的文字区域,包括图像本身就是不规则布局的文字,也包括在弯曲表面的文字,由于拍摄原因在图像上呈现弯曲区域。这类任意形状布局的文字识别是目前文字识别的难点。
一种可以对任意形状的文字进行识别的文字识别方法亟待推出。
发明内容
本申请实施例提供了一种文字识别方法以及相关设备,用于通过曲线将待处理图像中的文字区域圈出来,进而对曲线指示的区域进行文字识别,提高文字识别过程的精度和效率。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种文字识别方法,可用于人工智能领域的文字识别领域中,方法包括:执行设备获取待处理图像,待处理图像包括目标区域,目标区域为文字区域;执行设备生成与目标区域对应的第一控制点参数,根据第一控制点参数生成目标曲线,具体的,执行设备将控制点参数带入到曲线方程中,可以得到曲线。其中,待处理图像可以为实时获取的图像,也可以为图库中的图像,也可以为视频中的视频帧,也可以为扫描获得的图像。目标曲线用于指示待处理图像中的目标区域。控制点参数具体可以表现为控制点的坐标,控制点的坐标的坐标系原点可以根据控制点确定,也可以根据待处理图像的顶点确定。进而执行设备对目标区域进行文字识别,得到识别结果。本实现方式中,在获取到待处理图像之后,通过曲线将待处理图像中的文字区域圈出来,进而对曲线指示的区域进行文字识别,由于曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,以实现对任意形状的文字的识别操作;由于曲线能够将待识别文字较为贴合的包围起来,按照曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;此外,直接根据控制点参数生成曲线,从而得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。
在第一方面的一种可能实现方式中,目标曲线为贝塞尔曲线,贝塞尔曲线是应用于二维图形应用程序的数学曲线,它是根据多个控制点参数绘制出的一条光滑曲线。
在第一方面的一种可能实现方式中,执行设备生成与待处理图像对应的第一控制点参数,可以包括:执行设备将待处理图像输入到文字区域检测网络中,通过文字区域检测网络中的特征提取网络得到目标训练图像的特征图,进而将待处理图像的特征图分别输入到回归网络和分类网络中,以通过回归网络生成与待处理图像的P个候选区域中每个候选区域对应的控制点参数,并通过分类网络对待处理图像包括的P个候选区域进行分类,以确定P个候选区域中每个候选区域是否为文字区域,其中,第二控制点参数指的是回归网络回归到的控制点参数,第一控制点参数指的是文字区域检测网络输出的控制点参数;只有在候选区域为文字区域的情况下,将候选区域确定为目标区域,将第二控制点参数确定为第一控制点参数,也即只有在候选区域为文字区域的情况下,与候选区域对应的第二控制点参数才会被确定为需要输出的第一控制点参数。本实现方式中,只有在分类结果指示该区域为文字区域的情况下,才会将与该区域对应的控制点参数作为与文字区域对应的控制点参数,以降低文字区域检测网络输出的控制点参数指向的为非文字区域的概率,提高控制点参数输出过程的准确率;此外,由于后续会对控制点参数指向的区域进行文字识别,避免指向非文字区域的控制点参数的输出意味着可以减少后期文字识别过程的工作量,提高了整个文字识别过程的效率。
在第一方面的一种可能实现方式中,目标曲线中包括一组或至少两组曲线,对应的,目标区域中包括一个或至少两个文字区域。执行设备根据目标控制点参数生成目标曲线之后,方法还包括:执行设备按照目标曲线的走势,对待处理图像的特征图进行采样,得到目标区域的特征图;其中,目标区域包括的文字区域的特征图为一组曲线包括的两条曲线之间的区域的特征图。进而执行设备对目标区域的特征图进行文字识别,得到识别结果。本实现方式中,直接按照曲线的上下边界的走势进行采样,减少了弯曲文字矫正的复杂度,提高了文字识别过程的效率;此外,由于在确定目标控制点参数的过程中一定会生成待处理图像的特征图,所以在生成曲线之后,直接对待处理图像的特征图进行采样,而不是再对待处理图像进行采样,有利于节省计算机资源。
在第一方面的一种可能实现方式中,第一控制点参数包括一组或至少两组控制点参数,目标区域包括一个或至少两个文字区域,每组控制点参数用于生成两条曲线,所述两条曲线对应于一个文字区域,分别为所述文字区域的上边界和下边界。本实现方式中,文字区域检测网络既可以处理有一个文字区域的图像,也可以处理有至少两个文字区域的图像,扩展了本方案的应用场景。
在第一方面的一种可能实现方式中,方法还包括:执行设备输出识别结果和第一控制点参数,第一控制点参数用于供终端设备确定第一曲线;或者,执行设备输出识别结果和与第一曲线对应的边界坐标,与第一曲线对应的边界坐标用于供终端设备确定第一曲线;或者,执行设备显示识别结果和第一曲线;或者,执行设备显示识别结果。本实现方式中,提供了识别结果的多种输出方式,扩展了本方案的应用场景,提高了本方案的实现灵活性。
第二方面,本申请实施例提供一种文字识别方法,可用于人工智能领域的文字识别领域中,方法包括:训练设备获取训练图像和第三控制点参数,其中,训练图像中包括文字区域,第三控制点参数为预先生成的,第三控制点参数对应于指示文字区域的曲线。将训练图像输入文字区域检测网络,得到文字区域检测网络输出的第四控制点参数,第四控制点参数对应于指示文字区域的曲线。根据第三控制点参数和第四控制点参数,通过第一损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,第一损失函数用于指示第三控制点参数和第四控制点参数的相似度,第一损失函数的目的是拉近第三控制点参数和第四控制点参数之间的相似度。第一损失函数具体可以表现为平方差损失函数或平稳L1损失函数。
在第二方面的一种可能实现方式中,用于指示文字区域的曲线为贝塞尔曲线。
在第二方面的一种可能实现方式中,方法还包括:训练设备通过文字识别网络对第四控制点参数对应的文字区域进行文字识别,得到文字识别网络输出的第一识别结果;根据第一识别结果和第二识别结果,通过第二损失函数,对文字识别网络进行训练,直至满足收敛条件,得到训练后的文字识别网络。其中,第二识别结果为预先生成的,第二识别结果用于指示与第四控制点参数对应的文字区域的识别结果,第二损失函数用于指示第一识别结果和第二识别结果之间的相似度,第二损失函数的目的为拉近第一识别结果和第二识别结果之间的相似度,第二损失函数具体可以表现为交叉熵损失函数或序列最优对齐损失函数。本实现方式中,在训练阶段,将文字区域检测网络和文字识别网络独立进行训练,降低了训练阶段的复杂度。
在第二方面的一种可能实现方式中,训练设备将训练图像输入文字区域检测网络之后,方法还包括:训练设备获取文字区域检测网络在进行文字区域检测过程中,针对训练图像中第一区域生成的第一分类结果,其中,第一区域为训练图像包括的至少一个区域中的任一个区域,第一分类结果用于指示第一区域是否为文字区域。训练设备根据第三控制点参数和第四控制点参数,通过第一损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,包括:训练设备根据第三控制点参数、第四控制点参数、第一分类结果和第二分类结果,通过第一损失函数和第三损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络。其中,第二分类结果为预先生成的,第二分类结果用于指示第一区域是否为文字区域,第三损失函数用于指示第一分类结果与第二分类结果之间的相似度,第三损失函数的目的是拉近第一分类结果和第二分类结果之间的相似度。第三损失函数具体可以表现为二分类损失函数或逻辑损失函数。本实现方式中,在训练阶段,不仅训练文字检测网络输出的控制点参数的准确率,而且训练分类网络分类过程的准确率,以进一步降低文字区域检测网络输出的控制点参数指向的为非文字区域的概率,进一步提高了文字区域检测网络输出结果的准确率。
在第二方面的一种可能实现方式中,训练设备获取训练图像和第三控制点参数之前,方法还包括:训练设备根据训练图像中文字区域的边界坐标,通过最小二乘法或梯度下降法,拟合出于训练图像中文字区域对应的第三控制点参数。其中,最小二乘法和梯度下降法均为一种数学优化方法,最小二乘法是利用目标文字区域的边界坐标,直接拟合出目标文字区域的控制点参数,没有反向反馈调整的过程;梯度下降法在第一次拟合出目标文字区域的控制点参数之后,会根据拟合出的曲线与目标文字区域的贴合程度来评估拟合程度的好坏,进而反向调整控制点参数,以拟合出最贴合目标文字区域的控制点参数。本申请实施例中,利用文字区域的边界坐标,直接生成文字区域的控制点参数,提高了训练数据集合的生成过程的效率;提供了最小二乘法或梯度下降法两种实现方式,提高了方案的实现灵活性。
本申请第二方面以及第二方面的各种可能实现方式的具体实现方式,均可以参阅第一方面以及第一方面的各个可能实现方式,此处不再赘述。
第三方面,本申请实施例提供了一种文字识别装置,可用于人工智能领域的文字识别领域中,装置包括:获取模块、生成模块和识别模块。获取模块,用于获取待处理图像,待处理图像包括目标区域,目标区域为文字区域;生成模块,用于生成与目标区域对应的第一控制点参数;生成模块,还用于根据第一控制点参数生成目标曲线,其中,目标曲线用于指示目标区域;识别模块,用于对目标区域进行文字识别,得到识别结果。
本申请第三方面中,文字识别装置包括的各个模块还可以用于执行第一方面的各个可能实现方式中执行设备执行的步骤,具体均可以参阅第一方面,此处不再赘述。
第四方面,本申请实施例提供了一种文字识别装置,可用于人工智能领域的文字识别领域中,装置包括:获取模块、输入模块和训练模块。获取模块,用于获取训练图像和第三控制点参数,其中,训练图像中包括文字区域,第三控制点参数为预先生成的,第三控制点参数对应于指示文字区域的曲线;输入模块,用于将训练图像输入文字区域检测网络,得到文字区域检测网络输出的第四控制点参数,第四控制点参数对应于指示文字区域的曲线;训练模块,用于根据第三控制点参数和第四控制点参数,通过第一损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,第一损失函数用于指示第三控制点参数和第四控制点参数的相似度。
本申请第四方面中,文字识别装置包括的各个模块还可以用于执行第二方面的各个可能实现方式中训练设备执行的步骤,具体均可以参阅第二方面,此处不再赘述。
第五方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所述的文字识别方法,或者,使得计算机执行上述第二方面所述的文字识别方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所述的文字识别方法,或者,使得计算机执行上述第二方面所述的文字识别方法。
第七方面,本申请实施例提供了一种执行设备,包括处理器和存储器,所述处理器与所述存储器耦合;所述存储器,用于存储程序;所述处理器,用于执行所述存储器中的程序,使得所述处理器执行上述第一方面所述的文字识别方法。
第八方面,本申请实施例提供了一种训练设备,包括处理器和存储器,所述处理器与所述存储器耦合;所述存储器,用于存储程序;所述处理器,用于执行所述存储器中的程序,使得所述处理器执行上述第二方面所述的文字识别方法。
第十八方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持终端设备或通信设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为本申请实施例提供的人工智能主体框架的一种结构示意图;
图2为本申请实施例提供的文字识别系统的一种系统架构图;
图3为本申请实施例提供的文字识别方法的一种流程示意图;
图4为本申请实施例提供的文字识别方法中控制点参数与训练图像之间关系的示意图;
图5为本申请实施例提供的文字识别方法中生成第三控制点参数的一个示意图;
图6为本申请实施例提供的文字识别方法中采样到的特征图的一个示意图;
图7为本申请实施例提供的文字识别方法的另一种流程示意图;
图8为本申请实施例提供的文字识别方法的又一种流程示意图;
图9为本申请实施例提供的文字识别装置的一种结构示意图;
图10为本申请实施例提供的文字识别装置的另一种结构示意图;
图11为本申请实施例提供的文字识别装置的又一种结构示意图;
图12为本申请实施例提供的文字识别装置的再一种结构示意图;
图13为本申请实施例提供的执行设备的一种结构示意图;
图14为本申请实施例提供的训练设备的一种结构示意图;
图15为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
本申请实施例提供了一种文字识别方法以及相关设备,用于通过贝塞尔曲线将待处理图像中的文字区域圈出来,进而对贝塞尔曲线指示的区域进行文字识别,提高文字识别过程的精度和效率。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、视频帧、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,文字识别,语音识别,视频帧的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市等。
本申请实施例可以应用于人工智能领域的文字识别领域中,具体的,结合图1来讲,本申请实施例中基础设施获取的待处理图像中存在文字,执行设备生成与待处理图像对应的控制点参数,并根据该控制点参数生成目标曲线,目标曲线用于指示待处理图像中的文字区域,进而对目标曲线指示的文字区域进行文字识别,得到识别结果,由于目标曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,按照目标曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;此外,直接根据控制点参数生成目标曲线,从而得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。其中,目标曲线具体可以表现为贝塞尔(Bezier)曲线或其他类型的曲线,本申请实施例中仅以目标曲线具体表现为贝塞尔曲线为例进行说明,当目标曲线表现为其它类型的曲线时,可参阅当目标曲线为贝塞尔曲线时的具体实现方式,本申请实施例中不再进行赘述。由于智能终端、自动驾驶或其他领域中都可以用到本申请实施例中的文字识别方法,下面将对多个落地到产品的多个应用场景进行介绍。
在智能终端这一应用场景中时,所述智能终端可以为手机、平板、笔记本电脑、台式电脑或智能穿戴设备等。作为示例,例如智能终端为手机,用户可以通过手机的摄像头实时采集图像,并对图像中的文字进行识别后,再进行翻译。作为另一示例,例如智能终端为用于进行信息录入的台式电脑,在获取到待录入文件的扫描文件后,通过台式电脑对扫描文件进行文字识别,以实现信息录入的自动化。前述示例中对文字进行识别的过程均可以应用到本申请实施例提供的文字识别方法。
在自动驾驶这一应用场景中时,自动驾驶车辆通过传感器获取到周围环境的图像信息,对周围环境的图像信息进行文字识别的过程中可以使用到本申请实施例提供的文字识别方法,应理解,只要是具有文字识别功能的应用场景均可,此处不做穷举。
接下介绍的是本申请实施例的文字识别系统的系统架构图,请先参阅图2,图2为本申请实施例提供的文字识别系统的一种系统架构图,在图2中,文字识别系统200包括执行设备210、训练设备220、数据库230、客户设备240和数据存储系统250,执行设备210中包括计算模块211。
其中,数据库230中存储有训练图像集合和预先生成的控制点参数集合,训练设备220生成用于进行文字识别的目标模型/规则201,并利用数据库230中的训练图像集合和预先生成的控制点参数集合对目标模型/规则201进行迭代训练,得到成熟的目标模型/规则201。将成熟的目标模型/规则201配置于执行设备210中,具体配置方式包括但不限于无线通信、有线通信、通过可移动存储介质配置等等。
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。数据存储系统250可以置于执行设备210中,也可以为数据存储系统250相对执行设备210是外部存储器。
本申请的一些实施例中,请参阅图2,执行设备210和客户设备240可以为分别独立的设备,执行设备210配置有I/O接口212,与客户设备240进行数据交互,“用户”可以通过客户设备240向I/O接口212输入待处理图像,执行设备210通过I/O接口212将识别结果返回给客户设备240,提供给用户。图2仅是本发明实施例提供的文字识别系统的一种架构示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在本申请的另一些实施例中,执行设备210可以配置于客户设备240中,作为示例,例如当客户设备为手机或平板时,执行设备210可以为手机或平板的主处理器(Host CPU)中用于进行文字识别的模块,执行设备210也可以为手机或平板中的图形处理器(graphics processing unit,GPU)或者神经网络处理器(NPU),GPU或NPU作为协处理器挂载到主处理器上,由主处理器分配任务。
结合上述描述,下面开始对本申请实施例提供的文字识别方法的训练阶段和推理阶段的具体实现流程进行描述。
一、训练阶段
本申请实施例中,训练阶段描述的是训练设备220如何利用数据库230中维护的视频帧数据进行训练的过程,具体的,请参阅图3,图3为本申请实施例提供的文字识别方法的一种流程示意图,本申请实施例提供的文字识别方法可以包括:
301、训练设备获取目标训练图像和第三控制点参数。
本申请实施例中,训练设备上会预先配置有训练数据集合。其中,训练数据集合包括多个训练图像,每个训练图像中均包括一个或至少两个文字区域;训练数据集合中还包括与训练图像对应的控制点参数集合,控制点参数集合中的控制点参数用于带入贝塞尔曲线方程中,以生成贝塞尔曲线,所述贝塞尔曲线用于指示训练图像中文字区域的位置。
进一步地,贝塞尔曲线是应用于二维图形应用程序的数学曲线,它是根据i个位置任意的点坐标(也即i个控制点参数)绘制出的一条光滑曲线,i的取值为贝塞尔曲线的阶数加1,i可以为大于等于3的任意整数,i的取值越大,贝塞尔曲线的精度越高,从而贝塞尔曲线圈定的文字区域的范围越精确,但对应的,i的取值越大,所使用的计算机资源越多;一般情况下,i可以取3、4、5、6或其他数值等。为进一步理解本方案,如下公开了贝塞尔曲线的生成公式:
其中,c(t)代表贝塞尔曲线的因变量,bi代表控制点参数,Bi,n(t)代表贝塞尔方程参数,n代表贝塞尔方程的阶数,t代表贝塞尔曲线的自变量。贝塞尔方程参数可以通过如下公式计算获得:
由于贝塞尔方程参数获得公式中每个子母的含义均已进行了介绍,此处不做赘述。
控制点参数集合中包括多个控制点参数子集合,每个控制点参数子集合中的控制点参数用于指示一个训练图像中所有文字区域的位置,由于一个训练图像中包括一个或至少两个文字区域,则一个控制点参数子集合中包括一组或多组控制点参数,每组控制点参数用于指示训练图像中的一个文字区域。每组控制点参数中包括2i个控制点参数,所述2i个控制点参数分别为两条贝塞尔曲线的控制点参数,前述两条贝塞尔曲线分别用于指示一个文字区域的上边界和下边界。为了更直观的感受控制点参数与训练图像之间的对应关系,请参阅图4,图4为本申请实施例提供的文字识别方法中控制点参数与训练图像之间关系的示意图。图4中以一个训练图像中包括一个文字区域,贝塞尔曲线的阶数为3为例,如图所示,A1至A8代表与一个训练图像对应的控制点参数子集合,由于该训练图像中只有一个文字区域,控制点参数子集合中只包括一组控制点参数。其中,A1、A2、A3和A4为第一条贝塞尔曲线的控制点,该第一条贝塞尔曲线用于指示文字区域的下边界;A5、A6、A7和A8为第二条贝塞尔曲线的控制点该第二条贝塞尔曲线用于指示文字区域的上边界。应理解,图4中的示例仅为方便理解本方案,不用于限定本方案。
控制点参数可以为控制点的坐标,在一种实现方式中,可以根据2i个控制点参数建立坐标系,例如以最左边的控制点所在竖直方向的线作为坐标系的纵轴,以最下面的控制点所在的水平方向的线作为坐标系的横轴,2i个控制点参数均以前述坐标系作为参照;再例如,以2i个控制点中的某一个控制点为坐标系的原点,2i个控制点参数均以前述坐标系原点作为参照。在另一种实现方式中。也可以根据训练图像建立坐标系,例如以训练图像中的任一个图像顶点作为坐标系的原点,2i个控制点参数均以前述坐标系原点作为参照。
训练设备在对文字区域检测网络进行训练操作之前,从训练数据集合的训练图像集合中获取目标训练图像,以及,从训练数据集合中获取与所述目标训练图像中的文字区域对应的第三控制点参数。其中,目标训练图像为训练图像集合包括的多个训练图像中的任一个图像,目标训练图像中包括一个或至少两个文字区域。对应的,第三控制点参数也即为控制点参数集合中的一个控制点参数子集合,第三控制点参数中包括一组或至少两组控制点参数,每组控制点参数对应于两条贝塞尔曲线,所述两条贝塞尔曲线分别用于指示文字区域的上边界和下边界,从而通过所述两条贝塞尔曲线可以指示出目标训练图像中的一个文字区域。
具体的,针对在步骤301之前,训练设备配置训练数据集合的过程。在一种实现方式中,训练设备从公开数据集中直接获取训练数据集合。在另一种实现方式中,训练设备从公开数据集合中获取训练图像集合,以及,与训练图像集合对应的边界坐标集合,进而根据训练图像集合和边界坐标集合,通过最小二乘法(least square estimation)或梯度下降法(stochastic gradient descent),生成训练数据集合中的控制点坐标集合。其中,边界坐标集合的概念与控制点坐标集合的概念对应,边界坐标集合中包括多个边界坐标子集合,每个边界坐标子集合中的边界坐标用于指示一个训练图像中所有文字区域的位置,由于一个训练图像中包括一个或至少两个文字区域,则一个边界坐标子集合中包括一组或多组边界坐标,一组边界坐标中包括一个文字区域的多个边界点的坐标,每组边界坐标用于指示训练图像中的一个文字区域。与控制点参数对应,与边界坐标对应的坐标系原点可以为根据多个边界点建立,也可以根据训练图像建立,具体实现方式可以参阅上述对控制点参数的坐标系的描述,此处不做赘述。
针对训练图像集合中的目标训练图像,训练设备从边界坐标集合中获取与目标训练图像对应的目标边界坐标子集合,目标边界坐标子集合中包括目标训练图像中一个或至少两个文字区域的边界坐标,针对一个或至少两个文字区域中的目标文字区域,目标文字区域为所述一个或至少两个文字区域中的任一个文字区域,训练设备根据目标文字区域的边界坐标,通过最小二乘法或梯度下降法,生成与目标文字区域对应的控制点参数,也即根据目标文字区域的边界坐标,通过最小二乘法或梯度下降法拟合出与目标文字区域对应的贝塞尔曲线的控制点参数,也即拟合出与目标文字区域对应的贝塞尔曲线。训练设备对每一个文字区域均执行前述操作,以生成第三控制点参数(也即与目标训练图像对应的控制点参数子集合)。其中,最小二乘法和梯度下降法均为一种数学优化方法,最小二乘法是利用目标文字区域的边界坐标,直接拟合出目标文字区域的控制点参数,没有反向反馈调整的过程;梯度下降法在第一次拟合出目标文字区域的控制点参数之后,会根据拟合出的贝塞尔曲线与目标文字区域的贴合程度来评估拟合程度的好坏,进而反向调整控制点参数,以拟合出最贴合目标文字区域的控制点参数。本申请实施例中,利用文字区域的边界坐标,直接生成文字区域的控制点参数,提高了训练数据集合的生成过程的效率;提供了最小二乘法或梯度下降法两种实现方式,提高了方案的实现灵活性。
为进一步理解本方案,请参阅图5,图5为本申请实施例提供的文字识别方法中生成第三控制点参数的一个示意图。图5中以目标训练图像中包括一个文字区域,贝塞尔曲线的阶数为3为例,图5中左图示出的为目标训练图像中文字区域的边界点坐标,如图所示,其中包括B1至B1这10个边界点的坐标,右图为需要拟合成贝塞尔曲线的第三控制参数,对于右图的理解可以参阅上述对图4中的描述,此处不做赘述。应理解,图5中的示例仅为方便理解本方案,不用于限定本方案。
302、训练设备将目标训练图像输入文字区域检测网络,得到文字区域检测网络输出的第四控制点参数。
本申请实施例中,训练设备在获取到目标训练图像之后,将目标训练图像输入到文字区域检测网络中,通过文字区域检测网络对目标训练图像的文字区域进行检测,得到文字区域检测网络输出的第四控制点参数。其中,目标训练图像中可以包括Q个文字区域,第四控制点参数包括Q组控制点参数,Q的取值大于等于1,一组控制点参数与一个文字区域之间的关系为一一对应关系;Q组控制点参数中每组控制点参数用于确定2条贝塞尔曲线,2条贝塞尔曲线用于指示一个文字区域。本申请实施例中,文字区域检测网络既可以处理有一个文字区域的图像,也可以处理有至少两个文字区域的图像,扩展了本方案的应用场景。
其中,文字检测网络可以包括特征提取网络、回归网络和分类网络。特征提取网络用于对目标训练图像进行特征提取,得到目标训练图像的特征图;回归网络用于对目标训练图像的特征图进行回归操作,以生成与目标训练图像的多个区域对应的控制点参数;分类网络用于基于目标训练图像的特征图,对目标训练图像的多个区域进行分类,以生成多个分类结果,一个分类结果用于指示一个区域是否为文字区域。
具体的,训练设备将目标训练图像输入文字区域检测网络中,通过文字区域检测网络中的特征提取网络得到目标训练图像的特征图,进而将目标训练图像的特征图分别输入到回归网络和分类网络。回归网络针对目标训练图像的P个候选区域中的每个区域都会回归出一组控制点参数,在回归网络对P个候选区域均执行完回归操作之后,共生成P组控制点参数,也即得到了P组第五控制点参数。与此同时,分类网络针对目标训练图像的P个候选区域中的每个区域均会生成一个分类结果,用于指示该区域是否为文字区域,在分类网络对P个候选区域均执行完分类操作之后,共生成P个第一分类结果。其中,分类结果具体可以表现为区域是否为文字区域的字符编码或数字编码,作为示例,例如分类结果为“是”和“否”;作为另一示例,例如分类结果为“0”和“1”,其中,“0”代表不是文字区域,“1”代表是文字区域等,分类结果还可以具体表现为区域是否为文字区域的概率值,作为示例,例如输出的一个分类结果为“0 0.3”和“1 0.7”,意思是该区域是文字区域的概率为0.3,该区域不是文字区域的概率为0.7等,此处不对分类结果的具体表现形式做穷举。
训练设备可以通过文字区域检测网络根据P个第一分类结果判断P个候选区域中的第一区域是否为文字区域,只有在第一区域为文字区域的情况下,才将与第一区域对应的一组控制点参数作为需要输出的控制点参数,也即只有在第一区域为文字区域的情况下,才将与第一区域对应的一组控制点参数作为Q组控制点参数中的一组控制点参数。其中,第一区域为P个候选区域中的任一个区域。训练设备对P个候选区域中的每个区域均执行前述操作,得到需要输出的Q组控制点参数,其中,P组控制点参数包括上述Q组控制点参数。由于回归网络和分类网络是并行执行的,所以P组控制点参数和P个第一分类结果根据生成顺序可以形成一一对应的关系。作为示例,例如P的取值为3,训练设备通过回归网络和分类网络分别得到:第一组控制点参数和是、第二组控制点参数和否、第三组控制点参数和是,意思是目标训练图像中与第一组控制点参数对应的区域是文字区域,目标训练图像中是与第二组控制点参数对应的区域部是文字区域,目标训练图像中是与第三组控制点参数对应的区域是文字区域,则P组控制点参数包括第一组控制点参数、第二组控制点参数和第三组控制点,Q组控制点参数包括第一组控制点参数和第三组控制点,应理解,此处举例仅为方便理解本方案,不用于限定本方案。本申请实施例中,在文字区域检测网络输出与某个区域对应的控制点参数之前,会通过分类网络对该区域进行分类,只有在分类结果指示该区域为文字区域的情况下,才会将与该区域对应的控制点参数作为与文字区域对应的控制点参数,以降低文字区域检测网络输出的控制点参数指向的为非文字区域的概率,提高控制点参数输出过程的准确率;此外,由于后续会对控制点参数指向的区域进行文字识别,避免指向非文字区域的控制点参数的输出意味着可以减少后期文字识别过程的工作量,提高了整个文字识别过程的效率。
303、训练设备获取文字区域检测网络在进行文字区域检测过程中,针对目标训练图像中第一区域生成的第一分类结果。
本申请的一些实施例中,训练设备会获取文字区域检测网络在进行文字区域检测过程中,文字区域检测网络的分类网络针对目标训练图像中第一区域生成的第一分类结果,训练设备重复执行前述操作,以获取到目标训练图像中P个候选区域的P个第一分类结果。
304、训练设备根据第三控制点参数和第四控制点参数,通过第一损失函数,对文字区域检测网络进行训练。
本申请实施例中,训练设备在获取到文字区域检测网络输出的第四控制点参数之后,可以根据从训练数据集合中获取的与目标训练图像对应的第三控制点参数和第四控制点参数,生成第一损失函数的函数值,并通过梯度下降法反向优化文字区域检测网络的参数,以实现对文字区域检测网络的参数的一次训练。
其中,第一损失函数用于指示第三控制点参数和第四控制点参数之间的相似度,第一损失函数的目的是拉近第三控制点参数和第四控制点参数之间的相似度。第一损失函数具体可以表现为平方差损失函数、平稳(smooth)L1损失函数或其他损失函数等,此处不做穷举。进一步地,第三控制点参数和第四控制点参数均包括Q组控制点参数,每组控制点参数中包括2i个控制点参数,且第三控制点参数和第四控制点参数中包括的控制点参数具有一一对应关系。更进一步地,平方差损失函数指的是计算第三控制点参数和第四控制点参数的参数差之间的平方和。也即训练设备从第三控制点参数中获取一个目标控制点参数,从第四控制点参数中获取与目标控制点参数对应的控制点参数,求与目标控制点参数对应的控制点参数和目标控制点参数之间的参数差,再获取前述参数差的平方和,目标控制点参数为第三控制点参数中的任一控制点参数,训练设备对第三控制点参数中每个控制点参数均执行前述操作,得到2i乘Q个参数差的平方,进而求和,得到平方差损失函数的函数值。smooth L1损失函数指的是当上述参数差大于预设阈值时计算参数差的绝对值之和,当参数差小于等于预设阈值时计算参数差的平方和。
305、训练设备根据第一分类结果和第二分类结果,通过第三损失函数,对文字区域检测网络进行训练。
本申请实施例中,步骤303和305均为可选步骤,若不执行步骤305,则不需要执行步骤303;若执行步骤303和305,则训练数据集合中还包括与训练图像集合对应的分类结果集合,步骤301还包括:训练设备从分类结果集合中获取与目标训练图像对应的P个第二分类结果,第二分类结果用于指示第一区域是否为文字区域。进而在步骤305中训练设备根据P个第一分类结果和P个第二分类结果,生成第三损失函数的函数值,并通过梯度下降法反向优化文字区域检测网络的参数,以实现对文字区域检测网络的一次训练。本申请实施例中,在训练阶段,不仅训练文字检测网络输出的控制点参数的准确率,而且训练分类网络分类过程的准确率,以进一步降低文字区域检测网络输出的控制点参数指向的为非文字区域的概率,进一步提高了文字区域检测网络输出结果的准确率。
其中,第二分类结果的概念与第一分类结果类似,区别在于,第一分类结果为在训练过程中由文字区域检测网络生成的,第二分类结果为执行训练操作之前,预先标注好的。第三损失函数用于指示第一分类结果和第二分类结果之间的相似度,第三损失函数的目的是拉近第一分类结果和第二分类结果之间的相似度。第三损失函数具体可以表现为0-1二分类损失函数、逻辑(logistic)损失函数或其他类型的损失函数等,此处不做限定。进一步地,在0-1二分类损失函数指的是当第一分类结果与第二分类结果相同的情况下,0-1二分类损失函数的函数值取1,在0-1二分类损失函数指的是当第一分类结果与第二分类结果不同的情况下,0-1二分类损失函数的函数值取0。
需要说明的是,在步骤303和305执行的情况下,本申请实施例不限定步骤304和步骤305的执行顺序,可以为先执行步骤304,再执行步骤305;也可以先执行步骤305,再执行步骤304;还可以为同时执行步骤304和305,从而第一损失函数和第三损失函数可以表现为一个损失函数,所述一个损失函数可以为第一损失函数和第三损失函数的和,也即通过步骤304和305完成了对文字区域检测网络的一次训练。
306、训练设备通过文字识别网络对第四控制点参数对应的文字区域进行文字识别,得到文字识别网络输出的第一识别结果。
本申请的一些实施例中,训练设备在通过文字检测区域生成与目标训练图像对应的第四控制点参数之后,还可以将第四控制点参数输入到文字识别网络中,通过文字识别网络对第四控制点参数对应的文字区域进行文字识别,得到文字识别网络输出的第一识别结果。其中,文字识别网络具体可以表现为卷积递归神经网络(Convolutional RecurrentNeural Network,CRNN)或其他类型的文字识别网络等。第一识别结果具体可以表现为字符,第一识别结果中可以包括一个或多个识别结果。
具体的,在一种实现方式中,训练设备在通过文字区域检测网络生成第四控制点参数之后,第四控制点参数中可以包括一组或至少两组控制点参数,针对第四控制点参数中的目标控制点参数,目标控制点参数为第四控制点参数包括的一组或至少两组控制点参数中任一组控制点参数,用于生成指示目标文字区域的贝塞尔曲线。对应的,目标文字区域为目标训练图像包括的一个或至少两个文字区域中的任一个文字区域。训练设备通过文字识别网络将目标控制点参数带入贝塞尔曲线方程,获取到用于指示目标文字区域的两条贝塞尔曲线,进而按照贝塞尔曲线的走势,对步骤302中生成的目标训练图像的特征图进行采样,得到目标文字区域的特征图,其中,目标文字区域的特征图包括两条贝塞尔曲线之间的区域的特征图;对第一区域的特征图进行文字识别,得到文字识别网络输出的识别结果。训练设备通过文字识别网络对第四控制点参数包括的每组控制点参数均执行上述操作,得到第一识别结果。为进一步理解本方案,请参阅图6,图6为本申请实施例提供的文字识别方法中采样到的特征图的一个示意图。其中C1代表一条贝塞尔曲线,用于指示目标文字区域的上边界,C2代表另一条贝塞尔曲线,用于指示目标文字区域的下边界,C3代表按照贝塞尔曲线的走势执行采样操作后,得到的目标文字区域的特征图,C3指的是图6中呈方格形状的区域,应理解,图6中的示例仅为方便理解本方案,不用于限定本方案。本申请实施例中,直接按照贝塞尔曲线的上下边界的走势进行采样,减少了弯曲文字矫正的复杂度,提高了文字识别过程的效率;此外,由于在确定第一控制点参数的过程中一定会生成待处理图像的特征图,所以在生成贝塞尔曲线之后,直接对待处理图像的特征图进行采样,而不是再对待处理图像进行采样,有利于节省计算机资源。
在另一种实现方式中,训练设备在通过文字识别网络获取到用于指示第一区域的两条贝塞尔曲线之后,可以根据指示第一区域的两条贝塞尔曲线,对目标训练图像进行采样,得到第一区域的特征图,对第一区域的特征图进行文字识别,得到文字识别网络输出的识别结果。
307、训练设备根据第一识别结果和第二识别结果,通过第二损失函数,对神经网络进行训练。
本申请实施例中,步骤306和307均为可选步骤,若不执行步骤307,则不需要执行步骤306;若执行步骤306和307,则训练数据集合中还包括与训练图像集合对应的识别结果集合,步骤301还包括:训练设备从识别结果集合中获取与目标训练图像对应的第二识别结果。进而在步骤307中训练设备可以根据第一识别结果和第二识别结果,通过第二损失函数,仅对文字识别网络执行一次训练操作。也可以根据第一识别结果和第二识别结果,通过第二损失函数,对文字识别网络和文字区域检测网络同时执行一次训练操作。对于利用损失函数执行一次训练操作的过程在步骤304和步骤305中均有描述,此处不做赘述。本申请实施例中,在训练阶段,将文字区域检测网络和文字识别网络独立进行训练,降低了训练阶段的复杂度。
其中,第二识别结果的概念与第一识别结果类似,区别在于,第一识别结果为在训练过程中由文字区域检测网络生成的,第二识别结果为执行训练操作之前,预先标注好的。第二损失函数用于指示第一识别结果和第二识别结果,第二损失函数的目的为拉近第一识别结果和第二识别结果之间的相似度。第二损失函数具体可以表现为交叉熵损失函数、序列最优对齐(connectionist temporal classificatio,CTC)损失函数或其他类型的损失函数等,此处不做限定。
308、训练设备输出训练后的神经网络。
本申请实施例中,步骤303和305以及步骤306和307为可选步骤,若不执行步骤303和305以及步骤306和307,则训练设备重复执行步骤301、302和304,以实现对文字区域检测网络的迭代训练,直至满足第一损失函数的收敛条件,得到训练后的文字区域检测网络,进而可以输出训练后的文字区域检测网络。
若不执行步骤306和307执行,步骤303和305,则训练设备重复执行步骤301至305,以实现对文字区域检测网络的迭代训练,直至满足第一损失函数和第三损失函数的收敛条件,得到训练后的文字区域检测网络,进而可以输出训练后的文字区域检测网络。
若执行步骤306和307,不执行步骤303和305,则训练设备重复执行步骤301、302、304、305和307,以实现对文字区域检测网络和文字识别网络的迭代训练,直至满足第一损失函数和第二损失函数的收敛条件,得到训练后的文字区域检测网络和文字识别网络,进而可以输出训练后的文字区域检测网络和文字识别网络。
若步骤303和305以及步骤306和307均执行,则训练设备重复执行步骤301至307,以实现对文字区域检测网络和文字识别网络的迭代训练,直至满足第一损失函数、第二损失函数和第三损失函数的收敛条件,得到训练后的文字区域检测网络和文字识别网络,进而可以输出训练后的文字区域检测网络和文字识别网络。
本申请实施例中,训练得到的文字检测区域网络可以生成控制点参数,控制点参数用于确定贝塞尔曲线,贝塞尔曲线用于将待处理图像中的文字区域圈出来,进而可以对贝塞尔曲线指示的区域进行文字识别,由于贝塞尔曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,以实现对任意形状的文字的识别操作;此外,由于贝塞尔曲线能够将待识别文字较为贴合的包围起来,按照贝塞尔曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;此外,直接根据控制点参数生成贝塞尔曲线,从而得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。
二、推理阶段
本申请实施例中,训练阶段描述的是执行设备210如何利用目标模型/规则201进行文字识别的过程,具体的,请参阅图7,图7为本申请实施例提供的文字识别方法的一种流程示意图,本申请实施例提供的文字识别方法可以包括:
701、执行设备获取待处理图像。
本申请实施例中,待处理图像可以为图像,也可以为视频中的视频帧,待处理图像包括目标区域。其中,目标区域指的是待处理图像中的文字区域。具体的,若执行设备为终端设备,则执行设备可以通过终端设备上的摄像机实时获取待处理图像,也可以从终端设备的图库中获取待处理图像,还可以通过终端设备上的搜索引擎下载待处理图像,还可以通过与终端设备连接的扫描装置处接收待处理图像。若执行设备为服务器,则执行设备可以接收终端设备上传的待处理图像。
702、执行设备生成与目标区域对应的第一控制点参数。
本申请实施例中,执行设备执行步骤702的具体实现方式可以参阅上述图3对应实施例中步骤302处的描述,第一控制点参数的含义可以参阅上述第四控制点参数的含义,此处不做赘述。
703、执行设备根据第一控制点参数生成目标曲线,其中,目标曲线用于指示目标区域。
704、执行设备对目标区域进行文字识别,得到第三识别结果。
本申请实施例中,执行设备执行步骤703和704的具体实现方式可以参阅上述图3对应实施例中步骤306处的描述,此处不做赘述。其中,目标区域中包括一个文字区域或至少两个文字区域,对应的,目标曲线可以包括一组或多组曲线,每组曲线分别用于指示一个文字区域的上边界和下边界。进一步地,目标曲线具体可以表现为贝塞尔曲线。
705、执行设备输出第三识别结果。
本申请实施例中,执行设备在生成第三识别结果之后,会输出第三识别结果。
具体的,在一种情况下,执行设备具体表现为服务器,则服务器可以向终端设备发送第三识别结果和第一控制点参数,第一控制点参数用于供终端设备确定第一曲线,或者,服务器向终端设备发送第三识别结果和与第一曲线对应的边界坐标,与第一曲线对应的边界坐标用于供终端设备确定第一曲线。
在另一种情况下,执行设备具体表现为终端设备,目标模型/规则部署于终端设备的第一应用程序上,第一应用程序的输出结果可以被第二应用程序调用,则执行设备中的第一应用程序可以向第二应用程序输出第三识别结果和第一控制点参数,第一控制点参数用于供终端设备上的第二应用程序确定第一曲线,或者,执行设备中的第一应用程序可以向第二应用程序输出第三识别结果和与第一曲线对应的边界坐标,与第一曲线对应的边界坐标用于供终端设备上的第二应用程序确定第一曲线。
在另一种情况下,执行设备具体表现为终端设备,目标模型/规则部署于终端设备的第三应用程序上,第三应用程序可以直接显示识别结果和第一曲线;或者,第三应用程序仅显示识别结果;或者,第三应用程序显示识别结果,并通过非曲线的形式来显示文字区域的位置。本申请实施例中,提供了识别结果的多种输出方式,扩展了本方案的应用场景,提高了本方案的实现灵活性。
为进一步理解本方案,请参阅图8,图8为本申请实施例提供的文字识别方法的一种流程示意图。图8中以执行设备直接显示识别结果为例,其中,D1代表待处理图像,执行设备在获取到待处理图像之后,通过文字区域检测网络生成与目标区域对应的第一控制点参数,进而通过文字识别网络根据第一控制点参数生成第一曲线,对目标区域进行文字识别,得到第三识别结果,D2代表显示的识别结果,其中同时包括识别结果和曲线。应理解,图8中的示例仅为方便理解本方案,不用于限定本方案。
在获取到待处理图像之后,通过曲线将待处理图像中的文字区域圈出来,进而对曲线指示的区域进行文字识别,由于曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,以实现对任意形状的文字的识别操作;此外,由于曲线能够将待识别文字较为贴合的包围起来,按照曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;此外,直接根据控制点参数生成曲线,从而得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。
为了更直观的感受本方案的有益效果,本领域技术人员在数据集Total-text上进行了测试,以下通过表1展示采用本方案中的神经网络所带来的有益效果。
表1
参阅上述表1,表1中的文本盒(TextBoxes)、面罩文本检查器(Mask TextSpotter)18和Mask TextSpotter 19分别为三种用于文本识别的神经网络。FPS这一指标用于反映神经网络的处理速度,通过上述表1可以看出,本申请实施例提供的神经网络无论在精度,还是在处理速度上都有较大的提高。
在图1至图8所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图9,图9为本申请实施例提供的文字识别装置的一种结构示意图,文字识别装置900包括:获取模块901、生成模块902和识别模块903。获取模块901,用于获取待处理图像,待处理图像包括目标区域,目标区域为文字区域;生成模块902,用于生成与目标区域对应的第一控制点参数;生成模块902,还用于根据第一控制点参数生成目标曲线,其中,目标曲线用于指示目标区域;识别模块903,用于对目标区域进行文字识别,得到识别结果。
本申请实施例中,获取模块901在获取到待处理图像之后,通过曲线将待处理图像中的文字区域圈出来,进而识别模块903对曲线指示的区域进行文字识别,由于曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,以实现对任意形状的文字的识别操作;此外,由于曲线能够将待识别文字较为贴合的包围起来,按照曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;此外,直接根据控制点参数生成曲线,从而得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。
在一种可能的设计中,生成模块902,具体用于:将待处理图像的特征图输入到回归网络中,以通过回归网络生成第二控制点参数,并将待处理图像的特征图输入到分类网络中,以通过分类网络确定与第二控制点参数对应的候选区域是否为文字区域;当确定候选区域为文字区域时,将候选区域确定为目标区域,将第二控制点参数确定为第一控制点参数。
本申请实施例中,只有在分类结果指示候选区域为文字区域的情况下,才会将候选区域对应的控制点参数作为与文字区域对应的控制点参数,以降低文字区域检测网络输出的控制点参数指向的为非文字区域的概率,提高控制点参数输出过程的准确率;此外,由于后续会对控制点参数指向的区域进行文字识别,避免指向非文字区域的控制点参数的输出意味着可以减少后期文字识别过程的工作量,提高了整个文字识别过程的效率。
在一种可能的设计中,请参阅图10,图10为本申请实施例提供的文字识别装置的一种结构示意图,文字识别装置900还包括:采样模块904,用于根据目标曲线,对待处理图像的特征图进行采样,得到目标区域的特征图;识别模块903,具体用于对目标区域的特征图进行文字识别,得到识别结果。
本申请实施例中,采样模块904直接按照曲线的上下边界的走势进行采样,减少了弯曲文字矫正的复杂度,提高了文字识别过程的效率;此外,由于在确定第一控制点参数的过程中一定会生成待处理图像的特征图,所以在生成曲线之后,直接对待处理图像的特征图进行采样,而不是再对待处理图像进行采样,有利于节省计算机资源。
在一种可能的设计中,第一控制点参数包括一组或至少两组控制点参数,目标区域包括一个或至少两个文字区域,每组控制点参数对应于一个文字区域。
本申请实施例中,文字区域检测网络既可以处理有一个文字区域的图像,也可以处理有至少两个文字区域的图像,扩展了本方案的应用场景。
在一种可能的设计中,请参阅图10,文字识别装置900还包括输出模块905,用于:输出识别结果和第一控制点参数,第一控制点参数用于供终端设备确定目标曲线;或者,输出识别结果和与目标曲线对应的边界坐标,边界坐标用于供终端设备确定目标曲线;或者,显示识别结果和目标曲线;或者,显示识别结果。
在一种可能的设计中,目标曲线为贝塞尔曲线。
本申请实施例中,提供了识别结果的多种输出方式,扩展了本方案的应用场景,提高了本方案的实现灵活性。
需要说明的是,文字识别装置900中各模块/单元之间的信息交互、执行过程等内容,与本申请中图7和图8对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了另一种文字识别装置,具体参阅图11,图11为本申请实施例提供的文字识别装置的一种结构示意图,文字识别装置1100包括:获取模块1101、输入模块1102和训练模块1103。获取模块1101,用于获取训练图像和第三控制点参数,其中,训练图像中包括文字区域,第三控制点参数为预先生成的,第三控制点参数对应于指示文字区域的曲线;输入模块1102,用于将训练图像输入文字区域检测网络,得到文字区域检测网络输出的第四控制点参数,第四控制点参数对应于指示文字区域的曲线;训练模块1103,用于根据第三控制点参数和第四控制点参数,通过第一损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,第一损失函数用于指示第三控制点参数和第四控制点参数的相似度。
本申请实施例中,训练模块1103训练得到的文字检测区域网络可以生成控制点参数,控制点参数用于确定曲线,曲线用于将待处理图像中的文字区域圈出来,进而可以对曲线指示的区域进行文字识别,由于曲线呈弧线形,可以将任意形状的文字较为贴合的包围起来,以实现对任意形状的文字的识别操作;此外,由于曲线能够将待识别文字较为贴合的包围起来,按照曲线进行文字识别,使得文字识别过程更贴合文字走势,提高文字识别过程的精度;此外,直接根据控制点参数生成曲线,从而得到需要识别的文字区域,节省了对文字区域的多边形边界的处理过程,提高了文字识别过程的效率。
在一种可能的设计中,请参阅图12,图12为本申请实施例提供的文字识别装置的一种结构示意图,文字识别装置1100还包括:识别模块1104,用于通过文字识别网络对第四控制点参数对应的文字区域进行文字识别,得到文字识别网络输出的第一识别结果;训练模块1103,还用于根据第一识别结果和第二识别结果,通过第二损失函数,对文字识别网络进行训练,直至满足收敛条件,得到训练后的文字识别网络,其中,第二识别结果为预先生成的,第二识别结果用于指示与第四控制点参数对应的文字区域的识别结果,第二损失函数用于指示第一识别结果和第二识别结果之间的相似度。
本申请实施例中,在训练阶段,将文字区域检测网络和文字识别网络独立进行训练,降低了训练阶段的复杂度。
在一种可能的设计中,获取模块1101,还用于获取文字区域检测网络在进行文字区域检测过程中,针对训练图像中第一区域生成的第一分类结果,其中,第一区域为训练图像包括的至少一个区域中的任一个区域,第一分类结果用于指示第一区域是否为文字区域;训练模块1103,具体用于根据第三控制点参数、第四控制点参数、第一分类结果和第二分类结果,通过第一损失函数和第三损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,第二分类结果为预先生成的,第二分类结果用于指示第一区域是否为文字区域,第三损失函数用于指示第一分类结果与第二分类结果之间的相似度。
本申请实施例中,在训练阶段,不仅训练文字检测网络输出的控制点参数的准确率,而且训练分类网络分类过程的准确率,以进一步降低文字区域检测网络输出的控制点参数指向的为非文字区域的概率,进一步提高了文字区域检测网络输出结果的准确率。
在一种可能的设计中,文字识别装置1100还包括:生成模块1105,用于根据训练图像中文字区域的边界坐标,通过最小二乘法或梯度下降法,生成第三控制点参数。
本申请实施例中,生成模块1105利用文字区域的边界坐标,直接生成文字区域的控制点参数,提高了训练数据集合的生成过程的效率;提供了最小二乘法或梯度下降法两种实现方式,提高了方案的实现灵活性。
在一种可能的设计中,指示文字区域的曲线为贝塞尔曲线。
需要说明的是,文字识别装置1100中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3至图6对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的一种执行设备,请参阅图13,图13为本申请实施例提供的执行设备的一种结构示意图,其中,执行设备1300上可以部署有图9和图10对应实施例中所描述的文字识别装置900,用于实现图7和图8对应实施例中执行设备的功能。具体的,执行设备1300包括:接收器1301、发射器1302、处理器1303和存储器1304(其中执行设备1300中的处理器1303的数量可以一个或多个,图13中以一个处理器为例),其中,处理器1303可以包括应用处理器13031和通信处理器13032。在本申请的一些实施例中,接收器1301、发射器1302、处理器1303和存储器1304可通过总线或其它方式连接。
存储器1304可以包括只读存储器和随机存取存储器,并向处理器1303提供指令和数据。存储器1304的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1304存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1303控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1303中,或者由处理器1303实现。处理器1303可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1303可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1303可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1304,处理器1303读取存储器1304中的信息,结合其硬件完成上述方法的步骤。
接收器1301可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1302可用于通过第一接口输出数字或字符信息;发射器1302还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1302还可以包括显示屏等显示设备。
本申请实施例中,处理器1303,用于执行图7和图8对应实施例中的执行设备执行的文字识别方法。具体的,应用处理器13031,用于获取待处理图像,待处理图像包括目标区域,目标区域为文字区域;生成与目标区域对应的第一控制点参数;根据第一控制点参数生成目标曲线,其中,目标曲线用于指示目标区域;对目标区域进行文字识别,得到识别结果。
在一种可能的设计中,应用处理器13031,具体用于:将待处理图像的特征图输入到回归网络中,以通过回归网络生成第二控制点参数,并将待处理图像的特征图输入到分类网络中,以通过分类网络确定与第二控制点参数对应的候选区域是否为文字区域;当确定候选区域为文字区域时,将候选区域确定为目标区域,将第二控制点参数确定为第一控制点参数。
在一种可能的设计中,应用处理器13031,还用于根据目标曲线,对待处理图像的特征图进行采样,得到目标区域的特征图;
应用处理器13031,具体用于对目标区域的特征图进行文字识别,得到识别结果。
在一种可能的设计中,第一控制点参数包括一组或至少两组控制点参数,目标区域包括一个或至少两个文字区域,每组控制点参数对应于一个文字区域。
在一种可能的设计中,应用处理器13031,还用于输出识别结果和第一控制点参数,第一控制点参数用于供终端设备确定目标曲线;或者,输出识别结果和与目标曲线对应的边界坐标,边界坐标用于供终端设备确定目标曲线;或者,显示识别结果和目标曲线;或者,显示识别结果。
在一种可能的设计中,目标曲线为贝塞尔曲线。
需要说明的是,应用处理器13031执行上述各个步骤的具体方式,与本申请中图7和图8对应的各个方法实施例基于同一构思,其带来的技术效果与本申请中图7和图8对应的各个方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种训练设备,请参阅图14,图14是本申请实施例提供的训练设备一种结构示意图,训练设备1400上可以部署有图11和图12对应实施例中所描述的文字识别装置1100,用于实现图3至图6对应实施例中训练设备的功能。具体的,训练设备1400由一个或多个服务器实现,训练设备1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在训练设备1400上执行存储介质1430中的一系列指令操作。
训练设备1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1422,用于执行图3至图6对应实施例中的训练设备执行的文字识别方法。具体的,中央处理器1422,用于获取训练图像和第三控制点参数,其中,训练图像中包括文字区域,第三控制点参数为预先生成的,第三控制点参数对应于指示文字区域的曲线;将训练图像输入文字区域检测网络,得到文字区域检测网络输出的第四控制点参数,第四控制点参数对应于指示文字区域的曲线;根据第三控制点参数和第四控制点参数,通过第一损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,第一损失函数用于指示第三控制点参数和第四控制点参数的相似度。
在一种可能的设计中,中央处理器1422,还用于通过文字识别网络对第四控制点参数对应的文字区域进行文字识别,得到文字识别网络输出的第一识别结果;
根据第一识别结果和第二识别结果,通过第二损失函数,对文字识别网络进行训练,直至满足收敛条件,得到训练后的文字识别网络,其中,第二识别结果为预先生成的,第二识别结果用于指示与第四控制点参数对应的文字区域的识别结果,第二损失函数用于指示第一识别结果和第二识别结果之间的相似度。
在一种可能的设计中,中央处理器1422,还用于获取文字区域检测网络在进行文字区域检测过程中,针对训练图像中第一区域生成的第一分类结果,其中,第一区域为训练图像包括的至少一个区域中的任一个区域,第一分类结果用于指示第一区域是否为文字区域;
中央处理器1422,具体用于根据第三控制点参数、第四控制点参数、第一分类结果和第二分类结果,通过第一损失函数和第三损失函数,对文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,第二分类结果为预先生成的,第二分类结果用于指示第一区域是否为文字区域,第三损失函数用于指示第一分类结果与第二分类结果之间的相似度。
在一种可能的设计中,中央处理器1422,还用于根据训练图像中文字区域的边界坐标,通过最小二乘法或梯度下降法,生成第三控制点参数。
在一种可能的设计中,指示文字区域的曲线为贝塞尔曲线。
需要说明的是,中央处理器1422执行上述各个步骤的具体方式,与本申请中图3至图6对应的各个方法实施例基于同一构思,其带来的技术效果与本申请中图3至图6对应的各个方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图6所示实施例描述的方法中训练设备所执行的步骤。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图7或图8所示实施例描述的方法中执行设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3至图6所示实施例描述的方法中训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图7或图8所示实施例描述的方法中执行设备所执行的步骤。
本申请实施例提供的执行设备和训练设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述图7或图8所示实施例描述的文字识别方法,或者,以使训练设备内的芯片执行上述图3至图6所示实施例描述的文字识别方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图15,图15为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 150,NPU 150作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路150,通过控制器1504控制运算电路1503提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1503内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1503是二维脉动阵列。运算电路1503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1508中。
统一存储器1506用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1505,DMAC被搬运到权重存储器1502中。输入数据也通过DMAC被搬运到统一存储器1506中。
BIU为Bus Interface Unit即,总线接口单元1510,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1509的交互。
总线接口单元1510(Bus Interface Unit,简称BIU),用于取指存储器1509从外部存储器获取指令,还用于存储单元访问控制器1505从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1506或将权重数据搬运到权重存储器1502中或将输入数据数据搬运到输入存储器1501中。
向量计算单元1507包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1507能将经处理的输出的向量存储到统一存储器1506。例如,向量计算单元1507可以将线性函数和/或非线性函数应用到运算电路1503的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1507生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1503的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1504连接的取指存储器(instruction fetch buffer)1509,用于存储控制器1504使用的指令;
统一存储器1506,输入存储器1501,权重存储器1502以及取指存储器1509均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,图3所示的文字区域检测网络和文字识别网络中各层的运算可以由运算电路1503或向量计算单元1507执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (23)
1.一种文字识别方法,其特征在于,所述方法包括:
获取待处理图像,所述待处理图像包括目标区域,所述目标区域为文字区域;
生成与所述目标区域对应的第一控制点参数;
根据所述第一控制点参数生成目标曲线,其中,所述目标曲线用于指示所述目标区域;
对所述目标区域进行文字识别,得到识别结果。
2.根据权利要求1所述的方法,其特征在于,所述生成与所述目标区域对应的第一控制点参数,包括:
将所述待处理图像的特征图输入到回归网络中,以通过所述回归网络生成第二控制点参数,并将所述待处理图像的特征图输入到分类网络中,以通过所述分类网络确定与所述第二控制点参数对应的候选区域是否为文字区域;
当确定所述候选区域为文字区域时,将所述候选区域确定为所述目标区域,将所述第二控制点参数确定为所述第一控制点参数。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一控制点参数生成目标曲线之后,所述方法还包括:
根据所述目标曲线,对所述待处理图像的特征图进行采样,得到所述目标区域的特征图;
所述对所述目标区域进行文字识别,得到识别结果,包括:
对所述目标区域的特征图进行文字识别,得到所述识别结果。
4.根据权利要求1或2所述的方法,其特征在于,所述第一控制点参数包括一组或至少两组控制点参数,所述目标区域包括一个或至少两个文字区域,每组控制点参数对应于一个文字区域。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
输出所述识别结果和所述第一控制点参数,所述第一控制点参数用于供终端设备确定所述目标曲线;或者,
输出所述识别结果和与所述目标曲线对应的边界坐标,所述边界坐标用于供终端设备确定所述目标曲线;或者,
显示所述识别结果和所述目标曲线;或者,
显示所述识别结果。
6.根据权利要求1或2所述的方法,其特征在于,所述目标曲线为贝塞尔曲线。
7.一种文字识别方法,其特征在于,所述方法包括:
获取训练图像和第三控制点参数,其中,所述训练图像中包括文字区域,所述第三控制点参数为预先生成的,所述第三控制点参数对应于指示所述文字区域的曲线;
将所述训练图像输入文字区域检测网络,得到所述文字区域检测网络输出的第四控制点参数,所述第四控制点参数对应于指示所述文字区域的曲线;
根据所述第三控制点参数和所述第四控制点参数,通过第一损失函数,对所述文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,所述第一损失函数用于指示所述第三控制点参数和所述第四控制点参数的相似度。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
通过文字识别网络对所述第四控制点参数对应的文字区域进行文字识别,得到所述文字识别网络输出的第一识别结果;
根据所述第一识别结果和第二识别结果,通过第二损失函数,对所述文字识别网络进行训练,直至满足收敛条件,得到训练后的所述文字识别网络,其中,所述第二识别结果为预先生成的,所述第二识别结果用于指示与所述第四控制点参数对应的文字区域的识别结果,所述第二损失函数用于指示所述第一识别结果和所述第二识别结果之间的相似度。
9.根据权利要求7或8所述的方法,其特征在于,所述将所述训练图像输入文字区域检测网络之后,所述方法还包括:
获取所述文字区域检测网络在进行文字区域检测过程中,针对所述训练图像中第一区域生成的第一分类结果,其中,所述第一区域为所述训练图像包括的至少一个区域中的任一个区域,所述第一分类结果用于指示所述第一区域是否为文字区域;
所述根据所述第三控制点参数和所述第四控制点参数,通过第一损失函数,对所述文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,包括:
根据所述第三控制点参数、所述第四控制点参数、所述第一分类结果和第二分类结果,通过第一损失函数和第三损失函数,对所述文字区域检测网络进行训练,直至满足收敛条件,得到所述训练后的文字区域检测网络,其中,所述第二分类结果为预先生成的,所述第二分类结果用于指示所述第一区域是否为文字区域,所述第三损失函数用于指示所述第一分类结果与所述第二分类结果之间的相似度。
10.根据权利要求7或8所述的方法,其特征在于,所述获取训练图像和第三控制点参数之前,所述方法还包括:
根据所述训练图像中文字区域的边界坐标,通过最小二乘法或梯度下降法,生成所述第三控制点参数。
11.一种文字识别装置,其特征在于,所述装置包括:
获取模块,用于获取待处理图像,所述待处理图像包括目标区域,所述目标区域为文字区域;
生成模块,用于生成与所述目标区域对应的第一控制点参数;
所述生成模块,还用于根据所述第一控制点参数生成目标曲线,其中,所述目标曲线用于指示所述目标区域;
识别模块,用于对所述目标区域进行文字识别,得到识别结果。
12.根据权利要求11所述的装置,其特征在于,所述生成模块,具体用于:
将所述待处理图像的特征图输入到回归网络中,以通过所述回归网络生成第二控制点参数,并将所述待处理图像的特征图输入到分类网络中,以通过所述分类网络确定与所述第二控制点参数对应的候选区域是否为文字区域;
当确定所述候选区域为文字区域时,将所述候选区域确定为所述目标区域,将所述第二控制点参数确定为所述第一控制点参数。
13.根据权利要求11或12所述的装置,其特征在于,所述装置还包括:
采样模块,用于根据所述目标曲线,对所述待处理图像的特征图进行采样,得到所述目标区域的特征图;
所述识别模块,具体用于对所述目标区域的特征图进行文字识别,得到所述识别结果。
14.根据权利要求11或12所述的装置,其特征在于,所述第一控制点参数包括一组或至少两组控制点参数,所述目标区域包括一个或至少两个文字区域,每组控制点参数对应于一个文字区域。
15.根据权利要求11或12所述的装置,其特征在于,
所述装置还包括输出模块,用于:
输出所述识别结果和所述第一控制点参数,所述第一控制点参数用于供终端设备确定所述目标曲线;或者,
输出所述识别结果和与所述目标曲线对应的边界坐标,所述边界坐标用于供终端设备确定所述目标曲线;或者,
显示所述识别结果和所述目标曲线;或者,
显示所述识别结果。
16.一种文字识别装置,其特征在于,所述装置包括:
获取模块,用于获取训练图像和第三控制点参数,其中,所述训练图像中包括文字区域,所述第三控制点参数为预先生成的,所述第三控制点参数对应于指示所述文字区域的曲线;
输入模块,用于将所述训练图像输入文字区域检测网络,得到所述文字区域检测网络输出的第四控制点参数,所述第四控制点参数对应于指示所述文字区域的曲线;
训练模块,用于根据所述第三控制点参数和所述第四控制点参数,通过第一损失函数,对所述文字区域检测网络进行训练,直至满足收敛条件,得到训练后的文字区域检测网络,其中,所述第一损失函数用于指示所述第三控制点参数和所述第四控制点参数的相似度。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:识别模块,用于通过文字识别网络对所述第四控制点参数对应的文字区域进行文字识别,得到所述文字识别网络输出的第一识别结果;
所述训练模块,还用于根据所述第一识别结果和第二识别结果,通过第二损失函数,对所述文字识别网络进行训练,直至满足收敛条件,得到训练后的所述文字识别网络,其中,所述第二识别结果为预先生成的,所述第二识别结果用于指示与所述第四控制点参数对应的文字区域的识别结果,所述第二损失函数用于指示所述第一识别结果和所述第二识别结果之间的相似度。
18.根据权利要求16或17所述的装置,其特征在于,所述获取模块,还用于获取所述文字区域检测网络在进行文字区域检测过程中,针对所述训练图像中第一区域生成的第一分类结果,其中,所述第一区域为所述训练图像包括的至少一个区域中的任一个区域,所述第一分类结果用于指示所述第一区域是否为文字区域;
所述训练模块,具体用于根据所述第三控制点参数、所述第四控制点参数、所述第一分类结果和第二分类结果,通过第一损失函数和第三损失函数,对所述文字区域检测网络进行训练,直至满足收敛条件,得到所述训练后的文字区域检测网络,其中,所述第二分类结果为预先生成的,所述第二分类结果用于指示所述第一区域是否为文字区域,所述第三损失函数用于指示所述第一分类结果与所述第二分类结果之间的相似度。
19.根据权利要求16或17所述的装置,其特征在于,所述装置还包括:生成模块,用于根据所述训练图像中文字区域的边界坐标,通过最小二乘法或梯度下降法,生成所述第三控制点参数。
20.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至6中任一项所述的方法,或者,使得计算机执行如权利要求7至10中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1至6中任一项所述的方法,或者,使得计算机执行如权利要求7至10中任一项所述的方法。
22.一种文字识别装置,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合;
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述处理器执行如权利要求1至6中任一项所述的方法,或者,使得所述处理器执行如权利要求7至10中任一项所述的方法。
23.根据权利要求22所述的装置,其特征在于,所述文字识别装置为配置有芯片的执行设备或芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010109201.0A CN111414915B (zh) | 2020-02-21 | 2020-02-21 | 一种文字识别方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010109201.0A CN111414915B (zh) | 2020-02-21 | 2020-02-21 | 一种文字识别方法以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414915A true CN111414915A (zh) | 2020-07-14 |
CN111414915B CN111414915B (zh) | 2024-03-26 |
Family
ID=71494100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010109201.0A Active CN111414915B (zh) | 2020-02-21 | 2020-02-21 | 一种文字识别方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414915B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814802A (zh) * | 2020-08-31 | 2020-10-23 | 创新奇智(南京)科技有限公司 | 一种文字图像的处理方法、装置、存储介质和电子设备 |
CN112233655A (zh) * | 2020-09-28 | 2021-01-15 | 上海声瀚信息科技有限公司 | 一种提高语音命令词识别性能的神经网络训练方法 |
CN112906801A (zh) * | 2021-02-26 | 2021-06-04 | 北京房江湖科技有限公司 | 一种图像处理的方法、装置和存储介质 |
CN114418869A (zh) * | 2021-12-22 | 2022-04-29 | 华南理工大学 | 一种文档图像几何校正方法、系统、装置及介质 |
CN116453133A (zh) * | 2023-06-16 | 2023-07-18 | 湖北工业大学 | 基于贝塞尔曲线和关键点的横幅文本检测方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130182910A1 (en) * | 2012-01-18 | 2013-07-18 | Xerox Corporation | License plate optical character recognition method and system |
CN107679452A (zh) * | 2017-08-28 | 2018-02-09 | 中国电子科技集团公司第二十八研究所 | 大数据下基于卷积神经网络的货运列车车号实时识别系统 |
WO2019071212A1 (en) * | 2017-10-06 | 2019-04-11 | Netradyne Inc. | SYSTEM AND METHOD FOR DETERMINING A CURVE |
CN109753971A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 扭曲文字行的矫正方法及装置、字符识别方法及装置 |
CN109886266A (zh) * | 2019-01-25 | 2019-06-14 | 邹玉平 | 图像处理的方法、相关装置以及系统 |
CN109993160A (zh) * | 2019-02-18 | 2019-07-09 | 北京联合大学 | 一种图像矫正及文本与位置识别方法及系统 |
CN110598708A (zh) * | 2019-08-08 | 2019-12-20 | 广东工业大学 | 一种街景文本目标识别检测方法 |
-
2020
- 2020-02-21 CN CN202010109201.0A patent/CN111414915B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130182910A1 (en) * | 2012-01-18 | 2013-07-18 | Xerox Corporation | License plate optical character recognition method and system |
CN107679452A (zh) * | 2017-08-28 | 2018-02-09 | 中国电子科技集团公司第二十八研究所 | 大数据下基于卷积神经网络的货运列车车号实时识别系统 |
WO2019071212A1 (en) * | 2017-10-06 | 2019-04-11 | Netradyne Inc. | SYSTEM AND METHOD FOR DETERMINING A CURVE |
US20200250440A1 (en) * | 2017-10-06 | 2020-08-06 | NetraDyne, Inc. | System and Method of Determining a Curve |
CN109753971A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 扭曲文字行的矫正方法及装置、字符识别方法及装置 |
CN109886266A (zh) * | 2019-01-25 | 2019-06-14 | 邹玉平 | 图像处理的方法、相关装置以及系统 |
CN109993160A (zh) * | 2019-02-18 | 2019-07-09 | 北京联合大学 | 一种图像矫正及文本与位置识别方法及系统 |
CN110598708A (zh) * | 2019-08-08 | 2019-12-20 | 广东工业大学 | 一种街景文本目标识别检测方法 |
Non-Patent Citations (1)
Title |
---|
PAL U等: "A system for off-line Oriya handwritten character recognition using curvature feature", pages 227 - 229 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814802A (zh) * | 2020-08-31 | 2020-10-23 | 创新奇智(南京)科技有限公司 | 一种文字图像的处理方法、装置、存储介质和电子设备 |
CN112233655A (zh) * | 2020-09-28 | 2021-01-15 | 上海声瀚信息科技有限公司 | 一种提高语音命令词识别性能的神经网络训练方法 |
CN112906801A (zh) * | 2021-02-26 | 2021-06-04 | 北京房江湖科技有限公司 | 一种图像处理的方法、装置和存储介质 |
CN114418869A (zh) * | 2021-12-22 | 2022-04-29 | 华南理工大学 | 一种文档图像几何校正方法、系统、装置及介质 |
CN116453133A (zh) * | 2023-06-16 | 2023-07-18 | 湖北工业大学 | 基于贝塞尔曲线和关键点的横幅文本检测方法及系统 |
CN116453133B (zh) * | 2023-06-16 | 2023-09-05 | 湖北工业大学 | 基于贝塞尔曲线和关键点的横幅文本检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111414915B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112434721B (zh) | 一种基于小样本学习的图像分类方法、系统、存储介质及终端 | |
CN111797893B (zh) | 一种神经网络的训练方法、图像分类系统及相关设备 | |
CN111414915B (zh) | 一种文字识别方法以及相关设备 | |
CN111401516B (zh) | 一种神经网络通道参数的搜索方法及相关设备 | |
CN112016543A (zh) | 一种文本识别网络、神经网络训练的方法以及相关设备 | |
CN111401406B (zh) | 一种神经网络训练方法、视频帧处理方法以及相关设备 | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
WO2021218471A1 (zh) | 一种用于图像处理的神经网络以及相关设备 | |
CN113095475A (zh) | 一种神经网络的训练方法、图像处理方法以及相关设备 | |
WO2023083030A1 (zh) | 一种姿态识别方法及其相关设备 | |
CN111797589A (zh) | 一种文本处理网络、神经网络训练的方法以及相关设备 | |
CN113408570A (zh) | 一种基于模型蒸馏的图像类别识别方法、装置、存储介质及终端 | |
CN114359289A (zh) | 一种图像处理方法及相关装置 | |
CN111950702A (zh) | 一种神经网络结构确定方法及其装置 | |
US20230290174A1 (en) | Weakly supervised semantic parsing | |
CN113627422A (zh) | 一种图像分类方法及其相关设备 | |
CN114821096A (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
CN115081615A (zh) | 一种神经网络的训练方法、数据的处理方法以及设备 | |
CN113627421A (zh) | 一种图像处理方法、模型的训练方法以及相关设备 | |
CN113065634A (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
CN113066125A (zh) | 一种增强现实方法及其相关设备 | |
CN111695419A (zh) | 一种图像数据处理方法及相关装置 | |
CN112257840A (zh) | 一种神经网络处理方法以及相关设备 | |
CN111368668A (zh) | 三维手部识别方法、装置、电子设备及存储介质 | |
CN114998643A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |