一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

卡证文本识别方法、装置和存储介质与流程

2022-09-14 18:34:28 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,尤其涉及一种卡证文本识别方法、装置和存储介质。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。也就是说,人工智能研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
3.光学字符识别(optical character recognition,ocr)属于人工智能领域中的一个重要方向,ocr基于深度学习技术,提供多种服务,例如支持将图片上的文字内容,智能识别为结构化的文本,拥有广阔的应用场景,例如在当前的卡证ocr应用场景下,用户亟需响应更快、精度更高、通用性更强的ocr解决方案。


技术实现要素:

4.有鉴于此,提出了一种卡证文本识别方法、装置和存储介质。
5.第一方面,本技术的实施例提供了一种卡证文本识别方法,该方法用于终端设备,该方法包括:获取卡证的第一待识别图像;对所述第一待识别图像进行检测,得到至少一个第一文本区域,所述第一文本区域表示所述第一待识别图像中的文本所在的区域;根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像;对所述第二待识别图像进行检测,得到至少一个第二文本区域,所述第二文本区域表示所述第二待识别图像中的文本所在的区域;对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本。
6.根据本技术实施例,通过获取卡证的第一待识别图像,对第一待识别图像进行检测,得到至少一个第一文本区域,根据第一文本区域对第一待识别图像进行旋转矫正,得到第二待识别图像,对所述第二待识别图像进行检测,得到至少一个第二文本区域,对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本,可以实现输入为图片,输出为卡证文本内容,经过旋转矫正可以将卡证文本的角度调整到较佳的状态,可以实现对于倾斜的卡证图片的文本内容识别,经过二次检测,可以避免文本区域的漏检,提高对于倾斜的卡证图片的文本区域的检测的准确度,同时还可以提高文本内容的识别准确度,方法用于终端设备,使得检测与识别时的响应快,还可以降低功耗,避免了云侧调用方法而导致的断网和响应慢的问题,提升了用户使用时的体验。
7.根据第一方面,在所述卡证文本识别方法的第一种可能的实现方式中,根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像,包括:根据所述第一文本区域中,长度最长的至少一个文本区域的平均倾斜角度,对所述第一待识别图像进行旋转矫正,得到所述第二待识别图像。
8.根据本技术实施例,通过以长度最长若干个第一文本区域的平均倾斜角度对第一待识别图像进行旋转矫正,能够提高矫正的准确性,进而提高检测的准确率。
9.根据第一方面或第一方面的第一种可能的实现方式,在所述卡证文本识别方法的第二种可能的实现方式中,对所述第二待识别图像进行检测,得到至少一个第二文本区域,包括:确定所述第二文本区域的水平斜率;根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,其中,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘。
10.根据本技术实施例,通过确定所述第二文本区域的水平斜率,根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘,可以防止由于文本区域的不规则、导致的对文本区域进行透视变换后文字变形的情况,使得文本区域中的文本更加易于识别,从而进一步提高了对于卡证文本识别的准确度。
11.根据第一方面或第一方面的第一种或第二种可能的实现方式,在所述卡证文本识别方法的第三种可能的实现方式中,对所述第二待识别图像进行检测,得到至少一个第二文本区域,包括:确定所述第二文本区域的水平斜率和高度;根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,延长的距离根据所述高度确定。
12.根据本技术实施例,通过确定所述第二文本区域的水平斜率和高度,根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,可以防止文本区域过于紧贴文本导致的切字漏字的问题,使得文本区域中的文本更加易于识别,从而进一步提高了对于卡证文本识别的准确度。
13.根据第一方面或第一方面的第一种、第二种或第三种可能的实现方式,在所述卡证文本识别方法的第四种可能的实现方式中,对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本,包括:对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本;确定所述第二目标文本的属性;根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列;根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本。
14.根据本技术实施例,通过对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本,确定所述第二目标文本的属性,根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列,根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本,可以防止在识别时由于字符相似导致混淆、识别错误的问题,降低了识别的错误率,进一步的提高了识别的精度。
15.根据第一方面或第一方面的第一种、第二种、第三种或第四种可能的实现方式,在所述卡证文本识别方法的第五种可能的实现方式中,该方法还包括:根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型;其中,所述训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,其中,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识
别模型用于识别第一目标文本和第二目标文本。
16.根据本技术实施例,通过根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识别模型用于识别第一目标文本和第二目标文本,可以减少终端设备中rom的占用,防止终端设备的卡顿,通过训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,可以实现正样本和负样本的对抗学习,增强检测模型对于文本区域和非文本区域的区分度,同时提高了复杂背景下的识别准确度,增加了模型的鲁棒性,提高了模型的精度。
17.第二方面,本技术的实施例提供了一种卡证文本识别装置,该装置用于终端设备,该装置包括:获取模块,用于获取卡证的第一待识别图像;第一检测模块,用于对所述第一待识别图像进行检测,得到至少一个第一文本区域,所述第一文本区域表示所述第一待识别图像中的文本所在的区域;矫正模块,用于根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像;第二检测模块,用于对所述第二待识别图像进行检测,得到至少一个第二文本区域,所述第二文本区域表示所述第二待识别图像中的文本所在的区域;识别模块,用于对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本。
18.根据第二方面,在所述卡证文本识别装置的第一种可能的实现方式中,所述矫正模块包括:第一矫正子模块,用于根据所述第一文本区域中,长度最长的至少一个文本区域的平均倾斜角度,对所述第一待识别图像进行旋转矫正,得到所述第二待识别图像。
19.根据第二方面或第二方面的第一种可能的实现方式,在所述卡证文本识别装置的第二种可能的实现方式中,所述第二检测模块包括:第一确定模块,用于确定所述第二文本区域的水平斜率;第二矫正子模块,用于根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,其中,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘。
20.根据第二方面或第二方面的第一种或第二种可能的实现方式,在所述卡证文本识别装置的第三种可能的实现方式中,所述第二检测模块包括:第二确定模块,用于确定所述第二文本区域的水平斜率和高度;延长模块,用于根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,延长的距离根据所述高度确定。
21.根据第二方面或第二方面的第一种、第二种或第三种可能的实现方式,在所述卡证文本识别装置的第四种可能的实现方式中,所述识别模块包括:识别子模块,用于对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本;第三确定模块,用于确定所述第二目标文本的属性;过滤模块,用于根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列;第四确定模块,用于根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本。
22.根据第二方面或第二方面的第一种、第二种、第三种或第四种可能的实现方式,在所述卡证文本识别装置的第五种可能的实现方式中,该装置还包括:训练模块,用于根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型;其中,所述训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包
括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,其中,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识别模型用于识别第一目标文本和第二目标文本。
23.第三方面,本技术的实施例提供了一种卡证文本识别装置,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的卡证文本识别方法。
24.第四方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的卡证文本识别方法。
25.第五方面,本技术的实施例提供了一种终端设备,该终端设备可以执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的卡证文本识别方法。
26.第六方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的卡证文本识别方法。
27.本技术的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
28.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本技术的示例性实施例、特征和方面,并且用于解释本技术的原理。
29.图1示出根据本技术一实施例的应用场景的示意图。
30.图2示出根据本技术一实施例的卡证文本识别方法的流程图。
31.图3示出根据本技术一实施例的生成负样本的流程图。
32.图4示出根据本技术一实施例的卡证文本识别方法的流程图。
33.图5示出根据本技术一实施例的对图片进行旋转矫正的流程图。
34.图6示出根据本技术一实施例的对图片进行旋转矫正的效果示意图。
35.图7a示出经过二次检测得到的四边形文本框示意图。
36.图7b示出对经过二次检测得到的四边形文本框直接进行透视变换的效果示意图。
37.图7c示出对经过二次检测得到的四边形文本框进行边缘矫正的示意图。
38.图7d示出对经过二次检测得到的四边形文本框进行边缘矫正后再进行透视变换的效果示意图。
39.图7e示出过于紧贴的四边形文本框的示意图。
40.图7f示出对经过二次检测得到的四边形文本框进行边缘扩充的示意图。
41.图8示出根据本技术一实施例的进行边缘矫正的流程图。
42.图9示出根据本技术一实施例的进行边缘扩充的流程图。
43.图10示出根据本技术一实施例的基于ctc序列进行置信度过滤的示意图。
44.图11示出根据本技术一实施例的卡证文本识别方法的流程图。
45.图12示出根据本技术一实施例的卡证文本识别方法的流程图。
46.图13示出根据本技术一实施例的卡证文本识别方法的流程图。
47.图14示出根据本技术一实施例的卡证文本识别方法的流程图。
48.图15示出根据本技术一实施例的卡证文本识别装置的结构图。
49.图16示出根据本技术一实施例的终端设备的结构示意图。
50.图17示出根据本技术一实施例的终端设备的软件结构框图。
具体实施方式
51.以下将参考附图详细说明本技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
52.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
53.另外,为了更好的说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。
54.当前,在一种卡证文本识别的情景下,用户在终端设备上进行卡证文本识别时,终端设备需要将卡证的图片发送至云侧的服务器上进行识别,在识别出结果后返回给用户。其中,卡证包括具有一定形状和格式的、任意类型的证件,例如身份证、银行卡、员工卡、名片、营业执照等,卡证的图片可以包括用户存储在终端设备的图片、用户即时拍摄的图片、用户手持卡证利用终端设备扫描出的图片等等。在使用云侧服务器进行识别的情况下,不支持在端侧,也就是在终端设备上直接进行卡证文本识别,同时由于终端设备和服务器需要通过网络来传输数据,带来的问题是在没有网络的情况下无法进行识别,在有网络的情况下也会存在网络时延,响应速度较慢。同时,在这种情况下,对于倾斜的卡证文本、识别的准确率不高。
55.在另一种情况中,在终端设备上进行卡证文本识别时,对于倾斜的卡本,文本识别的准确率很低,对于卡证上凸版钢印字体、卡证文本和背景区分度低、光照干扰、卡证图片模糊等复杂场景下的卡证文本识别,识别的准确率很低,部分卡证文本图片经过预览后无法识别。同时,如果需要在终端设备上训练专用的检测和识别模型,会占用终端设备大量的只读存储器(read-only memory,rom)存储,还会导致终端设备卡顿的问题。
56.为了解决上述技术问题,本技术提供了一种卡证文本识别方法,本技术实施例的卡证文本识别方法能够实现对于卡证图片上文本区域的检测和文本区域中文本的识别,该方法可以应用于终端设备,从而提高了文本的识别准确度。
57.图1示出根据本技术一实施例的应用场景的示意图。在一种可能的实现方式中,本技术实施例提供的文本识别方法可以应用于在终端设备上进行卡证上的文本识别、例如银行卡卡号识别或者驾驶证信息识别的场景中,在进行银行卡卡号识别的场景中,用户可以在利用终端设备上传或扫描了如图1(a)所示的非水平的银行卡照片后,得到识别出的银行卡卡号为“6214xxxx73469446”;在进行驾驶证信息识别的场景中,用户可以手持如图1(b)所示的驾驶证,并利用终端设备进行扫描或拍照上传,得到识别出的驾驶证的信息如下:“姓名:罗x颜;性别:男;证号:3408111992xxxx6319;准驾车型:c1;领证日期:2011-02-14;有效期:2017-02-14至2027-02-14”。在识别出相关的信息后,还可以对识别出的关键信息
进行处理,例如将识别出的驾驶证证号、姓名等关键信息与预先设定的相关字段一一对应,形成结构化的文本信息,大幅提升信息处理效率。
58.其中,终端设备可以是指具有无线连接功能的设备,无线连接的功能是指可以通过wifi、蓝牙等无线连接方式与其他终端设备进行连接,本技术的终端设备也可以具有有线连接进行通信的功能。本技术的终端设备可以是触屏的、也可以是非触屏的、也可以是没有屏幕的,触屏的可以通过手指、触控笔等在显示屏幕上点击、滑动等方式对终端设备进行控制,非触屏的设备可以连接鼠标、键盘、触控面板等输入设备,通过输入设备对终端设备进行控制,没有屏幕的设备比如说可以是没有屏幕的蓝牙音箱等。举例来说,本技术的终端设备可以是智能手机、上网本、平板电脑、笔记本电脑、可穿戴电子设备(如智能手环、智能手表等)、tv、虚拟现实设备、音响、电子墨水,等等。本技术对于终端设备的类型不作限制,对于终端设备可以识别的卡证类型也不作限制,本技术实施例可以应用在对任意场景(包括自然场景、印刷场景等复杂场景)下对任意卡证包含的信息进行识别的场景中,本技术实施例也可以应用在除此以外的场景。
59.图2示出根据本技术一实施例的卡证文本识别方法的流程图。如图2所示,根据本技术一实施例的卡证文本识别方法的流程包括:
60.步骤s101,训练阶段。
61.其中,可以利用训练集对检测模型和识别模型进行训练,得到训练好的检测模型和识别模型。训练集中可以包括卡证图片的样本以及其对应的标注。检测模型和识别模型可以是通用的ocr模型,本技术对于检测模型和识别模型的类别不作限定。
62.例如,可以在原始的检测模型和识别模型结构和参数的基础上,进行微调训练,由此,由于并未添加新的检测模型和识别模型,仅在通用的模型的基础上进行微调训练,可以实现零rom增加,减少终端设备的卡顿。训练使用的训练集可以包括正样本和负样本,正样本可以表示包含文本内容的卡证图片,负样本可以表示不包含文本内容的卡证图片。
63.其中,为了增加模型的鲁棒性,还可以对正样本进行变换,在训练集中包含变换后的正样本,使得原始模型增强对新的场景的适应能力,对正样本进行变换的方式可以包括:随机平移(模拟用户非正对拍摄,镜头水平偏移的情况)、随机缩放(模拟用户拍摄距离存在远近不一的情况)、随机旋转(模拟用户拍摄角度存在平面倾斜的情况)、透视变换(模拟用户拍摄角度存在前后倾斜的情况)、模糊处理(模拟用户对焦不准以及镜头抖动的情况)和随机长宽比(模拟不同的手机拍摄的图片尺寸不一、存在长宽比的差异的情况)。
64.为了使得模型可以针对正负样本进行对抗学习,使得在文本区域与图片背景深度融合、难以分辨的场景(例如字体为钢印凸版字体、文本为在风景画上印刷的情况)下,避免错框、漏框、多框、少框的情况,使得模型可以得到更好的检测和识别效果。可以对训练集中的正样本分别制作一一对应的负样本,在训练阶段将正样本和对应的负样本关联输入。图3示出根据本技术一实施例的生成负样本的流程图。如图3所示,生成负样本的流程包括步骤s201-s204:
65.步骤s201,读入标签和正样本。
66.其中,标签可以是训练集中进行标注后的正样本的标注标签,例如可以表示正样本中的文本区域和非文本区域的坐标。
67.步骤s202,生成文本区域和非文本区域的掩码图。
68.例如,可以根据标签中标注的坐标确定的文本区域和非文本区域,生成对应的掩码图。掩码图可以是黑白图片,例如负样本中文本区域是白色的部分,非文本区域是黑色的部分。
69.步骤s203,选取文本区域邻域的非文本区域。
70.例如,非文本区域可以是掩码图中黑色的部分,表示需要保留的内容。
71.步骤s204,覆盖文本区域。
72.例如,可以根据掩码图,截取非文本区域的像素填充至文本区域,由此覆盖文本区域,正常显示正样本中的非文本区域,形成处理后的负样本的图片。
73.步骤s205,保存负样本。
74.其中,在生成负样本后,可以将其与对应的正样本进行关联并保存至训练集中。
75.由此,可以增强检测模型对于文本区域和非文本区域的区分度。
76.重新参见图2,在完成步骤s102的训练阶段后,在步骤s102中,进入预处理阶段。
77.其中,可以对原始输入的图片进行预处理,得到处理后的图片,以调整为检测模型的输入。例如,可以对图片进行归一化处理,以适配检测模型的原始输入尺寸。
78.预处理阶段中输入的图片可以是用户上传的卡证图片,上传的方式可以包括用户直接拍摄得到的卡证图片、用户上传存储在终端设备中的照片、或者用户通过终端设备扫描卡证图片等等,上传的方式还可以是其他任意方式,本技术对用户上传卡证图片的方式不作限制。
79.步骤s103,文本检测阶段。
80.其中,可以使用训练好的检测模型,对预处理后的图片进行两次文本检测,在进行第一次文本检测时可以得到检测到的四边形文本框,根据检测到的四边形文本框可以对图片进行旋转矫正,使得图片内的文本行可以趋于水平,第二次文本检测时可以输入经过旋转矫正后的图片,得到检测出的新的四边形文本框。
81.其中,对于输入的图片,可以检测到多个文本框,文本框可以对应于检测到的文本区域,文本区域内可能包含需要进行识别的相关的卡证信息,例如银行卡卡号。
82.步骤s104,文本识别阶段。
83.其中,可以对四边形文本框进行边缘扩充和矫正、以及透视变换,得到矩形的图片块,并使用训练好的识别模型,对图片块进行识别,输出对应的文本内容。
84.其中,还可以进一步确定得到的文本内容的属性,根据其属性进一步精确识别文本内容,并对识别到的文本内容进行校验和修正。
85.在图2的基础上,图4示出根据本技术一实施例的卡证文本识别方法的流程图。如图4所示,卡证文本识别的流程具体包括:
86.步骤s301,输入卡证图片。
87.其中,输入的卡证图片可以是经过预处理阶段处理后的,符合检测模型的输入尺寸的卡证图片。
88.步骤s302,利用检测模型对输入的图片进行检测,得到检测到的候选文本区域。
89.其中,对于输入的某一张图片,可以检测到其包含的多个候选文本区域,候选文本区域可以包括其坐标和对应的置信度,坐标相近的候选文本区域可表示对应同一文本,置信度表示对应的该候选文本区域为指向其对应的某一文本的最适应的文本区域的概率。
90.例如,对于银行卡图片中、表示卡号的文本,可能对应着多个候选文本区域,以及相应的置信度,未能完全包含卡号文本的候选文本区域对应的置信度相对较低,能够完全包含卡号文本的候选文本区域对应的置信度相对较高。
91.其中,检测模型可以是利用针对性正负样本进行微调训练后得到的检测模型,训练的过程可参照图2中步骤s101。
92.由上可知,对于图片中的某一文本(例如银行卡中的卡号),可能会检测到对应的多个候选文本区域,因此可能存在大量冗余。还可以通过对多余的候选文本区域进行融合以及过滤处理,确定图片内各文本对应的四边形文本框。
93.例如,可以使用非极大值抑制(non-maximum suppression,nms)算法对候选文本区域进行融合以及过滤处理,对于对应同一文本的多个候选文本区域,可以最终确定一个最适应的候选文本区域形成四边形文本框。
94.步骤s303,根据前m个较长的四边形文本框对图片进行旋转矫正,使得图片内的文本行趋于水平。
95.经过步骤s303,图片中可能确定了多个文本区域分别对应的四边形文本框,为了解决图片倾斜导致的检测精度下降的问题,在完成步骤s303的旋转图片后,在步骤s304中,将旋转矫正后的图片输入到检测模型中,进行二次检测,得到新的四边形文本框。图5示出根据本技术一实施例的对图片进行旋转矫正的流程图,可作为步骤s301-s304的一个示例。其中步骤s401可参照图4中的步骤s301,步骤s402和步骤s403可参照图4中的步骤s302,后处理可以包括对多余的候选文本区域进行融合以及过滤处理,如图5所示,对图片进行旋转矫正的流程还包括:
96.步骤s404,获取多个四边形文本框中的前m个较长的文本框。
97.步骤s405,计算这m个文本框的平均倾斜角度α.
98.步骤s406,将图片旋转α角度,得到旋转矫正后的图片。
99.由此,图片中的文本行可以趋于水平。
100.例如,可以选择驾驶证图片中的长度前五长的文本框,计算得到这五个文本框对应的倾斜角度分别为α1、α2、α3、α4和α5,则平均倾斜角度α=(α1 α2 α3 α4 α5)/5。在一种可能的实现方式中,可以利用opencv中的warpaffine函数来实现图像的旋转,以及对旋转后的图片边界背景进行填充(例如复制边缘填充)。其中,倾斜角度可以是相对于水平方向、也可以是相对于竖直方向。
101.步骤s407,对旋转矫正后的图片的尺寸进行调整,得到适应于检测模型输入尺寸的图片。
102.在一个示例中,图6示出根据本技术一实施例的对图片进行旋转矫正的效果示意图。如图6所示,图6(a)可以表示第一次检测时输入的银行卡图片,图6(b)中银行卡图片上的白点确定的白色边框的文本框1、2、3、4可以分别表示步骤s303中确定的四边形文本框,图6(c)可以表示经过旋转矫正后得到的银行卡图片。通过对银行卡图片的第一次检测可以得到如图6(b)所示的四边形文本框1、2、3、4,可以选择其中长度为前三长的四边形文本框(例如文本框1、2、3),利用warpaffine函数实现对如图6(b)所示的白色框内的图像的旋转,图6(c)中包含银行卡图片的白色框内的区域可以表示对如图6(b)所示的白色框内的图像进行旋转后的区域,图6(c)中的图像旋转后的区域以外的颜色可以由warpaffine函数通过
复制边缘填充得到,最终形成旋转矫正后的银行卡图片。还可以对如图6(c)所示的旋转矫正后的银行卡图片进行尺寸的调整,以适应检测模型需要的输入尺寸。
103.如图6(b)所示,对未进行旋转矫正的图片进行检测,可能会有部分文本区域漏检,而图6(c)所示的图片中的文本行已趋于水平,对该旋转矫正后的图片进行检测,可以大大的降低文本检测的难度,使得检测出的文本区域更加精确,且可以实现基本不漏检。
104.步骤s408,将旋转矫正后的图片输入到检测模型中,进行二次检测,得到新的四边形文本框。
105.其中,对于二次检测的输出结果,还可以使用nms算法对输出结果中包含的候选文本区域进行融合以及过滤处理,对于对应同一文本的多个候选文本区域,可以最终确定一个最适应的候选文本区域对应新的四边形文本框。
106.得到新的四边形文本框,新的四边形文本框相对于第一次检测得到的四边形文本框,更加精准,且漏检的几率更低。
107.重新参见图4,在步骤s304之后,在步骤s305中,对二次检测得到的四边形文本框进行边缘矫正和扩充,并透视变换成矩形的图片块。
108.其中,图7a示出经过二次检测得到的四边形文本框示意图。如图7a中确定的白色四边形文本框所示,经过二次检测得到的四边形文本框,可能存在左右边缘和上下边缘不垂直的问题,图7b示出对经过二次检测得到的四边形文本框直接进行透视变换的效果示意图,如图7b所示,如果对如图7a所示的四边形文本框直接进行透视变换,可能会得到如图7b所示的倾斜变形的文本行,如果将这样的图片块输入识别模型进行识别,会劣化识别效果。
109.因此,可以对二次检测得到的四边形文本框进行边缘矫正,使得文本框的左右边缘和上下边缘垂直。图8示出根据本技术一实施例的进行边缘矫正的流程图。如图8所示,边缘矫正的流程包括:
110.步骤s501,确定检测模型检测到的四边形文本框。
111.其中,四边形文本框可例如图7a中的白色四边形文本框所示。
112.步骤s502,计算四边形的水平斜率k。
113.其中,水平斜率可以根据四边形文本框的上下边的在水平线上的倾斜程度得到,例如,水平斜率可用图7c中线段ad(或线段bc)与水平线之间夹角的正切值表示。
114.步骤s503,过四边形边框左右边的中点做垂线。
115.步骤s504,计算垂线与四边形边框上下边的交点,确定新的四边形边框。
116.在一个示例中,图7c示出对经过二次检测得到的四边形文本框进行边缘矫正的示意图。如图7c所示,对于某一四边形文本框,水平斜率k,可以根据ad边和bc边倾斜的程度得到,根据水平斜率k过中点(如图7c所示点e和点f)、作上下边的垂线(如图7c所示的垂线a和垂线b),得到垂线a和b与上下边的交点(如图7c所示点a、点b、点c和点d),交点形成的四边形文本框即为经过边缘矫正得到的四边形文本框(如图7c所示四边形abcd)。图7d示出对经过二次检测得到的四边形文本框进行边缘矫正后再进行透视变换的效果示意图。如图7d所示,经过边缘矫正,对四边形文本框进行透视变换后能得到更好的文字效果。
117.对四边形文本框进行边缘矫正的方式不限于以上方式,例如,也可以取左、右边(ab边和cd边)的非中点,作上下边的垂线,只要使得矫正后得到的四边形文本框,左右边垂直于上下边即可。
118.在一种可能的情况中,检测模型检测出的文本框会过于紧贴文字,导致漏字缺字的情况。图7e示出过于紧贴的四边形文本框的示意图。如图7e所示,四边形文本框中,银行卡卡号的第一个数字6和最后一个数字0都没有被完全包含进去,将这样的文本框输入识别模型中,可能会导致识别模型对文本不敏感,无法识别出该未完全被包含的数字6和数字0。
119.因此,可以对四边形文字框进行边缘扩充,使得进行边缘填充后的四边形文本框可以完全包含相应的文本。图9示出根据本技术一实施例的进行边缘扩充的流程图。如图9所示,边缘扩充的流程包括:
120.步骤s601,确定进行边缘矫正后的四边形文本框。
121.步骤s602,计算四边形文本框的高度h。
122.步骤s603,根据水平斜率k对四边形文本框的上下边各延长h/2(或高度的其他倍数)。
123.步骤s604,检验边缘矫正以及边缘扩充后的合法性。
124.其中,对边缘矫正以及边缘扩充后的四边形边框的合法性进行检验,可以确定修正后的四边形文本框是否包含图片外的内容。
125.在一个示例中,图7f示出对经过二次检测得到的四边形文本框进行边缘扩充的示意图。如图7f所示,可以计算文本框的高度h以及水平斜率k,根据文本框的水平斜率k对四边形文本框abcd的上下边各延长h/2,得到四边形文本框a1b1c1d1(延长的部分如图7f中的虚线框所示),四边形文本框a1b1c1d1比四边形文本框abcd包含了更多图片上的内容。
126.其中,可以先对二次检测后得到的文本框进行边缘矫正,再对其进行边缘扩充,得到修正后的四边形文本框,还可以对该修正后的四边形文本框进行合法性检验,例如,可以检验扩充后的四边形文本框的顶点坐标a
1、b1、c1、
d1,确定是否有在图片外的坐标。
127.在对文本框进行边缘矫正和边缘扩充后,可以对其进行透视变换,将文本框对应的四边形变换为矩形,得到形状为矩形的图片块。
128.其中,文本框对应的四边形可以包括平行四边形、梯形等任意四边形。
129.例如,透视变换可以是将图片中的四边形文本框投影到一个新的视平面,得到一个矩形的图片块。
130.重新参见图4,在完成步骤s305的边缘扩充矫正后,在步骤s306中,将图片块输入到识别模型中,得到识别出的文本内容。
131.其中,识别模型可以是利用针对性正负样本进行微调训练后得到的识别模型,训练的过程可参照图2中步骤s101。
132.步骤s307,根据识别出的文本内容和对应的坐标,确定文本内容的属性。
133.其中,key-value匹配中的

