ccpd文件名转成xml_车牌信息识别录入设备构建方法和装置与流程

本文主要是介绍ccpd文件名转成xml_车牌信息识别录入设备构建方法和装置与流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

d2d6f500f9762f46d32169ec66915dee.gif

本发明涉及计算机技术领域,特别涉及车牌信息识别录入设备构建方法和装置。

背景技术:

在物流相关业务系统中,需要对运输车辆的车牌信息进行录入,通常采用固定闸机识别录入方式来录入运输车辆的车牌信息,即固定闸机对通过的运输车辆进行车牌信息识别,进而录入所识别到的车牌信息。

在实际的物流业务场景中,经常出现运输车辆通行路径临时调整导致运输车辆不通过固定闸机的情况,此时固定闸机无法完成车牌信息录入,需要通过人工手动录入的方式完成车牌信息录入。

通过人工手动录入方式录入车牌信息时,需要信息录入人员查看运输车辆的车牌并通过键盘等输入设备录入车牌信息,针对每一个运输车辆均需要耗费较长时间才能完成车牌信息录入,导致车牌信息录入的效率较低。

技术实现要素:

本发明实施例提供了车牌信息识别录入设备构建方法和装置,能够提高车牌信息录入的效率。

第一方面,本发明实施例提供了一种车牌信息识别录入设备构建方法,包括:

获取包括有至少两个样本的数据集,其中,所述样本包括样本车牌图像;

利用所述数据集训练定位检测模型,其中,所述定位检测模型用于从摄像头所拍摄照片中识别车牌图像;

训练车牌识别模型,其中,所述车牌识别模型用于从所述车牌图像中识别车牌信息;

构建可以引用所述定位检测模型和所述车牌识别模型的应用程序;

将所述应用程序集成到基于arm架构的便携式安卓设备,使得所述便携式安卓设备上的所述应用程序可以调用所述便携式安卓设备的摄像头采集图像,并引用所述定位检测模型和所述车牌识别模型从所采集到的图像上识别车牌信息后录入目标系统。

在第一种可能的实现方式中,结合上述第一方面,所述获取包括有至少两个样本的数据集,包括:

从ccpd车牌数据集中获取至少两个所述样本;

针对获取到的每一个所述样本,对该样本进行旋转或镜像生成新的样本;

对所述ccpd车牌数据集获取到的各个所述样本和生成的各个所述样本进行组合,获得所述数据集。

在第二种可能的实现方式中,结合上述第一方面,所述利用所述数据集训练定位检测模型,包括:

针对所述数据集中的每一个所述样本,对该样本进行分辨率调整和灰度化处理,其中,进行分辨率调整后所述样本的尺寸与预设的标准样本尺寸相同;

将进行分辨率调整核灰度化处理后的各个所述样本划分为正样本集合和负样本集合,其中,所述正样本集合中包括有至少一个正样本,所述负样本集合中包括有至少一个负样本;

利用训练器对所述正样本集合和所述负样本集合进行训练,获得所述定位检测模型。

在第三种可能的实现方式中,结合上述第一方面,所述训练车牌识别模型,包括:

利用左右边界回归模型训练水平精细定位模型,其中,所述水平精细定位模型用于从所述车牌图像中预测出车牌的左右边框,并对所述车牌图像进行裁剪以精定位;

利用inception结构训练字符分割模型,其中,所述字符分割模型用于对所述车牌图像中的字符进行分割;

利用crnn网络结构训练字符识别模型,其中,所述字符识别模型用于分别对所述字符分割模型分割出的每一个所述字符进行识别;

对所述水平精细定位模型、所述字符分割模型和所述字符识别模型进行关联集成,获得所述车牌识别模型。

在第四种可能的实现方式中,结合上述第一方面以及第一方面的第一种可能的实现方式、第二种可能的实现方式和第三种可能的实现方式中的任意一个,所述构建可以引用所述定位检测模型和所述车牌识别模型的应用程序,包括:

配置所述应用程序的运行环境;

配置所述应用程序的原生开发工具包ndk,并编译库文件;

在所述应用程序中编写java本地接口代码、模型读取方法代码和应用业务层代码。

第二方面,本发明实施例还提供了一种车牌信息识别录入设备构建装置,包括:

