APP下载

联合视觉与规则评价的车牌放大号检测识别方法

2022-08-24雒江涛王志愿

小型微型计算机系统 2022年8期
关键词:字符车牌整体

文 韬,雒江涛,王志愿,3

1(重庆邮电大学通信与信息工程学院,重庆 400065)

2(重庆邮电大学电子信息与网络工程研究院,重庆 400065)

3(重庆邮电大学计算机科学与技术学院,重庆 400065)

E-mail:976940325@qq.com

1 引 言

城市的智能交通管理离不开车辆的身份识别,而车牌号码是车辆最具有标识性的身份信息,通过检测识别得到车牌号码可以进而获取车辆、车主等一系列的信息.在交通系统中,大型车辆的管理与小型轿车同样重要,但是在道路监控视频中,相比于小型轿车,大型车辆的身份识别更加困难,由于牌照位置、拍摄角度以及污渍的影响,目前的车牌检测方法并不能很好的得到其牌照信息,容易造成误检、漏检的问题.而按照相关规定,大、中型货车及其挂车需要喷涂车牌放大号,在很多实际的场景中相比于车辆牌照,喷涂在车辆尾箱上的车牌放大号是更加直接、明显的车辆身份标识.通过检测识别车牌放大号从而获取车辆的一系列身份信息,能够在很大程度上解决目前车牌检测方法对大型车辆不太适用的这一问题.

近年来,基于深度学习的车牌检测识别方法[1-3]逐渐取代了传统基于人工设计特征的方法[4-6],通过改进目标检测方法,结合文本场景任务中学者们提出的各种高效率方法,如CTC[7],注意力机制[8]等,提高车牌检测识别的准确率.

而对于车牌放大号,如图1(a)所示,不同的车牌放大号所处位置没有统一固定的背景环境,且车牌放大号自身大小不定.与其他文本检测任务最大的区别在于常见的文本字符间的间距通常比较小,而车牌放大号字符之间的距离较大.图1(c)中包围框代表当前的文本检测方法对于车牌放大号的检测结果,与图1(b)中包围框表示的真实标签数据相比可以看出,目前的文本检测方法对于字符间距偏大的车牌放大号的检测结果会有比较大的误差,由于不同字符间的间距不同,当前的文本检测方法通常是将文本整体区域与非文本区域进行区分,容易将字符间距偏小的不同字符判断为一个文本,将字符间距偏大不同字符判断为不同文本,严重影响车牌放大号检测的准确性,进而造成基于检测结果的识别方法的准确性严重下降.

图1 当前方法检测问题示意图Fig.1 Schematic diagram of current method detection problems

尽管最近几年逐渐有学者开始基于字符进行检测识别从而得到文本区域[9,10],但是对于字符间距较大的文本仍然没有一个比较好的处理方法.在真实场景中,人们在对车牌放大号进行判别时,是通过其特殊的内容组合以及相似的字符关系从而将相隔较远的字符联系在一起,基于此考虑,本文提出一种联合视觉与规则评价的车牌放大号检测识别方法,通过注意力机制增强主干网络提取的特征,构建整体检测、掩膜检测与字符检测识别的多分支网络对车牌放大号整体与字符分别进行获取,同时针对车牌放大号的字符特点与命名规则设计评价模块,将评价模块的评价分数与整体检测的置信度分数进行联合评价,从而得到更加准确的文本定位区域.

2 相关工作

目前针对文本的检测识别主要分为两大类,一类是检测任务与识别任务按顺序进行,检测任务负责预测文本的边界框,识别任务基于检测任务,从裁剪图像中进行识别,一类是端到端的检测识别,可以将检测与识别联合训练,使得检测与识别可以相互补充信息来协同工作.

独立的文本检测任务主要的解决方案目前分为回归与分割两类,基于回归的文字检测方法将图像整体分割成网格进行回归预测.Zhou等人[11]通过全卷积网络提取图像特征,利用特征金字塔(Feature Pyramid Networks,FPN)[12]思想在不同的网络阶段提取不同的特征并进行上采样的特征融合,使预测网络直接输出文字预测框的坐标信息以及旋转角度.基于分割的文本检测方法通常是对输入图像中的每个像素进行二分类预测,判断其是否属于文本区域,再通过后处理进行像素连接得到文本区域.Wang[13]提出一种渐进的尺度扩展算法,通过特征提取和融合网络得到文本的多尺度预测区域,从具有尺度的预测区域逐渐增加像素来扩展预测区域,加强网络对近距离文本的检测性能.Liao等人[14]针对用固定阈值对分割结果进行二值化转换这一方法,提出可微二值化的方法,通过网络学习,得到由预测得到的每个位置的阈值组成的阈值图来代替固定阈值,从而增强网络对文本预测的鲁棒性.