key’可以表示文本内容的属性,

value’可以表示文本内容。
134.例如,在对驾驶证的信息进行识别的情况下,识别出文本内容“张三”,且确认其坐标在预先确定的驾驶证的特定区域(例如在表示姓名的区域),根据预先设置的该特定区域与属性的对应关系,可以确定该文本内容的属性为“姓名”,该属性可以是预先设定的自定义属性。
135.步骤s308,根据文本内容的属性进行置信度过滤和重识别,得到重识别结果。
136.在复杂场景下,例如银行卡卡号以及身份证号由于字体的原因,数字文本和其他
类型的文本极易出现如下的混淆:
137.(0)和(o、o、d)、(1)和(i、|、!)、(5)和(s、s)、(6)和(b)、(8)和(b)、(9)和(q,g)、(7)和(t)、(4)和( 、h)等等。
138.而在对卡证文本进行识别的场景中,卡证中包含的文本通常并不包括所有的文字类别(例如银行卡号中仅包含数字类别的文本),因此,可以在识别模型中间输出的连接时序分类(connectionist temporal classification,ctc)序列的基础上,根据文本内容的属性进行置信度过滤和重识别,其中,ctc序列可以表示在利用ctc算法解决字符对齐的问题的基础上、形成的中间序列,图10示出根据本技术一实施例的基于ctc序列进行置信度过滤的示意图。如图10所示,在对银行卡的卡号进行识别的情况下,经过步骤s305,可以得到如图10最左侧所示图片块,将该图片块输入识别模型,对于卡号中间的某一位
‘0’
,可以对如图所示的包括7357类和对应的置信度的ctc序列进行类别的过滤筛选,其中,7357可以表示输出的类别的总数为7357个,置信度可以表示对应7357个类别中的每一项、文本内容为该项的概率,根据步骤s307,可以确定该图片块对应的文本内容的属性为“银行卡卡号”,在不对干扰项进行过滤的情况下,如图可知置信度为0.9的

