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加个星。





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