车牌识别系统

gitee开源地址

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

介绍

  • 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

操作界面

1d20b6de7c190225db1edeb968574a77.png

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

车牌检测过程

高斯模糊:

bdb4daeb09c15188a1943323fbcd7316.png

图像灰度化:

73fc91a7464970cccd47fdd2d725b478.png

Sobel 算子:

0f220db004b0b07bf7df54b0dcd7bb3a.png

图像二值化:

ab47bf7fd2dc29ad8d84476c254a9eb4.png

图像闭操作:

13f9c9606705bacc4c07fbe2abc8fcd9.png

二值图像降噪:

f26c2ab8ea32ea4398a2a0c6de05f1fb.png

提取外部轮廓:

f6552b450d1df684d81b15b71ec0db40.png

外部轮廓筛选:

137c1ea5a7fe0d320bc673aa468f60c1.png

切图:

158035dd1aad281e804328c59ae3a238.png

重置切图尺寸:

45e20110b1a6dbc7810a1abd5d2e26f2.png

车牌检测结果:

d970da8fc0c16a758293a599fe32a918.png

图片车牌文字识别过程

debug_char_threshold:

17581f7d5978b9f5900f56de10c9c5b6.png

debug_char_clearLiuDing:

667df9397c89f23675221a82af1bb0c9.png

debug_specMat:

ef8e455f7a6412626dae4877f738531c.png

debug_chineseMat:

624182d48cb8157a01f0bbd388bd3a23.png

debug_char_auxRoi:

6a5c6faa0e750b91e53c2a9075b2063e.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/

  • 9983ab86830f24f89c853e21aad70942.gif

    回复干货】获取精选干货视频教程

    回复加群】加入疑难问题攻坚交流群

    回复mat】获取内存溢出问题分析详细文档教程

    回复赚钱】获取用java写一个能赚钱的微信机器人

    回复副业】获取程序员副业攻略一份

  • 371027778d7925c3dd2fad1909f888cd.png

  • 好文请点赞+分享

  • 52dd864687f292a867d22d6db35a07eb.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值