目录
车牌识别系统分析设计
一、深度学习算法之卷积神经网络
最典型算法:卷积神经网络(Convolutional NeuralNetworks,简称 CNN)
最早的卷积神经网络是 LeNet-5 网络结构,包含卷积层、池化层和全连接层
卷积神经网络通过卷积和池化操作逐步学习图像在各个层次(颜色亮度——边、角、线等局部细节——纹理形状)上的特征,最后形成整个物体的概念
-
卷积层
主要受生物学上感受野(Receptive Field)的机制而提出
用卷积核扫描图像获得特征图(feature map):根据步长(stride)自左向右、自上而下,取卷积核与图像对应元素之积加上偏置值后的和。 -
池化层
池化(Pooling)主要是对数据进行分区采样,可以看成把一个大的矩阵降采样成一个小的矩阵,减少计算量,同时还可以防止过拟合现象。
常见的池化标准: Max 、 Average,即取最大或平均。一般情况下 max 池化有更好的效果。 -
常用的激活函数(activation function)
1)Sigmoid ——σ(x)=1/(1+e-x)
单调连续易求导,但对于超过 5 或低于﹣5 的值,均将被压缩至 1(或 0)。从而导致梯度的“饱和效应”,这会造成导数在误差反向传播过程中介于该范围的误差无法向前层传递。
2)双曲正切tanh=sinhx/coshx=(ex-e-x)/(ex+e-x)
解决了均值问题,但由于是Sigmoid 函数的变形,仍会存在“梯度饱和”问题。
3)ReLU——f(x)=max(0, x) -
全连接层
全连接层充当“分类器”的角色
典型卷积神经网络(CNN)架构
- LeNet5
在神经网络中引入卷积层以及下采样,采用卷积+池化(下采样)+非线性激活的组合是 CNN 的典型特征,并使用 MPL 作为分类器
使得神经网络可以共享权值,一方面减少了参数,另一方面可以学习图像不同位置的局部特征。引入下采样是因为图像特征的相对位置比其精确位置更重要,而后来的网络更多采用最大池化 - AlexNet
这个网络相比之前的卷积网络最显著的特点是层次加深,参数规模变大。
使用 ReLU 作为非线性激活函数和最大池化层,对数据也进行了扩增,使用 dropout避免过拟合问题和使用 GPU减少训练时间。 - VGG
- GoogLeNet
- ResNet
在深度学习还没有普遍使用的时候,较为典型的是 Bag of Words 模型对物体进行分类,也就是词袋模型。而基于卷积神经网络的图像分类算法可以用无监督的方式进行特征学习,进而替换了传统手工标记图像特征。
传统的目标检测算法是通过直方图特征和支持向量机来完成的,这种方式需要多个滑动窗口,在运行速度上会显的很慢。目标检测在深度学习领域中,会完胜传统的目标检测算法,对于图像分类和目标检测,深度学习算法一直处于高水平位置。
二、目标检测领域的深度学习方法
- One-Stage检测算法
无需使用Region Proposal阶段,而是直接地产生物体的类别概率及位置的坐标值,比较具有代表性的One-Stage算法包括YOLO、SSD和CornerNet。
在速度上有优势 - Two-Stage检测算法
将检测问题划分为两个阶段:第一会先产生候选区域,这一步可以是人工设计也可以通过神经网络自动学习得到;第二步对第一步中产生的候选区域进行分类并对候选区域的位置进行回归修正,最终得到准确的区域。Two-Stage算法的最具
有代表的就是R-CNN,SPP-Net、Fast R-CNN和Faster R-CNN等。
在准确度上有优势
(一)R-CNN
- 过程
输入图像-提取候选检测框(约2000)-为每个候选检测框提取CNN特征-为每个候选检测框进行分类 - 候选区域生成
Selective Search(SS,选择性搜索):根据颜色、纹理、尺寸和空间交叠相似度提取约2000个region proposal(候选区域)
需额外步骤提取region proposal,存储和重复提取region proposal的特征花费大量存储和计算资源 - 提取CNN特征
候选区域大小不一,为与AlexNet兼容,需统一到227*227(crop/warp),但会影响CNN提取特征的质量
将统一大小后的候选区域图像输入到卷积神经网络(AlexNet),提取CNN特征(即倒数第二层4096个特征)用于分类,但保存所有特征需占用约200G空间 - 区域分类
Classify regions(区域分类):为每一个类(包括背景类)训练SVM,复杂,耗时多
(二)SPP-Net
一次性提取整个图像的特征,再在特征图上取对应于不同region proposal的区域,减少了提取特征的时间和存储特征的空间
通过spatial pyramid pooling将任意大小RoI特征统一成相同尺寸,所以可输入任意大笑的候选区域,无需warp输入图像,提升了CNN提取的特征的质量,使特征更鲁邦
RoI:Region of Interest
(三)Fast R-CNN
通过SS在图像中提取RoI-卷及网络提取特征-RoI Pooling-全连接层-分类/边界框回归
与SPP-Net都是特征而不是图像的warp,SPP-Net是空间金字塔池化,Fast R-CNN是RoI pooling
(四)Faster R-CNN
在最后一个卷积层后面添加Region Proposal Network(RPN)
候选区域有RPN网络直接生成,不再依靠额外的候选区域生成算法(如SS)
(五)YOLO(一阶段方法)
You Only Look Once
(六)SSD(一阶段方法)
(七)FPN
Fearture Pyramid Network
(八)Mask R-CNN
强化的基础网络:ResNet-101+FRN用作特征提取网络
采用RoI Align 解决misalignment
处理分割任务的分支使用全卷积网络
(九)loU-Net(新)
(十)GloU-Net(新)
三、车牌定位算法
名词解释:鲁棒性,即在异常和危险情况下系统生存的能力。
(一)相关研究
简单的图像处理方法
- 到了 20 世纪 90 年代,较为典型的是A.S.Johnson 等提出的图像特征提取,图像分割,图像字符的识别等三个部分构成了完整的车牌自动识别系统
- 后期出现了图像视觉领域中的字符识别技术(Optical Character Of Recognition Technology),它是通过图片中的二值化算法来定位车牌,然后利用边界纹理特征对字符的提取,再利用最邻近算法分类器得出车牌的候选号码,最终在对这些候选号码进行检查核实。
深度学习
- 2012 卷积神经网络模型 AlexNet,采用的是 Re Lu 激活函数,解决了当时所遇到的梯度梯度消失问题,并且通过硬件 GPU 来提高训练模型的运行速度
- 2012同年,吴恩达,深度神经网络—DNN(Deep Neural Networks)
- 14 年到 16 年之间,区域块卷积神经网络目标检测算法R-CNN
- 2015 年,Fast-RCNN
- 2015同年一体化卷积神经网络检测算法 YOLO(一阶段方法)
(二)传统算法
受环境因素,如被遮挡、阴天、车牌颜色等影响大
1.基于颜色特征定位方法
通过灰度操作来获取图像车牌特征。这种方法较不稳定,会受到自然场景中光照强度、遮挡等因素影响,使颜色不稳定。
能简单描述车牌图像中颜色的分布,对图像区域的大小和方向变化不太敏感,不能很好提取车牌局部特征。
2.基于边缘特征定位方法
它是根据统计车牌图像中的梯度数量级以及计算局部的梯度变化,这种方法很难处理背景较为复杂的图像。
对图像中噪音方面较为敏感,特别是遇到相似纹理特征或其他干扰因素,定位错误率较高。
通常采用 Sobel边缘检测算子对灰度化的图像进行边缘的检测,若要对图像中的噪音进行很好的处理甚至消除噪音,就要在该算子中引入局部区域做均值的操作。
经过 Sobel 算子边缘检测车牌,对图像进行腐蚀,对图像进行闭合操作使其区域平滑。获取图像中的蓝色区域(车牌),同时腐蚀再闭合,与上面所得图像求并。
3.基于数学形态学的多特征定位方法
根据形态学发展而来,具有一定的形态结构并且通过二值腐蚀和膨胀、二值开闭来运算,通常需要结合其他车牌识别算法。
是对传统数学形态学算法的改进,可与颜色、边缘特征等车牌定位算法相结合,使该算法具有多特征性,提高定位速度和准确度
腐蚀运算:X㊀S={x|S+x⊆X} (用S去腐蚀X)
- 作用:收缩边界,可以把小于结构元素的物体去除
- 过程:在结构元素中选定原点,将结构元素在原图中移动,结构元素与图像上对应像素点的像素值全部相等时,保留这个与原点相应的像素点的值。
膨胀运算:X⊕S={x|S+x∪x≠X}
- 作用:扩张边界,可以用来填补目标区域中某些空洞以及消除包含在目标区域中的小颗粒噪声。
- 过程:在结构元素中选定原点,将结构元素在原图中移动,结构元素与图像上对应像素点的像素值存在等值时(交集不为空),保留这个与原点相应的像素点的值。
开运算:X◯S=(X㊀S)⊕S,即先腐蚀后膨胀
闭运算:X◯S=(X⊕S)㊀S,即先膨胀后腐蚀
(三)基于深度学习的车牌识别算法(三层级联卷积神经网络架构)
与传统的模式识别相比,基于深度学习技术对车牌的识别不同点在于它是通过大量的数据来进行自动学习,而不是人为去设计模型来获取特征,对于一个深度学习模型来说,数据量越大,深度学习的鲁棒性和泛化能力越强。
级联卷积神经网络对车牌定位更准确 检测出来的识别率高于传统的车牌定位算法
第一层使用基于目标检测的R-CNN算法对图像中车辆进行检测
第二层以第一层检测出来的图像作为数据,进行车牌的粗检测
第三层以第二层对车牌的粗定位作为数据,进行车牌关键的细定位
RPN(Region Proposal Network)区域生成网络——Faster-RCNN的核心
三、车牌字符分割
- 垂直投影分割法
分割速度快,但分割不规则字符较困难。 - 聚类分析分割法
能准确分割复杂字符,但计算复杂,效率不高。
四、车牌字符识别算法
-
基于模板匹配的车牌识别算法
计算待识别车牌字符和模板库张中字符的相似匹配度。
类别较少时计算速度快,对于质量好的字符图像有较好的识别度,但对相似字符识别效果很差,当类别总数较多时,识别速度有点慢,最终会影响识别效果 -
基于特征统计的车牌识别算法
和基于模板匹配算法比较类似,首先会提取识别字符的特征如像素块数、字符轮廓,按照一定的策略和分类函数进行车牌字符类别的识别判决。算法识别效果比基模板匹配算法更佳,但是对于形变严重的字符、相似字符、模糊字符的鲁棒性不是很好。
首先基于SSD算法模型将车牌字符检测出来,然后使用卷积神将网络逐个提取车牌中每个字符图像的特征,基于每个字符的独特特征进行分类识别。