车牌检测和识别的 Python 应用软件实现
1.车牌检测和识别项目介绍
图片来源: https://www.cnblogs.com/polly333/p/7367479.html
车牌的检测和识别的应用非常广泛,比如交通违章车牌追踪,小区或地下车库门禁。在对车牌识别和检测的过程中,因为车牌往往是规整的矩形,长宽比相对固定,色调纹理相对固定,常用的方法有:基于形状、基于色调、基于纹理、基于文字特征等方法,近年来随着深度学习的发展也会使用目标检测的一些深度学习方法。该项目主要的流程如下图所示:
1.输入原始图片,通过二值化,边缘检测,和基于色调的颜色微调等办法检测出原图中的车牌号的位置;
2.把检测到的车牌(ROI)裁剪,为车牌号的识别做准备;
3.基于裁剪的车牌号,使用直方图的波峰波谷分割裁剪的车牌号(如上图中的第 3 步)
4.训练机器学习模型做车牌识别,这里训练了 2 个 SVM,一个 SVM 用来识别省份简称(如 鲁),另一个 SVM 用来识别字母和数字。
5.通过 PyQt5 把整个算法封装成 GUI 程序,并打包发布安装软件。
2.项目代码解析
下图描述了整个项目的代码结构,可以访问 https://github.com/DataXujing/vehicle-license-plate-recognition 查看,其结构如下:
3.项目演示
可以通过访问项目地址 ( https://github.com/DataXujing/vehicle-license-plate-recognition )查看整个应用,或者访问安装程序下载地址 ( https://pan.baidu.com/s/1IazbGFLlQkb8BQmK_EAeRA 提取码:v103 )安装安装程序进行测试,这里展示一些识别结果和测试视频:
4.TODO
目前识别的效果针对于某些场景下仍然很不理想,技术层面上的主要原因有两个,一个是车牌检测算法并没有检测到车牌(这主要是检测算法的问题),可以尝试一些目标检测的算法,比如 Faster R-CNN(速度可能慢一些),YOLO 系列, SSD 系列等的经典的目标检测算法,然后做矫正或进一步的区域筛选;另一个原因是是在识别算法上,本次我们仅是基于少量的训练数据训练了 SVM,可以尝试增加训练集并把模型替换成一些更复杂的机器学习模型如 XGBoost,LightGBM,CatBoost 等模型或使用 CNN 训练一个多分类的深度学习模型, 亦或者是直接考虑一些基于 Attention 的 CNN-RNN 架构的 OCR 识别模型。
Reference
1. OpenCV 图像识别:车牌定位算法源码,Python 语言实现
4. 车牌识别(一)-车牌定位
参考文献
- 基于云的统一身份智能信息管理系统设计实现(华南理工大学·水凯凯)
- 基于视频检测技术的标识站综合应用系统设计与实现(河北科技大学·李想)
- 车辆移动查询系统的设计与实现(电子科技大学·梁国威)
- 基于J2EE平台的工作流管理系统的运行引擎和客户端及管理工具的设计与实现(西北大学·门浩)
- 高校车辆管理系统的设计与实现(吉林大学·扈熠琼)
- 基于RFID技术的封闭园区出入管理信息系统的设计与实现(电子科技大学·杨幸)
- 基于卡口监控数据的车辆轨迹判定系统的设计与实现(华中科技大学·胡玉玲)
- 基于Python的非结构化数据检索系统的设计与实现(南京邮电大学·董海兰)
- 复杂场景下的车牌识别系统研究与应用(江南大学·杨振南)
- 特种车辆牌证管理系统的设计与实现(云南大学·罗培)
- 基于J2EE平台的工作流管理系统的运行引擎和客户端及管理工具的设计与实现(西北大学·门浩)
- 高校车辆管理系统的设计与实现(吉林大学·扈熠琼)
- 机动车缉查布控系统的设计与实现(山东大学·李文竹)
- 交通违规信息管理系统设计和实现(电子科技大学·吴杉)
- 基于三层架构的电子警察管理系统设计与实现(浙江工业大学·章辉)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码港湾 ,原文地址:https://m.bishedaima.com/yuanma/35917.html