車牌模型訓練
車牌辨識的正確率
車牌辨識能否完全正確,決定此 app 可否商業化,很不幸的,無法完全 100% 正確。
車牌辨識的正確率受限於影像大小、位置、角度、拍攝光線亮度。所以停車場為了要提高辨識精準度,一定會在車子的進出入口,在特定距離、特定角度進行拍攝。在這二個限定條件下,就可以提高精準度,但還是會有例外。所以繳費時,車主只能輸入 4 位車牌數字號碼,然後在眾多照片中選擇是那一台車,再進行付費。
如果是路上隨機拍攝的 Video 影片辨識呢? 這就有很多調校的方式,目前還沒有絕對精準的方法。
車牌位置辨識方法
OpenCv-python
網路上關於車牌位置的偵測,許多介紹都是使用 opencv-python 的灰階化(BGR2GRAY)->高斯模糊(cv2.GaussianBlur)->邊緣檢測(cv2.Canny)->輪廓檢測(cv2.findCoutours),最後定出車牌的四方矩型位置。這種方法其實無法商業化,尤其是車牌是白底黑字,然後車身又是白色,就完全無用。
yolo v7
使用 yolo v7 訓練車牌辨識是最精準的方式,此方法適用各國的車型及顏色。
安裝套件
要執行 yolo v7 版,需安裝如下套件,請依序執行如下指令
pip uninstall setuptools pip install setuptools==59.5.0 protobuf==3.20.1 numpy==1.21.6 pip install pytesseract pillow tqdm requests matplotlib scipy pandas seaborn ipython psutil thop tensorboard PyYAML PyQt5 opencv-python pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
下載主程式
請先到 https://github.com/wongkinyiu/yolov7 下載主程式。解開後會有yolov7-main 這個目錄,將 yolov7-main裏的所有檔案及目錄 copy 到 專案之下。
下載訓練資料
請到 kaggle 下載 car-plate-license 車牌圖片訓練資料,解開後,將 images 及 annotations 目錄移到專案中的 car 目錄下。
xml to txt
car/annotations 下的資料為 xml 格式,需將 xml 轉成 txt 格式,請新增 xml2txt.py 檔。
