基于ctc损失的ocr校正方法、装置、计算机设备和存储介质
技术领域:
:1.本发明属于人工智能图像文字识别
技术领域:
:,尤其涉及一种基于ctc损失的ocr校正方法、装置、计算机设备和存储介质。
背景技术:
::2.ocr(opticalcharacterrecognition,光学字符识别)是计算机视觉研究领域的分支之一,本质是图像识别。具体来讲就是一种利用扫描仪或者数码相机等电子设备检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件建议不编辑加工的技术。3.目前来说,简单环境下比如pdf(portabledocumentformat,便携式文档格式)图像、网络截图的ocr识别准确度已经比较高了。但是实际社会生活中对复杂环境下的ocr识别有着越来越多的应用需求。然而,在证件、票据拍照等复杂环境下,因字体打印模糊,拍照局部高亮,实体磨损皱褶等因素,ocr识别的准确率还是有所下降。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够提高ocr识别准确率的基于ctc损失的ocr校正方法、装置、计算机设备和存储介质。5.本发明提供一种基于ctc损失的ocr校正方法,包括:6.提取待识别文本,利用基于ctc损失的ocr识别模型对所述待识别文本进行字符识别,得到ctc解码字符序列矩阵;7.从所述ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;8.遍历所述ctc字符子矩阵集合,基于各所述ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;9.从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为ocr校正结果。10.在其中一个实施例中,所述提取待识别文本,利用基于ctc损失的ocr识别模型对所述待识别文本进行字符识别,得到ctc解码字符序列矩阵,包括:11.对待检测图像中的文字框进行检测和截取,得到待识别文本;12.利用基于ctc损失的ocr字符识别模型对所述待识别文本进行字符识别,获取ctc解码字符序列以及所述ctc解码字符序列中各字符的可能值;13.根据所述ctc解码字符序列的长度以及各所述字符的可能值,构建ctc解码字符序列矩阵。14.在其中一个实施例中,所述从所述ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,包括:15.将所述ctc解码字符序列矩阵中各字符第一可能值的置信度,分别与所述字符可信度阈值进行大小比较,确定字符是否正确;16.当所述字符正确时用可信模式字符表示所述字符,不正确时用不可信模式字符表示所述字符,构建所述ctc解码字符序列矩阵对应的模式字符序列;17.根据所述模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合;所述可信子序列由可信模式字符组成;18.遍历所述模式字符序列集合,根据所述模式字符序列从所述ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。19.在其中一个实施例中,所述根据所述模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合,包括:20.将所述模式字符序列作为二进制字符序列,按照二进制转化为十进制数值作为开始节点,以及根据字符序列长度确定数值作为结束节点;21.从所述开始节点遍历到所述结束节点,将各整数分别与所述十进制数值进行按位或计算并转换为二进制序列得到包含可信子序列的模式字符序列;22.组合各所述包含可信子序列的模式字符序列,得到模式字符序列集合。23.在其中一个实施例中,所述根据所述模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合,包括:24.构建空的模式字符序列集合,遍历所述模式字符序列中的各模式字符;25.若当前遍历的模式字符是第一位且为可信模式字符,则在所述模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列;26.若当前遍历的模式字符是第一位且为不可信模式字符,则在所述模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列和一条第一位为不可信模式字符的模式字符序列;若当前遍历的模式字符不是第一位且为可信模式字符,则在所述模式字符集合中对已存在的模式字符序列的尾部均追加一位可信模式字符;27.若当前遍历的模式字符不是第一位且为不可信模式字符,则在所述模式字符集合中对已存在的模式字符序列的尾部分别追加一位可信模式字符,且复制所述已存在的模式字符序列,在复制的模式字符序列的尾部分别追加一位不可信模式字符,所述模式字符集合的模式字符序列数量翻倍。28.在其中一个实施例中,所述遍历所述模式字符序列集合,根据所述模式字符序列从所述ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,包括:29.构建空ctc字符子矩阵;30.遍历所述模式字符序列中的模式字符,若当前遍历的第k个模式字符为可信模式字符,则将所述ctc解码字符序列矩阵中的第k列加入到所述空ctc字符子矩阵中,得到与所述ctc解码字符序列矩阵对应的ctc字符子矩阵;31.将各所述模式字符序列的ctc字符子矩阵组合为ctc字符子矩阵集合。32.在其中一个实施例中,所述遍历所述ctc字符子矩阵集合,基于各所述ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符可能值,构建字符串序列,得到字符串序列集合,包括:33.对于所述ctc字符子矩阵集合中的每一个ctc字符子矩阵,分别构建序列长度与所述ctc字符子矩阵中字符数量相等的空字符串序列;34.将所述ctc字符子矩阵中各字符第一可能值的置信度分别与所述字符可信度阈值进行大小比较;35.若所述第一可能值对应的置信度不小于所述字符可信度阈值时,将所述第一可能值加到所述空字符串序列中,否则将字符在所述ctc字符子矩阵中的所有可能值都加入到所述空字符串序列中,得到赋值后的字符串序列;36.对赋值后的所述字符串序列进行排列组合,枚举所有字符串序列,得到字符串序列集合。37.在其中一个实施例中,所述从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为ocr校正结果,包括:38.遍历所述字符串序列集合中的每一个字符串序列,确定满足自适应要求的字符串序列作为候选字符串序列;39.将所述候选字符串序列的置信度加权平均值作为第一得分,将所述候选字符串序列与所述ctc解码字符序列矩阵中第一行元素的编辑距离作为第二得分;40.加权所述第一得分和所述第二得分,得到所述候选字符串序列的最终得分;41.根据所述最终得分从所述候选字符串序列中确定最优字符串序列;42.按照所述待识别文本的字符格式输出所述最优字符串序列,得到ocr校正结果。43.一种基于ctc损失的ocr校正装置,包括:44.字符识别模块,用于提取待识别文本,利用基于ctc损失的ocr识别模型对所述待识别文本进行字符识别,得到ctc解码字符序列矩阵;45.子矩阵构建模块,用于从所述ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;46.字符串序列构建模块,用于遍历所述ctc字符子矩阵集合,基于各所述ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;47.输出模块,用于从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为ocr校正结果。48.本发明还提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储由计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的基于ctc损失的ocr校正方法的步骤。49.本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的基于ctc损失的ocr校正方法的步骤。50.上述基于ctc损失的ocr校正方法、装置、计算机设备和存储介质,通过提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵后,从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,进而遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列得到字符串序列集合;最后从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。该方法通过ctc解码字符序列中各字符的可能值的置信度结合阈值逐步筛选得到最优解,即使是复杂场景下的ocr识别也能够得到高准确度的识别结果,提高了ocr识别的准确率。附图说明51.图1为一个实施例中基于ctc损失的ocr校正方法的应用环境图。52.图2为一个实施例中基于ctc损失的ocr校正方法的流程示意图。53.图3为一个实施例中待检测图像的示意图。54.图4为一个实施例中待识别文本的示意图。55.图5为一个实施例中ctc解码字符序列的示意图。56.图6为一个实施例中ctc字符子序列的示意图。57.图7为一个实施例中基于ctc损失的ocr校正装置的结构框图。具体实施方式58.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。59.本技术提供的基于ctc损失的ocr校正方法,可以应用于如图1所示的应用环境中,该应用环境涉及终端102和服务器104。其中,终端102通过网络与服务器104进行通信。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和携带式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。60.当终端102接收到ocr识别指令时,可以由终端102单独实现上述基于ctc损失的ocr校正方法。也可以由终端102将ocr识别指令发送给通信的服务器104,由服务器104实现上述基于ctc损失的ocr校正方法。以服务器104为例,具体的,服务器104提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵;服务器104从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;服务器104遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;服务器104从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。61.在一个实施例中,如图2所示,提供一种基于ctc损失的ocr校正方法,以该方法应用于服务器为例进行说明,包括以下步骤:62.步骤s201,提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵。63.其中,待识别文本是需要进行ocr文本识别的文本。ctc(connectionisttemporalclassification,联结时序分类)损失适用于解决时序类数据分类问题的损失函数。ctc解码字符序列矩阵是由基于ctc损失的ocr识别模型对待识别文本进行字符识别的结果构建的。64.在一个实施例中,步骤s201包括:对待检测图像中的文字框进行检测和截取,得到待识别文本;利用基于ctc损失的ocr字符识别模型对待识别文本进行字符识别,获取ctc解码字符序列以及ctc解码字符序列中各字符的可能值;根据ctc解码字符序列长度以及各字符的可能值,构建ctc解码字符序列矩阵。65.具体的,当服务器接收到对某一张待检测图像的ocr识别指令之后,首先利用文字检测工具提取待检测图像中的文字框,进而将所检测的文字框区域截取作为待识别文本。如图3-图4所示,图3提供了一张较为模糊的身份证图像作为本实施例的待检测图像示意图,图3中矩形框的位置即所为检测的文字框,图4为从图3中将该文字框区域截取出来的文字较为模糊的待识别文本示意图。服务器得到待识别文本之后,将其送入ocr识别模型,本实施例的ocr识别模型是基于ctc损失的识别模型。基于ctc损失的ocr识别模型接到待识别文本输入之后,对该待识别文本进行字符识别,得到ctc解码字符序列以及字符序列中各字符的可能值。如图5所示,提供了一种ctc解码字符序列的示意图,图5所示的ctc解码字符序列是对图4所示的待识别文本进行识别得到的。然而,根据所得到的ctc解码字符序列的长度以及各字符的可能值,构建ctc解码字符序列矩阵ctcsep,ctc解码字符序列矩阵ctcsep结构如下:[0066][0067]其中,n表示ctc解码字符序列的长度,即ctc解码字符序列共含n个字符。m表示各个字符的可能值,即每个字符含有m个可能值。本实施例m的数量是根据置信度选择最高的前m个,m具体多少个可以通过修改ocr识别模型的解码过程,指定其计算topm的可能值。m越大虽然精确度越高但是模型的计算量也越大,本实施例通常情况下m小于5,优选m=3。由此可知,ctc解码字符序列矩阵中的αi,j表示第j个字符的第i个可能值,j={1,2,……,n},i={1,2,……,m},每个可能值都包含具体的字符信息和对应的置信度。比如图5中的字符“有”对应的置信度为“0.9999829469219792”。[0068]步骤s202,从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。[0069]具体的,当服务器得到ctc解码字符序列矩阵之后,为了能够校正得到更加准确的ocr识别结果,利用预设的字符可信度阈值从ctc解码字符序列矩阵中筛选出部分字符分别构建多个ctc字符子矩阵,将所有ctc字符子矩阵的集合作为ctc字符子矩阵集合。其中,字符可信度阈值是预先设定用于评估字符可信程度的阈值,通常由所使用的ocr识别模型评估给出,不同的ocr识别模型给出的字符可信度阈值不同,所以实际使用的字符可信度阈值基于实际使用的ocr模型确定。在本实施例的ocr识别模型中,我们认为阈值大于0.99的字符为可信字符,因此本实施的可信度阈值设置为0.99。[0070]步骤s203,遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合。[0071]具体的,当服务器得到ctc字符子矩阵集合之后,遍历该ctc字符子矩阵集合,对于其中的每一个ctc字符子矩阵都构建一个对应的字符串序列。字符串序列的构建主要通过将ctc字符子矩阵中各字符可能值的置信度与预设的字符可信度阈值进行大小比较,根据大小关系从ctc字符子矩阵中筛选一部分字符的可能值组合得到字符串序列,字符串序列即为包括字符的可能值的序列,进而所有ctc字符子矩阵对应的字符串序列组成字符串序列集合。[0072]在一个实施例中,步骤s203包括:对于ctc字符子矩阵集合中的每一个ctc字符子矩阵,分别构建序列长度与ctc字符子矩阵中字符数量相等的空字符串序列;将ctc字符子矩阵中各字符第一可能值的置信度分别与字符可信度阈值进行大小比较;若第一可能值对应的置信度不小于字符可信度阈值时,将第一可能值加到空字符串序列中,否则将字符在ctc字符子矩阵中的所有可能值都加入到空字符串序列中,得到赋值后的字符串序列;对赋值后的字符串序列进行排列组合,枚举所有字符串序列,得到字符串序列集合。[0073]具体的,首先确定ctc字符子矩阵中的字符数量,构建一个序列长度与该字符数量相等的空字符串序列。比如,ctc字符子矩阵中有6个字符,则构建长度为6的空字符串序列,空字符串序列是指没有序列元素的序列。[0074]然后,由于置信度越高通常表示字符可信度越高,那所识别的该字符就越精准。所以当进行大小比较时,将ctc字符子矩阵中各字符的第一可能值α1,j(矩阵中的可能值是按照大小顺序排列的,第一可能值即为置信度最高的可能值)的置信度p(α1,j)与预设的字符可信度阈值0.99进行比较。在p(α1,j)不小于(大于或等于)字符可信度阈值0.99时,表示该字符已经满足本实施例对于可信字符的要求,该字符是识别出来的最精准的字符,则将该字符的第一可能值α1,j直接添加到空字符串序列对应的序列位置中,也就是将α1,j添加到空字符串序列中第j个序列位置作为空字符串序列中第j个序列元素。而在p(α1,j)小于字符可信度阈值0.99时,表示该字符还达不到本实施例的可信要求直接作为识别出来的最精准的字符,所以将该字符在ctc字符子矩阵中的所有可能值,即α1,j到αm,j所有的可能值都添加到空字符串序列中第j个序列位置作为空字符串序列中第j个序列元素,此时第j个序列元素包括m个可能值。[0075]遍历完所有的字符之后便完成了空字符串序列的赋值,得到赋值后的字符串序列。因为赋值后的字符串序列可能有多个可以选择的可能值,所以对赋值后字符串序列进行排序组合,枚举出所有的字符序列。比如,若存在3个字符的p(α1,j)小于0.99,每一个字符对应m个可能值添加到字符串序列中,那么对该字符串序列进行排列组合能够枚举出m3个字符串序列。也就是说,由于ctc字符子矩阵只要存在小于字符可信度阈值字符,其就可以排列组合枚举得到多个对应的字符串序列,因此一个ctc字符子矩阵是可能存在多个对应字符串序列的。对于ctc字符子矩阵集合中的每一个ctc字符子矩阵,都按照上述方式得到其所对应的字符串序列,而无论ctc字符子矩阵是只对应一个字符串序列还是对应多个字符序列,都将所有ctc字符子矩阵对应的所有字符串序列组合得到字符串序列集合。[0076]步骤s204,从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。[0077]具体的,当得到字符串序列集合之后,对字符串序列集合中的字符串序列分别进行评分。基于每一个字符串序列的得分从中选择出最优字符串序列,该最优字符串序列即为校正后的最优识别结果,将其输出作为本实施例的ocr校正结果。[0078]在一个实施例中,步骤s204包括:遍历字符串序列集合中的每一个字符串序列,确定满足自适应要求的字符串序列作为候选字符串序列;将候选字符串序列的置信度加权平均值作为第一得分,将候选字符串序列与ctc解码字符序列矩阵中第一行元素的编辑距离作为第二得分;加权第一得分和第二得分,得到候选字符串序列的最终得分;根据最终得分从候选字符串序列中确定最优字符串序列;按照待识别文本的字符格式输出最优字符串序列,得到ocr校正结果。[0079]其中,自适应要求是根据实际业务需求所设定需要满足的条件,可以是待校正字段需要满足的正则规则,具体的规则内容根据先验知识或者相关规律得出,由于本实施例应用于图像的ocr识别校正,所以自适应要求可以识别图像上字符的规律得出。比如,以图3所示的身份证图片为例,根据身份证图片的位置特征,此时感兴趣的字符是身份证有效期限起止时间,由观察以及身份证规定得到“有效期限”是身份证上固定的格式字符,可变字符为起止时间值,且结合图片字迹可能模糊,有效期限上的字符“.”、“‑”因场景复杂可能无法识别,但是格式相对固定,所以对应的正则要求regex可以设置为“regex=“\d{4}\.?\d{2}\.?\d{2}-?\d{4}\.?\d{2}\.?\d{2}”,表示候选字符串需要满足按照改格式要求。[0080]具体的,当得到字符串序列集合之后,服务器需要从中筛选出最优的字符串序列作为校正后的ocr识别结果。首先,服务器根据预设的自适应要求对字符串序列集合中的字符串序列进行判断,不满足自适应要求的直接去除,确定满足自适应要求的字符串序列作为候选字符串序列。然后,对于每一个候选字符串序列,计算器字符串得分,即每个字符置信度的加权平均值,作为第一得分score1。同时,计算候选字符串序列与ctc解码字符序列矩阵中第一行元素(α1,1,α1,2,……,α1,n)的编辑距离(editdistance),作为第二得分score2。最后,根据第一得分score1和第二得分score2计算候选字符串序列的最终得分score=0.7*score1 0.3*score1,取score最高的候选字符串序列作为最优字符串序列。按照一定的格式将最优字符串序列输出,具体格式取决于所识别的文本,比如本实施例是识别身份证有效期限,则按照身份证图片中身份证有效期限的格式yyyy.mm.dd-yyyy.mm.dd输出。只需要按照相对位置关系将得到的最优字符串序列格式按日期规范化(首先获取所有数字,前4位为年,4-6位为月,6-8位为日,并且中间用“.”连接。接着“‑”符号连接,同理8-12位为年,12-14位为月,14-16位为日,中间以“:”连接)格式输出,最终输出结果2012.07.13-2021.07.13。[0081]上述基于ctc损失的ocr校正方法,通过提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵后,从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,进而遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列得到字符串序列集合;最后从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。该方法通过ctc解码字符序列中各字符的可能值的置信度结合阈值逐步筛选得到最优解,即使是复杂场景下的ocr识别也能够得到高准确度的识别结果,提高了ocr识别的准确率。[0082]在一个实施例中,步骤s202包括:将ctc解码字符序列矩阵中各字符第一可能值的置信度,分别与字符可信度阈值进行大小比较,确定字符是否正确;当字符正确时用可信模式字符表示字符,不正确时用不可信模式字符表示字符,构建ctc解码字符序列矩阵对应的模式字符序列;根据模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合;可信子序列由可信模式字符组成;遍历模式字符序列集合,根据模式字符序列从ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。[0083]其中,可信模式字符用于表示该字符是可信字符,即该字符为正确字符的概率较高,不可信模式字符用于表示该字符为不可信字符,即该字符为不正确字符的概率较高。由于后续需要将模式字符序列作为二进制序列进行转换,为了节省资源提高速度,本实施例优选1为可信模式字符,0为不可信模式字符。[0084]具体的,遍历ctc解码字符序列矩阵,对于p(α1,j)不小于字符可信度阈值0.99的字符,表示该字符正确,无需修改或者删除,则用可信模式字符1表示。而p(α1,j)小于字符可信度阈值0.99的字符,表示该字符不正确可能需要修改或者删除,则用不可信模式字符0表示,最终能够得到形如1110101……1的模式字符序列,而该模式字符序列的长度等于ctc解码字符序列的长度。以图5所示的ctc解码字符序列为例,其对应的模式字符序列modelseqstr=111001111011111111111011,其中字符为0的位置表示该位置最高置信度小于字符可信度阈值0.99,字符位置为1的位置则表示该位置最高置信度高于字符可信度阈值0.99,所有位置为1的字符序列即为ctc解码字符序列矩阵的可信子序列。结合图5可知,其中低阈值部分的字符刚好对应图4所示图像上模糊不清楚的部分。然后,根据得到的模式字符序列进行相应的转换,进一步枚举出所有包含可信子序列的模式字符序列得到模式字符序列集合。最后对于模式字符序列集合中的每一个模式字符序列,根据模式字符序列中的模式字符从ctc解码字符矩阵中筛选字符构建ctc字符子矩阵。每一个模式字符序列均构建一个对应的ctc字符子矩阵,所有ctc字符子矩阵的合集为ctc字符子矩阵集合。[0085]在一个实施例中,根据模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合,包括:将模式字符序列作为二进制字符序列,按照二进制转化为十进制数值作为开始节点,以及根据字符序列长度确定数值作为结束节点;从开始节点遍历到结束节点,将各整数分别与十进制数值进行按位或计算并转换为二进制序列得到包含可信子序列的模式字符序列;组合各包含可信子序列的模式字符序列,得到模式字符序列集合。[0086]具体得,枚举所有模式字符序列时,将当前得到的模式字符序列作为二进制字符序列,由于先前已经用1和0作为模式字符表示模式字符序列,所以可以直接将模式字符序列作为二进制字符序列进行转换。依照二进制转换为十进制数值,将该十进制数值记为开始节点begin。同时,根据字符序列长度n计算2n-1的数值作为结束节点end。然后,遍历begin到end,对于其中的任意整数t,均计算与作为开始节点的十进制数值的按位或v,即v=t|begin,进一步将v转换为二进制序列bitv,从而得到包含可信子序列的模式字符序列。每一个整数对应的模式字符序列的合集作为模式字符序列集合。以modelseqstr=111001111011111111111011为例,能够得到模式字符序列集合modelseqstrcollection=["111011111111111111111111","111011111111111111111011","111011111011111111111111","111011111011111111111011","111001111111111111111111","111001111111111111111011","111001111011111111111111","111001111011111111111011","111111111111111111111111","111111111111111111111011","111111111011111111111111","111111111011111111111011","111101111111111111111111","111101111111111111111011","111101111011111111111111","111101111011111111111011"],其中每个模式字符序列均包括ctc解码字符序列的可信子序列。[0087]在另一个实施例中,根据模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合,包括:构建空的模式字符序列集合,遍历模式字符序列中的各模式字符;若当前遍历的模式字符是第一位且为可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列;若当前遍历的模式字符是第一位且为不可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列和一条第一位为不可信模式字符的模式字符序列;若当前遍历的模式字符不是第一位且为可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部均追加一位可信模式字符;若当前遍历的模式字符不是第一位且为不可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部分别追加一位可信模式字符,且复制已存在的模式字符序列,在复制的模式字符序列的尾部分别追加一位不可信模式字符,模式字符集合的模式字符序列数量翻倍。[0088]具体的,由于枚举所有包含可信子序列的模式字符序列相当于是枚举所有包含可信模式字符1的模式字符序列。因此,本实施例可以通过先构建一个空的模式字符序列集合,再按位遍历当前所得到的模式字符序列modelseqstr。基于当前模式字符序列modelseqstr中各模式字符的可信情况往空的模式字符序列集合中添加多条包含可信子序列的模式字符序列,从而得到包含所有可信子序列的模式字符序列集合。在遍历添加模式字符的过程中,基于遍历的模式字符是可信模式字符1还是不可信模式字符0,分为不同的情况进行添加。[0089]当遍历到的第k位模式字符如果是第一位且为可信模式字符1时,由于第一位表示模式字符序列集合此时仍然为空,所以直接在模式字符序列集合中添加一条此时第一位为可信字符模式1的模式字符序列。当遍历到第k位模式字符如果不是第一位且为可信模式字符1时,由于已经不是第一位所以模式字符序列集合此时不为空,则在模式字符序列集合中对已存在的每一条模式字符序列的尾部追加一位可信模式字符1。比如,此时的模式字符序列集合中存在“110”“101”“111”三个模式字符序列,则在尾部对每个模式字符序列追加一位“1”,此时得到的模式字符序列集合为“1101”“1011”“1111”。而当遍历到的第k位模式字符如果是第一位但是为不可信模式字符0时,同样此时的模式字符序列集合为空,与前述不同的是,除了直接在模式字符序列集合中添加一条此时第一位为可信字符模式1的模式字符序列之外,还需要添加一条此时第一位为不可信模式字符0的模式字符序列,也就是在模式字符序列集合中添加了两条模式字符序列,其中一条的第一位模式字符为可信模式字符1,另一条的第一位模式字符为不可信模式字符0。当遍历到第k位模式字符如果不是第一位但是为不可信模式字符0时,则在模式字符序列集合中对已存在的每一条模式字符序列的尾部分别追加一位可信模式字符1,同时,复制已存在的模式字符序列,在复制得到的模式字符序列的尾部追加一位不可信模式字符0,使得模式字符序列集合中的模式字符序列数量翻倍。比如,此时的模式字符序列结合包括“110”“101”“111”三个模式字符序列,则对每个模式字符序列分别追加一位“1”的同时,复制“110”“101”“111”在追加一位“0”,此时得到的模式字符序列集合为“1101”“1011”“1111”“1100”“1010”“1110”,相当于是对已存在的每一条模式字符序列分别追加一位“1”和一位“0”来得到两条序列。在本实施例中,通过遍历直接添加的方式枚举得到模式字符序列集合,相比于通过转换二进制计算能够更快的得到模式字符序列集合,从而提高了校正的处理效率。[0090]在一个实施例中,遍历模式字符序列集合,根据模式字符序列从ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,包括:构建空ctc字符子矩阵;遍历模式字符序列中的模式字符,若当前遍历的第k个模式字符为可信模式字符,则将ctc解码字符序列矩阵中的第k列加入到空ctc字符子矩阵中,得到与ctc解码字符序列矩阵对应的ctc字符子矩阵;将各模式字符序列的ctc字符子矩阵组合为ctc字符子矩阵集合。[0091]具体的,首先构建一个不含矩阵元素的空ctc字符子矩阵,对模式字符序列进行遍历。若当前遍历的第k个模式字符是可信模式字符1,则将第k列的矩阵元素加入到空ctc字符子矩阵中,也就是将ctc解码字符序列矩阵中同位置的矩阵元素按列加入到空ctc字符子矩阵中。而若当前遍历的第k个字符模式为不可信模式字符0时,则跳过该字符往后继续遍历,也就是该字符对应的矩阵元素不会挑选出来加入到空ctc字符子矩阵中。直至遍历完整个模式字符序列,得到该模式字符序列对应的ctc字符子矩阵。对于模式字符序列集合的每一个模式字符序列均按照该方式得到对应的ctc字符子矩阵,从而得到ctc字符子矩阵集合。如图6所示,提供一种ctc字符子矩阵对应ctc字符子序列的示意图,图6是基于图5所示ctc解码字符序列的ctc字符子序列。[0092]应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。[0093]在一个实施例中,如图7所示,提供一种基于ctc损失的ocr校正装置,包括:[0094]字符识别模块,用于提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵;[0095]子矩阵构建模块,用于从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;[0096]字符串序列构建模块,用于遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;[0097]输出模块,用于从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。[0098]在一个实施例中,字符识别模块还用于对待检测图像中的文字框进行检测和截取,得到待识别文本;利用基于ctc损失的ocr字符识别模型对待识别文本进行字符识别,获取ctc解码字符序列以及ctc解码字符序列中各字符的可能值;根据ctc解码字符序列长度以及各字符的可能值,构建ctc解码字符序列矩阵。[0099]在一个实施例中,子矩阵构建模块还用于将ctc解码字符序列矩阵中各字符第一可能值的置信度,分别与字符可信度阈值进行大小比较,确定字符是否正确;当字符正确时用可信模式字符表示字符,不正确时用不可信模式字符表示字符,构建ctc解码字符序列矩阵对应的模式字符序列;根据模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合;可信子序列由可信模式字符组成;遍历模式字符序列集合,根据模式字符序列从ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。[0100]在一个实施例中,子矩阵构建模块还用于将模式字符序列作为二进制字符序列,按照二进制转化为十进制数值作为开始节点,以及根据字符序列长度确定数值作为结束节点;从开始节点遍历到结束节点,将各整数分别与十进制数值进行按位或计算并转换为二进制序列得到包含可信子序列的模式字符序列;组合各包含可信子序列的模式字符序列,得到模式字符序列集合。[0101]在一个实施例中,子矩阵构建模块还用于构建空的模式字符序列集合,遍历模式字符序列中的各模式字符;若当前遍历的模式字符是第一位且为可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列;若当前遍历的模式字符是第一位且为不可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列和一条第一位为不可信模式字符的模式字符序列;若当前遍历的模式字符不是第一位且为可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部均追加一位可信模式字符;若当前遍历的模式字符不是第一位且为不可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部分别追加一位可信模式字符,且复制已存在的模式字符序列,在复制的模式字符序列的尾部分别追加一位不可信模式字符,模式字符集合的模式字符序列数量翻倍。[0102]在一个实施例中,子矩阵构建模块还用于构建空ctc字符子矩阵;遍历模式字符序列中的模式字符,若当前遍历的第k个模式字符为可信模式字符,则将ctc解码字符序列矩阵中的第k列加入到空ctc字符子矩阵中,得到与ctc解码字符序列矩阵对应的ctc字符子矩阵;将各模式字符序列的ctc字符子矩阵组合为ctc字符子矩阵集合。[0103]在一个实施例中,字符串序列构建模块还用于对于ctc字符子矩阵集合中的每一个ctc字符子矩阵,分别构建序列长度与ctc字符子矩阵中字符数量相等的空字符串序列;将ctc字符子矩阵中各字符第一可能值的置信度分别与字符可信度阈值进行大小比较;若第一可能值对应的置信度不小于字符可信度阈值时,将第一可能值加到空字符串序列中,否则将字符在ctc字符子矩阵中的所有可能值都加入到空字符串序列中,得到赋值后的字符串序列;对赋值后的字符串序列进行排列组合,枚举所有字符串序列,得到字符串序列集合。[0104]在一个实施例中,输出模块还用于遍历字符串序列集合中的每一个字符串序列,确定满足自适应要求的字符串序列作为候选字符串序列;将候选字符串序列的置信度加权平均值作为第一得分,将候选字符串序列与ctc解码字符序列矩阵中第一行元素的编辑距离作为第二得分;加权第一得分和第二得分,得到候选字符串序列的最终得分;根据最终得分从候选字符串序列中确定最优字符串序列;按照待识别文本的字符格式输出最优字符串序列,得到ocr校正结果。[0105]关于基于ctc损失的ocr校正装置的具体限定可以参见上文中对于基于ctc损失的ocr校正方法的限定,在此不再赘述。上述基于ctc损失的ocr校正装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个基于ctc损失的ocr校正方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。[0106]在一个实施例中,提供一种计算机设备,该计算机设备可以是服务器,包括处理器,存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于ctc损失的ocr校正方法。示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。[0107]所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。[0108]所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。[0109]本领域技术人员可以理解,本实施例中所示出的计算机设备结构,仅仅是与本发明方案相关的部分结构,并不构成对本发明所应用于其上的计算机设备的限定,具体的计算机设备可以包括更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0110]在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:[0111]提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵;[0112]从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;[0113]遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;[0114]从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。[0115]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对待检测图像中的文字框进行检测和截取,得到待识别文本;利用基于ctc损失的ocr字符识别模型对待识别文本进行字符识别,获取ctc解码字符序列以及ctc解码字符序列中各字符的可能值;根据ctc解码字符序列长度以及各字符的可能值,构建ctc解码字符序列矩阵。[0116]在一个实施例中,处理器执行计算机程序时还实现以下步骤:将ctc解码字符序列矩阵中各字符第一可能值的置信度,分别与字符可信度阈值进行大小比较,确定字符是否正确;当字符正确时用可信模式字符表示字符,不正确时用不可信模式字符表示字符,构建ctc解码字符序列矩阵对应的模式字符序列;根据模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合;可信子序列由可信模式字符组成;遍历模式字符序列集合,根据模式字符序列从ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。[0117]在一个实施例中,处理器执行计算机程序时还实现以下步骤:将模式字符序列作为二进制字符序列,按照二进制转化为十进制数值作为开始节点,以及根据字符序列长度确定数值作为结束节点;从开始节点遍历到结束节点,将各整数分别与十进制数值进行按位或计算并转换为二进制序列得到包含可信子序列的模式字符序列;组合各包含可信子序列模式字符序列,得到模式字符序列集合。[0118]在一个实施例中,处理器执行计算机程序时还实现以下步骤:构建空的模式字符序列集合,遍历模式字符序列中的各模式字符;若当前遍历的模式字符是第一位且为可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列;若当前遍历的模式字符是第一位且为不可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列和一条第一位为不可信模式字符的模式字符序列;若当前遍历的模式字符不是第一位且为可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部均追加一位可信模式字符;若当前遍历的模式字符不是第一位且为不可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部分别追加一位可信模式字符,且复制已存在的模式字符序列,在复制的模式字符序列的尾部分别追加一位不可信模式字符,模式字符集合的模式字符序列数量翻倍。[0119]在一个实施例中,处理器执行计算机程序时还实现以下步骤:构建空ctc字符子矩阵;遍历模式字符序列中的模式字符,若当前遍历的第k个模式字符为可信模式字符,则将ctc解码字符序列矩阵中的第k列加入到空ctc字符子矩阵中,得到与ctc解码字符序列矩阵对应的ctc字符子矩阵;将各模式字符序列的ctc字符子矩阵组合为ctc字符子矩阵集合。[0120]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于ctc字符子矩阵集合中的每一个ctc字符子矩阵,分别构建序列长度与ctc字符子矩阵中字符数量相等的空字符串序列;将ctc字符子矩阵中各字符第一可能值的置信度分别与字符可信度阈值进行大小比较;若第一可能值对应的置信度不小于字符可信度阈值时,将第一可能值加到空字符串序列中,否则将字符在ctc字符子矩阵中的所有可能值都加入到空字符串序列中,得到赋值后的字符串序列;对赋值后的字符串序列进行排列组合,枚举所有字符串序列,得到字符串序列集合。[0121]在一个实施例中,处理器执行计算机程序时还实现以下步骤:遍历字符串序列集合中的每一个字符串序列,确定满足自适应要求的字符串序列作为候选字符串序列;将候选字符串序列的置信度加权平均值作为第一得分,将候选字符串序列与ctc解码字符序列矩阵中第一行元素的编辑距离作为第二得分;加权第一得分和第二得分,得到候选字符串序列的最终得分;根据最终得分从候选字符串序列中确定最优字符串序列;按照待识别文本的字符格式输出最优字符串序列,得到ocr校正结果。[0122]在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:[0123]提取待识别文本,利用基于ctc损失的ocr识别模型对待识别文本进行字符识别,得到ctc解码字符序列矩阵;[0124]从ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;[0125]遍历ctc字符子矩阵集合,基于各ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;[0126]从字符串序列集合中筛选最优字符串序列,输出最优字符串序列作为ocr校正结果。[0127]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对待检测图像中的文字框进行检测和截取,得到待识别文本;利用基于ctc损失的ocr字符识别模型对待识别文本进行字符识别,获取ctc解码字符序列以及ctc解码字符序列中各字符的可能值;根据ctc解码字符序列长度以及各字符的可能值,构建ctc解码字符序列矩阵。[0128]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将ctc解码字符序列矩阵中各字符第一可能值的置信度,分别与字符可信度阈值进行大小比较,确定字符是否正确;当字符正确时用可信模式字符表示字符,不正确时用不可信模式字符表示字符,构建ctc解码字符序列矩阵对应的模式字符序列;根据模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合;可信子序列由可信模式字符组成;遍历模式字符序列集合,根据模式字符序列从ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。[0129]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将模式字符序列作为二进制字符序列,按照二进制转化为十进制数值作为开始节点,以及根据字符序列长度确定数值作为结束节点;从开始节点遍历到结束节点,将各整数分别与十进制数值进行按位或计算并转换为二进制序列得到包含可信子序列的模式字符序列;组合各包含可信子序列的模式字符序列,得到模式字符序列集合。[0130]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:构建空的模式字符序列集合,遍历模式字符序列中的各模式字符;若当前遍历的模式字符是第一位且为可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列;若当前遍历的模式字符是第一位且为不可信模式字符,则在模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列和一条第一位为不可信模式字符的模式字符序列;若当前遍历的模式字符不是第一位且为可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部均追加一位可信模式字符;若当前遍历的模式字符不是第一位且为不可信模式字符,则在模式字符集合中对已存在的模式字符序列的尾部分别追加一位可信模式字符,且复制已存在的模式字符序列,在复制的模式字符序列的尾部分别追加一位不可信模式字符,模式字符集合的模式字符序列数量翻倍。[0131]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:构建空ctc字符子矩阵;遍历模式字符序列中的模式字符,若当前遍历的第k个模式字符为可信模式字符,则将ctc解码字符序列矩阵中的第k列加入到空ctc字符子矩阵中,得到与ctc解码字符序列矩阵对应的ctc字符子矩阵;将各模式字符序列的ctc字符子矩阵组合为ctc字符子矩阵集合。[0132]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于ctc字符子矩阵集合中的每一个ctc字符子矩阵,分别构建序列长度与ctc字符子矩阵中字符数量相等的空字符串序列;将ctc字符子矩阵中各字符第一可能值的置信度分别与字符可信度阈值进行大小比较;若第一可能值对应的置信度不小于字符可信度阈值时,将第一可能值加到空字符串序列中,否则将字符在ctc字符子矩阵中的所有可能值都加入到空字符串序列中,得到赋值后的字符串序列;对赋值后的字符串序列进行排列组合,枚举所有字符串序列,得到字符串序列集合。[0133]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:遍历字符串序列集合中的每一个字符串序列,确定满足自适应要求的字符串序列作为候选字符串序列;将候选字符串序列的置信度加权平均值作为第一得分,将候选字符串序列与ctc解码字符序列矩阵中第一行元素的编辑距离作为第二得分;加权第一得分和第二得分,得到候选字符串序列的最终得分;根据最终得分从候选字符串序列中确定最优字符串序列;按照待识别文本的字符格式输出最优字符串序列,得到ocr校正结果。[0134]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。[0135]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0136]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
技术特征:
1.一种基于ctc损失的ocr校正方法,其特征在于,包括:提取待识别文本,利用基于ctc损失的ocr识别模型对所述待识别文本进行字符识别,得到ctc解码字符序列矩阵;从所述ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;遍历所述ctc字符子矩阵集合,基于各所述ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为ocr校正结果。2.根据权利要求1所述的方法,其特征在于,所述提取待识别文本,利用基于ctc损失的ocr识别模型对所述待识别文本进行字符识别,得到ctc解码字符序列矩阵,包括:对待检测图像中的文字框进行检测和截取,得到待识别文本;利用基于ctc损失的ocr字符识别模型对所述待识别文本进行字符识别,获取ctc解码字符序列以及所述ctc解码字符序列中各字符的可能值;根据所述ctc解码字符序列的长度以及各所述字符的可能值,构建ctc解码字符序列矩阵。3.根据权利要求1所述的方法,其特征在于,所述从所述ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,包括:将所述ctc解码字符序列矩阵中各字符第一可能值的置信度,分别与所述字符可信度阈值进行大小比较,确定字符是否正确;当所述字符正确时用可信模式字符表示所述字符,不正确时用不可信模式字符表示所述字符,构建所述ctc解码字符序列矩阵对应的模式字符序列;根据所述模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合;所述可信子序列由可信模式字符组成;遍历所述模式字符序列集合,根据所述模式字符序列从所述ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合。4.根据权利要求3所述的方法,其特征在于,所述根据所述模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合,包括:将所述模式字符序列作为二进制字符序列,按照二进制转化为十进制数值作为开始节点,以及根据字符序列长度确定数值作为结束节点;从所述开始节点遍历到所述结束节点,将各整数分别与所述十进制数值进行按位或计算并转换为二进制序列得到包含可信子序列的模式字符序列;组合各所述包含可信子序列的模式字符序列,得到模式字符序列集合。5.根据权利要求3所述的方法,其特征在于,所述根据所述模式字符序列,枚举所有包含可信子序列的模式字符序列,得到模式字符序列集合,包括:构建空的模式字符序列集合,遍历所述模式字符序列中的各模式字符;若当前遍历的模式字符是第一位且为可信模式字符,则在所述模式字符序列集合中添加一条第一位为可信模式字符的模式字符序列;若当前遍历的模式字符是第一位且为不可信模式字符,则在所述模式字符序列集合中
添加一条第一位为可信模式字符的模式字符序列和一条第一位为不可信模式字符的模式字符序列;若当前遍历的模式字符不是第一位且为可信模式字符,则在所述模式字符集合中对已存在的模式字符序列的尾部均追加一位可信模式字符;若当前遍历的模式字符不是第一位且为不可信模式字符,则在所述模式字符集合中对已存在的模式字符序列的尾部分别追加一位可信模式字符,且复制所述已存在的模式字符序列,在复制的模式字符序列的尾部分别追加一位不可信模式字符,所述模式字符集合的模式字符序列数量翻倍。6.根据权利要求3所述的方法,其特征在于,所述遍历所述模式字符序列集合,根据所述模式字符序列从所述ctc解码字符序列矩阵筛选字符构建ctc字符子矩阵,得到ctc字符子矩阵集合,包括:构建空ctc字符子矩阵;遍历所述模式字符序列中的模式字符,若当前遍历的第k个模式字符为可信模式字符,则将所述ctc解码字符序列矩阵中的第k列加入到所述空ctc字符子矩阵中,得到与所述ctc解码字符序列矩阵对应的ctc字符子矩阵;将各所述模式字符序列的ctc字符子矩阵组合为ctc字符子矩阵集合。7.根据权利要求1所述的方法,其特征在于,所述遍历所述ctc字符子矩阵集合,基于各所述ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符可能值,构建字符串序列,得到字符串序列集合,包括:对于所述ctc字符子矩阵集合中的每一个ctc字符子矩阵,分别构建序列长度与所述ctc字符子矩阵中字符数量相等的空字符串序列;将所述ctc字符子矩阵中各字符第一可能值的置信度分别与所述字符可信度阈值进行大小比较;若所述第一可能值对应的置信度不小于所述字符可信度阈值时,将所述第一可能值加到所述空字符串序列中,否则将字符在所述ctc字符子矩阵中的所有可能值都加入到所述空字符串序列中,得到赋值后的字符串序列;对赋值后的所述字符串序列进行排列组合,枚举所有字符串序列,得到字符串序列集合。8.根据权利要求1所述的方法,其特征在于,所述从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为ocr校正结果,包括:遍历所述字符串序列集合中的每一个字符串序列,确定满足自适应要求的字符串序列作为候选字符串序列;将所述候选字符串序列的置信度加权平均值作为第一得分,将所述候选字符串序列与所述ctc解码字符序列矩阵中第一行元素的编辑距离作为第二得分;加权所述第一得分和所述第二得分,得到所述候选字符串序列的最终得分;根据所述最终得分从所述候选字符串序列中确定最优字符串序列;按照所述待识别文本的字符格式输出所述最优字符串序列,得到ocr校正结果。9.一种基于ctc损失的ocr校正装置,其特征在于,包括:字符识别模块,用于提取待识别文本,利用基于ctc损失的ocr识别模型对所述待识别
文本进行字符识别,得到ctc解码字符序列矩阵;子矩阵构建模块,用于从所述ctc解码字符序列矩阵中筛选满足字符可信度阈值的字符构建ctc字符子矩阵,得到ctc字符子矩阵集合;字符串序列构建模块,用于遍历所述ctc字符子矩阵集合,基于各所述ctc字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;输出模块,用于从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为ocr校正结果。10.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1-8中任意一项所述的基于ctc损失的ocr校正方法。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任意一项所述的基于ctc损失的ocr校正方法。
技术总结
本发明涉及人工智能图像文字识别技术领域,提供了一种基于CTC损失的OCR校正方法、装置、计算机设备和存储介质,所述方法包括:提取待识别文本,利用基于CTC损失的OCR识别模型对所述待识别文本进行字符识别,得到CTC解码字符序列矩阵;从所述CTC解码字符序列矩阵中筛选满足字符可信度阈值的字符构建CTC字符子矩阵,得到CTC字符子矩阵集合;遍历所述CTC字符子矩阵集合,基于各所述CTC字符子矩阵中各字符可能值的置信度与字符可信度阈值的大小关系筛选字符的可能值,构建字符串序列,得到字符串序列集合;从所述字符串序列集合中筛选最优字符串序列,输出所述最优字符串序列作为OCR校正结果。采用本方法能够提高OCR识别的准确率。确率。确率。
技术研发人员:索红亮 郭建京 周忠诚 黄九鸣 张圣栋
受保护的技术使用者:湖南星汉数智科技有限公司
技术研发日:2022.02.18
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-9244.html