一个数据集获取模块,用于获取包括有至少两个样本的数据集,其中,所述样本包括样本车牌图像;

一个定位模型训练模块,用于利用所述数据集获取模块获取到的所述数据集训练定位检测模型,其中,所述定位检测模型用于从摄像头所拍摄照片中识别车牌图像;

一个识别模型训练模块,用于训练车牌识别模型,其中,所述车牌识别模型用于从所述车牌图像中识别车牌信息;

一个程序构建模块,用于构建可以引用所述定位模型训练模块训练出的所述定位检测模型和所述识别模型训练模块训练出的所述车牌识别模型的应用程序;

一个模型集成模块,用于将所述程序构建模块构建出的所述应用程序集成到基于arm架构的便携式安卓设备,使得所述便携式安卓设备上的所述应用程序可以调用所述便携式安卓设备的摄像头采集图像,并引用所述定位检测模型和所述车牌识别模块从所采集到的图像上识别车牌信息后录入目标系统。

在第一种可能的实现方式中,结合上述第二方面,所述数据集获取模块包括:

一个样本获取单元,用于从ccpd车牌数据集中获取至少两个所述样本;

一个样本生成单元,用于针对所述样本获取单元获取到的每一个所述样本,对该样本进行旋转或镜像生成新的样本;

一个样本组合单元,用于对所述样本获取单元获取到的各个所述样本和所述样本生成单元生成的各个所述样本进行组合,获得所述数据集。

在第二种可能的实现方式中,结合上述第二方面,所述定位模型训练模块包括:

一个样本处理单元,用于针对所述数据集中的每一个所述样本,对该样本进行分辨率调整和灰度化处理,其中,进行分辨率调整后所述样本的尺寸与预设的标准样本尺寸相同;

一个样本分组单元,用于将经所述样本处理单元进行分辨率调整核灰度化处理后的各个所述样本划分为正样本集合和负样本集合,其中,所述正样本集合中包括有至少一个正样本,所述负样本集合中包括有至少一个负样本;

一个第一训练单元,用于利用训练器对所述样本分组单元划分出的所述正样本集合和所述负样本集合进行训练,获得所述定位检测模型。

在第三种可能的实现方式中,结合上述第二方面,所述识别模型训练模块包括:

一个第二训练单元,用于利用左右边界回归模型训练水平精细定位模型,其中,所述水平精细定位模型用于从所述车牌图像中预测出车牌的左右边框,并对所述车牌图像进行裁剪以精定位;

一个第三训练单元,用于利用inception结构训练字符分割模型,其中,所述字符分割模型用于对所述车牌图像中的字符进行分割;

一个第四训练单元,用于利用crnn网络结构训练字符识别模型,其中,所述字符识别模型用于分别对所述字符分割模型分割出的每一个所述字符进行识别;

一个模型关联单元,用于对所述第二训练单元训练出的所述水平精细定位模型、所述第三训练单元训练出的所述字符分割模型和所述第四训练单元训练出的所述字符识别模型进行关联集成,获得所述车牌识别模型。

在第四种可能的实现方式中,结合上述第二方面以及第二方面的第一种可能的实现方式、第二种可能的实现方式和第三种可能的实现方式中的任意一个,所述程序构建模块,用于执行如下操作:

配置所述应用程序的运行环境;

配置所述应用程序的原生开发工具包ndk,并编译库文件;

在所述应用程序中编写java本地接口代码、模型读取方法代码和应用业务层代码。

由上述技术方案可知,在获取到包括至少两个样本的数据集后,利用数据集训练定位检测模型,并训练车牌识别模型,之后构建可以引用所训练定位检测模型和车牌识别模型的应用程序,并将所构建的应用程序集成到基于arm架构的便携式安卓设备中。被集成的应用程序在用户的控制下可以调用便携式安卓设备的摄像头采集图像,并引用定位检测模型和车牌识别模型从所采集到的图像上识别车牌信息,之后将所识别出的车牌信息录入目标系统。由此可见,通过所构建的集成有应用程序的便携式安卓设备,可以随时随地自动识别车牌信息并将车牌信息自动录入到目标系统,无需人工查看车牌和手动输入车牌信息,从而可以提高车牌信息录入的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种车牌信息识别录入设备构建方法的流程图;

图2是本发明一个实施例提供的一种数据集获取方法的流程图;

图3是本发明一个实施例提供的一种定位检测模型训练方法的流程图;

图4是本发明一个实施例提供的一种车牌信息识别录入设备构建装置所在设备的示意图;

图5是本发明一个实施例提供的一种车牌信息识别录入设备构建装置的示意图;

图6是本发明一个实施例提供的另一种车牌信息识别录入设备构建装置的示意图;

图7是本发明一个实施例提供的又一种车牌信息识别录入设备构建装置的示意图;

图8是本发明一个实施例提供的再一种车牌信息识别录入设备构建装置的示意图。

具体实施方式

如前所述,在对运输车辆的车牌信息进行录入时,通常情况下利用固定闸机识别运输车辆的车牌信息并完成车牌信息的录入,当临时调整运输车辆的通行路径导致运输车辆不经过固定闸机时,通过人工手动录入的方式完成车牌信息录入。在通过人工手动完成车牌信息录入时,需要信息录入人员查看运输车辆的车牌以确定车牌信息,之后信息录入人员还需要通过键盘等输入设备将车牌信息录入,因此完成一个运输车辆的车牌信息录入需要耗费较长的时间,导致车牌信息录入的效率较低。

本发明实施例中,在训练定位检测模型和车牌识别模型后,构建可以引用所训练定位检测模型和车牌识别模型的应用程序,之后将所构建的应用程序集成到基于arm架构的便携式安卓设备中,进而被集成的应用程序可以调用便携式安卓设备的摄像头采集退昂,并引用定位检测模型和车牌识别模型从所采集到的图像上识别车牌信息,进而将所识别出的车牌信息录入目标系统,因此用户通过集成有应用程序的便携式安卓设备可以随时随地完成车牌信息的自动识别和自动录入,不需要人工查看和输入车牌信息,从而可以提高车牌信息录入的效率。

下面结合附图对本发明实施例提供的车牌信息识别录入设备构建方法和装置进行详细说明。

如图1所示,本发明一个实施例提供了一种车牌信息识别录入设备构建方法,该方法可以包括如下步骤:

步骤101:获取包括有至少两个样本的数据集,其中,样本包括样本车牌图像;

步骤102:利用数据集训练定位检测模型,其中,定位检测模型用于从摄像头所拍摄照片中识别车牌图像;

步骤103:训练车牌识别模型,其中,车牌识别模型用于从车牌图像中识别车牌信息;

步骤104:构建可以引用定位检测模型和车牌识别模型的应用程序;

步骤105:将应用程序集成到基于arm架构的便携式安卓设备,使得便携式安卓设备上的应用程序可以调用便携式安卓设备的摄像头采集图像,并引用定位检测模型和车牌识别模型从所采集到的图像上识别车牌信息后录入目标系统。

在本发明实施例中,在获取到包括至少两个样本的数据集后,利用数据集训练定位检测模型,并训练车牌识别模型,之后构建可以引用所训练定位检测模型和车牌识别模型的应用程序,并将所构建的应用程序集成到基于arm架构的便携式安卓设备中。被集成的应用程序在用户的控制下可以调用便携式安卓设备的摄像头采集图像,并引用定位检测模型和车牌识别模型从所采集到的图像上识别车牌信息,之后将所识别出的车牌信息录入目标系统。由此可见,通过所构建的集成有应用程序的便携式安卓设备,可以随时随地自动识别车牌信息并将车牌信息自动录入到目标系统,无需人工查看车牌和手动输入车牌信息,从而可以提高车牌信息录入的效率。

在本发明实施例中,基于arm架构的便携式安卓设备可以是安卓系统的手机、手表、平板电脑等包括有摄像头的智能设备,通过所集成或安装的应用程序完成车牌图像的采集、车牌信息的识别和车牌信息的录入。另外,目标系统是用于接收车牌信息的系统,比如可以是用于存储车牌信息的数据库或者是记录车辆出入的车辆管理系统。

在本发明实施例中,所构建的应用程序不仅可以引用定位检测模型和车牌识别模型来检测图像中车牌所在的位置和识别车牌信息,还可以调用便携式安卓设备摄像头进行图像采集,而且还可以将识别出的车牌信息录入到目标系统中,从而用于仅需手持便携式安卓设备使便携式安卓设备的摄像头对准车辆车牌,便携式安卓设备便可以自动完成图像采集、车牌信息识别和车牌信息录入,从而不仅可以提高车牌信息录入的效率,还可以减轻车牌录入人员的工作强度。

在本发明实施例中,由于所构成的应用程序被集成到便携式安卓设备中,而且定位检测模型和车牌识别模型也存储在便携式安卓设备中,因此便携式安卓设备的车牌信息识别过程是在本地完成的,便携式安卓设备不需要与服务器进行通信,甚至可以不用连接网络,因此该便携式安卓设备可以更好的适用于各种网络信号不好的场景,使得该便携式安卓设备具有较强的适用性。另外,当便携式设备无法连接网络时,便携式安卓设备可以对所识别出的车牌信息进行暂存,当恢复网络连接后再将所暂存的车牌信息录入到目标系统。

可选地,在图1所示车牌信息识别录入设备构建方法的基础上,如图2所示,具体可以通过如下方式获取用于训练定位检测模型的数据集:

步骤201:从ccpd车牌数据集中获取至少两个样本;

步骤202:针对获取到的每一个样本,对该样本进行旋转或镜像生成新的样本;

步骤203:对ccpd车牌数据集获取到的各个样本和生成的各个样本进行组合,获得数据集。

在本发明实施例中,可以从开源的ccpd车牌数据集中获取至少两个样本,之后分别对所获取的每一个样本进行旋转或镜像生成新的样本,进而将所获取到的各个样本和所生成的各个样本的组合作为用于训练定位检测模型的数据集。

首先,开源的ccpd车牌数据集包括有大量对应于车牌图像的样本,直接从ccpd车牌数据集获取样本,无需耗费大量时间和成本来采集样本,从而可以提高构建车牌信息识别录入设备的效率,并降低构建车牌信息识别录入设备的成本。另外,ccpd车牌数据集中包括有大量正样本和负样本,可以从ccpd车牌数据集中获取至少一个正样本和至少一个负样本,后续利用所获取到的正样本和负样本训练定位检测模型时,可以保证训练出的定位检测模型的准确性。

其次,在从ccpd车牌数据集获取到至少两个样本后,可以分别对每一个所获取到的样本进行旋转或镜像而生成新的样本,进而将获取到的各个样本和新生成的各个样本的组合作为数据集来训练定位检测模型,由于增加了用于训练定位检测模型的数据集中样本的数量,进而可以进一步提高所训练出的定位检测模型的准确性。

在本发明实施例中,所获取到的样本包括正样本和负样本,其中正样本包括有完整、正向的车牌,而负样本不包括车牌或包括不完整、非正向的车牌。通过对所获取到的样本进行旋转或镜像来生成新的样本上,如果一个样本为正样本,对该样本进行旋转或镜像后生成的样本通常为负样本,如果一个样本为负样本,对该样本进行旋转或镜像后生成的样本为正样本或负样本。

可选地,在图1所示车牌信息识别录入设备构建方法的基础上,如图3所示,可以通过如下方式来训练定位检测模型:

步骤301:针对数据集中的每一个样本,对该样本进行分辨率调整和灰度化处理,其中,进行分辨率调整后样本的尺寸与预设的标准样本尺寸相同;

步骤302:将进行分辨率调整核灰度化处理后的各个样本划分为正样本集合和负样本集合,其中,正样本集合中包括有至少一个正样本,负样本集合中包括有至少一个负样本;

步骤303:利用训练器对正样本集合和负样本集合进行训练,获得定位检测模型。

在本发明实施例中,通过对数据集中的各个样本进行分辨率调整,使得各个样本的尺寸均与预设的标准样本尺寸相同,进而保证各个样本具有相同的尺寸。通过对数据集中的各个样本进行灰度化处理,将各个样本转换为灰度图像,方便将各个样本转换为相对应的矩阵而训练定位检测模型。因此,通过对数据集中的样本进行分辨率调整和灰度化处理,有助于后续利用数据集中的各个样本训练定位检测模型的方便性和准确性。

