Artificial Intelligence 8 min read

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.

Java Captain
Java Captain
Java Captain
Java Spring Boot License Plate Recognition and Training System (Open‑Source)

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

Javadeep learningimage-processingSpring BootopencvLicense Plate Recognition
Java Captain
Written by

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.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.