最近在用google開源的object_detection做車牌檢測系統,在此記錄一下整個流程,期間踩過不少坑,也一並分享給各位。
一:環境配置:
Python:3.6.2版本
Tensorflow cpu版本:1.12.0
Anaconda:5.0.0
二;、下載object_detection API
網址:https://github.com/tensorflow/models
點擊Clone or download,再點擊Download ZIP,下載完成后,解壓得到models-master文件夾,放到jupyter notebook工作路徑里。
三:配置protobufs
網址:https://github.com/protocolbuffers/protobuf/releases,
object_detection API使用protobufs來配置模型和訓練參數,這將其編譯成.py文件些文件以“.proto”的擴展名放在 models-master/research/object_detection/protos下,
在使用框架之前,必須使用protobuf庫將其編譯成.py文件。
點擊protoc-3.6.1-win32-zip自動下載,下載完成后解壓,將解壓后的bin文件夾下的protoc.exe放到models-master/research路徑下,打開Anaconda Prompt,定位到research路徑下,輸入
protoc object_detection/protos/*.proto --python_out=.
這時可能會報錯,因為windows命令不支持正則匹配,這時你可以將*.proto改成具體的,proto文件名一條一條執行,但是在linux系統中可以執行上面的命令,只不過應該下載相應的linux版本的protoc了。
四、檢測API是否正常
1、將models-master/research/slim中的nets文件夾復制出來放到models/research下
2、將models-master/research/object_detection/builders下的model_builder_test.py復制到models-master/research下
3、將objetc_detection文件夾和nets文件夾都復制到D:/Anaconda3/Lib/site-packages下,注意D:/Anaconda3是我安裝Anaconda的路徑。
打開Anaconda Prompt,定位到research所在的文件夾,輸入python model_builder_test.py,如果出現OK,那么API已經配置成功。
五、制作車牌的數據集
首先在網上爬取車牌圖片,如圖所示
使用 Labellmg這款軟件對圖片進行打標簽,框出其中的車牌,下載最新版本的Windows_v1.8.0,解壓運行如下:
點擊Create RectBox,框出車牌,並在labellmg里填上要標注的圖片的名稱,我寫的是plate,點擊ok保存,再繼續后面的打標簽。
這樣就完成了車牌的數據集,當然應該將數據集分成訓練集和測試集以便后面的操作。