前言
本项目是一个基于支持向量机(SVM)的车牌识别系统,主要包含以下四个部分:
1.数据集说明:
训练样本来自EasyPR的C++版本,包含一万三千多张数字及大写字母的图片和三千多张中文字符图片,图片已进行二值化处理并贴好标签。
数字和大写字母图片存储在train\chars2目录下,中文字符图片存储在train\charsChinese目录下。
测试样本从各种网站搜集,存储在test目录下。
2.模型概述:
模型由四个主要部分构成:训练字符分类器、车牌定位、字符分割、字符识别。
训练字符分类器:使用SVM进行训练,分为两个分类器,一个用于中文字符,另一个用于数字及大写字母。
车牌定位:通过灰度化处理、高斯去躁、开运算和闭运算、Canny算子边缘检测等方法定位车牌位置。
字符分割:从图片的波形直方图中找到波峰位置,将字符分割开。
字符识别:将分割开的字符分别放入对应的分类器中进行识别。
3.SVM介绍:
支持向量机是一种二分类模型,通过最大化间隔来训练,具有核技巧,使其成为非线性分类器。
SVM的学习策略是间隔最大化,通过求解凸二次规划问题实现。
4.训练字符分类器:
使用OpenCV自带的SVM模型进行训练。
重要参数包括惩罚系数C和核函数参数gamma。
对训练数据进行抗扭曲处理,提取方向梯度直方图(HOG)作为特征向量。
训练过程中,将数据导入分类器进行训练,分别训练数字及大写字母和中文字符的模型。
系统通过这些步骤实现了对车牌中字符的有效识别和分类。
5.车牌识别效果:
程序可通过pycharm来运行,也可利用pyinstaller打包为可执行文件exe,无需软件和环境要求,可一键运行进行车牌识别。
提示:完整代码见某鱼:t1234
https://m.tb.cn/h.gizT3v1?tk=JbPt3cahBen CZ3460