毕业设计So Easy:Spring Boot+Maven+OpenCV实现车牌识别

简介: 很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......


针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!


2021052512212232[3].png


项目专栏:7天搞定毕业设计和论文


对计算机技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~    


1、项目概述

基于Spring Boot+Maven+OpenCV实现车牌识别,项目贯穿样本处理、模型训练、图像处理、对象检测、对象识别等技术点。


项目资源下载请参见:https://download.csdn.net/download/m0_38106923/87574521


2、开发环境

jdk 1.8.61+

maven 3.0+

opencv 4.0.1 [或者:javacpp1.4.4、opencv-platform 4.0.1-1.4.4]

tess4j 4.3.1

spring boot 2.1.5.RELEASE

yx-image-recognition 1.0.0版本


3、项目架构

B/S 架构,前端html + requireJS,后端java;

数据库使用 sqlite3.0;

接口文档使用swagger 2.0。


4、项目功能

蓝、绿、黄车牌检测及车牌号码识别;

网上常见的轮廓提取车牌算法Java实现;

HSV色彩分割提取车牌算法Java实现;

harrcascade特征识别算法 Java实现;

基于SVM算法的车牌检测训练Java实现;

基于ANN算法的车牌号码识别训练Java实现;

图片工具:目前实现了HSV色彩切割,后续将添加更多使用的图片处理工具,用于辅助算法优化。


5、项目实现

车牌识别整体流程主要分两个大的步骤:


使用多种算法,提取到车牌的轮廓,按轮廓从原图片获取车牌的切图,使用SVM算法模型,判断该切图是否是车牌;


根据车牌切图,判定车牌颜色,同时使用轮廓提取算法,提取车牌字符轮廓,按轮廓从二值图片获取车牌切图;使用ANN算法模型,分别使用中文字符模型、蓝牌模型、绿牌模型识别字符切图的文字内容。


dcb467bfb0774026b8b8e4894d91e98c.png


5.1、提取车牌图像

其目的是从车牌图片中,提取到包含车牌的图块,这里有三种实现方式:


轮廓提取算法;


色彩分割提取算法;


特征识别提取算法。


5.1.1、轮廓提取算法

该方法是互联网上常见的处理办法,大体流程基本一致,我这里稍微整理,也增加了一些优化;


以上操作步骤,还会包含一些其他小的步骤,比如:轮廓筛选、图像旋转校正等;


这种方法可以说比较具有通用性,自己调整一下一下各个步骤的一些参数,也能在特定场景下,大大增加识别准确率。


35066d76637a44578f66be30715186ea.png


- 读取图像,转换大小,然后灰度化图像;
- 高斯模糊,去除噪点;
- sobel运算,检测图像边缘
- 图像二值化,将边缘转成白色(取值255),其他内容转为黑色(取值0)
- 图像闭操作,将临近的边缘线,合并成块
- 边缘腐蚀操作,将一些细小的连接线去掉,分离出一些大的块装区域
- 边缘膨胀,还原腐蚀操作影响的块状区域大小
- 还原图像到原始图像大小,根据二值图像,提取轮廓
- 根据提取的轮廓,从原始图像上,切图
- 将得到的切图,调整到固定大小: 136*36像素,用于SVM算法模型,判断是否是车牌


5.1.2、色彩分割提取算法

这种方法在特定场景下,识别准确率比较高。


e0d28269b5034c1e968c56b2a7197c3b.png


- 转换到HSV色彩空间,对hsv取值范围过滤(取值范围,可以使用我的色彩切割工具,大体定位);
- 蓝牌、绿牌、黄牌的操作步骤基本一致,区别仅在于HSV取值范围不一样
- 图像均衡化,增强对比度
- 图像二值化,得到车牌区域
- 图像闭操作,将车牌区域连成片
- 还原图像到原始图像大小,根据二值图像,提取轮廓
- 根据提取的轮廓,从原始图像上,切图
- 将得到的切图,调整到固定大小: 136*36像素,用于SVM算法模型,判断是否是车牌


