关于车牌识别的工作原理和技术参数
(一) 检测车辆(基于混合高斯模型的背景差分法)
1.
读取视频(avi格式),选定目标区域框用于检测车辆
2.检测车辆,基于混合高斯模型的背景差分法检测前景,经过腐蚀、膨胀后,若像素值大于200的像素点数大于80000且上一帧像素点数小于80000,则视为检测出车辆并保存改区域的图片
(二) 检测车牌区域(基于HSV颜色空间+形态学方法)
1.车牌粗定位
(1) 改变图片尺寸(480′320)得到resizeimg
(2) 转换为HSV空间,并在HSV空间直方图均衡化
(3) 在HSV空间检测蓝色区域,范围为(100,90,80)—(130,255,255),得到blueimg
(4) 对blueimg进行膨胀运算、开运算得到image1
(5) 对resizeimg灰度化
(6) 进行直方图均衡化
(7)中值滤波
(8)Canny算子边缘检测
(9)进行开运算、闭运算得到image2
(10)对HSV空间检测蓝色分量的image1和边缘检测得到的image2进行按位与得到andimage
(11)对andimage进行膨胀运算
(12)寻找最大连通域
(13)圈出最大连通域所在的矩形区域并切割得到ROIimage
2.车牌精确定位
(1)对ROIimage转换蓝色空间并均衡化
(2)检测蓝色区域,范围为(100,90,90)—(140,255,255)
(3)框出非零点集所在的最大矩形区域并切割得到roimage
(4)Canny算子检测roimage并利用hough变换进行水平倾斜校正得到houghimage
(5)对houghimage进行灰度化、二值化(浙大张引二值化)
(6)对二值化车牌水平方向统计黑白跳变次数
(7)从车牌中间向上下搜索,若跳变次数小于14,设定为上下边界并切割,得到jingqueimage
(三) 车牌字符切割(投影法)
1.对对车牌进行垂直投影,求垂直方向投影平均值mean,设定投影特征值TZ=0.63′mean
2.先从第三个字符开始切割,选择车牌宽度的0.3倍处作为起始点,向右寻找大于TZ的点作为上升点,从上升点向左搜索投影值等于0的点作为字符起点,寻找上升点后下一个等于0的点作为终点,切割出该部分,对该部分扩充调整其宽高比为0.5,对其归一化16*32,二值化得到字符
3.第四个到第七个字符的切割方法与第三个字符相同
4.
切割第二个字符,选择车牌宽度的0.35处作为起始点,向左寻找大于特征值的点作为上升点,从上升点向左搜索投影值等于0的点作为字符起点,寻找上升点左边下一个等于0的点作为终点,切割出该部分,对该部分扩充调整其宽高比为0.5,对其归一化16′32,二值化得到字符
5.切割第一个字符,切割方法同第二个字符。求后六个字符的宽度平均值,若切割出字符宽度小于平均值的0.8倍,则重新寻找下一个为零的波谷作为终点,切割出该部分。对该部分扩充调整其宽高比为0.5,对其归一化16′32,二值化得到字符
(四) 车牌识别(BP神经网络)
1.汉字识别
(1)网络层数:输入层:560 隐含层:132 输出层:31
(2)激活函数:Sigmoid函数
(3)神经网络的训练参数:
a) 最大迭代次数:10000
b)误差最小值:0.001
c) 权值更新率:0.07
d) 权值更新冲量:0.07
(4)输入样本:
a) 特征提取:512个像素点+32个水平投影值+16个竖直投影值共560维
b) 训练样本数:所有省份样本共1195个
(5) 输出结果:输出层共31个,如“京”:0.9,,0.1……0.1,选取输出的31个值的最大的值为识别结果
(6) 对汉字识别:提取特征并进行预测,输出省份
2.字母识别
(1)网络层数:输入层:560 隐含层:117 输出层:24
(2)激活函数:Sigmoid函数
(3)神经网络的训练参数:
a) 最大迭代次数:30000
b) 误差最小值:0.001
c) 权值更新率:0.07
d) 权值更新冲量:0.07
(4)输入样本:
a) 特征提取:512个像素点+32个水平投影值+16个竖直投影值共560维
b) 训练样本数:所有省份样本共1200个
(5)输出结果:输出层共24个,如“A”:0.9,,0.1……0.1,选取输出的24个值的最大的值为识别结果
(6) 对字母识别:提取特征并进行预测,输出字母
3.字母和数字识别
(1)网络层数:输入层:560 隐含层:139 输出层:34
(2)激活函数:Sigmoid函数
(3)神经网络的训练参数:
a) 最大迭代次数:30000
b) 误差最小值:0.001
c) 权值更新率:0.06
d) 权值更新冲量:0.06
(4)输入样本:
a) 特征提取:512个像素点+32个水平投影值+16个竖直投影值共560维
b) 训练样本数:所有省份样本共5100个
(5)输出结果:输出层共34个,如“A”:0.9,,0.1……0.1,选取输出的34个值的最大的值为识别结果
(6)对字母和数字识别:提取特征并进行预测,输出字母
【更新时间:2022-8-9】