毕设有着落了!一套开源的,基于SpringBoot的车牌识别系统

程序员的成长之路

共 2320字,需浏览 5分钟

 ·

2020-08-06 03:14

2605c61877d8eb6e85b595f58f0aa6c9.webp程序员的成长之路互联网/程序员/技术/资料共享 关注


阅读本文大概需要 4 分钟。

前言

这个项目是良月柒在逛社区时发现的,刚看到它,思绪直接被拉回了几年前,当初有同学的毕设就是停车场管理系统,关键的功能——车牌识别,连硬件都整上了,一整套流程跑下来,pretty......时间过得真快,已经在社会大学摸爬滚打好几年了。果然,鲁迅诚不欺我:学生是这个世界上最舒坦的职业~!daa08af8822144b22d6a910f4c173d69.webp不说了,赶紧搞完搞完去搬砖,今晚不热还可以多搬两车。介绍这是一个用Spring Boot+Maven+OpenCV 实现的车牌识别系统,包含车牌检测、车牌号识别训练。基于Java语言的深度学习项目,在整个开源社区来说都相对较少,而基于Java语言实现车牌识别的EasyPR-Java项目,最后更新已经是五年前。
项目作者参考了EasyPR原版C++项目、以及fan-wenjie的EasyPR-Java项目,同时查阅了部分OpenCV官方4.0.1版本C++源码,结合了对Java语言的理解,整理出来的该项目。EasyPR地址:https://gitee.com/easypr/EasyPR
EasyPR-Java地址:https://github.com/fan-wenjie/EasyPR-Java基础概念OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库;轻量级而且高效,由一系列C函数和少量C++类构成;该库的核心使用C++编写。
本项目是使用的Java语言实现,其本质是通过Java去调用OpenCV C++接口实现的。这里提供了两种方式去调用C++的接口:

1.通过javacpp调用;这种方式是原版EasyPR-Java项目的使用方式,在这里更新了javacpp版本,以及切换了依赖包的引用方式为maven pom引入。

2.通过opencv官方提供的java 语言的api调用,个人推荐这种方式调用,毕竟是官方的版本。

说明
  • 这是一个入门级教程项目,大牛请绕路(作者本人也在学习图片识别相关技术)。

  • 当前(yx-image-recognition)项目在原有EasyPR项目基础上,增加了绿牌识别功能(当前的训练库绿牌样本太少,还需要增加这块的训练,后续逐步上传)。

  • 已经添加基于svm算法的车辆检测训练、以及基于ann算法的车辆号码识别训练功能。

使用体:除了个别车牌识别很精准之外,其他的目前存在问题,可能跟车牌角度光线存在关系。
包含功能
  • 绿车牌检测及车牌号码识别

  • 单张图片、多张图片并发、单图片多车牌检测及识别

  • 图片车牌检测训练

  • 图片文字识别训练

  • 包含两种依赖包的实现方式:基于org.bytedeco.javacpp包的实现方式;基于org.opencv官方包的实现方式

  • org.opencv官方包,提供了java语言api;java项目可以通过build path方式或者环境变量的方式引用;

  • org.bytedeco.javacpp包,JavaCPP是一个开源库,它提供了在 Java 中高效访问本地 C++的方法;在pom中引入坐标依赖即可

操作界面13d1631cba69726c2e247afc40cbab36.webp车牌检测过程

高斯模糊:

a931f8f004c1b1255f04ed97fdb71ecf.webp

图像灰度化:

6c420f4c120d67932a2977e1772ca6eb.webp

Sobel 算子:

5ad92577ea5adfa3e99f7b505e05205d.webp

图像二值化:

0d309b531a97673988b33b78231b6203.webp

图像闭操作:

300adf7635313b849bb4be944ca058f1.webp

二值图像降噪:

f1d045413e41f1561750cf658bd361e7.webp

提取外部轮廓:

e1f2ac70a84a9f7ef0dfe1817c4295a1.webp

外部轮廓筛选:

009bab5f42361ad6e15a351a4f65a450.webp

开发环境
  • jdk 1.8.61+

  • maven 3.0+

  • opencv 4.0.1 ;javacpp1.4.4;opencv-platform 4.0.1-1.4.4

  • spring boot 2.1.5.RELEASE

安装jdk,安装maven,开发软件(eclipse、idea)。

安装教程1.将项目拉取到本地git clone https://gitee.com/admin_yu/yx-image-recognition打开拉取下来的项目,将其中的PlateDetect文件夹拷贝到D盘下,默认车牌识别操作均在D:/PlateDetect/目录下处理。如需修改路径,打开com/yuxue/constant/Constant.java文件编辑常量参数即可(可以使用绝对盘符路径,也可以使用项目相对路)。2.javacpp方式调用> 方式一:添加pom依赖坐标
dependency>       <groupId>org.bytedeco.javacpp-presetsgroupId>       <artifactId>opencvartifactId>       <version>4.0.1-1.4.4version>   dependency>         
解除掉org.bytedeco.javacpp-presets注释,增加exclusion标签排出多余的包。> 方式二:添加依赖包/lib/opencv-4.0.1-1.4.4-windows-x86_64.jar依赖包添加到build path中。286d767e84c02ca74df5a85b247401aa.webpf789e8f0fc26ccdc79141cb0dd2b26fa.webp3cdb1a21a8081385e116bf863505722d.webp3.用Spring Boot的方式启动项目,浏览器输入http://localhost:16666/index即可打开操作界面浏览器输入 http://localhost:16666/swagger-ui.html 即可打开接口文档页面。结尾
本项目作者:yuxue,一个不资深的java语言从业者。项目地址:https://gitee.com/admin_yu/yx-image-recognition


别忘记点个再看,咱们下篇见

每天进步一点点
慢一点才能更快


推荐阅读:

如何一句话证明你在阿里工作过

我C,原码/反码/补码,我特喵也忘个精光...

5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「2048」,即可免费获取!!

微信扫描二维码,关注我的公众号

写留言

朕已阅 2cfdef35a06d99b004d6b5d09a2bfdba.webp

浏览 90
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报