基于多目标优化多任务学习的端到端车牌识别方法

2021-06-19 13:25周晓君李超杰阳春华
控制理论与应用 2021年5期
关键词:多任务车牌字符

周晓君,高 媛 ,李超杰 ,阳春华

(1.中南大学自动化学院,湖南长沙 410083;2.湖南湘江人工智能学院,湖南长沙 410083)

1 引言

智慧交通是未来交通系统的发展方向,车牌自动识别是保障交通安全、提高车辆运营效率、促进绿色环保的关键技术.近年来,随着我国经济飞速发展,各类机动车数量不断增加的同时也造成了交通拥堵等问题.智慧交通技术可以对交通信号灯和道路设备进行分配调整和动态调度,从而避免和减少车辆拥堵的情况发生,实现降低能源消耗和提高城市交通运营效率的目标[1].

车牌识别是交通管理系统的一项关键技术[2],也是计算机视觉领域中的一个重要研究方向[3–4],车牌识别技术从传统图像处理方法到目前基于深度学习的方法取得了显著成效.成熟的车牌识别方法主要有基于模板匹配、特征提取和神经网络3种方法.Gou等[5]采用提取字符级的极值区域的方式,车牌字符分割后采用受限玻尔兹曼机实现单车牌字符识别.Khan等[6]提出了一种基于多特征提取和融合的方法在单车牌数据集上验证了该算法的有效性.Tabrizi等[7]提出了一种综合了k近邻算法(knearest neighbors,kNN)和支持向量机(support vector machine,SVM)的混合单车牌识别方法,在一定程度上提升了单车牌字符识别率.随着深度学习的深入研究,基于神经网络的车牌识别方法逐渐成为了研究热点[10–11].Yang等[8]提出了一种基于神经网络和极端学习机的单车牌识别方法,采用卷积神经网络提取单张车牌图像特征,并通过极端学习机对车牌识别结果进行预测,从而得到单车牌识别结果.Wang等[9]提出了基于循环神经网络的单车牌识别方法,采用卷积池化等操作来提取车牌的序列特征,提取到的特征再经过双向环神经网络进行编码,最后通过时序分类算法解码得到车牌识别结果.

从上述文献可以看出,国内外许多学者都进行了单车牌识别技术的研究并取得了丰硕的成果,然而在现实环境中,如城市要道、多车道公路路口等视野范围比较大的监视区域中,经常会同时出现多个车牌识别任务,多车牌识别技术比单车牌识别更加高效实用,并且能够减少监控器材的使用,从而达到节省人力和资金,提高交通管理效率的目的,因此,对多车牌识别方法进行深入研究显得尤为重要.在多车牌识别方法研究中,Kurian等[12]提出了一种使用垂直和水平边缘检测来定位和识别多个车牌的方法,使用本地化的概念从实时图像中提取车牌区域后对每张车牌进行字符分割和重构,从而实现了多车牌识别过程.Azad等[13]通过计算车牌图像中的字符特征和统计特征,并采用SVM一对一的方法实现了多车牌识别,在多车牌的数据集上测试验证了该方法的有效性.Du等[14]提出了一种新型的智能多车牌识别方法,该方法首先采用了基于轮廓图像的检测技术提取每张车牌区域,接着采用自适应模板匹配算法进行字符分割,最后采用基于模式匹配的方法进行车牌字符识别,实现了不同场景下的多车牌识别.Menon等[15]提出了一种在静态影像中检测和识别多车牌的方法,采用基于轮廓检测的算法提取车牌图像区域,并通过基于SVM的方法实现了车牌字符分类.Guo等[16]提出了一种多车牌识别系统,该系统中采用了分层AdaBoost算法实现了多车牌的检测,通过考虑字符之间关系对车牌字符进行分割,并采用基于朴素贝叶斯的方法实现多车牌字符识别.

