introduce

  • Spring Boot + Maven vehicle license plate recognition and training system
  • Deep learning projects based on the Java language are relatively rare in the open source community; The easypr-Java project based on the Java language for license plate recognition, the last update has been five years ago.
  • I refer to EasyPR original C++ project and fan-wenjie’s easypr-java project. At the same time, I consulted part of opencv official 4.0.1 version of C++ source code, combined with personal understanding of the Java language, sorted out the current project
  • This is an entry-level tutorial project, and I am currently learning image recognition techniques; Daniel please make a detour
  • The current project adds the function of green card recognition on the basis of the original EasyPR project. However, the current training library file contains too few samples of green card, so the training of green card samples needs to be added again, which will be gradually uploaded later
  • At present, the training function of license plate detection based on SVM algorithm and license plate number recognition based on Ann algorithm has been added
  • Identification, face recognition and other functions will be gradually added later

Contains functions

  • Yellow blue green yellow blue green license plate detection and license plate number recognition
  • Single picture, multi picture concurrent, single picture multi license plate detection and recognition
  • Photo license plate detection training
  • Picture text recognition training
  • There are two ways to implement the dependency package: org.bytedeco. Javacpp; Based on org. opencV official package implementation
  • Org. opencV official package, provides the Java language API; Java projects can be referenced as build paths or environment variables;
  • Javacpp, an open source library that provides efficient access to native C++ in Java; Just introduce coordinate dependencies in the POM

Software version

  • The 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 release

Software architecture

  • B/S architecture, front-end HTML + requireJS, back-end Java
  • The database uses sqlite3.0
  • Interface documents use Swagger 2.0

interface

License plate pictures come from the Internet, only for communication and learning, not for commercial use; If there is infringement, please contact me to delete

License plate Detection process

Gaussian blur:

Image grayscale:

Sobel operator:

Image binarization:

Image closing operation:

Binary image denoising:

Extract the external contour:

External contour screening:

Cut the figure:

Reset cutout size:

License plate detection results:

Picture license plate text recognition process

Debug_char_threshold:

Debug_char_clearLiuDing:

Debug_specMat:

Debug_chineseMat:

Debug_char_auxRoi:

Install the tutorial

  • Development environment setup:./doc/01_ Development environment setup. Md
  • Pull the project to local, copy the PlateDetect folder to disk D, and the default license plate recognition operations are handled in d:/PlateDetect/
  • Need to modify the operating path, modify the com/yuxue/constant/constant. The Java file constant parameters can, can use absolute drive path, can also use the relative path of the project
  • Enter http://localhost:16666/index on spring boot mode run the project, the browser can open operation interface
  • Browser type http://localhost:16666/swagger-ui.html to open interface document page

Source code address:

License plate recognition system based on SpringBoot

Pay attention to the public number: [code farmers attack], reply [176] can be obtained for free, without any routine.

Reference documentation

  • Liuruoze/EasyPR:gitee.com/easypr/Easy…
  • Fan-wenjie/EasyPR-Java:github.com/fan-wenjie/…
  • Opencv official: opencv.org/

END