實(shí)戰(zhàn)分享!YOLOv5+Tesseract-OCR 實(shí)現(xiàn)車(chē)牌號(hào)文本識(shí)別
來(lái)源:投稿 作者:王同學(xué)
編輯:學(xué)姐
最近看到了各種各樣的車(chē)牌識(shí)別,覺(jué)得挺有意思,自己也簡(jiǎn)單搞一個(gè)玩玩。
1. 預(yù)期效果
先看看預(yù)期的效果吧,大概就是這樣子的,輸入一張圖片可以把圖片中的車(chē)牌號(hào)以文本的形式打印出來(lái)。目前還比較簡(jiǎn)陋,大家可以自己嘗試加個(gè)PyQt5頁(yè)面實(shí)現(xiàn)更加豐富的功能。


2. 整體流程
首先訓(xùn)練一個(gè)YOLOv5的車(chē)牌檢測(cè)器;
然后將車(chē)牌切下來(lái);
將切下來(lái)的部分通過(guò)OpenCV進(jìn)行形態(tài)學(xué)處理;
最后通過(guò)Tesseract-OCR識(shí)別車(chē)牌并在控制臺(tái)上打印。
3. 準(zhǔn)備數(shù)據(jù)集
這次就不自己標(biāo)注了,直接找了一個(gè)開(kāi)源的。訓(xùn)練集張、驗(yàn)證集張、測(cè)試集張。數(shù)據(jù)集質(zhì)量一般。

4. 訓(xùn)練YOLOv5模型
4.1 下載源碼
4.2 安裝環(huán)境
4.3 修改配置文件
==license.yaml==
4.4 訓(xùn)練模型
數(shù)據(jù)量比較少,直接用yolov5s跑就可以。
簡(jiǎn)單跑了100輪,看著還可以,就直接用了。

4.5 測(cè)試模型


5. 截取車(chē)牌

因?yàn)閿?shù)據(jù)集質(zhì)量原因,有一些圖拍攝不是很清晰,所以截取到的車(chē)牌也不是很清楚,我這里選了一些相對(duì)來(lái)說(shuō)清楚一些的。其實(shí)到這里我們就可以通過(guò)Tesseract-OCR進(jìn)行識(shí)別了,但是不對(duì)圖像進(jìn)行處理就識(shí)別的話效果很不好,所以我這里還是選擇對(duì)車(chē)牌進(jìn)行一些形態(tài)學(xué)處理。
6. 形態(tài)學(xué)處理
這部分也不算完全意義上的形態(tài)學(xué)處理吧,我并沒(méi)有使用腐蝕膨脹等操作,只是使用了幾個(gè)OpenCV的礎(chǔ)操作對(duì)車(chē)牌進(jìn)行了處理,大家可以對(duì)比一下效果。(其實(shí)還有很大的優(yōu)化空間的)

7. Tesseract-OCR安裝
7.1 下載 Tesseract-OCR

下載地址:Tesseract-OCR
我下載的是最下面的版本,下載好后直接安裝就可以,沒(méi)有什么坑。

7.2 配置環(huán)境變量


7.3 調(diào)用Tesseract-OCR
在調(diào)用前要到入 pytesseract 包。
隨后在YOLOv5項(xiàng)目里新建一個(gè)py文件
傳入圖片的路徑后就可以在控制臺(tái)看到最終輸出的結(jié)果了。



7.4 顯示中文
如果想顯示車(chē)牌上的中文,我們還要下載一個(gè)東西,下載地址:tessdata/chi_sim.traineddata

下載好后直接放到如下位置就可以。代碼也要改動(dòng)一下。


8. 完整代碼
9. 數(shù)據(jù)集及代碼資源

關(guān)注【學(xué)姐帶你玩AI】公眾號(hào)
回復(fù)“csdn”領(lǐng)取