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

Posted Java小叮当

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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中引入坐标依赖即可 欢迎关注Java项目分享一个分享高质量项目的地方

软件版本

  • 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

操作界面

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

车牌检测过程

高斯模糊:

图像灰度化:

Sobel 算子:

图像二值化:

图像闭操作:

二值图像降噪:

提取外部轮廓:

外部轮廓筛选:

切图:

重置切图尺寸:

车牌检测结果:

图片车牌文字识别过程

debug_char_threshold:

debug_char_clearLiuDing:

debug_specMat:

debug_chineseMat:

debug_char_auxRoi:

安装教程

  • 开发环境搭建:./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

基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码论文)

摘要

车牌识别系统作为智能交通系统的一个重要组成部分,在交通监控中占有很重要的地位。车牌识别系统可分为图像预处理、车牌定位、字符识别3个部分,其中车牌定位作为获得车辆牌照图像的重要步骤,是后续的字符识别部分能否正确识别车牌字符的关键环节。车牌定位系统实现对车辆牌照进行定位的功能,即从包含整个车辆的图像中找到车牌区域的位置,并对该车牌区域进行定位显示,将定位信息提供给字符识别部分。
本系统除了实现了车牌识别还实现了人脸识别、车辆信息和用户信息的管理。对于陌生人的管理,整体架构是SpringBoot + OpenCV。

课题的来源及意义

由于全球范围内的车辆数目日益增多,城市的运输问题日益引起人们的关注。城市道路交通安全的实施越来越受到各有关政府部门的重视。针对此问题,智能运输体系能够有效地进行公路运输的自动控制,从而改善交通的安全性,改善运输的效能,增强城市的经济发展。在智能交通中,对汽车进行精确的身份和信息的识别是最为关键和最重要的问题。牌照是汽车的惟一标识,它是许多信息的源头和直接的目标。车牌识别是一种基于图像的解析算法,通过对牌照进行特征的分割和特征的识别,从而实现对牌照的识别。在汽车牌照自动辨识中,如何准确、准确地进行牌照的识别,首先要解决的问题就是如何进行车牌区域的提取。采用快速高效的牌照定位技术,能够极大地改善车辆牌照的准确率和速度。牌照是实现城市道路交通安全的一项关键技术,是实现城市道路安全监测的关键技术之一。他将应用于以下几个领域:
(1)高速公路和停车场的收费管理系统。在高速公路收费和出口完成车牌识别,实现非停车收费;车辆档案也可根据识别的车牌号码从数据库中转移,发现未及时支付养路费的车辆,消除养路人员的偏袒。
(2)交通场所控制管理系统。该系统采用车牌识别技术,实现重点车辆的自动识别和快速报警处理,不仅可以有效防止机动车被盗,而且为公安和监督机关提供高科技手段,自动监控和跟踪嫌疑人驾驶的车辆。
(3)高速公路超速自动化监督系统。该系统以车牌识别技术为核心技术,辅助其他高科技手段,建立无人值守的自动监控和自动控制系统,有效解决高速公路超速造成的交通事故;车辆超速时,可获得车辆图像,获得车牌号,方便违章车辆处罚。 本系统基于对汽车牌照的数字图像处理和分析,提供快速有效地汽车牌照定位方法,实现对车辆牌照区域的提取功能。

识别算法说明

整体流程主要分两个大的步骤:
使用多个算法,提取车牌的轮廓,根据轮廓从原图像取得车牌的切图,使用SVM算法模型,判断该切图是否是车牌。
根据车牌的切入图,在判定车牌颜色的同时,使用轮廓提取算法,提取车牌文字的轮廓,通过轮廓从二值图像取得车牌的切入图。使用ANN算法模型,分别使用中文文字模型、蓝卡模型、绿卡模型来识别文字切割的文字内容。

运行截图




获取方式

链接直达:https://gitee.com/XiaoLin_Java/communion/blob/master/

以上是关于基于Spring Boot的车牌识别系统(附项目地址)的主要内容,如果未能解决你的问题,请参考以下文章

基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码论文)

基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码论文)

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

车牌识别系统原理与代码「YOLO+MLP」

Python项目演练:使用深度学习自动识别车牌号附源代码

基于Opencv实现车牌图片识别系统