在本发明实施例中,在对数据集中的各个样本完成分辨率调整和灰度化处理后,将各个样本划分为正样本集合和负样本集合,进而利用训练器对正样本集合和负样本集合进行训练,以获得定位检测模型。正样本为正常车牌图像的范例,负样本为非正常车牌图像的范例,将正样本的集合作为正样本集合,将负样本的集合作为负样本集合,通过训练器对正样本集合和负样本集合进行训练,使得所训练出的定位检测模型能够正确分别正常车牌图像和异常车牌图像,进而保证后续利用定位检测模型对车牌图像进行定位的准确性。

在对样本进行分辨率调整和灰度化处理后,可以生成正负样本的描述文件,具体为新建三个文件夹pos、neg和xml,其中,pos用于存放经分辨率调整和灰度化处理后的正样本,neg用于存放经分辨率调整和灰度化处理后的负样本,xml用于存放生成的.xml文件,暂时为空。

在利用训练器对正样本集合和负样本集合进行训练而获得定位检测模型时,可以用opencv自带的cascade作为训练器来针对正样本集合和负样本集合行训练。具体地,先使用opencv_createsamples.exe生成样本,然后使用opencv_traincascade.exe训练样本,最后在xml文件夹下可看到生成的.xml文件,cascade.xml就是训练得到的定位检测模型。

可选地,在图1所示车牌信息识别录入设备构建方法的基础上,所训练出的车牌识别模型应包括水平精细定位模型、字符分割模型和字符识别模型,以通过水平精细定位模型从车牌图像中预测出车牌的左右边框,并对车牌图像进行裁剪以精定位,并通过字符分割模型对车牌图像中的字符进行分割,通过字符识别模型对分割出来的字符进行识别,因此可以分别训练水平精细定位模型、字符分割模型和字符识别模型,之后对所训练出的水平精细定位模型、字符分割模型和字符识别模型进行关联集成,获得车牌识别模型。

在本发明实施例中,分别训练水平精细定位模型、字符分割模型和字符识别模型,通过水平精细定位模型可以准确确定车牌图像中车牌所处的位置,进而保证字符分割模型可以准确地将车牌所包括的各个字符分割出来,同时字符识别模型可以准确地识别字符分割模型所分割出来的各个字符,进而保证了对车牌信息进行识别的准确性。

在本发明实施例中,水平精细定位模型可以采用左右边界回归模型,预测出车牌的左右边框,进一步裁剪进行精定位。其中,左右边界回归模型为现有的图像处理模型,在此不再赘述。

在本发明实施例中,字符分割模型可以采用inception结构,其主要思路是使用一个密集成分来近似或者代替最优的局部稀疏结构。其中,inception网络结构为现有技术中常用的网络结构,在此不再赘述。

在本发明实施例中,字符识别模型可以采用crnn网络结构,其主要由cnn+bilstm+ctc构成。其中,crnn网络结构为现有技术中常用的模型训练结构,在此不再赘述。

可选地,在上述各个实施例所提供车牌信息识别录入设备构建方法的基础上,在构建可以引用定位检测模型和车牌识别模型的应用程序时,主要包括配置应用程序的运行环境、配置原生开发工具包(nativedevelopmentkit,ndk)并编译库文件和相关代码编写这三个步骤,下面结合具体实例对上述三个步骤分别进行说明。

(1)opencv相关环境配置的步骤:

下载opencvandroid3.4.6版本;

在as新建一个新项目,然后在app上右键new----->module在弹窗里选择importeclipseadtproject点next;

选择刚才解压的opencv目录下的sdk/java目录点击ok,然后填写modulename,比如填写"opencv"然后点next----->finish;

接下来项目会报错的,打开刚导入的opencv的androidmanifest.xml删除这行代码;

再打开opencv的build.gradle文件,把版本改成和app的build.gradle文件想同的版本;

在app的build.gradle加入implementationproject(path:':opencv')这行代码ok,同步项目。之后在app的buidl.gradle中defaultconfig下添加so文件;

在main下新建jinlibs目录,把opencvsdk的解压目录下sdk/native/libs/armeabi-v7a目录拷到jnilibs下,完成配置。

(2)配置ndk并编译库文件的步骤:

本项目选用ndk-r14b版本,在项目app文件下新建cmakelists.txt文件,并在其中加入opencv的引用和本项目jni的引用。

(3)相关代码编写并集成到arm安卓端的步骤:

代码的编写主要分为两方面,分别是下层的jni代码和相关的c++读取模型的方法,上层java调用jni识别的应用业务层代码。相关主要代码如下:

java代码包括:

如图4、图5所示,本发明实施例提供了一种车牌信息识别录入设备构建装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图4所示,为本发明实施例提供的车牌信息识别录入设备构建装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图5所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的车牌信息识别录入设备构建装置,包括:

一个数据集获取模块501,用于获取包括有至少两个样本的数据集,其中,样本包括样本车牌图像;

一个定位模型训练模块502,用于利用数据集获取模块501获取到的数据集训练定位检测模型,其中,定位检测模型用于从摄像头所拍摄照片中识别车牌图像;

一个识别模型训练模块503,用于训练车牌识别模型,其中,车牌识别模型用于从车牌图像中识别车牌信息;

一个程序构建模块504,用于构建可以引用定位模型训练模块502训练出的定位检测模型和识别模型训练模块503训练出的车牌识别模型的应用程序;

一个模型集成模块505,用于将程序构建模块504构建出的应用程序集成到基于arm架构的便携式安卓设备,使得便携式安卓设备上的应用程序可以调用便携式安卓设备的摄像头采集图像,并引用定位检测模型和车牌识别模块从所采集到的图像上识别车牌信息后录入目标系统。

在本发明实施例中,数据集获取模块501可用于执行上述方法实施例中的步骤101,定位模型训练模块502可用于执行上述方法实施例中的步骤102,识别模型训练模块503可用于执行上述方法实施例中的步骤103,程序构建模块504可用于执行上述方法实施例中的步骤104,模型集成模块505可用于执行上述方法实施例中的步骤105。

可选地,在图5所示车牌信息识别录入设备构建装置的基础上,如图6所示,数据集获取模块501包括:

一个样本获取单元5011,用于从ccpd车牌数据集中获取至少两个样本;

一个样本生成单元5012,用于针对样本获取单元5011获取到的每一个样本,对该样本进行旋转或镜像生成新的样本;

一个样本组合单元5013,用于对样本获取单元5011获取到的各个样本和样本生成单元5012生成的各个样本进行组合,获得数据集。

在本发明实施例中,样本获取单元5011可用于执行上述方法实施例中的步骤201,样本生成单元5012可用于执行上述方法实施例中的步骤202,样本组合单元5013可用于执行上述方法实施例中的步骤203。

可选地,在图5所示车牌信息识别录入设备构建装置的基础上,如图7所示,定位模型训练模块502包括:

一个样本处理单元5021,用于针对数据集中的每一个样本,对该样本进行分辨率调整和灰度化处理,其中,进行分辨率调整后样本的尺寸与预设的标准样本尺寸相同;

一个样本分组单元5022,用于将经样本处理单元5021进行分辨率调整核灰度化处理后的各个样本划分为正样本集合和负样本集合,其中,正样本集合中包括有至少一个正样本,负样本集合中包括有至少一个负样本;

一个第一训练单元5023,用于利用训练器对样本分组单元5022划分出的正样本集合和负样本集合进行训练,获得定位检测模型。

在本发明实施例中,样本处理单元5021可用于执行上述方法实施例中的步骤301,样本分组单元5022可用于执行上述方法实施例中的步骤302,第一训练单元5023可用于执行上述方法实施例中的步骤303。

可选地,在图5所示车牌信息识别录入设备构建装置的基础上,如图8所示,识别模型训练模块503包括:

一个第二训练单元5031,用于利用左右边界回归模型训练水平精细定位模型,其中,水平精细定位模型用于从车牌图像中预测出车牌的左右边框,并对车牌图像进行裁剪以精定位;

一个第三训练单元5032,用于利用inception结构训练字符分割模型,其中,字符分割模型用于对车牌图像中的字符进行分割;

一个第四训练单元5033,用于利用crnn网络结构训练字符识别模型,其中,字符识别模型用于分别对字符分割模型分割出的每一个字符进行识别;

一个模型关联单元5034,用于对第二训练单元5031训练出的水平精细定位模型、第三训练单元5032训练出的字符分割模型和第四训练单元5033训练出的字符识别模型进行关联集成,获得车牌识别模型。

