基于pyqt5和PP-OCR的车辆VIN码识别系统

最近一段实时间在解决一个问题,需要提取车辆上的VIN码,对每个车辆上的VIN码进行识别。刚开始想延续yolov5车牌识别的思路开展,具体流程是利用yolov5模型对每个车辆进行检测,首先先定位到车牌位置,即将每个车辆的车牌检测出来,如下图所示;
图
其次,再利用opencv进行图片分割,对检测出的车牌进行图像预处理,阈值处理等步骤 ,最终对车牌图片进行分割,将一个车牌图片分割成一个一个的图片,每个图片上都有一个数字或者汉字,如下图所示
在这里插入图片描述切割好后再进行匹配,将每个图片中的字符进行匹配。
最终将实现车牌识别检测功能,能正确输出检测到的车牌号。

一开始想用这种方法,但最近在做飞桨的项目,飞桨开发的PP-OCRv4版本真是太牛了,利用飞桨的paddlepaddle模型去进行训练测试。最终效果出奇的完美。

本次开发基于pyqt5的GUI界面和飞桨的PP-OCR框架模型识别VIN码。通过训练两万张数据集,得到自己的ocr模型,实现了一般场合中对车辆上VIN码的识别。接下来介绍一下我的开发之路和具体的实验效果,结尾附测试的代码链接和demo演示视频。

一、飞桨的PP-OCR框架模型

飞桨的模型训练个人感觉还是比较复杂,特别是自定义数据集这块,因为这次的数据集比较特殊,比较麻烦构造 。接下来我将简单叙述构造数据集 、模型训练这两个重要 部分。

1.1 构造数据集

先介绍 一下数据集的目录分布:

train_data
	icdar2015
		ch4_test_images
			img_1.jpg
			...
		icdar_c4_train_imgs
			img_1.jpg
			...
		test_icdar2015_label.txt
			存放测试标签路径
		train_icdar2015_label.txt
			存放训练标签 路径
	rec
		test
			img_1.jpg
			...
		train
			img_1.jpg
			...
		rec_gt_test.txt
		rec_gt_train.txt
	cls
		test
			img_1.jpg
			...
		train
			img_1.jpg
			...
		cls_gt_test.txt
		cls_gt_train.txt

自定义数据集目录下有三个主要文件夹icdar2015、rec、cls 分别对应文本检测数据、文本识别数据、文本方向分类器数据。
大体作用就是先能检测到文本的位置,其次能够将文本 识别出来,最后进行文本方向的恢复(具体来说就是文本的位置如果是倾斜或者反转的,能把其恢复成水平)

1.2 训练模型

训练过程比较复杂,需要训练三个模型框架,分别是文本检测模型、文本识别模型、文本方向分类器模型,三个模型训练完毕后,再归一同时使用检测。
建议不要自己训练,使用预训练模型+自己几百张照片训练方式,相关模型部署文件保存在PaddleOCR-main\inference文件夹下,可以自行使用部署。(PaddleOCR-main这个 是主文件,可以在GitHub上面下载)

具体指令不详细说了,比较复杂,我后面总结了一份指令。感兴趣的伙伴也可以自己去官网上查询

1.3 配置环境

众所周知,玩深度学习的前提就是配置环境。本人第一次配置这个飞桨的环境出了很多问题,我是用anaconda配置的,所以迁移起来特别麻烦,可移植性特别差,也可以使用docker容器,这样移植起来比较方便。
我的环境是RTX3060 cuda 11.2版本
配置环境的流程是必须的,不论你是自行训练或者是使用他人代码都需要配置环境

1.安装步骤

步骤一:创建conda虚拟环境  (必须是python3.8以上的环境)
	conda create -n VIN_detect python=3.8

步骤二:安装 paddlepaddle 

	cuda 11.7 对于的下载指令

		python -m pip install paddlepaddle-gpu==2.6.1.post117 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
	不同 cuda版本下载不同 的 paddlepaddle ,可以参考以下链接下载
		https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html

步骤三:安装PaddleOCR whl包

		pip install "paddleocr>=2.0.1"

步骤四:安装环境包(在我的代码中 会提供)
	
	pip install -r requirements.txt


2.注意事项:
	必须安装cuda 和 cudnn

只要环境配置 成功就可以运行相关代码 了。

二、我的项目开发

本系统基于pyqt5和飞桨的PP-OCR框架模型,通过训练两万张数据集,得到自己的ocr模型,实现了一般场合中对车辆上VIN码的识别。

为了简化代码大小,VIN_Detect工程文件中没有训练代码,只保留的pyqt5界面代码和利用训练模型进行检测的代码。

VIN_REC.py:主程序,进行界面显示 + vin检测

text_data:存放测试图片数据  图片数据支持 jpg png jpeg 格式

video_demo:存放测试过程视频

2.1 系统功能

系统主界面图
在这里插入图片描述
上传图片
支持单张 或多张 图片 同时上传
在这里插入图片描述默认识别
在这里插入图片描述上传完图片后会默认进行自动识别,识别完成后,以可视化界面查看相关图片和输出的VIN码,并 可以 查看 当前正确率等信息

方案导出
可以将当前检测到的图片 信息 及对应检测到的VIN码同时 导出 到 指定 位置,方便后期查看

主题更换
这是一个简单的跟换界面 主题 颜色风格的选项,可以 自行 设计

2.2 测试demo

综上,基于车辆VIN码识别系统已开发完成,相关检测代码已经测试完成,识别准确率测试后非常高,一般场景可以准确识别,精准排除干扰项。

各位伙伴也可以 直接购买使用我们的代码,不需要自己训练,相关检测代码已经测试完成,直接运行VIN_Detect\VIN_REC.py 文件即可完成任务。
文档已经打包 ,相关目录如下,相关文档说明均已写好,不明白的地方都可以查看 readme.txt文档 。
在这里插入图片描述最后,如果您对源码感兴趣并希望购买,请按照以下步骤操作,我们非常感谢您的支持!

购买流程

   扫描二维码完成支付。
   将支付成功的截图发送至邮箱:wwqyjs@163.com。
   收到您的邮件后,会将完整源码发送到您的邮箱。

请放心,我们坚持绝对的诚信原则,确保交易的公正!另外欢迎咨询指正,联系邮箱 wwqyjs@163.com
请添加图片描述

该资源内项目源是个人的课程设计、毕业设计,代测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源是个人的课程设计,代测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝猫的咖啡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>