yx-image-recognition
介紹
- 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中引入座標依賴即可
軟件版本
- 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
車牌識別流程
-
操作界面
-
圖片處理過程
debug_GaussianBlur:
debug_gray:
debug_Sobel:
debug_threshold:
debug_morphology:
debug_Contours:
debug_crop:
debug_resize:
final_result:
- 圖片車牌文字識別過程
debug_char_threshold:
debug_char_clearLiuDing:
debug_specMat:
debug_chineseMat:
debug_char_auxRoi:
安裝教程
- 將項目拉取到本地,PlateDetect文件夾拷貝到d盤下,默認車牌識別操作均在d:/PlateDetect/目錄下處理
- 需要修改操作路徑,修改com/yuxue/constant/Constant.java文件常量參數即可,可以使用絕對盤符路徑,也可以使用項目相對路徑
- lib下依賴包添加到build path;或者修改pom文件的註釋內容,將opencv-platform依賴取消註釋
- spring boot方式運行項目,瀏覽器上輸入 http://localhost:16666/index 即可打開操作界面
- 瀏覽器上輸入 http://localhost:16666/swagger-ui.html 即可打開接口文檔頁面
使用說明
- 車牌圖片來源於網絡,僅用於交流學習,不得用於商業用途;如有侵權,請聯繫本人刪除
- 轉發請註明出處; 本項目作者:yuxue,一個不資深的java語言從業者
- 作者gitee地址: https://gitee.com/admin_yu
- 作者csdn微博地址:https://blog.csdn.net/weixin_42686388
參考文檔
- liuruoze/EasyPR:https://gitee.com/easypr/EasyPR?_from=gitee_search
- fan-wenjie/EasyPR-Java: https://github.com/fan-wenjie/EasyPR-Java
- opencv官方: https://opencv.org/