独立的文本识别目前主要的解决方法是将其转换为序列识别,通常基于CTC或者注意力机制.Shi等人[15]提出CRNN框架,通过CNN+RNN+CTC的形式来解决文本识别任务,利用CNN提取图片特征,通过LSTM从CNN提取的特征中进一步获取序列特征,最后用CTC解决字符对齐问题.Shi等人[16]提出一个双分支网络,矫正分支网络通过控制点对不规则的文字区域进行矫正,然后识别分支网络通过Sequence to Sequence[17]结合注意力机制的形式对矫正后的

图2 联合视觉与规则评价的车牌放大号检测识别方法示意图Fig.2 Detection and recognition method of enlarged license plate based on combined vision and rule evaluation

文本进行识别,从而解决不规则文本的识别问题.

端到端的文本检测识别方法相比于独立的检测识别任务,能够减少级联带来的预测偏差,同时将检测与识别共同优化,有利于提高整体的性能,Liu等人[18]提出仿射变换模块,在共享图片特征的前提下,将文本检测模块与识别模块连接起来,使检测与识别共同训练融合互补,从而提高检测识别精度.Lyu等人[19]在Mask-RCNN的基础上,设计了一个双分支网络,通过检测分支获取文本框,通过掩膜分支获取实例分割对文本进行识别,从而解决端到端的检测识别问题.

3 基本原理

本文针对车牌放大号的定位识别,提出了联合视觉与规则评价的车牌放大号检测识别方法(1)https://github.com/biubiuT/Truck_char,其网络结构如图2所示,输入图片首先经过特征提取模块,主干网提取得到的特征通过注意力模块后输入到Region Proposal Network(RPN)[20]获取建议区域后利用RoIAlign[21]得到车牌整体、车牌掩膜以及字符的RoI(Region of Interest)特征图,然后3个特征图分别输入到3个模块,整体检测模块基于图像特征预测得到车牌整体包围框与对应的视觉评分,整体掩膜模块预测得到车牌整体的掩膜,字符检测识别模块预测得到每个字符的包围框以及字符类别,将整体掩膜模块与字符检测识别模块的输出共同输入到评价模块,得到一个针对车牌放大号的规则评分,通过加入规则评分对整体检测输出的建议区域的置信度分数进行调整,最后通过非极大值抑制方法得到最终的预测结果.

3.1 特征提取部分

特征提取部分通过特征提取模块、RPN与RoIAlign组合而成,ResNet50与FPN组成特征提取模块对图像进行视觉上特征提取,ResNet50利用跳远连接弥补一部分在下采样过程中可能损失的信息,FPN提取不同维度的特征增强ResNet50的特征表达.由于在主干网特征提取过程中均是通过接受局部感受野的卷积运算,可能会导致相同标签的元素具备的特征存在差异,因此引入注意力模块[22]对特征进行加强,注意力模块结构如图3所示.

图3 注意力模块示意图Fig.3 Schematic diagram of Attention module

注意力部分分为空间注意力和通道注意力,以并联方式进行架构.输入特征为fin∈C×H×W,在空间注意力部分,将fin输入到3个1×1卷积块分别得到f1∈C×H×W,f2∈C×H×W和f3∈C×H×W,将f1与f2的每个通道进行展平,将特征形状变为C×N.然后将f1展平的结果进行转置,并与f2展平的结果进行矩阵乘法和softmax处理,得到空间注意力矩阵fSN∈N×N,计算操作如式(1)所示:

sN_ji=exp(f1_i·f2_j)∑Ni=1exp(f1_i·f2_j)

(1)

其中sN_ji代表空间注意力模块中在每个通道内第i个位置对第j个位置的影响.将f3改变特征形状为C×N后与得到的fSN进行矩阵相乘,并再次改变特征形状为C×H×W,并与fin进行像素级的加权和,从而得到空间注意力模块的输出特征,计算公式如式(2)所示:

fN_j=α∑Ni=1(SN_jif3_i)+fin_j

(2)

其中α为加权和权重,同样在通道注意力部分,输入特征也是fin,与空间注意力部分相似,将fin的每个通道进行展平,将特征形状变为C×N,然后将展平转置后的特征图进行矩阵乘法与softmax处理,得到通道注意力矩阵fSC∈C×C,计算操作如式(3)所示:

sC_ji=exp(fin_i·fin_j)∑Ci=1exp(fin_i·fin_j)

(3)

其中sC_ji表示第i个通道对第j个通道的影响.继续将展平后的结果与fSC进行矩阵相乘,改变其特征形状为C×H×W,并与fin进行像素级的加权和,从而得到通道注意力模块的输出特征,计算公式如式(4)所示:

fC_j=β∑Ci=1(SC_jifin_i)+fin_j

(4)

其中β为加权和权重,最后将空间注意力特征与通道注意力特征进行像素级相加得到输出特征.在注意力模块加强特征后,将得到的特征输入到RPN中,由于在加载数据时是将车牌整体与单个字符的信息共同加载,因此RPN会分别输出车牌整体的建议区域与单个字符的建议区域,基于Mask-RCNN,将车牌整体的建议区域输入到不同尺寸的RoIAlign获取整体检测的RoI特征图fl∈256×7×7,整体掩膜的RoI特征图fm∈256×14×14,并将单个字符的建议区域输入到RoIAlign中,获得字符的RoI特征图fc∈256×14×14.

3.2 检测识别部分

检测识别部分由3个模块组合而成,分别是整体检测模块、整体掩膜模块和字符检测识别模块.整体检测模块与整体掩膜模块均是利用RPN输出的车牌整体建议区域得到,架构示意图如图4所示.整体检测模块的输入是通过7×7RoIAlign得到的RoI特征图fl,输入到分类分支与回归分支,均经过2次3×3卷积后将特征展平得到flf∈12544×1×1,最后通过一个全连接层分别得到包围框的分类与回归结果.整体掩膜模块的输入是通过14×14RoIAlign得到的RoI特征图fm,经过4次3×3卷积后连接一个2×2的反卷积,得到fmd∈256×28×28,然后连接一个1×1的卷积得到掩膜结果.为了得到更加精准的掩膜结果,参考PANet[23],由于全卷积层的感受野是局部感受野,且在特征图生成过程中参数共享,全卷积层可能更加关注局部信息,而全连接层可以看作是感受野为整个特征图,更关注于整体信息,因此可以通过融合全卷积与全连接层的结果提高掩膜精度.在第3次3×3卷积将输出结果连接到一个另一个分支,同样再经过一个3×3卷积,然后接入一个输出通道数减半的3×3卷积,展平后接入一个全连接层,然后将特征形状改变为与全卷积层输出的掩膜结果的特征形状相同,最后将两个分支的掩膜融合得到最终的掩膜结果.

图4 整体模块示意图Fig.4 Schematic diagram of the whole module

字符检测识别模块如图5所示,字符模块最终需要获得的结果是包围框的位置以及分类的类别,因此输入信息是通过14×14RoIAlign得到的RoI特征图fc,回归分支与检测模块相同,经过2次3×3卷积后展平,然后通过一个全连接层得到回归结果,由于在检测模块中,分类分支只需要对整体区域做文本与非文本的二分类工作,而字符模块中,需要对字符进行具体的识别,分类分支需要做包括十个阿拉伯数字、除开I与O的24个字符以及省份的多分类工作,需要更好的特征表达完成多分类工作,因此字符模块分类分支是将RoI特征图fc经过4次3×3卷积后再展平通过全连接层得到分类结果.

3.3 联合评价部分

联合评价部分由评价模块与联合评价组成,评价模块的输入是整体掩膜模块输出的掩膜集合Sm与字符模块输出的字符坐标和类别,由于字符模块输出的是检测得到的所有字符,若一张图片中存在多个车牌放大号与其他干扰字符,不能只通过字符检测模块获知哪些字符属于哪一个车牌放大号,哪些字符是干扰字符,因此字符模块输出的包围框坐标组成的区域Sc集合首先要与掩膜模块输出的掩膜相匹配,将所有字符进行归纳,方法如式(5)所示:

∩(Smi,Scj)Scj≥γ,Smi∈Sm,Scj∈Sc

(5)

算法1. Evaluation algorithm

输入:G{xil,yil,xir,yir,n}

输出:Sh

1. For i in range(n) do

2.xic=(xil+xir)/2

3.hi=|yir-yil|

4. End For

5. SORTED(G,xic)

本文针对裂隙岩基上修筑土石坝这种特殊渗流区域,根据裂隙系统与连续介质系统交界处节点水头一致的原则,将裂隙系统和连续介质系统的单元传导系数矩阵组集在一起,形成裂隙-连续介质整体耦合渗流刚度矩阵,然后对整体方程求解渗流场。编制了裂隙-连续介质耦合渗流分析程序,算例验证了程序的可靠性。

6. For j in range(n-1) do

7.Di=min((2×|hi-hi+1|)/hi+hi+1,1)

8.Shi=1/(1+Di)

9. End For

10.Sh=min(Shi)

在上述算法中,输入数据为单一掩膜涵盖的所有字符的坐标以及字符数量,由于车牌放大号字符的顺序是从左到右进行排列的,因此循环计算每个字符中心点的横坐标xic以及每个字符的自身高度hi,以字符中心点的横坐标为基准对所有字符进行重新排序.虽然目前车牌放大号的字符大小不能做到同车管所发放的标准车牌一样每个字符的高度都是标准的固定一致,但是目前大中型车辆喷涂的车牌放大号的字符高度在大致上是相似的,因此基于每个字符的自身高度hi来计算相邻字符高度差的距离表征,如式(6)所示:

Di=min((2×|hi-hi+1|)/(hi+hi+1),1)

(6)

式中为了更加突出相邻字符间的高度差,取相邻字符的高度差除以相邻字符的高度平均值与1的最小值作为距离表征,

Shi=1/(1+Di)

(7)

然后通过式(7)归一化得到相邻字符的高度评分,使得高度差越大的相邻字符得到的评分越低,循环得到所有高度评分后取其中最小的值作为该掩膜的字符高度评分Sh.

此外,目前国内的车牌号码的命名有一定的规则,对于普通用车,车牌号码数量为7位,其中第一位为中文,表示省级行政区,第二位为英文字母,表示地级行政区,后五位为车牌序号,由数字和英文字母组成,其中为了避免混淆,英文字母I与O不出现在车牌号码中,基于此规则,根据式(8)得到规则评分:

Srelu=θ|n-7|+M

(8)

其中θ为评分参数,n表示该掩膜涵盖的字符数量,M表示是否符合车牌命名规则,将字符种类归类为3个大类,中文类Uc、字母类Ul与数字类Un,若第1个字符C1∈Uc,第2个字符C2∈Ul,其余字符Cother∈Ul∩Un,则M值为1,否则M为0.因此评价模块的整体评价分数如式(9)所示:

Seval=Sh×Srelu

(9)

最后,联合评价将评价模块的整体评价分数Seval与整体检测模块对应的视觉分数Ss结合起来,由于整体检测模块的分类分支是二分类,因此分类分支输出的分类分数即是整体检测模块的视觉分数,因此将整体评价分数与视觉分数通过加权和的方式进行组合得到最终的分数,如式(10)所示,其中λ是评价分数占比的权重参数:

S=λSeval×(1-λ)Ss

(10)

3.4 损失函数

本文整体的损失函数由RPN的损失函数Lrpn[20]、整体检测的损失函数Lwhole、整体掩膜的损失函数Lmask[21]以及字符检测识别的损失函数Lchar共同组成,如式(11)所示:

Ltotal=Lrpn+Lwhole+Lmask+Lchar

(11)

其中Lwhole与Lchar均由分类损失和回归损失组成,其中分类损失采用交叉熵损失函数,回归损失采用smooth L1[24]损失函数.

4 实验与分析

4.1 数据集准备

本文提出的方法是针对车牌放大号的检测识别,由于当前还未存在公开的车牌放大号字符检测数据集,因此实验用于训练和测试的真实图像均来源于人工采集.数据集中共采集2787张图片,其中车辆的车型包括箱式货车与渣土车,部分图片只包括一辆含车牌放大号的车辆,部分图片包括多辆含车牌放大号的车辆.由于人工采集的真实图片数据量有限,因此人为对采集的真实数据集进行扩充,包括高斯模糊、添加椒盐噪声和线性混合等,最终得到8361张图片,其中真实标签数据包括图片中车辆放大号每个字符的标注信息与整个车牌区域的标注信息.

