编号识别的方法及装置
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种编号识别的方法及装置。
背景技术
在港口码头的运营过程中,有很多需要确定和输入集装箱箱号的场景,在这些场景中,相关的实现方式是人工操作的方式进行查看并录入,其中人工查看主要是通过人工在现场或者通过相关的视频查看,查看的速度决定于操作人员的熟练程度,查看到集装箱箱号后转录到系统中。这种人工操作的方式费时费力,降低了码头的整体运营效率。
发明内容
本申请的主要目的在于提供一种编号识别的方法及装置,以解决人工操作实现查看录入集装箱箱号的方式费时费力的问题。
为了实现上述目的,根据本申请的第一方面,提供了一种编号识别的方法。
根据本申请的编号识别的方法包括:
获取图像数据,所述图像数据为包含个体的编号信息的图像数据;
定位图像数据中的编号信息区域;
识别编号信息区域中的编号信息,得到编号。
进一步的,所述定位图像数据中的编号信息区域包括:
基于改进的目标检测算法对所述图像数据中的编号信息区域进行定位;
将编号信息区域进行裁剪,得到包含编号信息的编号图片。
进一步的,所述图像数据为视频流数据,图像数据对应的编号图片为多个编号图片,所述识别编号信息区域中的编号信息,得到编号包括:
对多个编号图片进行数据增强;
基于卷积神经网络和循环神经网络,对进行数据增强后的多个编号图片进行识别,得到多个字符串序列;
分别对多个字符串序列按照预设规则进行验证;
将通过验证的字符串序列中出现次数最多的字符串序列作为所述编号。
进一步的,所述基于改进的目标检测算法对所述图像数据中的编号信息区域进行定位包括:
设置不同尺寸的矩形卷积核,对图像数据中的编号信息区域进行定位;并且,
将旋转角度加入到特征计算中,对图像数据中的编号信息区域进行定位。
进一步的,所述方法还包括:
基于卷积神经网络和循环神经网络,并且使用连接时序分类CTC损失函数,对编号图片进行识别。
进一步的,所述对多个编号图片进行数据增强包括:
对多个编号图片进行格式的统一性调整。
为了实现上述目的,根据本申请的第二方面,提供了一种编号识别的装置。
根据本申请的编号识别的装置包括:
获取单元,用于获取图像数据,所述图像数据为包含个体的编号信息的图像数据;
定位单元,用于定位图像数据中的编号信息区域;
识别单元,用于识别编号信息区域中的编号信息,得到编号。
进一步的,所述定位单元包括:
定位模块,用于基于改进的目标检测算法对所述图像数据中的编号信息区域进行定位;
裁剪模块,用于将编号信息区域进行裁剪,得到包含编号信息的编号图片。
进一步的,所述识别单元包括:
数据增强模块,用于所述图像数据为视频流数据,图像数据对应的编号图片为多个编号图片,对多个编号图片进行数据增强;
识别模块,用于基于卷积神经网络和循环神经网络,对进行数据增强后的多个编号图片进行识别,得到多个字符串序列;
验证模块,用于分别对多个字符串序列按照预设规则进行验证;
确定模块,用于将通过验证的字符串序列中出现次数最多的字符串序列作为所述编号。
进一步的,所述定位模块用于:
设置不同尺寸的矩形卷积核,对图像数据中的编号信息区域进行定位;并且,
将旋转角度加入到特征计算中,对图像数据中的编号信息区域进行定位。
进一步的,所述识别模块用于:
基于卷积神经网络和循环神经网络,并且使用连接时序分类CTC损失函数,对编号图片进行识别。
进一步的,所述数据增强模块用于:
对多个编号图片进行格式的统一性调整。
为了实现上述目的,根据本申请的第三方面,提供了一种电子设备,其特征在于,包括:
至少一个处理器;
以及与所述处理器连接的至少一个存储器、总线;其中,
所述处理器、存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行第一方面中任一项所述的编号识别的方法。
为了实现上述目的,根据本申请的第四方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述第一方面中任一项所述的编号识别的方法。
在本申请实施例中,编号识别的方法和装置能够首先获取图像数据,其中所述图像数据为包含个体的编号信息的图像数据;然后,定位图像数据中的编号信息区域;识别编号信息区域中的编号信息,得到编号。整个过程全是自动化操作,不涉及任何人工操作,省时省力,使用该方法对集装箱箱号进行识别,可以大大的提高查看和录入的效率,进而提高码头的整体运营效率。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一种实施例的编号识别的方法流程图;
图2是根据本申请另一种实施例的编号识别的方法流程图;
图3是根据本申请一种实施例的编号识别的装置的组成框图;
图4是根据本申请另一种实施例的编号识别的装置的组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本申请实施例,提供了一种编号识别的方法,如图1所示,该方法包括如下的步骤S101至步骤S103:
S101.获取图像数据。
其中,图像数据为包含个体编号信息的图像数据。对于不同的个体,对应的图像数据是不同的,比如对于集装箱,对应的图像数据为包含集装箱的图像数据,图像数据可以为静态图像(图片)或者动态图像(视频流等)。图像数据可以通过无线或者有线方式从外部设备或者本地设备获取。编号信息为用于区分不同类型或者同一类型下不同个体的特征信息。比如集装箱箱号、集装箱类型号等。
S102.定位图像数据中的编号信息区域。
对于获取的图像数据整体,其中有可能存在部分不包含编号信息的图像,因此为了有效节省整体的计算资源消耗,以及提高定位的效率,可以在定位之前,先对图像数据进行过滤。本实施例以图像数据为视频流为例进行说明:对于获取的图像数据为视频流的情况,有可能视频流中存在不包含编号信息的视频,因此为了有效节省整体的计算资源消耗,以及提高定位的效率,可以在定位之前,先对图像数据进行过滤,去除视频流中不包含编号信息的视频,然后对剩余的图像数据进行编号信息区域的定位。
编号信息类似于文字类信息,因此本实例中具体的是根据基于深度学习算法中的文字检测算法进行编号信息区域的定位,定位的结果是将图像数据中的编号信息区域用文字框框出。定位图像数据中的编号信息区域是为了缩小编号识别的范围,提高后续对编号信息识别的准确度。
S103.识别编号信息区域中的编号信息,得到编号。
对定位出的编号信息区域进行字符串的识别,得到编号信息区域中的编号信息,确定编号。具体识别编号信息是基于卷积神经网络模型以及循环神经网络进行识别的。神经网络模型是根据训练样本数据提前进行训练得到的。训练样本数据为包含前述用文字框框出的编号信息区域的图像数据以及编号信息区域中对应的编号。在训练时,将包含前述用文字框框出的编号信息区域的图像数据作为模型的输入,将编号信息区域中对应的编号作为输出结果的参考,反复进行训练,直到得到的输出结果与实际对应的编号相同为止。
从以上的描述中,可以看出,本申请实施例中编号识别的方法能够首先获取图像数据,其中所述图像数据为包含个体的编号信息的图像数据;然后,定位图像数据中的编号信息区域;识别编号信息区域中的编号信息,得到编号。整个过程全是自动化操作,不涉及任何人工操作,省时省力,使用该方法对集装箱箱号进行识别,可以大大的提高查看和录入的效率,进而提高码头的整体运营效率。
根据本申请另一实施例,提供了一种编号识别的方法,如图2所示,该方法包括:
S201.获取图像数据。
本步骤的实现方式与图1中步骤S101的实现方式相同,此处不再赘述。
S202.基于改进的目标检测算法对所述图像数据中的编号信息区域进行定位。
优选的,本实例中改进的目标检测算法是对物体检测算法(Single ShotMultiBox Detector,SSD)进行改进得到的多方向文字检测算法。多方向文字检测算法的改进包括:1)使用的神经网络卷积核为矩形卷积核,而不是一般的正方形卷积核。这是由于编号信息类似文字类信息,具有较高的长宽比。2)设置不同尺寸的矩形卷积核,对图像数据中的编号信息区域进行定位。由于在实际的应用中,编号信息可能包括横版和竖版两种形式,设置不同尺寸的矩形卷积核是为了适应横版和竖版,支持更广范围。3)将旋转角度加入到特征计算中,对图像数据中的编号信息区域进行定位。由于在实际的应用中,会有编号信息不是水平或者垂直的情况,比如集装箱的箱号或者类型号。为了使最终框出的编号图片的检测框的边框更贴合编号边缘,因此将旋转角度加入到特征计算中。在实际的应用中,越贴合编号边缘,后续识别出的编号越准确。多方向文字检测算法在识别编号的过程中可以对不同视角不同方向和角度的编号信息区域进行定位,而且保持较高的准确率。
根据多方向文字检测算法进行定位的结果是将图像数据中的编号信息区域用文字框框出。需要说明的是,多方向文字检测算法模型需要根据训练样本提前训练得到,具体的训练样本是包含信息区域的图像数据以及已经框出编号信息区域的图像数据,在训练时,将包含信息区域的图像数据作为模型的输入,将框出编号信息区域的图像数据作为输出结果的参考,反复进行训练,直到得到的输出结果中框出的编号信号区域与实际的编号信息区域几乎相同为止。
另外,为了有效节省整体的计算资源消耗,以及提高定位的效率,可以在定位之前,先对图像数据进行过滤,去除图像数据中不包含编号信息的图像部分,然后对图像数据中剩余的部分进行编号信息区域的定位。
S203.将编号信息区域进行裁剪,得到包含编号信息的编号图片。
根据定位后图像数据中的文字框,将图像数据中的文字框部分从图像数据中裁剪出来,得到包含编号信息的编号图片。
S204.识别编号信息区域中的编号信息,得到编号。
1)对多个编号图片进行数据增强;
本实施例以图像数据为视频流为例进行说明,经过上述步骤后,对应的可以得到与视频流对应的多个编号图片。对多个编号图片进行数据增强即对多个编号图片进行格式的统一性调整。格式的调整至少包括对方向、尺寸大小、颜色、清晰度的统一调整。
2)基于卷积神经网络和循环神经网络,对进行数据增强后的多个编号图片进行识别,得到多个字符串序列;
具体的,是基于卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Recurrent Neural Network,RNN),并且使用连接时序分类(Connectionisttemporal classification,CTC)损失函数,对多个编号图片进行识别,得到多个字符串序列。在进行编号图片识别之前,进行编号图片识别的算法模型是已经训练好的。该算法模型是通过训练样本训练得到的,训练样本为格式统一的编号图片以及多个编号图片分别对应的编号,其中格式的统一至少包括方向、尺寸大小、颜色、清晰度的统一。在训练时,将作为格式统一的编号图片模型的输入,将多个编号图片分别对应的编号作为模型的输出参考,反复进行训练,直到输出的字符串序列与实际的编号图片中编号相同为止。该算法模型在训练的过程中使用卷积层和归一层组合的方式,对模型进行优化,可以提升图像识别的效果,实验数据显示可以达到90%以上的准确率。
3)分别对多个字符串序列按照预设规则进行验证;
在实际的应用中,得到的字符串序列中的字符之间可能存在一些对应关系,该对应关系可以通过预设规则表示,为了保证识别出的字符串序列的准确性,可以根据该预设规则对识别出的字符串进行准确性的进一步验证。给出具体的示例,比如集装箱箱号,通常是11位,其中前4位表示箱主、经营人以及集装箱的类型,第5-10位是箱体注册码,第11位是校验码,该校验码是前4位字母和6位数字经过校验规则(一种具体的预设规则)运算得到。因此,对字符串序列的验证可以通过将前10位字符通过校验规则运算得到的结果与第11位字符进行比对。若相同则表示通过验证,即识别出的字符串序列是准确的;若不相同则表示不能通过验证,即识别出的字符串序列是不准确的。
4)将通过验证的字符串序列中出现次数最多的字符串序列作为编号。
对于上述的验证结果,将没有通过验证的字符串序列筛除,对剩下的字符串序列进行投票,即统计每种字符串序列出现的次数,次数越多证明是准确的编号的概率越大,因此将出现次数最多的字符串序列作为最终要识别的编号。给出具体的示例进行说明:假如,对于包含集装箱的某一段视频流(只包含同一个集装箱)进行集装箱编号的识别后,得到了10个字符串序列;经过验证后,若有1个字符串序列没有验证通过,剩下的通过验证的9个字符串序列中,有7个是相同的,有2个是不同的,那么就会将那7个相同的字符串序列确定为需要识别的集装箱的箱号。
S205.将编号自动录入到对应的业务系统中。
获取到编号后,通常需要录入到对应的业务系统中,本实施例可以设置将编号自动返回给业务系统,实现自动录入。
需要说明的是,本实施例的编号识别的方法应用在实际的集装箱箱号的查看和录入中,可以将之前人工操作需要1分钟完成的操作缩短为自动操作1s完成,大大的节省了时间和人力,提高了效率。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述图1和图2所述方法的编号识别的装置,如图3所示,该装置包括:
获取单元31,用于获取图像数据,所述图像数据为包含个体的编号信息的图像数据;
其中,图像数据为包含个体编号信息的图像数据。对于不同的个体,对应的图像数据是不同的,比如对于集装箱,对应的图像数据为包含集装箱的图像数据,图像数据可以为静态图像(图片)或者动态图像(视频流等)。图像数据可以通过无线或者有线方式从外部设备或者本地设备获取。编号信息为用于区分不同类型或者同一类型下不同个体的特征信息。比如集装箱箱号、集装箱类型号等。
定位单元32,用于定位图像数据中的编号信息区域;
对于获取的图像数据整体,其中有可能存在部分不包含编号信息的图像,因此为了有效节省整体的计算资源消耗,以及提高定位的效率,可以在定位之前,先对图像数据进行过滤。本实施例以图像数据为视频流为例进行说明:对于获取的图像数据为视频流的情况,有可能视频流中存在不包含编号信息的视频,因此为了有效节省整体的计算资源消耗,以及提高定位的效率,可以在定位之前,先对图像数据进行过滤,去除视频流中不包含编号信息的视频,然后对剩余的图像数据进行编号信息区域的定位。
编号信息类似于文字类信息,因此本实例中具体的是根据基于深度学习算法中的文字检测算法进行编号信息区域的定位,定位的结果是将图像数据中的编号信息区域用文字框框出。定位图像数据中的编号信息区域是为了缩小编号识别的范围,提高后续对编号信息识别的准确度。
识别单元33,用于识别编号信息区域中的编号信息,得到编号。
对定位出的编号信息区域进行字符串的识别,得到编号信息区域中的编号信息,确定编号。具体识别编号信息是基于卷积神经网络模型以及循环神经网络进行识别的。神经网络模型是根据训练样本数据提前进行训练得到的。训练样本数据为包含前述用文字框框出的编号信息区域的图像数据以及编号信息区域中对应的编号。在训练时,将包含前述用文字框框出的编号信息区域的图像数据作为模型的输入,将编号信息区域中对应的编号作为输出结果的参考,反复进行训练,直到得到的输出结果与实际对应的编号相同为止。
从以上的描述中,可以看出,本申请实施例中编号识别的装置能够首先获取图像数据,其中所述图像数据为包含个体的编号信息的图像数据;然后,定位图像数据中的编号信息区域;识别编号信息区域中的编号信息,得到编号。整个过程全是自动化操作,不涉及任何人工操作,省时省力,使用该方法对集装箱箱号进行识别,可以大大的提高查看和录入的效率,进而提高码头的整体运营效率。
进一步的,如图4所示,所述定位单元32包括:
定位模块321,用于基于改进的目标检测算法对所述图像数据中的编号信息区域进行定位;
裁剪模块322,用于将编号信息区域进行裁剪,得到包含编号信息的编号图片。
进一步的,如图4所示,所述识别单元33包括:
数据增强模块331,用于所述图像数据为视频流数据,图像数据对应的编号图片为多个编号图片,对多个编号图片进行数据增强;
识别模块332,用于基于卷积神经网络和循环神经网络,对进行数据增强后的多个编号图片进行识别,得到多个字符串序列;
验证模块333,用于分别对多个字符串序列按照预设规则进行验证;
确定模块334,用于将通过验证的字符串序列中出现次数最多的字符串序列作为所述编号。
进一步的,如图4所示,所述定位模块321用于:
设置不同尺寸的矩形卷积核,对图像数据中的编号信息区域进行定位;并且,
将旋转角度加入到特征计算中,对图像数据中的编号信息区域进行定位。
进一步的,如图4所示,所述识别模块332用于:
基于卷积神经网络和循环神经网络,并且使用连接时序分类CTC损失函数,对编号图片进行识别。
进一步的,如图4所示,所述数据增强模块331用于:
对多个编号图片进行格式的统一性调整。
具体的,本申请实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请实施例,还提供了一种电子设备,该电子设备包括:
至少一个处理器;
以及与所述处理器连接的至少一个存储器、总线;其中,
所述处理器、存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行上述图1或图2中所述的编号识别的方法。
根据本申请实施例,还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行图1或图2所述的编号识别的方法。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。