基于 Spring Boot 的车牌识别系统(附项目地址)

介绍

  • spring boot + maven 实现的车牌识别及训练系统

  • 基于java语言的深度学习项目,在整个开源社区来说都相对较少;而基于java语言实现车牌识别EasyPR-Java项目,最后的更新已经是五年以前。

  • 本人参考了EasyPR原版C++项目、以及fan-wenjie的EasyPR-Java项目;同时查阅了部分opencv官方4.0.1版本C++的源码,结合个人对java语言理解,整理出当前项目

  • 这是一个入门级教程项目,本人目前也正在学习图片识别相关技术;大牛请绕路

  • 当前项目在原有EasyPR项目基础上,增加了绿牌识别功能,只不过当前的训练库文件包含绿牌的样本太少,还需要重新增加绿牌样本的训练,后续会逐步上传

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

  • 后续会逐步加入证件识别、人脸识别等功能

包含功能

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

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

  • 图片车牌检测训练

  • 图片文字识别训练

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

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

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

软件版本

  • 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

  • yx-image-recognition 1.0.0版本

软件架构

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

  • 数据库使用 sqlite3.0

  • 接口文档使用swagger 2.0

操作界面

16a44dba4a956aa091d1157212a1548d.png

车牌图片来源于网络,仅用于交流学习,不得用于商业用途;如有侵权,请联系本人删除

车牌检测过程

高斯模糊:

b3406ba5e2ff3b9d7e1b477fbccc9daa.jpeg

图像灰度化:

f157491ce861c53881d1c42dc89d8b20.jpeg

Sobel 算子:

b22e3234531eb4653f8507ea2f2482b1.jpeg

图像二值化:

5672fc82f4c97778f22804f03b1622d8.jpeg

图像闭操作:

27f2571b76d1ec3cdd2e33d279f9854c.jpeg

二值图像降噪:

7cbb8e506552dab236e19edee8ae6001.jpeg

提取外部轮廓:

143582631891c697160fc9cc942bb4fe.jpeg

外部轮廓筛选:

47dc532aaca219fe8b7123ccf3975020.jpeg

切图:

e994a910b0c8cbb93f79e619872dff08.png

重置切图尺寸:

9f646da7fed0945aa35774bd95429e58.png

车牌检测结果:

82fc241ec84e16884980e6f33e6231d4.png

图片车牌文字识别过程

debug_char_threshold:

c86a1dd51a802013af5d000c157264a6.jpeg

debug_char_clearLiuDing:

0735a8a97f3a2f09a73f55a6aa85d6eb.jpeg

debug_specMat:

62ef61dc1efa1c1ebe00469a9879eb74.jpeg

debug_chineseMat:

a5395d5bac4bfd1a2e8903adddd089e0.jpeg

debug_char_auxRoi:

51cb4950275e81ccc19700bd59571684.png

安装教程

  • 开发环境搭建:./doc/01_开发环境搭建.md

  • 将项目拉取到本地,PlateDetect文件夹拷贝到d盘下,默认车牌识别操作均在d:/PlateDetect/目录下处理

  • 需要修改操作路径,修改com/yuxue/constant/Constant.java文件常量参数即可,可以使用绝对盘符路径,也可以使用项目相对路径

  • spring boot方式运行项目,浏览器上输入 http://localhost:16666/index 即可打开操作界面

  • 浏览器上输入 http://localhost:16666/swagger-ui.html 即可打开接口文档页面

参考文档

  • liuruoze/EasyPR:https://gitee.com/easypr/EasyPR

  • fan-wenjie/EasyPR-Java:https://github.com/fan-wenjie/EasyPR-Java

  • opencv官方:https://opencv.org/

gitee开源地址

https://gitee.com/admin_yu/yx-image-recognition

 
 
往期推荐:
Java 导出 Excel 利器:JXLS
SpringBoot+Actuator打造强大的监控和管理系统
一套干净的企业数据管理系统
除了缓存,性能优化还可以这么搞?
Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路!

d307301950f17c19637b13152b950ac6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值