5.1.3、特征识别提取算法

这种方法,应用应该也比较广泛,人脸识别也常用这种方法。


161234a8d06f42f09f5aa2ab97c832df.png


- 使用harrcascade模型,直接识别图片中的图块位置,提取图块切图
- 将得到的切图,调整到固定大小: 136*36像素,用于SVM算法模型,判断是否是车牌


5.2、车牌字符识别

车牌字符识别的目的是从车牌图块中,识别车牌的颜色、车牌号码。


4cdc6abf765945c99e5b80e37248f766.png


- 使用SVM模型算法,判断图块是否是车牌
- 将图块转到HSV色彩空间,图像均衡化之后,根据H的取值范围及占比,计算属于何种颜色车牌
- 原图灰度化、高斯模糊
- 然后直接二值化;对于车牌来说一般仅包含两种颜色
- 边缘腐蚀、膨胀
- 水平或者垂直方向投影去除边框、铆钉干扰等
- 错切校正
- 轮廓提取,轮廓位置、大小校正、轮廓过滤等
- 提取字符图块,调整为统一大小20*20像素,使用ANN算法,识别图块的字符,计算置信度等

428ba326382142108fca30350b6b4309.png


车牌字符识别,这种方式比较通用,成功率也比较高。


6、项目效果演示


6.1、车牌识别

8f1bb56240c243d38683b8704ef6fb43.png


6.2、图像处理工具

a700b87297cbb38f444bded9f508765e.png

ba7bc6ad4d6f0f9c837425a5bc2e3671.png

060740e67d3f2e61f36db91742d9a592.png




项目资源下载请参考:https://download.csdn.net/download/m0_38106923/87574521  


相关文章
|
24天前
|
JavaScript Java 关系型数据库
美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】
这篇文章介绍了一个使用SpringBoot + Vue + Mybatis + Mysql技术栈开发的美妆商城系统,包括系统功能划分、部分页面截图和前后端源码示例,并提供了GitHub上的源码链接。
美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】
|
24天前
|
Java Maven Spring
SpringBoot 系列之 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resource
这篇文章描述了在使用Maven构建Spring Boot项目时遇到的`maven-resources-plugin`插件版本问题导致的编译失败,并提供了通过修改插件版本至3.1.0来解决这个问题的方法。
SpringBoot 系列之 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resource
|
30天前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
30 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
30天前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
30天前
|
JavaScript Java Spring
springboot+vue 实现校园二手商城(毕业设计一)
这篇文章介绍了一个使用Spring Boot和Vue实现的校园二手商城系统的毕业设计,包括用户和商家的功能需求,如登录注册、订单管理、商品评价、联系客服等,以及项目依赖项的安装过程。
springboot+vue 实现校园二手商城(毕业设计一)
|
30天前
|
JavaScript Java BI
Springboot+vue 实现汽车租赁系统(毕业设计二)(前后端项目分离)
这篇文章介绍了如何使用Springboot和Vue实现一个前后端分离的汽车租赁系统,包括系统的功能模块和管理员与业务员的使用界面。
Springboot+vue 实现汽车租赁系统(毕业设计二)(前后端项目分离)
|
2月前
|
机器学习/深度学习 数据采集 算法
Python基于OpenCV和卷积神经网络CNN进行车牌号码识别项目实战
Python基于OpenCV和卷积神经网络CNN进行车牌号码识别项目实战
108 19
|
30天前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
1月前
|
Java Maven
SpringBoot 引用仓库中没有 第三方包 - 将jar 包安装本地 maven
SpringBoot 引用仓库中没有 第三方包 - 将jar 包安装本地 maven
16 0
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的高校毕业设计信息管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的高校毕业设计信息管理系统附带文章源码部署视频讲解等
32 1

推荐镜像

更多