Hyper_LPR py3 程序流程

HyperLPR_py3 算法以Opencv和自己訓練的幾個模型,實現了車牌的快速檢測。流程如下:

  1. cv2.imread() 讀取圖片  
  2. 使用 top_bottom_padding_rate 參數截取圖片(上下各截掉一小部分,減小圖片大小),並轉爲灰度圖   cv2.cvtColor(image_color_cropped, cv2.COLOR_RGB2GRAY)  
  3. 使用訓練好的級聯分類器  cascade.xml  將車牌從彩色圖像中摳出來。 (比檢測出來的稍微大一點)
  4. 將摳出來的圖resize成 (136,72)
  5. 識別牌照種類:非藍牌的顏色翻轉(識別的時候都是白色的字符更方便) 模型:plate_type.h5
  6. 進行車牌的精確定位(上下):  
    → 自適應閾值(cv2.adaptiveThreshold)獲取車牌號碼的二值圖(一共15個,包含各個blockSize) 
    → 計算二值圖中車牌號碼的大致包圍框(cv2.findContours)
    → 存儲所有框的左上角和右下角的點 
    → 使用左上角擬合上邊界,右下角擬合下邊界(cv2.fitLine),並將擬合直線上下移動3個像素,擴大範圍 
    → 使用cv2.warpPerspective將圖像矯正(後面跟了個deskew,作用抗傾斜,沒理解)
    → 使用 model12.h5 模型尋找左右邊界

    定位完成, 號碼檢測有兩種

    1. 使用 ocr_plate_all_w_rnn_2.h5 模型直接回歸車牌號  (效果較差)

    2.使用先分割後識別的方法
       使用16像素寬的窗口掃過車牌,存儲掃過的數據,使用char_judgement.h5 判斷該窗口是否爲號碼,然後識別
  7. 顯示車牌和置信度


    備註: 看完點個贊,github加個星。





                 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章