YOLO車牌辨識

      在〈YOLO車牌辨識〉中尚無留言

車牌辨識的正確率

車牌辨識能否完全正確,決定此 app 可否商業化,很不幸的,無法完全 100% 正確。

車牌辨識的正確率受限於影像大小、位置、角度、拍攝光線亮度。所以停車場為了要提高辨識精準度,一定會在車子的進出入口,在特定距離、特定角度進行拍攝。在這二個限定條件下,就可以提高精準度,但還是會有例外。所以繳費時,車主只能輸入 4 位車牌數字號碼,然後在眾多照片中選擇是那一台車,再進行付費。

如果是路上隨機拍攝的 Video 影片辨識呢? 這就有很多調校的方式,目前還沒有絕對精準的方法。

車牌位置偵測方法

OpenCv-python

網路上關於車牌位置的偵測,許多介紹都是使用 opencv-python 的灰階化(BGR2GRAY)->高斯模糊(cv2.GaussianBlur)->邊緣檢測(cv2.Canny)->輪廓檢測(cv2.findCoutours),最後定出車牌的四方矩型位置。這種方法其實無法商業化,尤其是車牌是白底黑字,然後車身又是白色,就完全無用。

YOLO

使用 YOLO 訓練車牌辨識是最精準的方式,此方法適用各國的車型及顏色。

安裝套件

要執行 yolo v8 版,需安裝如下套件,請依序執行如下指令

🔒 完整內容請註冊並登入會員。

免費註冊登入

執行完畢後,會產生 archive/labels 目錄,裏面的檔案就是轉換後的 txt 檔

分割訓練及驗証資料

新增 split.py 檔,將 90% 的資料置入 train, 10% 放置到 val。

🔒 完整內容請註冊並登入會員。

免費註冊登入

執行完後,會在 dataset 目錄產生 images 及 labels 二個目錄,裏面分別有 train 及 val 二個目錄。

data.yaml 資料集設定

在 ./dataset 目錄下新增 data.yaml,加入如下設定

train: e:/python/car/dataset/images/train
val: e:/python/car/dataset/images/val
nc: 1
names: [ 'license']

訓練模型

新增 train.py 檔,代碼如下

🔒 完整內容請註冊並登入會員。

免費註冊登入

訓練完成後,會在專案下的 runs/detect/train/weights 產生 best.pt 模型。

無法訓練的人,請由如下網址下載 : runs.zip。下載後請解壓縮至此。

車牌偵測及辨識

車牌位置偵測及英數字辨識代碼如下,底下代碼可以按一下滑鼠左鍵切換到下一張圖

測試圖片請由本站下載 images.zip,下載完請解壓縮至此。

🔒 完整內容請註冊並登入會員。

免費註冊登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *