Java Spring Boot License Plate Recognition and Training System (Open‑Source)
This article introduces an open‑source Java Spring Boot project that implements a license‑plate detection and recognition system with training capabilities, detailing its features, architecture, supported plate types, software requirements, processing steps, installation guide, and reference resources.
Gitee Open‑source Repository
https://gitee.com/admin_yu/yx-image-recognition
Introduction
Spring Boot + Maven implementation of a license‑plate detection and training system.
A Java‑based deep‑learning project, which is relatively rare in the open‑source community; the original EasyPR‑Java project has not been updated for five years.
The author referenced the original EasyPR C++ project, fan‑wenjie’s EasyPR‑Java project, and parts of the official OpenCV 4.0.1 C++ source code to create this project.
This is an entry‑level tutorial project; the author is still learning image‑recognition technologies.
Based on the original EasyPR project, a green‑plate recognition feature has been added, though the current training dataset contains few green‑plate samples and will be expanded later.
The project now includes SVM‑based plate detection training and ANN‑based plate number recognition training.
Future plans include adding document recognition and face recognition features.
Features
Detection and recognition of yellow, blue, green, and yellow‑blue‑green plates.
Support for single image, batch image, and multiple plates per image detection and recognition.
Plate detection training on images.
Text recognition training on images.
Two implementation options: based on org.bytedeco.javacpp and based on the official org.opencv package.
The official OpenCV package provides a Java API; it can be referenced via build‑path or environment variables.
JavaCPP (org.bytedeco.javacpp) offers efficient native C++ access from Java; simply add the Maven coordinates.
Software Versions
JDK 1.8.61+
Maven 3.0+
OpenCV 4.0.1; javacpp 1.4.4; opencv‑platform 4.0.1‑1.4.4
Spring Boot 2.1.5.RELEASE
yx‑image‑recognition version 1.0.0
Software Architecture
B/S architecture: front‑end HTML + RequireJS, back‑end Java.
Database: SQLite 3.0.
API documentation: Swagger 2.0.
User Interface
License‑plate images are sourced from the internet for learning purposes only and must not be used commercially; please contact the author for removal if any infringement occurs.
License Plate Detection Process
Gaussian Blur:
Grayscale Conversion:
Sobel Operator:
Image Binarization:
Morphological Closing:
Denoising of Binary Image:
External Contour Extraction:
External Contour Filtering:
Image Cropping:
Resize Cropped Image:
Detection Result:
License Plate Character Recognition Process
debug_char_threshold:
debug_char_clearLiuDing:
debug_specMat:
debug_chineseMat:
debug_char_auxRoi:
Installation Guide
Set up development environment: ./doc/01_开发环境搭建.md
Clone the project locally and copy the PlateDetect folder to D:\ (default operations are under D:/PlateDetect/).
Modify the operation path by editing constant parameters in com/yuxue/constant/Constant.java; absolute or relative paths are both supported.
Run the project with Spring Boot and open http://localhost:16666/index in a browser to access the UI.
Open http://localhost:16666/swagger-ui.html to view the API documentation.
Reference Documents
liuruoze/EasyPR: https://gitee.com/easypr/EasyPR
fan-wenjie/EasyPR-Java: https://github.com/fan-wenjie/EasyPR-Java
OpenCV official site: https://opencv.org/
END
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.