在多车牌识别研究中,大多数车牌识别方法通过对多车牌图像检测出多张车牌区域,并针对每张车牌区域进行逐一识别.然而,这些方法针对每个车牌识别任务学习一个独立的模型,训练集合中的所有样本都是针对单个学习任务的训练数据,不能从其他车牌识别任务中获取更多的有用信息,忽略了不同车牌识别任务间的特征共享,子空间共享和参数共享,损失了一些存在于数据或者模型参数之间的信息,并没有最大化的提高车牌识别的效率.多任务学习的提出就是为了解决单任务学习的这种弊端,本文考虑到多车牌的识别问题中,多个任务均为车牌识别任务,在学习和训练的过程中具有较强的相似性,所以将把多个车牌识别任务可以放在一起学习.多任务学习属于迁移学习的一个具体形式,利用迁移学习的思想,将从一个车牌识别任务中所学习到的知识,迁移到另外一个任务中,作为训练样本的补充来提升每个任务的学习效果,从而为每一个车牌识别任务提供额外的训练信息,以提高所有车牌识别任务的学习效果,且多任务学习下的最高车牌识别率大多数情况下应优于充分训练下的单个识别任务.因此,本文考虑同时识别多张车牌,提高多车牌识别效率.

随着深度学习的快速发展,多任务学习也越来越受到研究者的关注.根据多个任务之间的关系,多任务学习可以大致分为以下3类:基于特征分享的多任务学习方法、基于模型参数分享的多任务学习方法和基于深度学习的多任务学习方法.Liu等[17]通过算法稳定性证明了多任务学习算法依赖泛化误差上界.Long等[18]提出了一种基于张量先验的多任务学习深度关系网络,通过联合学习可转移的特性和任务关系,能够缓解在特征层中负转移的困境和分类器层的低转移.Misra等[19]根据任务需求需要设计不同的共享层的问题,设计了“十字绣”单元,通过端对端的学习来自动决定共享层.Kendall等[20]提出了一种多任务损失函数的权重学习方式,使用任务间的同方差不确定性给每个损失函数赋权.Chen等[21]为解决多任务的梯度不平衡问题,提出了一种梯度归一化的方法,动态调整任务权重,可以帮助神经网络系统更快地收敛,提升整体性能.然而,这种基于启发式的权重学习方法却难以保证找到多任务学习问题的最优解,并且当目标存在冲突时,传统的基于单目标优化的多任务学习方法存在难以确定多个任务的权值,各个目标之间的量纲不统一可能会造成鲁棒性较差,只能逼近凸的帕累托前沿面等问题.在多任务学习中,学习多个任务就会产生多个优化目标,如何充分考虑任务之间的相关性,使某些任务尽可能的优化,但却不影响其他任务的优化,即直接求解多目标优化问题中的帕累托最优解.

本文针对多个车牌识别任务之间存在竞争和冲突,导致难以同时提高多个车牌的识别率的问题,提出了基于多目标优化多任务学习的端到端车牌识别方法研究.首先,分析某些车牌识别任务容易占主导地位,而其他任务无法得到充分优化的基础上,建立了基于多任务学习的车牌识别模型.接着,针对字符分割造成车牌识别准确率较低、鲁棒性较差的问题,提出了基于多任务学习的端到端车牌识别方法,实现无分割车牌识别,整个框架全部由深度神经网络通过学习自主获得,进行端到端的训练缩短了模型的训练时间.最后,提出了一种基于多目标优化的多任务学习的方法,在多个车牌识别任务之间进行权衡,以提高多个车牌识别的准确率.

本文其余部分的内容安排如下:第2节建立了多车牌识别问题的模型;第3节详细描述了基于多目标优化多任务学习的端到端车牌识别方法;第4节给出了算法的性能测试实验和仿真结果分析;最后,第5节总结了本文贡献,并说明未来研究工作.

2 多车牌识别问题建模

视野范围比较大的监视区域中,经常会同时出现多个车牌识别任务.基于此,本文提出一种基于多任务学习的端到端车牌识别模型,下面对多车牌识别问题及其建模过程进行详细介绍.

2.1 多车牌识别问题描述

车牌自动识别作为智能交通系统的重要组成部分,可以为智能交通提供高效和实用的管理方法,车牌自动识别有着非常广泛的应用范围和应用前景.在视野宽阔的现实环境中,例如城市的主要道路、多车道公路路口等,这些地方的监视区域更加复杂,通常会同时出现多辆汽车,如图1所示.

图1 多车牌识别场景Fig.1 The scene of multiple license plate recognition

