Loading...
墨滴

码农的后花园

2021/11/09  阅读:32  主题:姹紫

开源车牌移动端识别项目

今天给大家推荐一个由智云视图车牌识别的开源项目HyperLPR,HyperLPR是一个基于深度学习的高性能中文车牌识别开源项目。开源地址https://github.com/zeusees/HyperLPR,由python语言编写,同时还支持Linux、Android、iOS、Windows等各主流平台。它拥有不错的识别率。

智云视图目前还开源了一个基于深度学习移动端车型识别的项目 HyperVID,支持超过4000种常见车辆品牌及子品牌。停车场卡口跟二手车图片TOP1准确率85%左右,TOP5 99%以上,新版优化了交通卡口的识别率,增加了车型种类,支持货车、客车、卡车等。

1 HyperLPR的车牌检测流程

  • 使用opencv的HAAR Cascade检测车牌大致位置
  • Extend检测到的大致位置的矩形区域
  • 使用类似于MSER的方式的多级二值化和RANSAC拟合车牌的上下边界
  • 使用CNN Regression回归车牌左右边界
  • 使用基于纹理场的算法进行车牌校正倾斜
  • 使用CNN滑动窗切割字符
  • 使用CNN识别字符 ————————————————

2 车牌识别代码

目前开源的HyperLPR车牌识别项目已经封装成了一个Python可使用的包,直接在命令行pip install hyperlpr就可以使用了,使用代码如下:

#导入包
from hyperlpr import *
import numpy
from PIL import Image, ImageDraw, ImageFont
#导入OpenCV库
import cv2

def image_add_text(img1, text, left, top, text_color, text_size):
    # 判断图片是否为ndarray格式,转为RGB图片
    if isinstance(img1, numpy.ndarray):
        image = Image.fromarray(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))
    # 创建一个可以在给定图像上绘图的对象
    draw = ImageDraw.Draw(image)
    # 参数依次为 字体、字体大小、编码
    font_style = ImageFont.truetype("font/simsun.ttc", text_size, encoding='utf-8')
    # 参数依次为位置、文本、颜色、字体
    draw.text((left, top), text, text_color, font=font_style)
    # 图片转换为opencv格式
    return cv2.cvtColor(numpy.asarray(image), cv2.COLOR_RGB2BGR)

#读入图片
image = cv2.imread(r"D:\Project\Monet_traffic\data\photo\1.png")
改变图片大小
image = cv2.resize(image,None,fx=0.5,fy=0.5)
#识别结果
print(HyperLPR_plate_recognition(image))
#识别信息
xinxi = HyperLPR_plate_recognition(image)[0][0]
conf = HyperLPR_plate_recognition(image)[0][1]
location = HyperLPR_plate_recognition(image)[0][2]
print(xinxi)
print(location)
#转换为PIL的image格式,使用PIL绘制文字,再转换为OpenCV的图片格式
image = image_add_text(image, xinxi,location[0], location[1], (25500), 50)
#画框
cv2.rectangle(image, (location[0], location[1]), (location[2], location[3]), (02550), 2)
#展示
cv2.imshow("image",image)
cv2.waitKey(0)
  }
}

3 检测效果

码农的后花园

2021/11/09  阅读:32  主题:姹紫

作者介绍

码农的后花园

公众号:码农的后花园