字符识别系统和方法与流程

文档序号:24047125发布日期:2021-02-23 19:13阅读:242来源:国知局
字符识别系统和方法与流程

[0001]
本公开涉及字符识别的领域,具体地说,涉及字符识别系统和方法。


背景技术:

[0002]
随着数字技术和大数据的发展,对纸质文件数字化的需求显著增加。纸质文件的数字化通常需要字符识别技术。然而,在字符识别过程中,对文件进行成像的效果和周围的光照环境对字符识别的结果具有较大的影响。因此,需要一种能够减弱周围环境的影响、提高成像效果并且具有更好的字符识别结果的系统和方法。


技术实现要素:

[0003]
本技术的目的是提供一种新的和改善的字符识别系统和方法。
[0004]
根据本公开的一个或多个实施例,提供了一种字符识别系统,包括:暗箱,用于遮挡外界光线;文件托盘,设置在暗箱内并用于接收包含待识别的字符的文件;相机,设置在暗箱内并配置成拍摄文件上的字符的图像;和处理器,被配置为从相机接收所拍摄的图像并从所拍摄的图像识别字符。
[0005]
根据本公开的一个或多个实施例,字符的识别由所述处理器使用经训练的神经网络来执行。
[0006]
根据本公开的一个或多个实施例,经训练的神经网络是预先通过多个文件的图像和每个文件中包含的相应字符来训练的。
[0007]
根据本公开的一个或多个实施例,不能正确识别其中的字符的文件的图像和相应的字符被提供给经训练的神经网络,以更新神经网络。
[0008]
根据本公开的一个或多个实施例,所识别的字符被存储在能够被访问的表格中。
[0009]
根据本公开的一个或多个实施例,所述处理器包括以下中的至少一个:多线程处理器和图形处理单元。
[0010]
根据本公开的一个或多个实施例,所述相机是具有固定焦距的相机。
[0011]
根据本公开的一个或多个实施例,该字符识别系统还包括光源,该光源设置在暗箱内并且被配置为照明文件上的所述字符。
[0012]
根据本公开的一个或多个实施例,该字符识别系统还包括显示器,并且在显示器上,所识别的字符被显示在所拍摄的图像中的字符附近。
[0013]
根据本公开的一个或多个实施例,所述处理器还被配置为在识别字符之前对所拍摄的图像执行图像处理,其中该图像处理包括以下中的至少一个:提取处理,以提取所拍摄的图像的感兴趣区域;镜像处理,以获得所拍摄的图像的镜像图像;降噪处理,以减少所拍摄的图像中的噪声;灰度化处理,以将所拍摄的图像转换为灰度图像;二值化处理,以将所拍摄的图像转换为二值化图像;形态学处理,以突出所拍摄的图像中的字符的轮廓;图像特征检测处理,以检测所拍摄的图像中的字符的区域;去旋转处理,以调整所拍摄的图像中的字符的方向;归一化处理,以将所拍摄的图像中的字符的尺寸调整为彼此一致;以及分割处
理,以从所拍摄的图像获得每个字符的图像。
[0014]
根据本公开的一个或多个实施例,所述分割处理包括在所述字符的区域上滑动一个窗口并且在该窗口中仅包括一个字符时将该字符的图像分割出来,其中,该窗口的尺寸由字符的尺寸来确定,使得能够仅将一个字符包括在窗口中。
[0015]
根据本公开的一个或多个实施例,该文件是其上粘贴有一个或多个带有字符的标签的纸。
[0016]
根据本公开的一个或多个实施例,该标签是包含中国强制认证(3c)号码的3c标签。
[0017]
根据本公开的一个或多个实施例,提供了一种字符识别方法,包括:将包含待识别的字符的文件放置在设置在遮挡外部光线的暗箱内的文件托盘中;通过暗箱内的摄像头拍摄文件上的字符图像;从拍摄的图像中识别文件上的字符。
[0018]
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
[0019]
通过以下结合附图对示例性实施例的详细描述,本公开的上述和其他方面和优点将变得显而易见,附图通过示例的方式示出了本公开的原理。注意,附图不一定按比例绘制。
[0020]
图1示出了根据本公开的示例性实施例的字符识别系统的示意图。
[0021]
图2示出了根据本公开的示例性实施例的包含待识别的字符的文件的示意图。
[0022]
图3示出了根据本公开的示例性实施例的在显示器上显示的所识别的字符。
[0023]
图4a到图4g示出了根据本公开示例性实施例的对拍摄图像执行的图像处理的示意图。
[0024]
图5示出了根据本公开的示例性实施例的神经网络的示意图。
[0025]
图6示出了根据本公开的示例性实施例的字符识别方法的流程图。
[0026]
图7示出了根据本公开的另一个示例性实施例的字符识别系统的示意图。
具体实施方式
[0027]
在以下详细描述中,阐述了许多具体细节以提供对所描述的示例性实施例的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节中的一些或全部的情况下实施所描述的实施例。在其他示例性实施例中,没有详细描述公知的结构或处理步骤,以避免不必要地模糊本公开的概念。
[0028]
首先参考图1,示出了根据本公开的示例性实施例的字符识别系统的示意图。字符识别系统100包括暗箱110、设置在暗箱110内的文件托盘111、设置在暗箱110内的照相机112以及处理器120。
[0029]
暗箱110被配置为遮挡外部光,以便为字符识别提供稳定的光照环境。具体地,暗箱110由不透明材料制成并且基本封闭,使得外部光可以被遮挡掉。因此,可以减弱周围环境对于成像的影响。
[0030]
文件托盘111设置在暗箱110的底部,并且被配置为接收包含待识别的字符的文件
200。在本公开的一些实施例中,暗箱110具有在文件托盘111的一侧的开口114,用于通过该开口114来接收文件200。此外,当文件200位于文件托盘111中时,可以例如通过盖板等来遮挡该开口114,以尽可能避免外部光线进入暗箱110中。在本公开的一些实施例中,文件托盘111的尺寸可以大于文件200的尺寸,以接收具有更大尺寸的文件。此外,文件托盘111的尺寸可以适合于文件200的尺寸,以帮助对准文件200的方向,从而将文件200上的文字定向到固定的方向。
[0031]
相机112设置在暗箱110的顶部,并且被配置为拍摄文件200上的字符的图像。在本公开的一些实施例中,相机112是具有固定焦距镜头的相机。此外,相机112可以是可以在暗箱110内没有可见光源的情况下仍然能够拍摄图像的红外相机。在暗箱110内不具有可见光源并且相机112是红外相机的情况下,可以避免可见光影响对文件200的成像效果,改善字符识别的结果。由于相机112的拍摄条件是稳定且可控的,所以相机112的成像效果可以得到最大程度的改善并且对于文件具有更好的字符识别结果。
[0032]
处理器120被配置为经由电缆或无线地连接到相机112,控制相机112的工作并从相机112接收所拍摄的字符的图像。此外,处理器120被配置为从拍摄的图像识别文件200上的字符。根据需要,处理器120可以设置在暗箱110内部或暗箱110外部。此外,在本公开的一个或多个实施例中,处理器120可以位于远离暗箱110的位置。处理器120可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。处理器120还可以包括非暂时性存储器121或者与非暂时性存储设备121连接。非暂时性存储设备121可以是非暂时性的并且可以实现数据存储的任何存储设备。在本公开的一些实施例中,处理器120和存储器121可以由专用的硬件实现,或者由通用的计算设备(例如,微型计算机、平板电脑、手机等)来实现。
[0033]
在本公开的一些实施例中,处理器120包括多线程处理器和图形处理单元(gpu)中的至少一个,以通过利用多线程处理器的多线程能力和gpu的通用计算能力来加速字符的识别。
[0034]
在本公开的一些实施例中,用于字符识别的系统100还包括设置在暗箱110内的光源113。光源113设置在暗箱110的顶部并且被配置为照明文件200上的字符。利用光源113,可以为系统100提供稳定且可控的照明。在本公开的一些实施例中,光源113的颜色和强度中的至少一个可以被调整以便在暗箱110内提供所需的照明。此外,光源113可以设置在暗箱110内的侧壁上,以提供侧向照明。光源113的位置可以被配置为使其不会在由相机112拍摄的文件200的图像中产生明显的反光和炫光。光源113可以通过电缆或无线地连接到处理器120,并由处理器120来控制。
[0035]
在本公开的一些实施例中,用于字符识别的系统100还包括显示器130。显示器130上可以显示所拍摄的图像,并且所识别的字符可以被显示在所拍摄的图像中的字符附近,从而方便核对图像拍摄的效果和检查字符识别的结果。另外,所识别的字符可以被独立地显示在显示器上,便于将所识别的字符复制出来。
[0036]
参考图2,示出了根据本公开的示例性实施例的包含待识别的字符的文件的示意图。
[0037]
如图2所示,文件200的示例是一张纸201,其上粘贴有具有待识别的字符203的标签202。在图2中,有九个标签202被粘贴在纸201上,并且标签202以3行和3列的3
×
3阵列布
置。
[0038]
在示例性实施例中,该标签是包含中国强制性产品认证(3c)号码的3c标签。中国强制性产品认证是中国政府根据相关法律法规强制执行的产品合格评定制度,旨在保护消费者的人身安全和国家安全、加强产品质量管理。中国强制性产品认证制度同样强制性地应用于汽车产品。每辆车都有唯一的3c号码并且车辆的3c号码也是彼此不同的。类似地,车辆的车辆识别号(vin)也是对于每辆车唯一且彼此不同的。在车辆的生产和销售过程中,同一辆车的3c号码与vin是严格匹配的。因此,为了车辆的生产、销售和使用的要求,必须将车辆的3c号码输入到生产商、销售商和车辆管理部门的系统中。
[0039]
图2中示出的文件200是当前正在使用的3c文件的示例,其包括三行和三列的九个3c标签。每个3c标签都为椭圆形,具有浅黄色背景并由塑料薄膜覆盖。每个3c标签包括一个3c号码,该3c号码由12个灰色的镜像数字组成。
[0040]
在本公开的一些相关技术中,需要由操作员将3c文件手动切割成九个单独的3c标签,并且人工地识别每个标签上的3c号码并手动地将其填写到纸质表格中。之后,再由操作员将纸质表格中的3c号码输入到相关系统中。很明显,这样的操作非常耗时并很可能会导致输入到系统中的3c号码是错误的。在本公开的另一些相关技术中,经手动切割的3c文件由普通相机拍摄并且拍摄的图像被普通文字识别软件识别。在这些相关技术中,由普通相机拍摄的文件的成像效果可能不令人满意,周围的环境光可能由于塑料薄膜的反射而产生反光和炫光,并且普通文字识别软件对于3c号码的识别效率和正确率可能会不高。
[0041]
在本公开的实施例中,3c文件200被整个放进暗箱110的文件托盘111中,而不需要被切割成九个单独的3c标签。之后,在暗箱110中的稳定的光照环境中由相机112对文件200拍照,获得整个文件200的图像。由此,可以尽可能减少所拍摄的图像的反光和炫光,提高所拍摄的图像的质量。此外,由于相机112和文件托盘111的位置是固定的,所以可以预先设置相机112的拍摄参数(例如,快门、焦距、曝光时间等),保证所拍摄的图像的质量一致和稳定。另外,相机112可以使用具有固定焦距的镜头,从而进一步提高成像质量、降低成本等。
[0042]
之后,在本公开的实施例中,所拍摄的文件200的图像由处理器120进行字符识别。处理器120可以使用经训练的神经网络来执行字符的识别。该神经网络可以是预先由多个文件的图像和每个文件中包含的相应字符来训练的。具体来说,多个文件的图像和每个图像中的字符被提供给该神经网络中,从而训练该神经网络建立输入的文件的图像和输出的字符之间的映射关系。因此,对于经过训练的神经网络,在输入新的文件的图像时,能够输出图像中的字符,从而获得字符识别的结果。该神经网络可以在字符识别系统的使用过程中被不断更新。例如,在字符识别系统的使用过程中不能正确识别其中的字符的文件的图像和相应的字符被提供给该经训练的神经网络中,以更新神经网络。对于由处理器使用经训练的神经网络来进行字符识别的更具体的内容在下文中进一步描述。对于不同的文件,可以采用专用的经训练的神经网络来进行字符识别。例如,在本公开的实施例中,通过用针对3c文件训练的专用的神经网络来识别3c号码,可以提高3c号码的识别成功率和准确率。此外,随着对神经网络的不断更新,字符识别的成功率和准确率可以不断提高并最终达到令人满意的字符识别结果。
[0043]
之后,在本公开的实施例中,所识别的字符可以被存储在能够被访问的表格中。因此,系统的操作员可以通过访问该表格来获得3c号码,并将所获得的3c号码复制到期望的
系统中。在本公开的一个实施例中,所存储的表格可以被显示在显示器130上,以方便对其进行存储和复制等操作。由此,可以避免手动抄写3c号码所导致的错误。
[0044]
通过本公开的以上技术方案,除了可以减弱周围环境的影响、提高成像效果并且对于文件具有更好的字符识别结果之外,可以避免将3c标签手动切割的工作量,避免人工识别和手动填写3c号码所导致的错误,利用经训练且可以更新的神经网络来识别3c号码,从而提高了所获得的3c号码的正确率。
[0045]
参考图3,示出了所识别的字符被显示在显示器130上的情况。如图3所示,在显示器130的右侧,所拍摄的图像可以被显示在显示器上,并且所识别的字符可以被显示在所拍摄的图像中的字符附近,从而方便核对图像拍摄的效果和检查字符识别的结果。从图中可以看出,为了方便检查3c号码的识别的结果,所拍摄的图像被镜像后显示在显示器130上,所识别的3c号码被显示在对应的3c号码的镜像图像上方。此外,在图像上用方框包围了所识别出的3c号码的区域。另外,在显示器130的左侧,存储字符的表格被显示在显示器上,从而方便存储和复制等。如图3所示,在显示器130的左侧,显示了所识别出的3c号码的编号和对应的数字。
[0046]
在本公开的实施例中,处理器120还被配置为在识别字符之前对所拍摄的图像执行图像处理,以改善图像质量和获得字符识别所需要的数据。具体来说,图像处理可以包括以下的一个或多个:提取处理、镜像处理、降噪处理、灰度化处理、二值化处理、形态学处理、图像特征检测处理、去旋转处理、归一化处理、分割处理等。根据本公开的实施例,本领域技术人员可以想到其他各种图像处理技术,这些图像处理技术都被包括在本公开的技术方案中。
[0047]
接下来参照图4a到图4g介绍根据本公开示例性实施例的对拍摄图像执行的图像处理。
[0048]
提取处理是将所拍摄的图像中的感兴趣的区域提取出来的处理。对于本公开的实施例的3c标签来说,可以通过提取处理将3
×
3阵列布置的九个3c标签中的单独的3c标签作为感兴趣的区域提取出来。图4a示出了从所拍摄的文件的3c文件图像中提取出来的一个3c标签的示例。此外,对于本公开的实施例的3c标签来说,由于其上的数字是镜像数字,所以可以将所拍摄的图像进行镜像处理,以获得正常方向的数字。图4b是对图4a的图像进行镜像处理之后的图像示例。降噪处理指的是减少所拍摄的图像中的噪声的处理。通过灰度化处理可以将所拍摄的图像转换为灰度图像,便于进行字符识别处理。通过二值化处理可以将所拍摄的图像转换为二值化图像。图4c是对图4b的图像进行二值化处理所获得的图像示例。形态学处理是通过腐蚀、膨胀等形态学处理来突出所拍摄的图像中的字符的轮廓。图4d和图4e是对图4c的图像进行形态学处理之后的图像示例。通过图像特征检测处理可以检测所拍摄的图像中的字符区域,便于字符的提取和识别以及字符的识别结果的存储。对于本公开的实施例的3c标签来说,可以通过图像特征检测处理来检测出一个3c标签中的12位数字的3c号码的区域。图4f是经过图像特征检测处理之后的图像示例,从图中可以看出所检测处的3c号码的区域由方框表示。通过去旋转处理可以调整所拍摄的图像中的字符的方向,使得字符朝向预定方向,便于字符的提取和识别。通过归一化处理可以将所拍摄的图像中的字符的尺寸调整为彼此一致,字符的提取和识别。通过分割处理可以从所拍摄的图像获得每个字符的图像。对于本公开的实施例的3c标签来说,通过分割处理可以将3c号码中
的每个数字提取出来,所提取出来的单个数字的图像可以随后通过经训练的神经网络来进行识别。
[0049]
在本公开的实施例中,分割处理包括在字符的区域上滑动一个窗口并且在该窗口中仅包括一个字符时将该字符的图像分割出来,并且该窗口的尺寸由字符的尺寸来确定,使得能够仅将一个字符包括在窗口中。图4g是该滑动窗口分割处理的示意图。如图4g所示,在图4f中提取出的3c号码的区域上,一个窗口从左向右滑动,依次获得下方的多个图像,并且从这些图像中选择窗口中仅包括一个数字的图像,就可以获得各个数字的图像。在本公开的一个实施例中,窗口的宽度大于字符的宽度并且小于字符的宽度与字符之间的间距的和。具体来说,对于本公开的实施例的3c标签来说,在3c标签中的12位数字的3c号码的区域上滑动一个窗口,并且在该窗口中仅包括一个数字时将该字符割出来。该窗口的尺寸由数字的尺寸来确定,使得能够仅将一个数字包括在窗口中。在该实施例中,窗口的宽度大于数字的宽度并且小于数字的宽度与数字之间的间距之和。
[0050]
以上各种处理对于本领域技术人员来说都是已知的,因此在本公开中,不再具体介绍以上各种处理的具体细节。此外,本领域技术人员可以明白,可以按照各种顺序对于所拍摄的图像进行以上的各种处理,并且多个处理可以彼此结合,以获得更好的图像处理效果。另外,本领域技术人员可以明白图像处理可以包括以上处理之外的各种处理,并且以上列举的各种处理可以被省略,以减少处理负担。并且,本领域技术人员可以明白以上提供的各个处理都是示例性的,并且每个处理都可以有多种实现方式,并且可以根据实际需要来选择。
[0051]
现在参照图5,示出了根据本公开的示例性实施例的神经网络的示意图。在本公开的该实施例中,使用了误差反向传播神经网络(back propagation neural network,即,bp神经网络)来进行字符识别。bp神经网络的拓扑结构包括输入层、一个或多个隐层和输出层,层与层之间采用全链接的方式,而同层之间不存在相互链接。bp神经网络的学习过程包括信息的正向传播和误差的反向传播两部分。输入层的神经元从外界接收输入信息,并将其传递个中间层(隐层)的各神经元。中间层的各神经元通过对所接收的信息施加权值来对信息进行变换,并将经变换的信息传递给输出层的神经元,由此完成一次正向传播过程。当在输出层的神经元处所获得的输出与期望的输出不符时,进入误差的反向传播过程。误差从输入层开始,按照误差梯度下降的方式向各个中间层和输入层反向传播,并且修正各层的各个神经元之间的的权值。通过不断循环进行信息正向传播和误差反向传播,不断调整各层的各个神经元的权值,直到神经网络的输出与期望输出的误差减少到可接受的程度或者达到预先设定的学习次数为止。由此完成了bp神经网络的训练过程。使用经过训练的神经网络,在输入新的信息时,就可以得到正确的输出结果。在神经网络的使用过程中,当遇到不能输出正确结果的输入信息时,可以将该信息和正确的结果提供给神经网络,供神经网络继续学习,以更新神经网络。
[0052]
在本公开的实施例中,通过多个文件的图像和每个文件中包含的相应字符来训练神经网络。对于本公开的实施例的3c标签来说,通过经分割的3c号码的单个数字和对应的实际数字值对神经网络进行训练,从而得到经训练的神经网络。之后,使用经过训练的神经网络,在输入从3c标签获得的单个数字图像时,就可以在输出层处得到该数字对应的数字值。
[0053]
神经网络的输入层和输出层的神经元的数目可以根据输入的信息和输出的结果的格式和数目来确定。对于本公开的实施例的3c标签来说,输出层的神经元的数目可以是10个,从而表示数字0-9。另外,神经元的数目也可以是四个,从而表示二进制的数字0-9。此外,每个隐层的神经元的数目可以是多个。隐层的神经元的数目越多,神经网络的学习能力就越强,但是学习时间会加长,并且神经网络的归纳能力会变差。本领域技术人员可以明白,可以根据字符识别的结果、按照经验来确定隐层的神经元的数目。
[0054]
图5中示出了一个隐层,但是根据需要可以有多个隐层。更多的隐层可以获得更高的训练精度,提供更好的输出结果,但是也需要更多的计算时间。本领域技术人员可以明白,可以根据字符识别的结果、按照经验来确定隐层的个数。
[0055]
神经网络对于本领域技术人员来说是已知的,因此在本公开中没有提供神经网络的更多细节描述。
[0056]
通过根据本公开的实施例的字符识别系统,如上所述地,可以减弱周围环境对于成像的影响、实现更好的成像效果并且获得更好的字符识别结果。
[0057]
现在参照图6,示出了根据本公开的示例性实施例的字符识别方法的流程图。如图6所示,根据本公开的示例性实施例的字符识别方法600包括以下步骤:s601,将包含待识别的字符的文件放置在设置在遮挡外部光线的暗箱内的文件托盘中;s602,通过暗箱内的摄像头拍摄文件上的字符图像;s603,从拍摄的图像中识别文件上的字符。
[0058]
如上文中参照字符识别系统100描述的,根据本公开的实施例的字符识别方法还可以包括以下步骤:在识别所述字符的步骤之前,对所拍摄的图像执行图像处理的步骤;预先通过多个文件的图像和每个文件中包含的相应字符来训练神经网络的步骤;将不能正确识别其中的字符的文件的图像和相应的字符提供给经训练的神经网络,以更新神经网络的步骤;将所识别的字符存储在能够被访问的表中的步骤;在所拍摄的图像中的字符附近显示所识别的字符的步骤;和通过暗箱内的光源照明文件的步骤等。在上文中已经提供了这些步骤的具体描述,并且因此在此不再重复。
[0059]
通过本公开的字符识别方法,可以获得与字符识别系统相同的技术效果和优点,在此不再重复。
[0060]
现在参照图7,示出了根据本公开的另一个示例性实施例的字符识别系统700的示意图。与参照图1描述的字符识别系统100不同,字符识别系统700中照相机712和光源713位于暗箱710的底部,而文件托盘711和开口714位于暗箱的顶部。在该实施例中,文件托盘711的底面是透明的,并且文件200被向下放入文件托盘711中,从而使得相机712能够从下方拍摄文件200上的字符。字符识别系统700也包括处理器720、存储器721和显示器730,它们分别与字符识别系统100的处理器121、存储器121和显示器130类似,在此省略它们的描述。字符识别系统700的其他特征与字符识别系统100类似,并且也能获得相同的技术效果和优点,在此不再重复。
[0061]
在说明书及权利要求中的词语“前”、“后”、“顶”、“底”、“之上”、“之下”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其他取向上操作。
[0062]
如在此所使用的,词语“示例”意指“用作示例、实例或说明”,而不是作为将被精确
复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。
[0063]
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
[0064]
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1