多车牌识别比单车牌识别更加高效实用,将一个摄像机对多车道进行监控,拍摄的图像所包含车牌更多,能够实时监测到违反交通灯、车辆压线等违章行为.因此,多车牌识别技术能够有效地节省人力和资金,减少监控器材的使用及其维护的费用,为智能交通提供高效和实用的管理方法,所以对多车牌识别方法进行深入研究是至关重要的。

2.2 基于多任务学习的端到端车牌识别模型

在深度神经网络中,常用的多任务学习方法通常是通过共享隐藏层参数来完成[22–23],本文采用了参数硬共享机制,利用多任务学习策略挖掘多个车牌识别任务之间有价值的共享信息,建立基于多任务学习的端到端车牌识别模型.

本文建立的基于多任务学习的端到端车牌识别模型结构设计受Sener等[24]启发,模型的结构参数如表1所示.基于多任务学习的端到端车牌识别模型中的基本块(Basic block)结构参数如表2所示.在基于多任务学习的端到端车牌识别模型结构中,除开最后一层外,其余中间层(第1–11层)均视为车牌识别模型的共享层,使用这些共享层来提取共有的通用特征,为了保证每个车牌识别任务的独特性,将最后一层(第12层)视为模型的任务特定层,针对每个不同的车牌识别任务设置任务特定层来提取任务特定的特征,基于多任务学习的端到端车牌识别模型架构如图2所示.

图2 基于多任务学习的端到端车牌识别模型架构Fig.2 Architecture of end-to-end license plate recognition model based on multi-task learning

表1 基于多任务学习的端到端车牌识别模型参数Table 1 Parameters of end-to-end license plate recognition model based on multi-task learning

表2 Basic block结构参数Table 2 Parameters of Basic block

在Basic block结构中,每次卷积操作后使用批量标准化和非线性的ReLU激活函数,随着网络层数增加,可以缓解深度网络中的梯度弥散现象.基于多任务学习的端到端车牌识别模型结构中,在第2、第4和第7层均采用最大值池化法,可以有效缓解平均池化法导致图像模糊的问题,增加车牌图像特征的多样性.接着,在第8层和第10层均采用Dropout方法,采用这种正则化的方法来学习共同特征,既耦合了任务,又增强了稀疏性.在共享层的最后一层,即第11层根据本地字符的上下文采用了1×13的宽卷积.在此基础上,为了进一步提高车牌识别模型性能,采用全局上下文嵌入增强了预解码器的中间特征映射[25],通过全连接层对模型共享层的输出进行计算,随后将其平铺到所需的大小,再与模型共享层的输出拼接起来.最后,在任务特定层,即第12层使用了1×1的卷积层以映射到每一个字符类的特征深度.

基于多任务学习的端到端车牌识别模型的输入是94×24像素的多车牌图像,模型的多个输出分别对应每张车牌的字符概率序列.在训练完基于多任务学习的端到端车牌识别模型之后,即在推理阶段的解码过程中,本文采用了集束搜索方法用来求解车牌字符的最大概率序列,这种方法考虑了更多的候选搜索空间,能够保证车牌字符输出序列的总概率最大化.这种基于多任务学习的端到端车牌识别方法,无需车牌字符分割,整个框架全部由深度神经网络通过学习自主获得,深度神经网络能够直接从原始图像中提取特征,对图像几何变换、形变等具有高度的不变性,适合自然场景下各种复杂多车牌图像的识别,进一步提高了基于多任务学习的端到端车牌识别效率以及泛化能力.

3 基于多目标优化多任务学习的端到端车牌识别方法

多任务学习本质上也是多目标问题,因为多个车牌识别任务之间会产生冲突,容易造成某些车牌识别任务占主导地位,而其他任务无法得到充分优化,所以需要在各个车牌识别任务之间进行权衡.基于此,本文提出一种基于多目标优化多任务学习的端到端车牌识别方法,以提高多个车牌识别的准确率.

3.1 损失函数以及多目标优化的相关定义

考虑一个在输入空间χ和一组多车牌识别任务空间{yt}t∈[T]上的多任务学习问题,多车牌数据集的数据点为其中:T表示车牌识别任务的个数,N表示训练数据点的个数,表示第i个数据点的第t个车牌识别任务标签,则每个车牌识别任务的函数表达式为

其中:θsh表示车牌识别任务的共享参数,θt表示关于车牌识别任务的特定参数.第t个车牌识别任务的损失函数由下列式子表示:

本文提出的多车牌识别问题由T个相关的车牌识别任务及其损失函数的向量组成,可以由下列式子表示:

式(3)是关于车牌识别的一个多目标优化问题,求解多目标优化问题最终得到的是目标之间相互权衡且相对最优的Pareto最优解.在多任务学习中,利用所有相关任务之间的共享模型和参数信息,来同时优化多个任务,下面给出了与多目标优化相关的几个定义[24,26].

定义2如果不存在解θ(θ ∈Ω)使得θ ≺θ∗,则称解θ∗为Pareto最优解,所有Pareto最优解构成的集合称为Pareto最优解集,Pareto最优解集中所有Pareto最优解在目标空间的映射形成的解集,组成Pareto最优解的目标向量值集合,该集合为Pareto最优前沿.

3.2 基于多目标优化的多任务学习方法

为了求解上述关于车牌识别的多目标优化问题,本文提出一种基于多目标优化的多任务学习方法,即种基于连接时序分类的多梯度下降算法.

在车牌识别中存在模型输出序列的长度大于标签的长度的时序问题,因为存在某些时刻没有真实对应的标签,或者输出标签为空白占位符.设空白占位符为ϵ,在车牌标签序列的首位以及每个字符的后面插入ϵ,车牌标签字符库定义为L,加入空白占位符之后为L′=L ∪{ϵ},端到端的多任务车牌识别模型任意输出序列路径为π={π1,π2,···,pin},对应车牌识别任务的标签序列为l={l1,l2,···,lm},m

定义一个多对一的映射函数φ:L′T →LT,表示给定输入序列x,能够映射到标签空间L上的所有可能输出标签序列集合.具体操作如下:1)对连续相同的车牌字符做去重处理;2)去除全部的空白占位符.例如有以下几种可能的路径,把所有最终输出结果为“京BRF210”的路径的概率的乘积作为最终该字符串的概率,虽然所有路径互异,但是不同路径最后可以映射到相同的标签序列l.

标签序列l在输入序列x下的条件分布概率等于所有满足映射关系路径的条件概率和,用公式表示为

式(5)表示对所有可能路径概率求和,在基于多任务学习的端到端车牌识别模型训练阶段的优化的目标是最小化负对数似然函数,即

这种时序策略给出一种从每一步输入时间序列的分布概率到输出序列的概率映射,标签序列在模型输出序列下的条件分布概率等于所有满足映射关系路径的条件概率和,采用这种对齐方式能够使不同的路径映射到相同的标签,最终使所有路径的概率和最大,整个过程无需车牌字符分割,使得多任务车牌识别模型的输出序列和标签序列之间学会自动对齐,从而解决车牌识别中的时序问题.

在解码过程中根据给定输入搜索概率最大的路径,对于给定输入x预测可能的车牌字符序列输出,用公式表示为

本文对共享参数θsh和任务特定参数θt的卡罗需–库恩–塔克(Karush-Kuhn-Tucker,KKT)条件如下:

D´esid´eri等[28]证明上述优化问题的解以下有两种情况:1)上述优化问题的解为0,得到的解满足上述的KKT条件;2)得到的解提供了所有车牌识别任务的下降方向.

考虑两张车牌识别任务,优化问题可以用下面的式子定义:

简化为

对式(10)求导可以解得

求解3张及其以上的多车牌识别任务时,具体流程同两张车牌识别任务一样,求解带有线性约束的凸二次型问题(8)时,本文采用了Jaggi等[29]提出的一种约束优化方法,即Frank-Wolfe算法,将目标函数作线性近似,通过求解线性规划求得可行下降方向,并沿该方向在可行域内作一维搜索来快速有效求解该优化问题.根据上述分析,基于连接时序分类的多梯度下降算法流程描述如下:

输入:训练数据x,输出序列π,容许误差0ϵ1,学习率η.

输出:优化后的共享参数θsh.

步骤1根据式(6)计算所有任务的损失函数Lt(θsh,θt),对共享参数θsh求导,得

步骤2初始化所有车牌识别任务的权重为

步骤3计算关于共享参数的梯度矩阵为M,其中

3.3 基于多目标优化多任务学习的端到端车牌识别方法流程

本文提出的基于多目标优化多任务学习的端到端车牌识别方法的详细步骤如下:

输入:训练数据x,基于多任务学习的端到端车牌识别模型,由卷积层、池化层、dropout层以及归一化激活层构成的深度神经网络,初始共享参数θsh,初始任务特定参数θt,最大迭代次数Maxgen,学习率η.

输出:车牌字符的识别结果.

步骤1根据式(6)计算所有任务的损失函数Lt(θsh,θt),对共享参数θsh求导,得到对任务特定参数θt进行求导,得到

步骤2对T个车牌识别任务特定参数进行梯度下降,

步骤3利用基于连接时序分类的多梯度下降算法用于更新共享参数梯度,即

步骤4若达到最大迭代次数Maxgen,算法终止,否则返回步骤1.

步骤5更新共享参数θsh和任务特定参数θt得到优化后的模型,对于给定的输入数据x,根据式(7)对模型的输出进行解码得到车牌字符的识别结果.

4 实验验证

为了验证所提方法的有效性,在标准车牌数据集上进行了验证性和对比性实验.

4.1 数据集介绍及实验环境

本文选用了大型中国车牌数据集(Chinese city parking dataset,CCPD),该数据集包含7个子数据集,由约28万张不同的车牌样本组成[30].考虑多车牌识别的多任务学习问题,本文采用了Zhang等[31]提出的多任务卷积神经网络(multi-task convolutional neural network,MTCNN)对多个车牌区域进行检测和提取,利用MTCNN中全卷积网络(proposal net,PNet)卷积运算代替了滑动窗口运算,并且体积小、速度快的优势确定所有可能是车牌的候选区域,再经过ONet(output Net)进行进一步确定车牌的区域,将多个车牌按左右方向以随机的方式自动拼接在一起构成多车牌训练集.本文的多车牌数据集包含正常车牌、光照不均、拍摄距离相当远或者相当近、车牌倾斜、极端天气以及其他具有挑战性的车牌图像,考虑了多种复杂环境下的多车牌识别情况.

表5列出了CCPD子数据集的相关描述和对应的训练集和测试集大小,其中每个多车牌样本的尺寸均为94×24.考虑小规模的两张车牌识别问题时,将左边车牌的识别任务视为一个任务(Task–L),将右边车牌的识别任务视为另外一个任务(Task–R),考虑更多的3张车牌识别问题时,在Task–L和Task–R的基础上,将中间车牌的识别任务视为一个任务(Task–M).

由于数据集包含不同视角、不同距离、不同照明的各种车牌样本,本文采用了Jaderberg等[32]提出了空间变换网络(spatial transformer networks,STN),对训练之前的车牌样本进行了数据预处理,具体结构参数如表3所示.STN可以自动学习变换参数并对车牌图像进行校正,使模型具有较强的空间不变性,减小了车牌图像倾斜变形的影响,增强了车牌识别的鲁棒性.

表3 STN结构参数Table 3 Parameters of STN

在测试时,本文所提方法和对比算法均先采用了相同模型参数的MTCNN检测并提取出多张车牌,将其自动拼接在一起,作为基于多任务学习的端到端车牌识别模型输入,以解决实际中复杂的多车牌识别任务.为了保证实验的公平性,实验中主要参数设置相同,如表4所示.这5个主要参数均选取的是提升模型训练的一般参数,对比性实验中采用了相同的模型,在调节任务损失函数权重上采用的不同对比方法,在调节权重的过程中,不需要提前给定额外的固定参数.因此,这种参数设置对所有对比算法都是公平的.

表4 参数设置Table 4 Parameters setting

在实验过程中,采用学习率逐渐衰减的机制,这样做的目的是在模型训练初期,使用较大的学习率进行加速学习,随着迭代次数增加,学习率逐渐进行减小,保证模型在训练后期不会有太大的波动,从而使得模型更容易接近局部或全局最优解.训练集与测试集的数量已在表5中列出,所有的实验是在Pytorch的框架下实现的,并独立运行10次,实现语言是Python 3.7,处理器型号Intel(R)Xeon(R)CPU E5–2630 v4@2.20 GHz,操作系统Linux(Ubuntu16.04).

表5 CCPD子数据集基本信息Table 5 Information about sub-datasets in CCPD

4.2 验证性实验

为了验证文本提出的基于多目标优化多任务学习的端到端车牌识别方法的有效性,将本文所提方法和基于单任务学习的车牌识别方法(Single task)进行对比验证,Single task方法采用的是独立解决每个车牌识别任务的方式.本文所提方法在多车牌数据集上进行实验,与之对比的Single task方法在对应原始的单车牌数据集上进行实验.

对于两张车牌识别任务,通过观察表6结果可以发现,在车牌识别准确率方面,与传统的Single task方法相比,本文所提方法的车牌识别准确率更高,最高车牌识别准确率可达99.83%,仅在数据集CCPD–Challenge上,Single task 方法的Accuracy L和本文所提方法的Accuracy L 相同,均为84.11%,而本文提出方法的Accuracy R比Single task方法的Accuracy R高1.81%.在数据集CCPD–Tilt 上,本文所提方法的Accuracy L 和Accuracy R比Single task方法分别高3.26%和2.58%.在车牌识别速率方面,与传统的Single task方法相比,本文所提方法的车牌识别速率更高.

表6 不同方法在两张车牌数据集上的性能统计Table 6 The performance of different methods on datasets with two license plates

对于3 张车牌识别任务,从表7 可以看出,本文所提方法可以有效解决多车牌识别问题,在所有CCPD子数据集上车牌识别准确率和车牌识别速率均优于Single task方法,其中,在CCPD–Base上车牌识别准确率最高为99.35%,识别每张车牌时间最短为0.28 ms.在数据集CCPD–Tilt上,本文所提方法的Accuracy L,Accuracy M和Accuracy R比Single task方法分别高6.72%,5.81%和1.60%.因此,对于多车牌识别任务,本文所提方法比Single task方法在车牌识别准确率和识别速率上更具有明显的优势.

表7 不同方法在3张车牌数据集上的性能统计Table 7 The performance of different methods on datasets with three license plates

4.3 对比性实验

选用CCPD的7组子数据集和具有代表性的3种多任务学习方法进行比较:1)Uniform scaling(均匀缩放):最小化损失函数的加权和dall’s method(同方差不确定性):采用Kendall等[20]提出的不确定性加权法;3)GradNorm(梯度归一化):采用Chen等[21]提出的归一化方法.

本文所提方法和对比方法在CCPD–Base 上的Task–L和Task–R车牌识别准确率的散点图可视化为图3.Accuracy L和Accuracy R可分别表示Task–L和Task–R车牌识别准确率,黄色的两条实线分别代表Single task方法在Task–L和Task–R的车牌识别准确率,红色阴影区域表示Task–L和Task–R的车牌识别准确率均高于基于单任务学习的车牌识别准确率.从图3可以看出,在CCPD–Base上,本文所提方法的车牌识别准确率优于其他对比算法,位于该红色阴影区域内.对于其余6个子数据集使用相同的可视化方法,如图4所示.

图3 不同方法在CCPD–Base上的车牌识别准确率Fig.3 Accuracy of different methods on CCPD–Base

图4 不同方法在CCPD上的车牌识别准确率Fig.4 Accuracy of different methods on CCPD

通过观察表8可以发现,对于两张车牌数据集,在车牌识别准确率方面,本文所提方法优于其他多任务学习方法,仅在CCPD–Weather上,Kendall’s method(同方差不确定性)的Accuracy L 和本文方法相同均为97.63%,而对于Accuracy R,本文方法比Kendall’s method高1.06%.虽然在数据集CCPD–Challenge上,Kendall’s method和GradNorm(梯 度 归 一 化)方法比本文所提方法的Accuracy L 分别高0.08%和0.73%,而对于Accuracy R,本文所提方法高出3.4%和7.74%.并且,对于倾斜变形较大的车牌数据集CCPD–Rotate,本文所提方法的Accuracy L相较于其他3种方法分别高4.04%,4.12%和4.44%,Accuracy R分别高5.02%,3.97%和1.96%.

表8 不同方法在两张车牌数据集上的车牌识别准确率Table 8 Accuracy of different methods on datasets with two license plates