d’将被确认为最终的文本内容,由此会导致卡证文本的误识别。而由于银行卡的卡号属于数字类别,可以根据文本内容的属性(银行卡卡号)对7357个类别进行过滤,筛除7346个非数字类别的干扰项、保留剩余的10项类别为数字的关注项,形成新的ctc序列,对于过滤后剩余的10项关注项的新的ctc序列,进行重识别,例如根据这10项关注项对应的置信度,确定置信度最高的一项为重识别结果,如图所示,可以输出置信度为0.8的
‘0’
为最终的识别结果,由此进一步提高识别的精度。
139.步骤s309,根据文本内容的属性和校验规则对重识别结果进行校验和修正,得到最终的文本内容。
140.其中,校验规则可以是例如银行卡的编码规则,例如在对银行卡的卡号进行识别的情况下,确认文本内容的属性为卡号,检验重识别内容是否为数字,还可以根据银行卡的编码规则,确认例如卡号起始位数是否与银行卡的发卡行相对应等等。在卡号起始位数与银行卡的发卡行不符、例如有一位数字不同的情况下,可以根据银行卡的发卡行对应的卡号起始位数对这一位数字进行修正。
141.其中,例如根据对银行卡卡号进行校验的校验规则可以使用luhn(luhn algorithm)算法。
142.图11示出根据本技术一实施例的卡证文本识别方法的流程图。该方法用于终端设备,如图11所示,该方法包括:
143.步骤s1101,获取卡证的第一待识别图像;
144.步骤s1102,对所述第一待识别图像进行检测,得到至少一个第一文本区域,所述第一文本区域表示所述第一待识别图像中的文本所在的区域;
145.步骤s1103,根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像;
146.步骤s1104,对所述第二待识别图像进行检测,得到至少一个第二文本区域,所述第二文本区域表示所述第二待识别图像中的文本所在的区域;
147.步骤s1105,对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第
一目标文本。
148.根据本技术实施例,通过获取卡证的第一待识别图像,对第一待识别图像进行检测,得到至少一个第一文本区域,根据第一文本区域对第一待识别图像进行旋转矫正,得到第二待识别图像,对所述第二待识别图像进行检测,得到至少一个第二文本区域,对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本,实现输入为图片,输出为卡证文本内容,经过旋转矫正可以将卡证文本的角度调整到较佳的状态,可以实现对于倾斜的卡证图片的文本内容识别,经过二次检测,可以避免文本区域的漏检,提高对于倾斜的卡证图片的文本区域的检测的准确度,同时还可以提高文本内容的识别准确度,方法用于终端设备,使得检测与识别时的响应快,还可以降低功耗,避免了云侧调用方法而导致的断网和响应慢的问题,提升了用户使用时的体验。
149.其中,第一待识别图像可以包括用户上传至终端设备的卡证图片,卡证图片可以包括用户直接拍摄得到的卡证图片、用户上传存储在终端设备中的照片、或者用户通过终端设备扫描得到的卡证图片等等,本技术对用户获得卡证图片的方式不作限制。第一文本区域和第二文本区域可以参照上文所述四边形文本框,可以表示待识别图像中任意文本所在的区域,第二文本区域的数量可以大于或者等于第一文本区域的数量。第一目标文本可以包括卡证上的文本,可以根据对卡证识别的目的确定,例如,如需识别银行卡的卡号,第一目标文本可以包括银行卡的卡号,例如“6214xxxx73469446”。
150.在一种可能的实现方式中,根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,可以是根据第一文本区域中,长度最长的至少一个文本区域的平均倾斜角度,对第一待识别图像进行旋转矫正(例如将第一待识别图像旋转该平均倾斜角度),得到所述第二待识别图像。
151.根据本技术实施例,通过以长度最长若干个第一文本区域的平均倾斜角度对第一待识别图像进行旋转矫正,能够提高矫正的准确性,进而提高检测的准确率。
152.其中,至少一个文本区域的数量可根据需要选择,本技术对此不作限制。
153.步骤s1103可以参照图5所示步骤s404-步骤s407。
154.图12示出根据本技术一实施例的卡证文本识别方法的流程图。如图12所示,对所述第二待识别图像进行检测,得到至少一个第二文本区域,包括:
155.步骤s1201,确定所述第二文本区域的水平斜率;
156.步骤s1202,根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,其中,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘。
157.根据本技术实施例,通过确定所述第二文本区域的水平斜率,根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘,可以防止由于文本区域的不规则、导致的对文本区域进行透视变换后文字变形的情况,使得文本区域中的文本更加易于识别,从而进一步提高了对于卡证文本识别的准确度。
158.其中,水平斜率可以表示第二文本区域的倾斜程度,第二文本区域的左边缘和右边缘可以参照上文图7c所述四边形文本框的左边和右边,第二文本区域的上边缘和下边缘可以参照上文所述四边形文本框的上边和下边,矫正后,第二文本区域可以表示第二待识
别图像中的新的文本区域。
159.步骤1201可参照图8所示步骤s502,步骤s1201可参照图8所示步骤s503-步骤s504。
160.图13示出根据本技术一实施例的卡证文本识别方法的流程图。如图13所示,对所述第二待识别图像进行检测,得到至少一个第二文本区域,包括:
161.步骤s1301,确定所述第二文本区域的水平斜率和高度;
162.步骤s1302,根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,延长的距离根据所述高度确定。
163.根据本技术实施例,通过确定所述第二文本区域的水平斜率和高度,根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,可以防止文本区域过于紧贴文本导致的切字漏字的问题,使得文本区域中的文本更加易于识别,从而进一步提高了对于卡证文本识别的准确度。
164.其中,延长可以是扩大第二文本区域可表示的第二待识别图像的范围,例如对于延长后的第二文本区域,可以将原本未包括在文本区域内的文本包括进来,延长的距离可以是预先设定的,例如高度的1/2或其他倍数,本技术对此不作限制。
165.步骤s1301中计算高度的方法可以参照图9中步骤s602,步骤s1302可以参照图9中步骤s603。
166.图14示出根据本技术一实施例的卡证文本识别方法的流程图。如图14所示,对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本,包括:
167.步骤s1401,对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本;
168.步骤s1402,确定所述第二目标文本的属性;
169.步骤s1403,根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列;
170.步骤s1404,根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本。
171.根据本技术实施例,通过对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本,确定所述第二目标文本的属性,根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列,根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本,可以防止在识别时由于字符相似导致混淆、识别错误的问题,降低了识别的错误率,进一步的提高了识别的精度。
172.其中,第一目标文本可以表示在第二目标文本的基础上、进行了过滤ctc序列并重识别后的目标文本。第二目标文本的属性可以是自定义的,也可以是通过第二目标文本获得的(例如根据第二目标文本所在卡证上的位置与属性的对应关系获得)。置信度可以表示对应的ctc序列中的类别为第一目标文本的概率。过滤后的ctc序列可以仅包含与第二目标文本的属性对应的类别及其置信度。
173.例如,在第二目标文本的属性是“银行卡卡号”的情况下,可以过滤掉ctc序列中非数字类型的项,仅保留数字类型的项,减少误识别的可能。
174.步骤1402可参照图4中步骤s307,ctc序列的一个示例可参照图10所示的包含7357类和对应的置信度的ctc序列。
175.在一种可能的实现方式中,该方法还包括:根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型;其中,所述训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,其中,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识别模型用于识别第一目标文本和第二目标文本。
176.根据本技术实施例,通过根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识别模型用于识别第一目标文本和第二目标文本,可以减少终端设备中rom的占用,防止终端设备的卡顿,通过训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,可以实现正样本和负样本的对抗学习,增强检测模型对于文本区域和非文本区域的区分度,同时提高了复杂背景下的识别准确度,增加了模型的鲁棒性,提高了模型的精度。
177.其中,识别模型和检测模型可以包括通用的ocr模型,本技术对于模型的类型不作限制,训练的方法可以包括微调训练,对模型进行训练的方式可参照图2中步骤s101,卡证图片样本可包括进行随机平移、随机缩放、随机旋转、透视变换、模糊处理和随机长宽比处理后的卡证图片样本,覆盖卡证图片样本的方式可以包括将卡证图片中非文本区域的像素填充至文本区域。
178.负样本生成的方式可以参照图3中步骤s201-步骤s205。
179.根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型的步骤可以在终端设备上执行,也可以在服务器上执行,终端设备可从服务器下载训练后的检测模型和识别模型中的至少其中之一。
180.图15示出根据本技术一实施例的卡证文本识别装置的结构图。如图15所示,该装置用于终端设备,该装置包括:
181.获取模块1501,用于获取卡证的第一待识别图像;
182.第一检测模块1502,用于对所述第一待识别图像进行检测,得到至少一个第一文本区域,所述第一文本区域表示所述第一待识别图像中的文本所在的区域;
183.矫正模块1503,用于根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像;
184.第二检测模块1504,用于对所述第二待识别图像进行检测,得到至少一个第二文本区域,所述第二文本区域表示所述第二待识别图像中的文本所在的区域;
185.识别模块1505,用于对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本。
186.根据本技术实施例,通过获取卡证的第一待识别图像,对第一待识别图像进行检测,得到至少一个第一文本区域,根据第一文本区域对第一待识别图像进行旋转矫正,得到第二待识别图像,对所述第二待识别图像进行检测,得到至少一个第二文本区域,对所述第
二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本,可以实现输入为图片,输出为卡证文本内容,经过旋转矫正可以将卡证文本的角度调整到较佳的状态,可以实现对于倾斜的卡证图片的文本内容识别,经过二次检测,可以避免文本区域的漏检,提高对于倾斜的卡证图片的文本区域的检测的准确度,同时还可以提高文本内容的识别准确度,装置用于终端设备,使得检测与识别时的响应快,还可以降低功耗,避免了云侧调用方法而导致的断网和响应慢的问题,提升了用户使用时的体验。
187.在一种可能的实现方式中,所述矫正模块包括:第一矫正子模块,用于根据所述第一文本区域中,长度最长的至少一个文本区域的平均倾斜角度,对所述第一待识别图像进行旋转矫正,得到所述第二待识别图像。
188.根据本技术实施例,通过以长度最长若干个第一文本区域的平均倾斜角度对第一待识别图像进行旋转矫正,能够提高矫正的准确性,进而提高检测的准确率。
189.在一种可能的实现方式中,所述第二检测模块包括:第一确定模块,用于确定所述第二文本区域的水平斜率;第二矫正子模块,用于根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,其中,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘。
190.根据本技术实施例,通过确定所述第二文本区域的水平斜率,根据所述第二文本区域的水平斜率,对所述第二文本区域的左边缘和右边缘进行矫正,矫正后,所述第二文本区域的左边缘和右边缘分别垂直于所述第二文本区域的上边缘和/或下边缘,可以防止由于文本区域的不规则、导致的对文本区域进行透视变换后文字变形的情况,使得文本区域中的文本更加易于识别,从而进一步提高了对于卡证文本识别的准确度。
191.在一种可能的实现方式中,所述第二检测模块包括:第二确定模块,用于确定所述第二文本区域的水平斜率和高度;延长模块,用于根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,延长的距离根据所述高度确定。
192.根据本技术实施例,通过确定所述第二文本区域的水平斜率和高度,根据所述第二文本区域的水平斜率,将所述第二文本区域的上边缘和下边缘分别向两边进行延长,可以防止文本区域过于紧贴文本导致的切字漏字的问题,使得文本区域中的文本更加易于识别,从而进一步提高了对于卡证文本识别的准确度。
193.在一种可能的实现方式中,所述识别模块包括:识别子模块,用于对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本;第三确定模块,用于确定所述第二目标文本的属性;过滤模块,用于根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列;第四确定模块,用于根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本。
194.根据本技术实施例,通过对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第二目标文本,确定所述第二目标文本的属性,根据所述第二目标文本的属性,对所述第二文本区域对应的连接时序分类ctc序列进行过滤,得到过滤后的ctc序列,根据过滤后的ctc序列中的类别以及对应置信度,得到所述第一目标文本,可以防止在识别时由于字符相似导致混淆、识别错误的问题,降低了识别的错误率,进一步的提高了识别的精度。
195.在一种可能的实现方式中,该装置还包括:训练模块,用于根据训练样本对检测模
型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型;其中,所述训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,其中,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识别模型用于识别第一目标文本和第二目标文本。
196.根据本技术实施例,通过根据训练样本对检测模型和识别模型进行训练,得到训练后的检测模型和训练后的识别模型,训练后的检测模型用于检测第一文本区域和第二文本区域,训练后的识别模型用于识别第一目标文本和第二目标文本,可以减少终端设备中rom的占用,防止终端设备的卡顿,通过训练样本包括正样本和负样本,所述正样本与所述负样本一一对应,所述正样本包括卡证图片样本,所述卡证图片样本中包括文本区域,所述负样本包括对文本区域进行覆盖后得到的卡证图片样本,可以实现正样本和负样本的对抗学习,增强检测模型对于文本区域和非文本区域的区分度,同时提高了复杂背景下的识别准确度,增加了模型的鲁棒性,提高了模型的精度。
197.图16示出根据本技术一实施例的终端设备的结构示意图。以终端设备是手机为例,图16示出了手机200的结构示意图。
198.手机200可以包括处理器210,外部存储器接口220,内部存储器221,usb接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块251,无线通信模块252,音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及sim卡接口295等。其中传感器模块280可以包括陀螺仪传感器280a,加速度传感器280b,接近光传感器280g、指纹传感器280h,触摸传感器280k(当然,手机200还可以包括其它传感器,比如温度传感器,压力传感器、距离传感器、磁传感器、环境光传感器、气压传感器、骨传导传感器等,图中未示出)。
199.可以理解的是,本技术实施例示意的结构并不构成对手机200的具体限定。在本技术另一些实施例中,手机200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
200.处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
201.处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
202.处理器210可以运行本技术实施例提供的卡证文本识别方法,以便于获取卡证的
第一待识别图像;对所述第一待识别图像进行检测,得到至少一个第一文本区域,所述第一文本区域表示所述第一待识别图像中的文本所在的区域;根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像;对所述第二待识别图像进行检测,得到至少一个第二文本区域,所述第二文本区域表示所述第二待识别图像中的文本所在的区域;对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本,以提高文本内容的识别准确度,使得检测与识别时的响应快,同时可以降低功耗,避免了云侧调用方法而导致的断网和响应慢的问题,提升了用户使用时的体验。处理器210可以包括不同的器件,比如集成cpu和gpu时,cpu和gpu可以配合执行本技术实施例提供的卡证文本识别方法,比如卡证文本识别方法中部分算法由cpu执行,另一部分算法由gpu执行,以得到较快的处理效率。
203.显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,手机200可以包括1个或n个显示屏294,n为大于1的正整数。显示屏294可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphical user interface,gui)。例如,显示器294可以显示照片、视频、网页、或者文件等。再例如,显示器294可以显示图形用户界面。其中,图形用户界面上包括状态栏、可隐藏的导航栏、时间和天气小组件(widget)、以及应用的图标,例如浏览器图标等。状态栏中包括运营商名称(例如中国移动)、移动网络(例如4g)、时间和剩余电量。导航栏中包括后退(back)键图标、主屏幕(home)键图标和前进键图标。此外,可以理解的是,在一些实施例中,状态栏中还可以包括蓝牙图标、wi-fi图标、外接设备图标等。还可以理解的是,在另一些实施例中,图形用户界面中还可以包括dock栏,dock栏中可以包括常用的应用图标等。当处理器210检测到用户的手指(或触控笔等)针对某一应用图标的触摸事件后,响应于该触摸事件,打开与该应用图标对应的应用的用户界面,并在显示器294上显示该应用的用户界面。
204.在本技术实施例中,显示屏294可以是一个一体的柔性显示屏,也可以采用两个刚性屏以及位于两个刚性屏之间的一个柔性屏组成的拼接显示屏。
205.当处理器210运行本技术实施例提供的卡证文本识别方法后,终端设备可以通过天线1、天线2或者usb接口与其他的终端设备建立连接,并根据本技术实施例提供的卡证文本识别方法控制显示屏294显示相应的图形用户界面。
206.摄像头293(前置摄像头或者后置摄像头,或者一个摄像头既可作为前置摄像头,也可作为后置摄像头)用于捕获静态图像或视频。通常,摄像头293可以包括感光元件比如镜头组和图像传感器,其中,镜头组包括多个透镜(凸透镜或凹透镜),用于采集待拍摄物体反射的光信号,并将采集的光信号传递给图像传感器。图像传感器根据所述光信号生成待拍摄物体的原始图像。
207.内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行手机200的各种功能应用
以及数据处理。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序(比如相机应用,微信应用等)的代码等。存储数据区可存储手机200使用过程中所创建的数据(比如相机应用采集的图像、视频等)等。
208.内部存储器221还可以存储本技术实施例提供的卡证文本识别方法对应的一个或多个计算机程序1310。该一个或多个计算机程序1304被存储在上述存储器221中并被配置为被该一个或多个处理器210执行,该一个或多个计算机程序1310包括指令,上述指令可以用于执行如图2-图5、图8-图9、图11-图14相应实施例中的各个步骤,该计算机程序1310可以包括获取模块1501、第一检测模块1502、矫正模块1503、第二检测模块1504以及识别模块1505。其中,获取模块1501,用于获取卡证的第一待识别图像;第一检测模块1502,用于对所述第一待识别图像进行检测,得到至少一个第一文本区域,所述第一文本区域表示所述第一待识别图像中的文本所在的区域;矫正模块1503,用于根据所述第一文本区域,对所述第一待识别图像进行旋转矫正,得到第二待识别图像;第二检测模块1504,用于对所述第二待识别图像进行检测,得到至少一个第二文本区域,所述第二文本区域表示所述第二待识别图像中的文本所在的区域;识别模块1505,用于对所述第二文本区域中的图像进行识别,得到第二文本区域对应的第一目标文本。当内部存储器221中存储的卡证文本识别方法的代码被处理器210运行时,处理器210可以控制显示屏显示识别结果。
209.此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
210.当然,本技术实施例提供的卡证文本识别方法的代码还可以存储在外部存储器中。这种情况下,处理器210可以通过外部存储器接口220运行存储在外部存储器中的卡证文本识别方法的代码。
211.下面介绍传感器模块280的功能。
212.陀螺仪传感器280a,可以用于确定手机200的运动姿态。在一些实施例中,可以通过陀螺仪传感器280a确定手机200围绕三个轴(即,x,y和z轴)的角速度。即陀螺仪传感器280a可以用于检测手机200当前的运动状态,比如抖动还是静止。
213.当本技术实施例中的显示屏为可折叠屏时,陀螺仪传感器280a可用于检测作用于显示屏294上的折叠或者展开操作。陀螺仪传感器280a可以将检测到的折叠操作或者展开操作作为事件上报给处理器210,以确定显示屏294的折叠状态或展开状态。
214.加速度传感器280b可检测手机200在各个方向上(一般为三轴)加速度的大小。即陀螺仪传感器280a可以用于检测手机200当前的运动状态,比如抖动还是静止。当本技术实施例中的显示屏为可折叠屏时,加速度传感器280b可用于检测作用于显示屏294上的折叠或者展开操作。加速度传感器280b可以将检测到的折叠操作或者展开操作作为事件上报给处理器210,以确定显示屏294的折叠状态或展开状态。
215.接近光传感器280g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。手机通过发光二极管向外发射红外光。手机使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定手机附近有物体。当检测到不充分的反射光时,手机可以确定手机附近没有物体。当本技术实施例中的显示屏为可折叠屏时,接近光传感器280g可以设置在可折叠的显示屏294的第一屏上,接近
光传感器280g可根据红外信号的光程差来检测第一屏与第二屏的折叠角度或者展开角度的大小。
216.陀螺仪传感器280a(或加速度传感器280b)可以将检测到的运动状态信息(比如角速度)发送给处理器210。处理器210基于运动状态信息确定当前是手持状态还是脚架状态(比如,角速度不为0时,说明手机200处于手持状态)。
217.指纹传感器280h用于采集指纹。手机200可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
218.触摸传感器280k,也称“触控面板”。触摸传感器280k可以设置于显示屏294,由触摸传感器280k与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280k也可以设置于手机200的表面,与显示屏294所处的位置不同。
219.示例性的,手机200的显示屏294显示主界面,主界面中包括多个应用(比如相机应用、微信应用等)的图标。用户通过触摸传感器280k点击主界面中相机应用的图标,触发处理器210启动相机应用,打开摄像头293。显示屏294显示相机应用的界面,例如取景界面。
220.手机200的无线通信功能可以通过天线1,天线2,移动通信模块251,无线通信模块252,调制解调处理器以及基带处理器等实现。
221.天线1和天线2用于发射和接收电磁波信号。手机200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
222.移动通信模块251可以提供应用在手机200上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块251可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块251可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块251还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块251的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块251的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。在本技术实施例中,移动通信模块251还可以用于与其它终端设备进行信息交互。
223.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270a,受话器270b等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块251或其他功能模块设置在同一个器件中。
224.无线通信模块252可以提供应用在手机200上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术
(infrared,ir)等无线通信的解决方案。无线通信模块252可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块252经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块252还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。本技术实施例中,无线通信模块252,用于在处理器210的控制下与其他终端设备之间传输数据。
225.另外,手机200可以通过音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,以及应用处理器等实现音频功能。例如音乐播放,录音等。手机200可以接收按键290输入,产生与手机200的用户设置以及功能控制有关的键信号输入。手机200可以利用马达291产生振动提示(比如来电振动提示)。手机200中的指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。手机200中的sim卡接口295用于连接sim卡。sim卡可以通过插入sim卡接口295,或从sim卡接口295拔出,实现和手机200的接触和分离。
226.应理解,在实际应用中,手机200可以包括比图16所示的更多或更少的部件,本技术实施例不作限定。图示手机200仅是一个范例,并且手机200可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
227.终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明终端设备的软件结构。
228.图17是本技术实施例的终端设备的软件结构框图。
229.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
230.应用程序层可以包括一系列应用程序包。
231.如图17所示,应用程序包可以包括电话、相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。
232.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
233.如图17所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
234.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
235.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
236.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
237.电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断
only memory,cd-rom)、数字多功能盘(digital video disc,dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
253.这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
254.用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(instruction set architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(local area network,lan)或广域网(wide area network,wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,fpga)或可编程逻辑阵列(programmable logic array,pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。
255.这里参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
256.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
257.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
258.附图中的流程图和框图显示了根据本技术的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的
功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
259.也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或asic(application specific integrated circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
260.尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
261.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献