4.2 实验环境与参数设置

本文实验是基于深度学习框架PyTorc-1.1.0,编程语言为Python3.6,采用的操作系统为Ubuntu16.04,CUDA版本为10.0,使用显卡为NVIDIA tesla K40M.训练时采用SGD优化器,初始学习率设为0.002,momentum设为0.9,权重衰减设为0.0001,同时学习率调整使用预热模型结合阶段性下降,通过预热模型,让学习率从一个较小的值逐渐上升到初始学习率,通过阶段性下降,让初始训练的学习率较大,一定阶段后的学习率较小,从而让模型的收敛效果更好.

4.3 实验结果和分析

实验的评价指标遵循车牌检测任务的标准评价指标,精确率(precision,P)如式(12)示,召回率(recall,R) 如式(13)示,H-mean(H)如式(14)示:

P(,,tr,tp)=∑k∑jMatchD(Dkj,Gk,tr,tp)∑kNum(Dk)

(12)

R(,,tr,tp)=∑k∑iMatchG(Dki,Gk,tr,tp)∑kNum(Gk)

(13)

H=2P×RP+R

(14)

上式中,Dk表示第k张图片的检测结果集合,表示图片中放大号车牌的预测区域位置信息;Gk表示第k张图片的真值标签集合,表示图片中放大号车牌的真实区域位置信息;tr为区域面积阈值,表示预测区域与真实区域的相交区域和预测区域的比值,设为0.5,大于tr阈值的预测数据才能进行IOU阈值的计算 ;tp为IOU阈值,表示预测区域与真实区域的相交区域和预测区域与真实区域的相加区域的比值,设为0.5,大于tp阈值的预测数据判定为检测正确的数据.

精确率指标评价代表所有图片中正确预测的车牌放大号数量与所有预测结果的数量的比值,召回率指标评价代表所有图片中正确预测的车牌放大号数量与所有真值标签数量的比值,H-mean是精确率和召回率的加权调和.

基于上述3个指标,本文与CRAFT检测方法做出了实验结果的指标对比,同时加入了是否引入注意力模块的消融实验,从图6实验结果对比中可以看出,本文方法对于车牌放大号的检测在3个指标中都有一定幅度的提升,表明本文方法对车牌放大号检测的可行性,同时通过注意力模块的消融实验可以发现,引入注意力模块可以加强特征的表达,对实验结果有一定的提升帮助.

图7展示了一部分在车牌放大号测试集中CRAFT与本文方法对字符间隔偏大的车牌放大号图片的可视化检测结果对比.从图中可以看出,在对车牌放大号进行检测时,CRAFT方法容易因为字符间隔较大,将其检测为多个结果,本文方法联合视觉与规则评价,通过车牌放大号的命名规则和特点来调整整体检测中输出建议区域的置信度,能够比较好的检测获得车牌放大号的完整区域,但是从图7(c)中的识别效果可以看出,对于一些喷涂不规范的字符,本方法的识别结果存在一定的误差,针对此种情况,在之后的工作中应该继续针对不规范的喷漆字符进行数据集的扩充,同时针对此类情况对网络进行改进.

图7 检测结果可视化对比示意图Fig.7 Visual comparison of test results

5 结 论

大型车辆尾箱的车牌放大号是车辆身份信息的重要标识之一,对车牌放大号的检测识别,可以在很大程度上解决由于拍摄角度、遮挡、污渍等情况影响标准牌照检测识别性能而造成的车辆信息丢失问题.本文通过RenNet50结合FPN对特征进行提取,为了增强特征表达,降低无用信息对网络性能的影响,引入由空间注意力与通道注意力组成的注意力模块.构建整体检测、掩膜检测与字符检测识别的多分支网络对车牌放大号整体与字符分别进行获取,同时针对车牌放大号设计评价模块,将评价模块的评价分数与整体检测的分类置信度分数进行联合评价,从而获取更为准确的检测结果.通过实验结果显示,该方法具有较强的检测能力.

猜你喜欢

字符车牌整体
Python实现图片转字符画
车牌颜色里的秘密
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
关注整体化繁为简
设而不求整体代换
第一张车牌
一种侧向插装型车牌架
十二星座5月整体运程
如何选择整体法与隔离法