相较于两张车牌的识别任务,3张车牌识别任务更复杂,识别难度增加,从表9 可以看出,对比算法在车牌识别准确率上有不同程度的下降,并且Uniform scaling(均匀缩放)方法在3个车牌识别任务间的权衡能力较差,在CCPD–Rotate上Accuracy L为94.59%,而Accuracy R仅为82.97%.本文所提方法的车牌识别准确率相对较高,其中在数据集CCPD–Base上,最高车牌识别准确率可达99.35%,在数据集CCPD–Rotate上,本文所提方法的Accuracy R比另外3种对比算法分别高13.72%,10.47%和8.54%,仅仅在CCPD–DB上,Kendall’s method比本文提出方法的Accuracy R高0.04%.相比于其他对比算法,本文所提方法能够较好的权衡多个任务.

表9 不同方法在3张车牌数据集上的车牌识别准确率Table 9 Accuracy of different methods on datasets with three license plates

图5–11分别表示不同方法训练过程中在7个CCPD子数据集上的损失函数变化趋势,其中Loss–L,Loss–M和Loss–R分别表示左边、中间和右边车牌识别任务的损失函数,随着Epoch(迭代次数)的增加,所有对比算法的损失函数在第13个Epoch后趋于平稳,并逐步收敛.对于不同复杂环境下的车牌样本,各种方法训练Loss下降速度不同,虽然在数据集CCPD–Challenge上,所有方法的损失函数相比于其他子数据集下降速度较慢,但本文所提方法和其他方法相比Loss–L,Loss–M和Loss–R下降速度较快,最后收敛得到的损失函数值最小,仅在数据集CCPD–DB上,通过Kendall’s method 收敛得到的Loss–R 比本文提出方法小.

图5 不同方法在CCPD–Base上的训练损失函数曲线Fig.5 Convergence curves of training loss function with different methods on CCPD–Base

在另外6个CCPD子数据集上,相比于其他算法,本文所提方法的损失函数下降速度较快,收敛得到的损失函数值较小.

图6 不同方法在CCPD–DB上的训练损失函数曲线Fig.6 Convergence curves of training loss function with different methods on CCPD–DB

图7 不同方法在CCPD–FN上的训练损失函数曲线Fig.7 Convergence curves of training loss function with different methods on CCPD–FN

图8 不同方法在CCPD–Rotate上的训练损失函数曲线Fig.8 Convergence curves of training loss function with different methods on CCPD–Rotate

图9 不同方法在CCPD–Tilt上的训练损失函数曲线Fig.9 Convergence curves of training loss function with different methods on CCPD–Tilt

图10 不同方法在CCPD–Weather上的训练损失函数曲线Fig.10 Convergence curves of training loss function with different methods on CCPD–Weather

从以上分析可以发现,在相同的数量的车牌数据集的条件下,与其他3种多任务学习方法相比,本文所提方法能够有效提高车牌识别的准确率和识别速率.对于不同视角、不同距离、不同照明的各种倾斜变形车牌数据集,本文提出的方法优于其他多任务学习方法,具有良好的鲁棒性和泛化性能.

5 结论

针对多个车牌识别任务之间存在竞争和冲突,容易造成某些任务占主导地位,而其他任务无法得到充分优化,导致难以同时提高多个车牌的识别率的问题,提出了基于多目标优化多任务学习的端到端车牌识别方法.针对字符分割造成车牌识别准确率较低、鲁棒性较差的问题,建立了基于多任务学习的端到端车牌识别模型.为了在多个车牌识别任务之间进行权衡,以提高多个车牌识别的准确率,提出了一种基于多目标优化的多任务学习的方法.实验结果表明,本文提出的方法相比于其他单任务学习和多任务学习方法具有一定的优越性,可以提高车牌识别的准确率、识别速率,具有良好的鲁棒性和泛化性能.本文重点研究的是静态的多车牌识别方法,未来会重点研究基于视频流的多车牌识别问题.

图11 不同方法在CCPD–Challenge上的训练损失函数曲线Fig.11 Convergence curves of training loss function with different methods on CCPD–Challenge

猜你喜欢
多任务车牌字符
数字时代的注意困境:媒体多任务的视角*
结合自监督学习的多任务文本语义匹配方法
车牌颜色里的秘密
面向多任务的无人系统通信及控制系统设计与实现
论高级用字阶段汉字系统选择字符的几个原则
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
数字图像处理技术在车牌识别系统中的应用
第一张车牌