CN113723408B - 一种车牌识别方法及其***、可读存储介质 - Google Patents
一种车牌识别方法及其***、可读存储介质 Download PDFInfo
- Publication number
- CN113723408B CN113723408B CN202111288251.0A CN202111288251A CN113723408B CN 113723408 B CN113723408 B CN 113723408B CN 202111288251 A CN202111288251 A CN 202111288251A CN 113723408 B CN113723408 B CN 113723408B
- Authority
- CN
- China
- Prior art keywords
- license plate
- character
- vehicle
- model
- image data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Character Discrimination (AREA)
- Image Analysis (AREA)
Abstract
本发明提出了一种车牌识别方法及其***、可读存储介质,其中方法步骤包括:S1制作数据集:采集车辆图像数据,并根据第一法则对其中车辆及其车牌图像数据中的每个字符进行标注;S2选择基础模型并进行二次设计,其中二次设计步骤包括:将模型的输入图像数据的尺寸进行增大处理;对步骤S1标注的对象的最小外接矩形框做聚类分析,以获取数据集的anchors;对模型进行后处理改写,将模型输出的无序的识别结果根据第二法则进行排序。籍此实现采用单个深度学习模型通过一个过程来解决车辆牌照识别问题。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及采用人工智能技术通过特定模型的深度学习来对车牌进行识别的方法及其***、可读存储介质。
背景技术
目前现有技术的车牌号自动识别技术,主要是计算机视觉技术在交通运输领域的交叉应用,其在道路违章检查,智能停车场等领域,拥有广泛的应用市场。
为了达到有效识别车牌的目的,现有公开技术主要分为:以传统图像处理为基础的识别方案,和传统图像处理结合深度学习的识别方案两大类,然而传统的图像处理方案相对识别速度较慢,识别准确度低,易受光照天气角度等因素影响。
而传统图像处理技术结合深度学习的方案需要分两个过程进行,即,用深度学习的方法定位到车牌的位置,之后用传统的图像处理方法对其位置处的车牌号进行识别。虽然深度学习的引入带来了一定成都速度和精度上的提升,但由于仍有传统的图像处理方法,其精度和速度的上限仍旧受到限制。
为此现有技术也曾出过深度学习+深度学习的方法,即先用深度学习的方法定位到车牌的位置,再接着还用深度学习的方法对得到的位置处的车牌号进行识别,虽然规避了传统的图像处理的方法,但整个处理过程还是需要经过两个过程,每步都需要一个深度学习模型,因此识别效率上仍有不足。
同时两个模型在识别速度上天生处于劣势,如果在边缘设备上应用的话,这种劣势可能导致根本运行不了;此外两个模型容易互相影响,因此对模型优化将会带来更多的困难。
发明内容
为此本发明的主要目的在于提供一种车牌识别方法及其***、可读存储介质,以采用单个深度学习模型通过一个过程来解决车辆牌照识别问题。
为了实现上述目的,根据本发明的第一个方面,提供了一种车牌识别方法,步骤包括:S1 制作数据集:采集车辆图像数据,并根据第一法则对其中车辆及其车牌图像数据中的每个字符进行标注;S2选择基础模型并进行二次设计,其中二次设计步骤包括:将模型的输入图像数据的尺寸进行增大处理包括:经数据增强处理手段来处理车牌号附近区域,以增大车牌号附近局部区域的分辨率;对步骤S1标注的对象的最小外接矩形框做聚类分析,以获取数据集的anchors并设置模型的heads中负责预测车牌字符的分支来增大模型的输出特征图的尺寸;对模型进行后处理改写,将模型输出的无序的识别结果根据第二法则进行排序。
在可能的优选实施方式中,所述第一法则包括:将车辆图像数据按预设比例分选为:训练集,验证集,测试集,仅针对训练集和验证集中的车辆及其车牌图像数据中的每个字符进行标注。
在可能的优选实施方式中,所述标注步骤包括:对图像数据中的车辆种类打标签,及对对应车辆的车牌中的每个字符打标签,且所述标签包含:车辆及其车牌中每个字符的种类,以及车辆和其对应车牌中每个字符的最小外接矩形的左上角定点坐标和右下角定点坐标。
在可能的优选实施方式中,所述二次设计步骤还包括:对模型的backbone进行设置,步骤包括:删除p1,降低p2~p4的number数一倍,p5保持不变;保留最接近输入图像的s1,而s2和s4的卷积步长改为1,接近输出端的s5保持不变。
在可能的优选实施方式中,所述二次设计步骤还包括:对模型的检测头进行设置,步骤包括:令检测头中的第一个分支,做出补偿,修改h1_2和h1_4中的卷积步长,并使其负责车辆种类的检测;令检测头中的第二个分支,负责车辆种类及车牌字符检测;令检测头中的第三个分支,负责车牌字符检测,其中h1_2意为yolov3的第一个检测头head的第2层结构,h1_4意为yolov3的第一个检测头head的第4层结构。
在可能的优选实施方式中,所述第二法则包括:判断各车牌字符目标位处哪个车辆目标内;对同一车辆目标内的字符目标根据其左上角的位置结果进行排序。
在可能的优选实施方式中,还包括步骤S3模型训练和优化,其步骤包括:预设超参数组合对步骤S2中二次设计后的模型进行训练;对每个训练得到的模型在测试集上进行测试;对比测试结果以进行优化;重复前述步骤,直至模型达标。
为了实现上述目的,根据本发明的第二个方面,还提供了一种车牌识别方法,其步骤包括:
S1 制作数据集:采集车辆图像数据,并根据第一法则对其中车辆及其车牌图像数据中的每个字符进行标注;其中所述标注步骤包括:对图像数据中的车辆种类打标签,及对对应车辆的车牌中的每个字符打标签,且所述标签包含:车辆及其车牌中每个字符的种类,以及车辆和其对应车牌中每个字符的最小外接矩形的左上角定点坐标和右下角定点坐标。
S2选择基础模型并进行二次设计,其中二次设计步骤包括:将模型的输入图像数据的尺寸进行增大处理包括:经数据增强处理手段来处理车牌号附近区域,以增大车牌号附近局部区域的分辨率;对步骤S1标注的对象的最小外接矩形框做聚类分析,以获取数据集的anchors并设置模型的heads中负责预测车牌字符的分支来增大模型的输出特征图的尺寸后,输出无序的识别结果;
S3对模型进行后处理改写:对步骤S2输出的无序结果进行排序,设定每个被检测输出的车牌字符为,每个被检测出种类的车辆为,其中每个设定四个位置坐标:,,,,分别为字符所在矩形的左上角顶点的x坐标,y坐标和右下角定点的x坐标,y坐标;每个设定四个位置坐标,,,,分别为字符所在矩形的左上角顶点的x坐标,y坐标和右下角定点的x坐标,y坐标,若 ≧ ≧ 且 ≧ ≧ ,则断定字符属于车辆的其中一个车牌字符,然后对所有属于车辆的字符根据其的大小进行排序。
为了实现上述目的,根据本发明的第三个方面,还提供了一种车牌识别***,其包括:主控器,摄像机,所述摄像机与主控器连接,以向主控器传输车辆图像数据,其中所述主控器中存储有权利要求1至8中任一所述的车牌识别方法步骤,以供主控器执行识别车辆图像数据中的车牌号码。
为了实现上述目的,根据本发明的第四个方面,还提供了一种可读存储介质,其上存储有计算机程序,其种所述计算机程序被处理器执行时实现如上述中任一所述的车牌识别方法的步骤。
本发明提供的该车牌识别方法及其***、可读存储介质,其优点在于,采用了单个深度学习模型,通过一个过程来解决了车牌识别问题,并且识别速度和准确度,相比传统的图像处理方法或传统图像处理结合深度学习的方法更优秀;同时本案的识别准确率可随着数据集的增多无限接近100%,而不受传统的处理方法精度和速度上的限制;此外本案通过一个模型便可满足对不同种类车辆、不同颜色车牌、不同车牌号位数的检测和定位,而无需对特殊的车牌颜色采取特殊的处理,因此相比现有技术具有显著进步。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明第一实施例的步骤流程示意图;
图2为本发明第一实施例中最小外接矩形的定义示意图;
图3为本发明第一实施例中车辆及车牌识别示例示意图。
具体实施方式
下面对本发明的具体实施方式进行详细地说明。以下示例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本领域的技术人员更好的理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“S1”、“S2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
(一)
请参阅图1所示,为了实现发明目的,本发明的实施例,提供了一种车牌识别方法,其步骤包括:
步骤S1 制作数据集
其中该数据集的制作过程包括:
步骤S11获取车辆图像:示例中如以常见的车辆种类:轿车,客车,卡车,摩托车,自行车,等现有车型为例,通过搜索引擎,或现有技术任一方法搜集该些车辆的公开图像,或从开源的多种类数据集中抽取这四类的图像,也可以从路口的摄像头存取的视频中采集。
之后将收集到的数据集按预设比例进行分选,示例中如按6:2:2的比例分为三份,分别为:训练集,验证集,测试集;其中训练集用来进行模型的训练,直接影响模型的优劣;验证集用来在训练过程中评估训练的优化程度;测试集用于训练结束后评估模型的实用性,一般来说可以按这个比例分配,但如果是用于工业应用中,测试集需要占更大的比例,甚至可以达到与训练集1:1的比例,因此本实施例中的相关分选比例仅为示例而未做限制,本领域技术人员可以根据实际情况的需要进行比例的调整。
其中该收集的车辆图像中,可含有一辆车或多辆车的图像,不要求车辆本身是完整的,但要求车牌号是完整的,可以有不同角度,不同光照条件下,不同天气背景下等各种情景下的图像,但要求车牌号是肉眼可见的。
步骤S12图像数据标注:其中训练集,验证集,测试集中只有训练集和验证集需要进行标注,测试集不需要进行标注;标注就是用标注工具对图像中出现上述各类车辆打标签,以及对该车辆的车牌中的每个字符打标签,值得一提的是,在优选实施方式下,该标签中优选包含该车辆和每个字符的种类,以及车辆和每个字符的最小外接矩形的左上角定点坐标和右下角定点坐标。
示例中如以中国境内轿车(car),客车(bus),卡车(truck),摩托车(motorbike)4类车牌为例进行说明,其中车牌的组成中包括38个汉字(34个省份中有四个省份对应着两个汉字,例如甘肃有拢和甘,四川有川和蜀,贵州有黔和贵,云南有滇和云)24个英文字母(没有I和O),10个数字(0-9),再加上4种车辆,一共76个种类,其中若标签中要使用英文字符,则可以用拼音代替汉字,考虑到有的汉字发音相同,且有四个省份有两个对应的汉字,因此为了做出区分,示例中该38个汉字可用对应的省份的英文名称,加下划线加该汉字的拼音,例如“苏”对应的标签中的符号是Jiangsu_su,然后制作一个汉字到标注标签中的代表字符的表格,以供后续需要汉字的时候进行取用。例如一张只有一辆客车的图像,该客车的车牌号为:苏E05EV8,该图像对应的标签示例为:
bus left top right bottom
Jiangsu_su left top right bottom
E left top right bottom
0 left top right bottom
5 left top right bottom
E left top right bottom
V left top right bottom
8 left top right bottom
其中left为其对应种类的对象的最小外接矩形的左上角顶点的x坐标,top为左上角定点的y坐标,right为右下角顶点的x坐标,bottom为右下角顶点的y坐标。
为了进一步说明该最小外接矩形的定义,如图2所示,图像的坐标系为向右的X轴和向下Y轴,例如:一张图像的左上角的顶点就是该坐标系的原点,坐标为(0,0),如图2所示,字符【京】是车牌中的一个字符,本案中用矩形来将这个字符包围起来,能将这个字符包围起来的矩形中最小的那个矩形就是该字符的最小外接矩形,也就是上图中【京】外层的矩形.
利用这个矩形在图像坐标系中的位置来表示【京】这个字符所处图像坐标系中的位置,而表示一个矩形的位置只需要两个点的坐标就可以,此外矩形左上顶点的坐标和右下顶点的坐标,如图2所示,用left表示左上顶点的X轴坐标,right表示右下顶点的X轴坐标,top表示左上顶点的Y轴坐标,bottom表示右下顶点的Y轴坐标。所以,(left,top)即是左上顶点的坐标,(right,bottom)即是右下顶点的坐标。这两个点的四个值就确定了这个字符在图像中的位置。
可见通过上述外接矩形的设计方案,显著区别于现有技术中标注整体的车牌方案,本发明示例中该种标注到车牌中具体每个字符的方法,可以有效实现以一个过程识别定位到每个具体的车牌符号。
步骤S2基础模型选择
理论上本发明的方案支持所有主流的目标检测基础模型,如:yolov3,yolov4,yolov5,centernet等,但由于前述提到的标注方式是把每个字符都作为单独目标进行标注,因此会出现一个问题,就是待识别的目标是很小的目标,就是该目标的面积占整张图像的比例很小,这会导致直接应用在这些基础模型上时无法得到满意的处理结果。
为此就需要基于基础模型对出现的问题,进行针对性的二次设计。如示例中虽以yolov3作为基础模型为例进行说明,以针对出现的问题对yolov3做二次的设计,但需要说明的是,本实施例下并未限制该基础模型的种类,任何根据本实施例构思下的针对其它基础模型所做出的与本案同等构思的二次设计方案,皆在本实施例的揭露范围中。
步骤S3模型二次设计
由于本实施例的方案,提出的是以单个字符为目标进行标注训练,因此将带来三个难题:
其一,单个字符目标太小,即大部分的字符种类都是很小的目标,将会给检测带来了难度。
其二,车牌中的每个字符排列紧密、间隔距离较小,且这些字符的尺寸基本相同,这种特性带来的挑战更大,会导致严重的标签被重写的问题。因为yolo3特殊的每个网格的每个anchor负责预测一个目标的特点,所以当遇到这种目标相隔较近且尺寸相同的数据集时,很容易就出现了多个车牌字符被分配给了所在网格的某个anchor中,而由于一个anchor只接收一个目标,所以其余的车牌字符就被当成背景给忽略了。
其三,原本的yolov3模型会输出所有被检测到的目标,但这些目标是无序的,而车牌号是有序的。
因此在优选实施方式下,因此为了解决上述问题,该模型二次设计的步骤包括:
步骤S31:将模型的输入图像的尺寸进行增大处理,如示例中可由416X416增大为1280X1280,籍此以在经过多层网络结构的特征提取后还能保留一定的信息。值得一提的是,该步骤S31中增大模型的输入图像尺寸的方案,还能在一定程度上改善甚至消除多个车牌号可能出现在一个网格中从而导致出现标签重写现象这个问题,原因在于,增大输入图像的尺寸处理过程中,通常会采用做剪切拼接等数据增强处理手段来处理车牌号附近区域,因此会增大车牌号附近局部区域的分辨率,籍此利用这个现象可以降低多个车牌号被分配给一个网格的几率,籍此当一个网格中若已没有那么多被分到的目标时,就可消除及改善标签重写的问题。
步骤S32:
步骤A1 对训练集中的标签进行处理,如对每一个被标注的对象的最小外接矩形框做聚类分析,得到属于该训练集的anchors,例如得到的anchors的结果可以是:
[8,6, 10,7, 11,10]
[28,20, 47,62, 71,132]
[108,96, 137,168, 356,284]
三组anchors对应yolov3的三个分支,即3个heads,每个heads都会输出各自的检测结果;
步骤A2:对yolov3的backbone进行改进,原始的backbone结构如下:
# [from, number, module, args]
[
[-1, 1, Conv, [32, 3, 1]],
[-1, 1, Conv, [64, 3, 2]], #s1
[-1, 1, Bottleneck, [64]], #p1
[-1, 1, Conv, [128, 3, 2]], #s2
[-1, 2, Bottleneck, [128]], #p2
[-1, 1, Conv, [256, 3, 2]], #s3
[-1, 8, Bottleneck, [256]], #p3
[-1, 1, Conv, [512, 3, 2]], #s4
[-1, 8, Bottleneck, [512]], #p4
[-1, 1, Conv, [1024, 3, 2]], #s5
[-1, 4, Bottleneck, [1024]]#p5
]
考虑到大部分的字符都是很小的目标,所以进行backbone的设计时,会考虑网络结构的深度对小目标的影响,但又要保持模型拥有足够的拟合能力,又因为输入的图像尺寸增大到了1280,这会导致计算量增大了好多倍,所以也需要降低模型的深度减小计算量,经过实验,优选删除p1,而p2~p4的number数降低一倍,为了更好的拟合,p5保持不变;对于s1~s5,为了保留更多的信息,最接近输入图像的s1保留,s2和s4的卷积步长改为1,接近输出端的s5保持不变;更改后的backbone结构如下:
# [from, number, module, args]
[
[-1, 1, Conv, [32, 3, 1]],
[-1, 1, Conv, [64, 3, 2]], #s1
[-1, 1, Conv, [128, 3, 1]], #s2
[-1, 1, Bottleneck, [128]], #p2
[-1, 1, Conv, [256, 3, 2]], #s3
[-1, 4, Bottleneck, [256]], #p3
[-1, 1, Conv, [512, 3, 1]], #s4
[-1, 4, Bottleneck, [512]], #p4
[-1, 1, Conv, [1024, 3, 2]], #s5
[-1, 4, Bottleneck, [1024]]#p5
]
步骤A3:对yolov3的检测头进行改进:原始的检测头结构如下:
head:
[[-1, 1, Bottleneck, [1024, False]],#h1_1
[-1, 1, Conv, [512, [1, 1]]], #h1_2
[-1, 1, Conv, [1024, 3, 1]],
[-1, 1, Conv, [512, 1, 1]], #h1_4
[-1, 1, Conv, [1024, 3, 1]],
[-2, 1, Conv, [256, 1, 1]], #h2_1
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 8], 1, Concat, [1]], #h2_3
[-1, 1, Bottleneck, [512, False]],
[-1, 1, Bottleneck, [512, False]],
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, Conv, [512, 3, 1]],
[-2, 1, Conv, [128, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 6], 1, Concat, [1]], #h3_3
[-1, 1, Bottleneck, [256, False]],
[-1, 2, Bottleneck, [256, False]],
[[27, 22, 15], 1, Detect, [nc, anchors]], #h3_6
]
对于heads中的第一个分支,本来第一个分支得到的是尺寸较小的特征图,负责检测尺寸较大的目标,但上面的修改成增大了输出尺寸和降低了s2和s4的卷积步长,导致四类车辆这些目标的检测受到影响,所以这里要做出补偿,h1_2和h1_4中的卷积步长改为2,让其负责四类车的检测;
对于heads中的第二个分支,本来第二个分支得到的是尺寸中等的特征图,负责检测尺寸中等的目标,考虑到图像中大部分是小目标的车牌字符和大目标的四种车辆,即使有些车辆会以中等尺寸的形式出现在图像中,不过这部分情况占的比例还是比较小,所以适当修改第二个分支,让其负责中小尺寸的目标,同样地,h2_3中合并两个特征输出时,一个是上一层的,另一个要改成backbone中的s3的输出,即[-1,8]改为[-1,6];
对于heads中的第三个分支,本来第三个分支得到的是尺寸较大的特征图,负责检测尺寸较小的目标,对应本发明中的一个个车牌字符,与第二分支的修改原因相同,h3_3中的[-1,6]改为[-1,4],h3_6中的nc赋值76,代表一共的种类数目。
所以改进后的heads结构为:
head:
[[-1, 1, Bottleneck, [1024, False]],#h1_1
[-1, 1, Conv, [512, [1, 2]]], #h1_2
[-1, 1, Conv, [1024, 3, 1]],
[-1, 1, Conv, [512, 1, 2]], #h1_4
[-1, 1, Conv, [1024, 3, 1]],
[-2, 1, Conv, [256, 1, 1]], #h2_1
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 6], 1, Concat, [1]], #h2_3
[-1, 1, Bottleneck, [512, False]],
[-1, 1, Bottleneck, [512, False]],
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, Conv, [512, 3, 1]],
[-2, 1, Conv, [128, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 4], 1, Concat, [1]], #h3_3
[-1, 1, Bottleneck, [256, False]],
[-1, 2, Bottleneck, [256, False]],
[[27, 22, 15], 1, Detect, [76, anchors]], #h3_6
]
这里需要重点提及的是,为了在一定程度上改善甚至消除出现标签重写现象这个问题,此处的这种增大输出的特征图尺寸手段,也是避免这一现象的另一个做法。例如本来的输出特征图是13*13的尺寸,图像中的所有目标被分配到这13*13个网格中,距离较近小目标会更容易分到同一个网格中,但如果根据上述实施例的技术手段,将上述h3_3中的[-1,6]改为[-1,4],则输出特征图尺的寸上会增加一倍,面积上增加了4倍,这样图像中的目标会被分到26*26的网格中,多个目标被分到一个网格中的现象会有效降低;再加之上文提到的增大输入图像的尺寸步骤,会同比增大输出特征图的尺寸,这样输出特征图尺寸还会进一步增大相应的倍数(同比等于输入图像增大的倍数),显然多个目标被分到一个网格中的情况会得到很大改善,籍此当一个网格中若已没有那么多被分到的目标时,就可消除及改善标签重写的问题。
可见本发明在设计构思上,为了解决上述第一及第二个难题,本案巧妙的提出了增大输入图像的尺寸和通过二次设计网络增大了输出特征图的尺寸的方案,但根本地,还是要让每个anchor可以负责多个目标,即使这些目标尺寸相近,但这个思路与yolo最基本的思想是相背的,为此本案做了一个巧妙的设计,让每个anchor仍然负责一个目标的预测,但第三个分支(因为第三个分支主要预测车牌字符这样的小目标)每个网格分配的三个尺寸相似anchor,且把相似尺寸的目标分散的分配给这三个anchor,而不是都分配给某一个,这样就可以有效地避免标签被重写现象发生。
步骤S33:进行后处理改写
由于上述yolov3模型会输出所有被检测到的目标,但这些目标是无序的,而车牌号是有序的。因此还需要对输出的目标进行后处理,如设定每个被检测输出的车牌字符,每个被检测出的车辆为,每个都有四个位置坐标:,,,,分别为字符所在矩形的左上角顶点的x坐标,y坐标和右下角定点的x坐标,y坐标.
每个都有四个位置坐标,,,,分别为字符所在矩形的左上角顶点的x坐标,y坐标和右下角定点的x坐标,y坐标,若 ≧ ≧ 且 ≧ ≧ ,则断定字符属于车辆的其中一个车牌字符,然后对所有属于车辆的字符根据其的大小进行排序,即可得到属于车辆的完整且有序的车牌号集合。
如图3示例所示,图像中有两辆车,car1和car2,Q1是car1的最小外接矩形,Q2是car2的最小外接矩形,每辆车内都有7个车牌字符,用Pi表示每个字符的最小外接矩形,如P1,P2...P7,每张图像输入后会得到该图像内所有要检测目标(车辆和车牌字符)的一个数组如包括:
(class,confidence,left,top,right,bottom);
Class为该目标的种类,是车,还是某个字符,confidence为置信度,left,top,right,bottom表示该目标所在位置的四个值。上图中的(,)即为车辆car1的最小外接矩形Q1的左上顶点的坐标,上图中的(,)即为车辆car1的最小外接矩形Q1的右下角顶点的坐标,上图中的(,)即为字符【京】的最小外接矩形P1的左上顶点的坐标,以此类推,每个车辆及每个字符都有此类坐标。但模型输出的这些数组(class,confidence,left,top,right,bottom)是无序的,但车牌号本身是有序的,
如一张图像中有2辆车,牌号是【京AF0236】和【苏E730V7】,模型只会输出2组车辆的信息,和14组字符的信息:
如:
(car1,0.83,23,86,435,538),
(car2,confidence,left,top,right,bottom),
如:
(F,0.92,124,254,131,270)
(6,confidence,left,top,right,bottom)
(京,confidence,left,top,right,bottom)
(7,confidence,left,top,right,bottom)
(0,confidence,left,top,right,bottom)
(A,confidence,left,top,right,bottom);
从这些信息中根据上述方案进行信息整合,即可得到属于每辆车的车牌字符,并确保这些字符从左到右是有序排列的。
可见本发明在设计构思上,为了解决上述第三个难题,巧妙的针对每个字符目标判断是在哪个车辆目标内,然后对同一车辆目标内的字符目标,根据其左上角的位置结果进行排序,籍此便可解决对每辆车无序的车牌号码进行排序的问题,从而得到属于某辆车的有序车牌号码,由此实现通过采用单个深度学习模型,通过一个过程来解决车牌识别问题。
(二)
此外在另一优选实施方式下,为了提升二次设计后的模型的识别效果,本发明提供的该车牌识别方法还包括:步骤S4模型训练和优化步骤,具体来说,即用上文实施例一中收集和标注好的数据集,训练二次设计后的模型。其中在优选实施方式下,该模型优化训练时的损失函数包括:
其中第一项是框的中心坐标误差:当第 i 个网格的第 j 个anchor box负责某一个真实目标时,那么这个anchor box所产生的bounding box就应该去和真实目标的box去比较,计算得到中心坐标误差。
其中第二项是框的宽高坐标误差:这里没有对w和h进行开方,是为了增大宽高的权重;当第 i 个网格的第 j 个anchor box负责某一个真实目标时,那么这个anchor box所产生的bounding box就应该去和真实目标的box去比较,计算得到宽高的误差。
其中第三项和第四项是置信度误差: 置信度误差使用交叉熵来表示,分为有物体和没有物体两项,因为交叉熵的原因,这两项前面的系数都是负的,第五项也是同样的道理。
其中第五项是分类误差:当第 i 个网格的第 j 个anchor box负责某一个真实目标时,那么这个anchor box所产生的bounding box才会去计算分类损失函数。
通过设计不同组合的超参数包括学习律,输入图像尺寸,batch_size,epoch等现有模型训练所需参数,对每个训练得到的模型在测试集上进行测试,综合对比测试结果,如果测试结果不满意,则根据测试集的表现反推需要优化的地方,然后重复上述步骤,若测试结果满意,选取效果最好的模型作为最终模型。
(三)
本发明另一方面,还提供了一种车牌识别***,其中,由于本发明的上述实施例方案采用纯深度学习的方法,来对车牌进行识别操作,且是端到端只使用一个模型即可从图像或视频流中得到最终的车牌,这种方法不仅精度高速度快,在应用领域上也更加广泛,不仅可以在gpu服务器上可以很好的部署运行,还可以在对模型进行量化剪枝后部署到边缘设备上,这是使用传统的图像处理方法或使用两个深度学习模型的方案所不具有的优势,也是本发明的特点之一。
例如在优选实施方式中,该车牌识别***包括:主控器,摄像机,所述摄像机与主控器连接,以向主控器传输车辆图像数据,其中所述主控器中存储有实施例一至二所记载的任一的车牌识别方法,以供主控器识别车辆图像数据中的车牌号码。其中在示例中,该主控器可采用海思的hi3519核心板制成,由于其体积较小,可便于放在普通的摄像机的机体内,由此即可得到一个具有实时识别车牌号的车牌识别***,而这样的***由于和摄像机一体化,不仅体积小预算小,相比传统技术需要大体积高运算的gpu电脑,更能应用在更多场景内。
此外在另一优选实施方式中,还可以构建线上模式的车牌识别***,其中该***包括:服务器,摄像机,所述摄像机与服务器连接,以向服务器传输车辆图像数据,其中所述服务器中存储有实施例一至二所记载的任一的车牌识别方法,以供服务器识别车辆图像数据中的车牌号码。其中在示例中,采用服务器对各地摄像机传输的车辆图像数据进行识别处理,可以对大量图像进行快速的批量识别,还可以进行在线的实时识别,从而提升识别效率。
(四)
本发明另一方面,还提供了一种可读存储介质,其上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上述实施例一至二中任一所述的车牌识别方法的步骤。
综上所述,本发明提供的该车牌识别方法及其***,克服了现有技术的不足,以采用单个深度学习模型,通过一个过程来解决了车牌识别问题,并且识别速度和准确度,相比传统的图像处理方法或传统图像处理结合深度学习的方法更优秀;同时本案的识别准确率可随着数据集的增多无限接近100%,而不受传统的处理方法精度和速度上的限制;此外本案通过一个模型便可满足对不同种类车辆、不同颜色车牌、不同车牌号位数的检测和定位,而无需对特殊的车牌颜色采取特殊的处理,因此相比现有技术具有显著进步。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本领域技术人员可以理解,除了以纯计算机可读程序代码方式实现本发明提供的***、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的***、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
此外实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
Claims (9)
1.一种车牌识别方法,其特征在于步骤包括:
S1 制作数据集:采集车辆图像数据,并根据第一法则对其中车辆及其车牌图像数据中的每个字符进行标注;
S2选择基础模型并进行二次设计,其中二次设计步骤包括:将模型的输入图像数据的尺寸进行增大处理包括:经数据增强处理手段来处理车牌号附近区域,以增大车牌号附近局部区域的分辨率;对步骤S1标注的对象的最小外接矩形框做聚类分析,以获取数据集的anchors并设置模型的heads中负责预测车牌字符的分支来增大模型的输出特征图的尺寸;对模型进行后处理改写,将模型输出的无序的识别结果根据第二法则进行排序。
2.根据权利要求1所述的车牌识别方法,其特征在于,所述第一法则包括:将车辆图像数据按预设比例分选为:训练集,验证集,测试集,针对训练集和验证集中的车辆及其车牌图像数据中的每个字符进行标注。
3.根据权利要求1所述的车牌识别方法,其特征在于,所述标注步骤包括:对图像数据中的车辆种类打标签,及对对应车辆的车牌中的每个字符打标签,且所述标签包含:车辆及其车牌中每个字符的种类,以及车辆和其对应车牌中每个字符的最小外接矩形的左上角定点坐标和右下角定点坐标。
4.根据权利要求1所述的车牌识别方法,其特征在于,所述二次设计步骤还包括:对模型的检测头进行设置,步骤包括:令检测头中的第一个分支,做出补偿,修改h1_2和h1_4中的卷积步长,并使其负责车辆种类的检测;令检测头中的第二个分支,负责车辆种类及车牌字符检测;令检测头中的第三个分支,负责车牌字符检测,其中h1_2意为yolov3的第一个检测头head的第2层结构,h1_4意为yolov3的第一个检测头head的第4层结构。
5.根据权利要求1所述的车牌识别方法,其特征在于,所述第二法则包括:判断各车牌字符目标位处哪个车辆目标内;对同一车辆目标内的字符目标根据其左上角的位置结果进行排序。
6.根据权利要求1所述的车牌识别方法,其特征在于,还包括步骤S3模型训练和优化,其步骤包括:预设超参数组合对步骤S2中二次设计后的模型进行训练;对每个训练得到的模型在测试集上进行测试;对比测试结果以进行优化;重复前述步骤,直至模型达标。
7.一种车牌识别方法,其特征在于步骤包括:
S1 制作数据集:采集车辆图像数据,并根据第一法则对其中车辆及其车牌图像数据中的每个字符进行标注;其中所述标注步骤包括:对图像数据中的车辆种类打标签,及对对应车辆的车牌中的每个字符打标签,且所述标签包含:车辆及其车牌中每个字符的种类,以及车辆和其对应车牌中每个字符的最小外接矩形的左上角定点坐标和右下角定点坐标,
S2选择基础模型并进行二次设计,其中二次设计步骤包括:将模型的输入图像数据的尺寸进行增大处理包括:经数据增强处理手段来处理车牌号附近区域,以增大车牌号附近局部区域的分辨率;对步骤S1标注的对象的最小外接矩形框做聚类分析,以获取数据集的anchors并设置模型的heads中负责预测车牌字符的分支来增大模型的输出特征图的尺寸后,输出无序的识别结果;
8.一种车牌识别***,其特征在于包括:主控器,摄像机,所述摄像机与主控器连接,以向主控器传输车辆图像数据,其中所述主控器中存储有权利要求1至7中任一所述的车牌识别方法步骤,以供主控器执行识别车辆图像数据中的车牌号码。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的车牌识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288251.0A CN113723408B (zh) | 2021-11-02 | 2021-11-02 | 一种车牌识别方法及其***、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288251.0A CN113723408B (zh) | 2021-11-02 | 2021-11-02 | 一种车牌识别方法及其***、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113723408A CN113723408A (zh) | 2021-11-30 |
CN113723408B true CN113723408B (zh) | 2022-02-25 |
Family
ID=78686440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111288251.0A Active CN113723408B (zh) | 2021-11-02 | 2021-11-02 | 一种车牌识别方法及其***、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113723408B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116310390B (zh) * | 2023-05-17 | 2023-08-18 | 上海仙工智能科技有限公司 | 一种空心目标的视觉检测方法及***、库位管理*** |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160292A (zh) * | 2015-07-07 | 2015-12-16 | 深圳市捷顺科技实业股份有限公司 | 一种车辆标识识别方法与*** |
CN107730904A (zh) * | 2017-06-13 | 2018-02-23 | 银江股份有限公司 | 基于深度卷积神经网络的多任务车辆逆向行驶视觉检测*** |
CN107729801A (zh) * | 2017-07-11 | 2018-02-23 | 银江股份有限公司 | 一种基于多任务深度卷积神经网络的车辆颜色识别*** |
CN108171136A (zh) * | 2017-12-21 | 2018-06-15 | 浙江银江研究院有限公司 | 一种多任务卡口车辆以图搜图的***及方法 |
CN108241822A (zh) * | 2016-12-23 | 2018-07-03 | 杭州海康威视数字技术股份有限公司 | 一种车辆类型的识别方法及装置 |
CN109165643A (zh) * | 2018-08-21 | 2019-01-08 | 浙江工业大学 | 一种基于深度学习的车牌识别方法 |
CN110222593A (zh) * | 2019-05-18 | 2019-09-10 | 四川弘和通讯有限公司 | 一种基于小规模神经网络的车辆实时检测方法 |
CN111079744A (zh) * | 2019-12-06 | 2020-04-28 | 鲁东大学 | 适用于复杂光照环境的车辆车牌智能识别方法及装置 |
CN111523415A (zh) * | 2020-04-13 | 2020-08-11 | 北京巨视科技有限公司 | 一种基于图像的两客一危车辆检测方法和装置 |
CN111680556A (zh) * | 2020-04-29 | 2020-09-18 | 平安国际智慧城市科技股份有限公司 | 交通卡口车辆类型的识别方法、装置、设备及存储介质 |
CN112308061A (zh) * | 2020-11-20 | 2021-02-02 | 珠海大横琴科技发展有限公司 | 一种车牌字符排序方法、识别方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104217217B (zh) * | 2014-09-02 | 2017-06-30 | 武汉睿智视讯科技有限公司 | 一种基于两层分类的车辆标志物检测方法与*** |
CN106570477B (zh) * | 2016-10-28 | 2019-07-16 | 中科视语(北京)科技有限公司 | 基于深度学习的车型识别模型构建方法及车型识别方法 |
CN112966631A (zh) * | 2021-03-19 | 2021-06-15 | 浪潮云信息技术股份公司 | 一种无限制安防场景下的车牌检测识别***及其方法 |
CN113205026B (zh) * | 2021-04-26 | 2022-08-16 | 武汉大学 | 一种基于Faster RCNN深度学习网络改进的车型识别方法 |
-
2021
- 2021-11-02 CN CN202111288251.0A patent/CN113723408B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160292A (zh) * | 2015-07-07 | 2015-12-16 | 深圳市捷顺科技实业股份有限公司 | 一种车辆标识识别方法与*** |
CN108241822A (zh) * | 2016-12-23 | 2018-07-03 | 杭州海康威视数字技术股份有限公司 | 一种车辆类型的识别方法及装置 |
CN107730904A (zh) * | 2017-06-13 | 2018-02-23 | 银江股份有限公司 | 基于深度卷积神经网络的多任务车辆逆向行驶视觉检测*** |
CN107729801A (zh) * | 2017-07-11 | 2018-02-23 | 银江股份有限公司 | 一种基于多任务深度卷积神经网络的车辆颜色识别*** |
CN108171136A (zh) * | 2017-12-21 | 2018-06-15 | 浙江银江研究院有限公司 | 一种多任务卡口车辆以图搜图的***及方法 |
CN109165643A (zh) * | 2018-08-21 | 2019-01-08 | 浙江工业大学 | 一种基于深度学习的车牌识别方法 |
CN110222593A (zh) * | 2019-05-18 | 2019-09-10 | 四川弘和通讯有限公司 | 一种基于小规模神经网络的车辆实时检测方法 |
CN111079744A (zh) * | 2019-12-06 | 2020-04-28 | 鲁东大学 | 适用于复杂光照环境的车辆车牌智能识别方法及装置 |
CN111523415A (zh) * | 2020-04-13 | 2020-08-11 | 北京巨视科技有限公司 | 一种基于图像的两客一危车辆检测方法和装置 |
CN111680556A (zh) * | 2020-04-29 | 2020-09-18 | 平安国际智慧城市科技股份有限公司 | 交通卡口车辆类型的识别方法、装置、设备及存储介质 |
CN112308061A (zh) * | 2020-11-20 | 2021-02-02 | 珠海大横琴科技发展有限公司 | 一种车牌字符排序方法、识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113723408A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455805B2 (en) | Method and apparatus for detecting parking space usage condition, electronic device, and storage medium | |
WO2017215622A1 (zh) | 物体分割方法及装置、计算设备 | |
CN111784685A (zh) | 一种基于云边协同检测的输电线路缺陷图像识别方法 | |
CN106557778A (zh) | 通用物体检测方法和装置、数据处理装置和终端设备 | |
CN112016605B (zh) | 一种基于边界框角点对齐和边界匹配的目标检测方法 | |
CN110264444B (zh) | 基于弱分割的损伤检测方法及装置 | |
CN111767927A (zh) | 一种基于全卷积网络的轻量级车牌识别方法及*** | |
CN109993138A (zh) | 一种车牌检测与识别方法及装置 | |
CN111797829A (zh) | 一种车牌检测方法、装置、电子设备和存储介质 | |
CN113688652A (zh) | 一种异常驾驶行为的处理方法和装置 | |
CN110334709B (zh) | 基于端到端多任务深度学习的车牌检测方法 | |
CN113076804B (zh) | 基于YOLOv4改进算法的目标检测方法、装置及*** | |
CN111738036B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN104615986A (zh) | 利用多检测器对场景变化的视频图像进行行人检测的方法 | |
CN109034086A (zh) | 车辆重识别方法、装置及*** | |
EP2447884A1 (en) | Method for detecting and recognising an object in an image, and an apparatus and a computer program therefor | |
CN113723408B (zh) | 一种车牌识别方法及其***、可读存储介质 | |
CN112819748A (zh) | 一种带钢表面缺陷识别模型的训练方法及装置 | |
CN112184679A (zh) | 一种基于YOLOv3的酒瓶瑕疵自动检测方法 | |
CN114519819B (zh) | 一种基于全局上下文感知的遥感图像目标检测方法 | |
CN111914845A (zh) | 一种车牌中字符分层方法、装置及电子设备 | |
CN115019133A (zh) | 基于自训练和标签抗噪的图像中弱目标的检测方法及*** | |
CN114820922A (zh) | 基于复杂度的自动驾驶有效静态场景构建方法和*** | |
CN112580624A (zh) | 基于边界预测的多方向文本区域检测方法和装置 | |
CN116843983A (zh) | 路面病害识别方法、模型训练方法、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |