车牌检测和识别

news/2024/11/29 19:49:45/

视频车牌检测与识别

      综合网上上各种车牌识别方法,总结出一个较为简单的车牌识别方案,采用VS2013+OpenCv2.4.9实现。并且附上可运行的源代码以及测试图片和视频,详细参数设置请参照源代码。识别部分的训练样本见我上传的资源

实现方法

(一)        检测车辆(基于混合高斯模型的背景差分法)

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)对字母和数字识别:提取特征并进行预测,输出字母


 总结

采用基于视频检测的车牌识别系统,测试的场合是小区门禁处静止摄像机,实现对行驶的车辆进行车牌识别。从功能划分可以分为三块,车辆的视频检测、车牌的定位和车牌字符的分割与识别。

由于交通场景的复杂性和多样性,本设计有许多值得进一步研究的地方,主要有以下几个方面:

1.  本设计的计算速度较慢,尚未能满足实时性的要求。

2.  在车牌定位模块,对于截取图片中的车辆的距离有一定要求,车辆占比区域太大会造成车牌定位不准的情况。

3. 在字符分割模块,基于大多车牌字符都没有粘连,本设计采用的投影法。对于字符粘连的车牌会出现分割错误。

4.   在字符识别模块,由于汉字神经网络样本不足和特征提取不太理想,造成汉字识别率较低。


下载地址:

车牌识别代码:http://download.csdn.net/download/weixin_35654926/9778589

训练样本:http://download.csdn.net/download/weixin_35654926/9776072


http://www.ppmy.cn/news/862850.html

相关文章

【智慧交通项目实战】《 OCR车牌检测与识别》(一)项目介绍

👨‍💻作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。✨公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等,更有交流群分享宝藏资料,关注公众号回复“加群”或➡️点击链接 加群。 🎉专栏推荐: 点…

车牌号识别 python + opencv

 包括算法和客户端界面,只有2个文件,surface.py是界面代码,predict.py是算法代码,界面不是重点所以用tkinter写得很简单。 使用方法: 版本:python3.4.4,opencv3.4和nu…

开源大盘点 | 各国车牌识别开源数据集汇总

编辑 | 极市平台 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【全栈算法】技术交流群 后台回复【数据集下载】获取计算机视觉近30种数据集! 导读 本文整理了11个车牌检测识别相关的开源数据集资…

汽车车牌框的位置识别

前言 现在已经2020年,相信大家都经常看到进停车场前对汽车车牌的自动识别,方便、速度快、又精确。也不太清楚这个的原理到底是利用深度学习识别还是使用传统的图像处理、识别 。最近,我这里就写了一小段代码来实现对车牌框的位置进行定位。当…

【Nacos】安装和使用(Windows)

下载网址 github官方 下载编译好的版本 文件解压 启动服务 1.打开cmd,到bin文件夹的路径下 例如我的是cd C:\Users\HP\Desktop\nacos-server-2.2.3\nacos\bin 2.使用命令启动Nacos startup.cmd -m standalone 访问后台页面 在浏览器输入地址:http…

时代经纬面试(部分)

用Netty时怎么处理粘包和拆包的情况?参考答案1: 消息定长。发送端将每个数据包封装为固定长度(不够的可以通过补0填充)。设置消息边界。比如在包尾增加回车换行符进行分割。将消息分为头部和消息体,在头部中保存当前整个消息的长…

昨天终于下到了超级女声---五强专集--张靓颖特辑

300多Mb,下了4个小时左右. 来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/936/viewspace-60622/,如需转载,请注明出处,否则将追究法律责任。 转载于:http://blog.itpub.net/936/viewspace-60622/

超女现象

很反对对超女口诛笔伐的人,看了他们的文章都觉得他们总是把超女放到了一个很高的位置,以为超女有颠覆的能量,就因为现在很多人迷她们吗?在我看来超女和现在的流行文化没什么不同,如果怕影响所谓高雅文化,是…