畢設(shè)有著落了!一套開源的,基于SpringBoot的車牌識(shí)別系統(tǒng)
程序員的成長之路互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?關(guān)注
閱讀本文大概需要 4?分鐘。
前言
這個(gè)項(xiàng)目是良月柒在逛社區(qū)時(shí)發(fā)現(xiàn)的,剛看到它,思緒直接被拉回了幾年前,當(dāng)初有同學(xué)的畢設(shè)就是停車場管理系統(tǒng),關(guān)鍵的功能——車牌識(shí)別,連硬件都整上了,一整套流程跑下來,pretty......時(shí)間過得真快,已經(jīng)在社會(huì)大學(xué)摸爬滾打好幾年了。果然,魯迅誠不欺我:學(xué)生是這個(gè)世界上最舒坦的職業(yè)~!
不說了,趕緊搞完搞完去搬磚,今晚不熱還可以多搬兩車。介紹這是一個(gè)用Spring Boot+Maven+OpenCV?實(shí)現(xiàn)的車牌識(shí)別系統(tǒng),包含車牌檢測、車牌號(hào)識(shí)別訓(xùn)練。基于Java語言的深度學(xué)習(xí)項(xiàng)目,在整個(gè)開源社區(qū)來說都相對(duì)較少,而基于Java語言實(shí)現(xiàn)車牌識(shí)別的EasyPR-Java項(xiàng)目,最后更新已經(jīng)是五年前。項(xiàng)目作者參考了EasyPR原版C++項(xiàng)目、以及fan-wenjie的EasyPR-Java項(xiàng)目,同時(shí)查閱了部分OpenCV官方4.0.1版本C++源碼,結(jié)合了對(duì)Java語言的理解,整理出來的該項(xiàng)目。EasyPR地址:
https://gitee.com/easypr/EasyPR
EasyPR-Java地址:https://github.com/fan-wenjie/EasyPR-Java基礎(chǔ)概念OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫;輕量級(jí)而且高效,由一系列C函數(shù)和少量C++類構(gòu)成;該庫的核心使用C++編寫。本項(xiàng)目是使用的Java語言實(shí)現(xiàn),其本質(zhì)是通過Java去調(diào)用OpenCV C++接口實(shí)現(xiàn)的。這里提供了兩種方式去調(diào)用C++的接口:
1.通過javacpp調(diào)用;這種方式是原版EasyPR-Java項(xiàng)目的使用方式,在這里更新了javacpp版本,以及切換了依賴包的引用方式為maven pom引入。
2.通過opencv官方提供的java 語言的api調(diào)用,個(gè)人推薦這種方式調(diào)用,畢竟是官方的版本。
說明這是一個(gè)入門級(jí)教程項(xiàng)目,大牛請(qǐng)繞路(作者本人也在學(xué)習(xí)圖片識(shí)別相關(guān)技術(shù))。
當(dāng)前(
yx-image-recognition)項(xiàng)目在原有EasyPR項(xiàng)目基礎(chǔ)上,增加了綠牌識(shí)別功能(當(dāng)前的訓(xùn)練庫綠牌樣本太少,還需要增加這塊的訓(xùn)練,后續(xù)逐步上傳)。已經(jīng)添加基于svm算法的車輛檢測訓(xùn)練、以及基于ann算法的車輛號(hào)碼識(shí)別訓(xùn)練功能。
包含功能
黃藍(lán)綠車牌檢測及車牌號(hào)碼識(shí)別
單張圖片、多張圖片并發(fā)、單圖片多車牌檢測及識(shí)別
圖片車牌檢測訓(xùn)練
圖片文字識(shí)別訓(xùn)練
包含兩種依賴包的實(shí)現(xiàn)方式:基于
org.bytedeco.javacpp包的實(shí)現(xiàn)方式;基于org.opencv官方包的實(shí)現(xiàn)方式org.opencv官方包,提供了java語言api;java項(xiàng)目可以通過build path方式或者環(huán)境變量的方式引用;
org.bytedeco.javacpp包,JavaCPP是一個(gè)開源庫,它提供了在 Java 中高效訪問本地 C++的方法;在pom中引入坐標(biāo)依賴即可
車牌檢測過程高斯模糊:

圖像灰度化:

Sobel 算子:

圖像二值化:

圖像閉操作:

二值圖像降噪:

提取外部輪廓:

外部輪廓篩選:

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
安裝jdk,安裝maven,開發(fā)軟件(eclipse、idea)。
安裝教程1.將項(xiàng)目拉取到本地git clone https://gitee.com/admin_yu/yx-image-recognition打開拉取下來的項(xiàng)目,將其中的PlateDetect文件夾拷貝到D盤下,默認(rèn)車牌識(shí)別操作均在D:/PlateDetect/目錄下處理。如需修改路徑,打開com/yuxue/constant/Constant.java文件編輯常量參數(shù)即可(可以使用絕對(duì)盤符路徑,也可以使用項(xiàng)目相對(duì)路徑)。2.javacpp方式調(diào)用>?方式一:添加pom依賴坐標(biāo)解除掉dependency><groupId>org.bytedeco.javacpp-presetsgroupId><artifactId>opencvartifactId><version>4.0.1-1.4.4version>dependency>
org.bytedeco.javacpp-presets注釋,增加exclusion標(biāo)簽排出多余的包。> 方式二:添加依賴包將/lib/opencv-4.0.1-1.4.4-windows-x86_64.jar依賴包添加到build path中。

3.用Spring Boot的方式啟動(dòng)項(xiàng)目,瀏覽器輸入http://localhost:16666/index即可打開操作界面瀏覽器輸入?http://localhost:16666/swagger-ui.html?即可打開接口文檔頁面。結(jié)尾本項(xiàng)目作者:yuxue,一個(gè)不資深的java語言從業(yè)者。項(xiàng)目地址:
https://gitee.com/admin_yu/yx-image-recognition別忘記點(diǎn)個(gè)再看,咱們下篇見!
每天進(jìn)步一點(diǎn)點(diǎn)
慢一點(diǎn)才能更快
推薦閱讀:
我C,原碼/反碼/補(bǔ)碼,我特喵也忘個(gè)精光...
微信掃描二維碼,關(guān)注我的公眾號(hào)
寫留言朕已閱?![]()
