毕业设计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  


相关文章
|
3月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
295 1
Maven——创建 Spring Boot项目
|
3月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
79 1
如何使用 maven 创建一个 Spring Boot项目
|
3月前
|
文字识别 安全 Java
SpringBoot3.x和OCR构建车牌识别系统
本文介绍了一个基于Java SpringBoot3.x框架的车牌识别系统,详细阐述了系统的设计目标、需求分析及其实现过程。利用Tesseract OCR库和OpenCV库,实现了车牌图片的识别与处理,确保系统的高准确性和稳定性。文中还提供了具体的代码示例,展示了如何构建和优化车牌识别服务,以及如何处理特殊和异常车牌。通过实际应用案例,帮助读者理解和应用这一解决方案。
|
3月前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
281 0
idea+maven+tomcat+spring 创建一个jsp项目
|
3月前
|
机器学习/深度学习 数据可视化 计算机视觉
基于opencv的车牌识别系统(UI界面采用tkinter设计)
基于opencv的车牌识别系统(UI界面采用tkinter设计)
82 0
|
3月前
|
机器学习/深度学习 缓存 数据可视化
基于Python_opencv的车牌识别系统
基于Python_opencv的车牌识别系统
86 0
|
3月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
403 0
|
5月前
|
JavaScript Java 关系型数据库
美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】
这篇文章介绍了一个使用SpringBoot + Vue + Mybatis + Mysql技术栈开发的美妆商城系统,包括系统功能划分、部分页面截图和前后端源码示例,并提供了GitHub上的源码链接。
美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】
|
5月前
|
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
|
5月前
|
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框架。
183 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧

推荐镜像

更多