前言
介紹
- 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:
安裝教程
- 開發環境搭建:./doc/01_開發環境搭建.md
- 将項目拉取到本地,PlateDetect檔案夾拷貝到d盤下,預設車牌識别操作均在d:/PlateDetect/目錄下處理
- 需要修改操作路徑,修改com/yuxue/constant/Constant.java檔案常量參數即可,可以使用絕對盤符路徑,也可以使用項目相對路徑
- spring boot方式運作項目,浏覽器上輸入 http://localhost:16666/index 即可打開操作界面
- 浏覽器上輸入 http://localhost:16666/swagger-ui.html 即可打開接口文檔頁面