当前位置:首页 期刊杂志

基于OPENCV的车牌识别系统

时间:2024-04-25

摘 要:本设计基于HSV的颜色空间进行车牌区间定位,采用垂直投影法进行字符分割,并调用opencv的ml模块实现了人工神经网络(ANN),采用了最典型的多层感知器(multi-layer perceptrons,MLP)模型来进行三层神经网络的训练和字符的识别,提出了一种基于opencv的车牌识别系统。

关键词:HSV的颜色空间;垂直投影法;ANN MLP opencv

一、绪论

1.1 问题现状

(1)车牌区间的准确定位

传统算法诸如TLD、HCF速度较快,实时性较高,对于车牌区间的跟踪,鲁棒性显得非常不足;而深度学习算法如DLT、FCNT、MDNet往往运算量较大,速度较慢。

(2)车牌字符分割方法

车牌字符的形状、位置和色彩分布具有很强的不确定性,同时,字符有左右结构,常用的外接矩形法很难获得准确的文字位置信息[1]。

(3)车牌字符识别方法

传统的模板匹配、支撑向量机等方法识别准确度很难达到令人满意的程度[2]。

1.2 解决方案

1.2.1 基于HSV颜色空间的车牌区间定位

常见的颜色空间有RGB空间和HSV空间,而RGB空间受光照影响大,而HSV空间的H分量和S分量受光照影响小,且HSV空间符合常人的認知。在本项目中采用HSV空间来进行车牌区间的大致定位,再通过车牌面积区域的阈值筛选出目标区域,采用边缘检测算法检测车牌的有效边界及四角顶点,然后通过透视变换方法实现车牌区域的畸变矫正和分割。

1.2.2 基于垂直投影法的字符分割

常见的最小外接矩形法对矩形区域的面积的阈值有很大的要求,且不适用于左右结构的字符,容易将一个字符分割成两个字符,而垂直投影法则是基于对车牌区域的特有的面积比例进行字符分割,设定投影特征值,基于空间分布的最大类间方差方法使车牌图像二值化,并进行二值图投影,根据投影值与0和特征值的大小关系分割出相对于的字符区域,再将每个分割出的字符区域与所有字符区域的平均值进行比较,淘汰不合格的车牌字符区域。

1.2.3基于神经网络的字符识别

传统的模板匹配和支持向量机等方法识别准确度很难达到令人的满意程度,在本项目中采用基于opencv的ml模块中的mlp模型,通过输入样本数据来进行神经网络的学习,通过学习取得字符样本的特征。将预处理后需要识别的字符特征输入神经网络开始训练,这时 神经网络就会对需要识别的字符与样本字符进行特征匹配,完成字符的识别过程。

二、系统总体方案分析与设计

2.1系统总体实现方案

系统的整体设计流程包括: ①系统输入数据采集;②车牌预处理和车牌区间定位;③车牌字符分割;④基于神经网络的车牌字符识别。

三、系统软件设计

本系统的数据采集是基于小区过往车辆的车牌照片拍摄和车辆进出视频,本系统的结果输出为车牌字符识别结果及语音播报结果。

3.1系统功能实现流程

本系统首先采集车牌照片和车辆进出视频,对于视频的处理则是在视频区域中定义一个车牌区域,当车牌到达目标区域,则以照片的形式提取出目标车牌,然后进行车牌预处理和车牌区间定位,通过垂直投影法进行字符分割,调用opencv的ml模块实现了人工神经网络(ANN),采用了最典型的多层感知器模型来进行三层神经网络的训练,然后将分割后的字符提取1*560的图像特征作为输入调用opencv接口函数predict识别出相应的结果,最后将得到的识别结果字符串作为输入调用一个语音接口转换函数以语音结果进行播报。

3.2 基于HSV颜色空间的车牌区间定位

通过opencv定义的接口函数进行RGB—>HSV颜色空间的转变,通过颜色区域检测出蓝色区域,进行直方图均衡化,进行膨胀和开运算,再进行中值滤波,进行边缘检测,再进行开闭运算,将颜色空间检测结果与边缘检测结果做与运算,再将寻找到的最大联通区域进行处理切割得到粗定位车牌,将粗定位车牌同样采用颜色空间和边缘检测,并将处理后的结果做与运算,通过Hough变换和透视变换进行校正,并通过二值图的黑白跳变次数删除上下边界非目标区域并进行分割得到精确定位图像。

3.3 基于垂直投影法的字符分割

对车牌进行垂直投影,并求垂直方向投影的平均值,设定投影特征值tz,采用基于空间分布的最大类间方差法来二值化车牌图像,然后对二值图进行投影,选择车牌宽度的0.3处作为起始点,向右寻找大于tz的点作为上升点,从上升点向左搜索投影值等于0的点作为字符起点,寻找上升点右边下一个等于0的点作为终点,进行切割,并进行尺寸归一化为32*16的大小并进行二值化得到字符。

3.4 基于神经网络的车牌字符识别

在本项目中采用基于opencv的ml模块中的mlp模型,定义三层神经网络并设置相关参数,使用BACKPROP算法并设置相关参数,将输入样本数据的图像归一化为32*16的大小,提取32*16个像素点+32个垂直投影值+16个水平投影值作为1*560的一维向量作为输入数据作为神经网络的训练集输入参数,对于字符识别的网络输出层设置为31,隐含层设置为132;读于字母和数字识别的网络输出层为34层,隐含层为139层,最后直接调用opencv的ml模块的接口函数predict()就可以预测新的节点,将进行字符分割后的二值化图像需要识别对的字符特征输入神经网络训练,神经网络就会对需要识别的字符与样本字符进行特征匹配,完成字符的识别过程。

四、总结

4.1关于对车辆进出视频的车牌识别

本系统通过选择需要识别的视频,提取设定目标区域的车牌区域并进行识别,测试数据中字母和数字识别误差很小,基本不超过1%,汉字识别准确率达到95%以上,相信通过神经网络输入数据的增加识别误差将会更小。

参考文献 :

[1]朱利娟,云中华,边巴旺堆.基于极坐标变换的脱机手写藏文字符特征提取方法[J].计算机应用与软件,2018(35),3:162-165.

[2]卜令正,王洪栋,朱美强,等.基于改进卷积神经网络的多源数字识别算法[J].计算机应用,2018,38(12):3403-3408.

作者简介:

刘啸松(1997-10-10),男,汉族,籍贯:安徽安庆,本科,计算机科学与技术.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!