1.本技术涉及车牌识别技术领域,更具体地,涉及一种基于深度学习的车牌识别方法、车牌识别系统及电子设备。
背景技术:
2.现有的车牌颜色和车牌类型识别算法一般两个独立的算法,以单独任务的形式进行。
3.目前,一般会利用深度学习的方法或者传统算法进行车牌颜色识别。车牌类型识别主要有两种实现方法:(1)通过车牌颜色推断出车牌类型,即先进行车牌颜色识别,然后根据车牌颜色信息推断出车牌类型;(2)通过传统算法识别车牌类型,即通过传统算法将车牌图像转换成hsv颜色空间,然后确定车牌类型。
4.基于现有的上述方法对车牌颜色和车牌类型识别,在实际应用中主要存在以下问题:
5.(1)车牌颜色识别和车牌类型识别以两个算法任务进行开发,增加了算法开发和维护的工作量;
6.(2)通过传统算法进行车牌类型识别,算法的鲁棒性较差,对场景的依赖性很强,算法的逻辑会比较复杂,不便于后续算法的维护和部署;
7.(3)、通过车牌颜色或车牌类型的识别结果去推断另外一种属性的结果,导致两个算法的黏连性很强。并且通过车牌颜色只能推断出蓝色车牌和绿色车牌的车牌类型,无法推断出黄色车牌、白色车牌及黑色车牌的车牌类型。
技术实现要素:
8.本技术的一个目的是提供一种基于深度学习的车牌识别方法的新技术方案,能够解决现有技术中因车牌颜色和车牌类型识别需要采用两个独立算法而导致的算法工作量大和鲁棒性差等问题。
9.本发明的第一方面,提供了一种基于深度学习的车牌识别方法,包括以下步骤:
10.s1、获取具有车牌区域的车身图;
11.s2、对获取的所述车身图进行矫正处理,得到矫正后的车牌区域图片,并将矫正后的所述车牌区域图片作为卷积神经网络的输入图片;
12.s3、对所述车牌区域图片进行数据扩增,并形成数据库;
13.s4、对所述数据库进行训练集和测试集划分,并根据所述训练集获取验证集;
14.s5、通过卷积神经网络构建基于多任务的分类网络,对所述训练集进行训练,获取所述车牌区域图片的高维特征图,并通过所述验证集进行验证;
15.s6、所述训练集通过训练后,对所述测试集进行测试,获取车牌颜色类别和车牌类型类别。
16.进一步地,所述步骤s1包括:
17.s11、从车辆监控卡口摄像头获取车辆数据;
18.s12、利用车辆检测技术从获取的所述车辆数据中,获取具有车牌区域的所述车身图。
19.3、根据权利要求2所述的基于深度学习的车牌识别方法,其特征在于,所述步骤s2包括:
20.s21、通过车牌检测模型、车牌关键点模型和车牌矫正技术,对所述车身图进行矫正处理;
21.s22、矫正处理后得到水平的所述车牌区域图片,所述车牌区域图片作为卷积神经网络的输入图片。
22.进一步地,对所述车牌区域图片进行数据扩增的方法包括调整图片亮度法、调整图片对比度法、图片运动模糊法和增加噪声法中的一种或多种。
23.进一步地,在所述数据库中,所述训练集和所述测试集的划分比例为4:1。
24.进一步地,所述验证集从所述训练集中按1:4比例动态调整获取。
25.进一步地,在所述步骤s5中,通过所述卷积神经网络构建基于多任务的分类网络的分类损失函数是softmaxloss和centerloss的组合损失函数。
26.本发明的第二方面,提供一种基于深度学习的车牌识别系统,包括:获取模块,所述获取模块用于获取具有车牌区域的车身图;矫正模块,所述矫正模块与所述获取模块连接,所述矫正模块用于对所述车身图进行矫正处理,以得到矫正后的车牌区域图片;数据扩增模块,所述数据扩增模块与所述获取模块连接,所述数据扩增模块用于对所述车牌区域图片进行数据扩充,并形成数据库;划分模块,所述划分模块与所述数据扩增模块连接,所述划分模块用于将所述数据库进行训练集和测试集划分;训练模块,所述训练模块与所述划分模块连接,所述训练模块用于对所述训练集进行训练,以获取所述车牌区域图片的高维特征图;测试模块,所述测试模块与所述划分模块连接,所述测试模块用于对所述测试集进行测试,输出车牌颜色类别和车牌类型类别。
27.本发明的第三方面,提供一种电子设备,包括:处理器和存储器,在所述存储器中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行上述实施例的基于深度学习的车牌识别方法的步骤。
28.本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行上述实施例的基于深度学习的车牌识别方法的步骤。
29.根据本发明实施例的基于深度学习的车牌识别方法,通过以一个算法的形式解决车牌颜色和车牌类型两个属性的识别,将矫正后的车牌区域图片输入到卷积神经网络中,可以同时获得车牌颜色和车牌类型的识别结果,有效减少算法开发和维护的工作量,同时增加了算法的鲁棒性,有利于算法的时间部署和实际应用,并且车牌颜色和车牌类型的结果都是根据卷积神经网络提取到的高维特征进行识别,车牌颜色和车牌类型的两个属性的结果无粘连性,能够识别训练集中所有车牌类型。
30.通过以下参照附图对本技术的示例性实施例的详细描述,本技术的其它特征及其优点将会变得清楚。
附图说明
31.被结合在说明书中并构成说明书的一部分的附图示出了本技术的实施例,并且连同其说明一起用于解释本技术的原理。
32.图1是本发明实施例的车牌识别方法的流程图;
33.图2是本发明实施例的车牌识别系统工作
34.图3是本发明实施例的用于车牌识别方法的电子设备的工作原理图。
35.附图标记:
36.车牌识别系统100;
37.获取模块10;
38.矫正模块20;
39.数据扩增模块30;
40.划分模块40;
41.训练模块50;
42.测试模块60;
43.电子设备200;
44.处理器201;
45.存储器202;操作系统2021;应用程序2022;
46.网络接口203;
47.输入设备204;
48.硬盘205;
49.显示设备206。
具体实施方式
50.现在将参照附图来详细描述本技术的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本技术的范围。
51.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本技术及其应用或使用的任何限制。
52.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
53.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
54.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
55.下面首先结合附图具体描述根据本发明实施例的基于深度学习的车牌识别方法。
56.如图1所示,根据本发明实施例的基于深度学习的车牌识别方法包括以下步骤:
57.s1、获取具有车牌区域的车身图;
58.s2、对获取的车身图进行矫正处理,得到矫正后的车牌区域图片,并将车牌区域图片作为卷积神经网络的输入图片;
59.s3、对车牌区域图片进行数据扩增,并形成数据库;
60.s4、对数据库进行训练集和测试集划分,并根据训练集获取验证集;
61.s5、通过卷积神经网络构建基于多任务的分类网络,对训练集进行训练,获取车牌区域图片的高维特征图,并通过验证集进行验证;
62.s6、训练集通过训练后,对测试集进行测试,获取车牌颜色类别和车牌类型类别。
63.具体地,根据本发明实施例的车牌识别方法主要是利用深度学习的方法,通过设计卷积神经网络对车牌颜色和车牌类型进行多任务的识别,可以广泛应用于交通卡口、电警、微卡的车牌识别系统100、执法仪工作站车牌识别违章核验等场景。参见图1,在本发明的车牌识别方法中,首先,可以获取具有车牌区域的车身图,在获取车身图的过程中,可以从现场车辆监控卡口摄像头获取往来的车辆数据。通过利用车辆检测技术从获取的车辆数据中,得到具有车牌区域的车身图。
64.然后,对获取的车身图进行矫正处理,得到矫正后的车牌区域图片,并将矫正后的车牌区域图片作为卷积神经网络的输入图片。在对车身图进行矫正处理的过程中,可以通过车牌检测模型、车牌关键点模型和车牌矫正技术,对车身图进行矫正处理。矫正处理后可以得到水平的车牌区域图片,水平的车牌区域图片可以作为卷积神经网络的输入图片。
65.获得矫正后的车牌区域图片后可以对车牌区域图片进行数据扩增,并形成数据库。其中,对车牌区域图片进行数据扩增的方法包括调整图片亮度法、调整图片对比度法、图片运动模糊法和增加噪声法中的一种或多种。通过调整矫正后的车牌区域图片的亮度、对比度、运动模糊和增加噪声等方法对矫正后的车牌区域图片进行数据扩增,形成车牌区域图片的数据库。在形成数据库的过程中还可以对车牌数据进行划分、裁剪和外扩。当然,在本技术中,并不仅限于调整图片亮度法、调整图片对比度法、图片运动模糊法和增加噪声法,其他可以对车牌区域图片进行扩增的方法也应落入本技术的保护范围。
66.接着,可以对通过数据扩增后的数据库中的车牌数据进行训练集和测试集划分,同时根据训练集可以获取对应的验证集。在训练集和测试集划分的过程中,可以按照训练集和测试集的划分比例为4:1对数据库中的车牌区域图片进行划分,而验证集可以从训练集中按1:4比例动态调整获取。同时在本技术中,还可以对车牌区域图片按照0-15个像素点进行随机裁剪组建训练集和验证集。当然,训练集和测试集的具体划分比例以及验证集的获取比例可以根据实际需要进行具体设定,在本技术中不再详细赘述。
67.然后,通过卷积神经网络构建基于多任务的分类网络,形成多分枝的卷积神经网络形式。构建出多分枝的卷积神经网络后,对训练集进行训练,对输入的车牌区域图片进行特征提取,获取到高维的特征图。同时可以通过验证集进行验证。在训练阶段中,通过卷积神经网络的一个算法设计一个多任务的分类网络,通过一个分类网络,在网络末端可以利用两个分支结构对车牌颜色和车牌类型这两种类型进行识别,降低了对车牌颜色识别和车牌类型识别的粘连性,提升了算法的通用性,有效减少算法开发和维护的工作量,同时增加了算法的鲁棒性,有利于算法的时间部署和实际应用。车牌颜色和车牌类型在同一个卷积神经网络的不同分支网络中独立进行识别的,并且都是根据卷积神经网络提取到的高维特征进行识别,降低了算法的粘连性,保证车牌颜色和车牌类型的两个属性的结果无粘连性,能够识别训练集中所有车牌类型。
68.在本发明中,通过卷积神经网络构建基于多任务的分类网络的分类损失函数是
softmaxloss和centerloss的组合损失函数。通过组合损失函数,比较训练损失值,并根据训练损失值和设置的参数,不断调整车牌颜色和车牌类型识别的最佳模型。
69.最后,完成训练集训练后,可以对测试集进行测试。在测试阶段中,通过输入矫正后的车牌区域图片,可以直接获取车牌颜色类别和车牌类型类别,同时实现对车牌颜色和车牌类型的识别。在本技术中通过再用一种全卷积神经网络识别车牌,提高车牌识别算法的鲁棒性和准确性。
70.总而言之,根据本发明实施例的基于深度学习的车牌识别方法,通过以一个算法的形式解决车牌颜色和车牌类型两个属性的识别,将矫正后的车牌区域图片输入到卷积神经网络中,可以同时获得车牌颜色和车牌类型的识别结果,有效减少算法开发和维护的工作量,同时增加了算法的鲁棒性,有利于算法的时间部署和实际应用,并且车牌颜色和车牌类型的结果都是根据卷积神经网络提取到的高维特征进行识别的,车牌颜色和车牌类型的两个属性的结果无粘连性,能够识别训练集中所有车牌类型。
71.根据本发明的第二方面,提供一种基于深度学习的车牌识别系统100,车牌识别系统100包括获取模块10、矫正模块20、数据扩增模块30、划分模块40、训练模块50和测试模块60。
72.具体而言,获取模块10用于获取具有车牌区域的车身图。矫正模块20与获取模块10连接,矫正模块20用于对车身图进行矫正处理,以得到矫正后的车牌区域图片。数据扩增模块30与获取模块10连接,数据扩增模块30用于对车牌区域图片进行数据扩充,并形成数据库。划分模块40与数据扩增模块30连接,所述划分模块40用于将数据库进行训练集和测试集划分。训练模块50与划分模块40连接,训练模块50用于对训练集进行训练,以获取车牌区域图片的高维特征图。测试模块60与划分模块40连接,测试模块60用于对测试集进行测试,输出车牌颜色类别和车牌类型类别。
73.换言之,如图2所示,根据本发明实施例的基于深度学习的车牌识别系统100主要由获取模块10、矫正模块20、数据扩增模块30、划分模块40、训练模块50和测试模块60组成。其中,获取模块10可以用于获取具有车牌区域的车身图。在获取车身图的过程中,可以从现场车辆监控卡口摄像头获取往来的车辆数据。通过利用车辆检测技术从获取的车辆数据中,得到具有车牌区域的车身图。矫正模块20与获取模块10连接,矫正模块20可以用于对车身图进行矫正处理,以得到矫正后的车牌区域图片。在对车身图进行矫正处理的过程中,可以通过车牌检测模型、车牌关键点模型和车牌矫正技术,对车身图进行矫正处理。矫正处理后可以得到水平的车牌区域图片,水平的车牌区域图片可以作为卷积神经网络的输入图片。
74.数据扩增模块30与获取模块10连接,数据扩增模块30可以用于对车牌区域图片进行数据扩充,并形成数据库。其中,对车牌区域图片进行数据扩增的方法包括调整图片亮度法、调整图片对比度法、图片运动模糊法和增加噪声法中的一种或多种。通过调整矫正后的车牌区域图片的亮度、对比度、运动模糊和增加噪声等方法对矫正后的车牌区域图片进行数据扩增,形成车牌区域图片的数据库。
75.划分模块40与数据扩增模块30连接,将数据库进行训练集和测试集划分。在训练集和测试集划分的过程中,可以按照训练集和测试集的划分比例为4:1对数据库中的车牌区域图片进行划分,而验证集可以从训练集中按1:4比例动态调整获取。同时在本技术中,
还可以对车牌区域图片按照0-15个像素点进行随机裁剪组建训练集和验证集。
76.训练模块50与划分模块40连接,训练模块50可以用于对训练集进行训练,以获取车牌区域图片的高维特征图。在训练阶段中,通过卷积神经网络构建基于多任务的分类网络,形成多分枝的卷积神经网络形式。构建出多分枝的卷积神经网络后,对训练集进行训练,对输入的车牌区域图片进行特征提取,获取到高维的特征图。同时可以通过验证集进行验证。
77.在训练阶段中,通过卷积神经网络的一个算法设计一个多任务的分类网络,通过一个分类网络,在网络末端可以利用两个分支结构对车牌颜色和车牌类型这两种类型进行识别,降低了对车牌颜色识别和车牌类型识别的粘连性,提升了算法的通用性,有效减少算法开发和维护的工作量,同时增加了算法的鲁棒性,有利于算法的时间部署和实际应用。车牌颜色和车牌类型在同一个卷积神经网络的不同分支网络中独立进行识别的,并且都是根据卷积神经网络提取到的高维特征进行识别,降低了算法的粘连性,保证车牌颜色和车牌类型的两个属性的结果无粘连性,能够识别训练集中所有车牌类型。
78.在本发明中,通过卷积神经网络构建基于多任务的分类网络的分类损失函数是softmaxloss和centerloss的组合损失函数。通过组合损失函数,比较训练损失值,并根据训练损失值和设置的参数,不断调整车牌颜色和车牌类型识别的最佳模型。
79.测试模块60与划分模块40连接,测试模块60用于对测试集进行测试,输出车牌颜色类别和车牌类型类别。在测试阶段中,通过输入矫正后的车牌区域图片,可以直接获取车牌颜色类别和车牌类型类别,同时实现对车牌颜色和车牌类型的识别。在本技术中通过再用一种全卷积神经网络识别车牌,提高车牌识别算法的鲁棒性和准确性。
80.本发明第三方面实施例,提供一种电子设备200,包括:处理器201和存储器202,在存储器202中存储有计算机程序指令,其中,在计算机程序指令被处理器201运行时,使得处理器201执行上述实施例中的基于深度学习的车牌识别方法的步骤。
81.进一步地,如图3所示,电子设备200还包括网络接口203、输入设备204、硬盘205、和显示设备206。
82.上述各个接口和设备之间可以通过总线架构互连。总线架构可以包括任意数量的互联的总线和桥。具体由处理器201代表的一个或者多个中央处理器201(cpu),以及由存储器202代表的一个或者多个存储器202的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
83.网络接口203,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,并可以保存在硬盘205中。
84.输入设备204,可以接收操作人员输入的各种指令,并发送给处理器201以供执行。输入设备204可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
85.显示设备206,可以将处理器201执行指令获得的结果进行显示。
86.存储器202,用于存储操作系统2021运行所必须的程序和数据,以及处理器201计算过程中的中间结果等数据。
87.可以理解,本发明实施例中的存储器202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器202旨在包括但不限于这些和任意其它适合类型的存储器202。
88.在一些实施方式中,存储器202存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统2021和应用程序2022。
89.其中,操作系统2021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序2022,包含各种应用程序2022,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序2022中。
90.上述处理器201,当调用并执行存储器202中所存储的应用程序2022和数据,具体的,可以是应用程序2022中存储的程序或指令时,执行根据上述实施例的基于深度学习的车牌识别方法的步骤。
91.本发明上述实施例揭示的方法可以应用于处理器201中,或者由处理器201实现。处理器201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器201可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器201也可以是任何常规的处理器201等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器202,处理器201读取存储器202中的信息,结合其硬件完成上述方法的步骤。
92.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术功能的其它电子单元或其组合中。
93.对于软件实现,可通过执行本文功能的模块(例如过程、函数等)来实现本文的技术。软件代码可存储在存储器202中并通过处理器201执行。存储器202可以在处理器201中或在处理器201外部实现。
94.具体地,处理器201还用于读取计算机程序,执行如下步骤:基于深度学习的车牌识别方法预测并输出用户提问的问题答案。
95.本发明第四方面实施例,还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器201运行时,使得处理器201执行上述实施例的基于深度学习的车牌识别方法的步骤。
96.在本技术所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它
的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
97.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
98.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例收发方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
99.虽然已经通过例子对本技术的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本技术的范围。本领域的技术人员应该理解,可在不脱离本技术的范围和精神的情况下,对以上实施例进行修改。本技术的范围由所附权利要求来限定。
转载请注明原文地址:https://tc.8miu.com/read-366.html