可选地,在图5至图8中任一附图所示车牌信息识别录入设备构建装置的基础上,所述程序构建模块504用于执行如下操作:

配置应用程序的运行环境;

配置应用程序的原生开发工具包ndk,并编译库文件;

在应用程序中编写java本地接口代码、模型读取方法代码和应用业务层代码。

可以理解的是,本发明实施例示意的结构并不构成对车牌信息识别录入设备构建装置的具体限定。在本发明的另一些实施例中,车牌信息识别录入设备构建装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明还提供了一种计算机可读介质,存储用于使一机器执行如本文所述的车牌信息识别录入设备构建方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

综上所述,本发明各个所述所提供的车牌信息识别录入设备构建方法和装置,至少具有如下有益效果:

1、在本发明实施例中,在获取到包括至少两个样本的数据集后,利用数据集训练定位检测模型,并训练车牌识别模型,之后构建可以引用所训练定位检测模型和车牌识别模型的应用程序,并将所构建的应用程序集成到基于arm架构的便携式安卓设备中。被集成的应用程序在用户的控制下可以调用便携式安卓设备的摄像头采集图像,并引用定位检测模型和车牌识别模型从所采集到的图像上识别车牌信息,之后将所识别出的车牌信息录入目标系统。由此可见,通过所构建的集成有应用程序的便携式安卓设备,可以随时随地自动识别车牌信息并将车牌信息自动录入到目标系统,无需人工查看车牌和手动输入车牌信息,从而可以提高车牌信息录入的效率。

2、在本发明实施例中,由于所构成的应用程序被集成到便携式安卓设备中,而且定位检测模型和车牌识别模型也存储在便携式安卓设备中,因此便携式安卓设备的车牌信息识别过程是在本地完成的,便携式安卓设备不需要与服务器进行通信,甚至可以不用连接网络,因此该便携式安卓设备可以更好的适用于各种网络信号不好的场景,使得该便携式安卓设备具有较强的适用性。

3、在本发明实施例中,开源的ccpd车牌数据集包括有大量对应于车牌图像的样本,直接从ccpd车牌数据集获取样本,无需耗费大量时间和成本来采集样本,从而可以提高构建车牌信息识别录入设备的效率,并降低构建车牌信息识别录入设备的成本。另外,ccpd车牌数据集中包括有大量正样本和负样本,可以从ccpd车牌数据集中获取至少一个正样本和至少一个负样本,后续利用所获取到的正样本和负样本训练定位检测模型时,可以保证训练出的定位检测模型的准确性。

4、在本发明实施例中,在从ccpd车牌数据集获取到至少两个样本后,可以分别对每一个所获取到的样本进行旋转或镜像而生成新的样本,进而将获取到的各个样本和新生成的各个样本的组合作为数据集来训练定位检测模型,由于增加了用于训练定位检测模型的数据集中样本的数量,进而可以进一步提高所训练出的定位检测模型的准确性。

5、在本发明实施例中,通过对数据集中的各个样本进行分辨率调整,使得各个样本的尺寸均与预设的标准样本尺寸相同,进而保证各个样本具有相同的尺寸。通过对数据集中的各个样本进行灰度化处理,将各个样本转换为灰度图像,方便将各个样本转换为相对应的矩阵而训练定位检测模型。因此,通过对数据集中的样本进行分辨率调整和灰度化处理,有助于后续利用数据集中的各个样本训练定位检测模型的方便性和准确性。

6、在本发明实施例中,分别训练水平精细定位模型、字符分割模型和字符识别模型,通过水平精细定位模型可以准确确定车牌图像中车牌所处的位置,进而保证字符分割模型可以准确地将车牌所包括的各个字符分割出来,同时字符识别模型可以准确地识别字符分割模型所分割出来的各个字符,进而保证了对车牌信息进行识别的准确性。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件模块可以通过机械方式或电气方式实现。例如,一个硬件模块可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件模块还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

这篇关于ccpd文件名转成xml_车牌信息识别录入设备构建方法和装置与流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634932

相关文章

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

如何将Python彻底卸载的三种方法

《如何将Python彻底卸载的三种方法》通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装,所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Pyth... 目录软件卸载①方法:②方法:③方法:清理相关文件夹软件卸载①方法:首先,在安装python时,下

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi