大家好,我是java1234_小锋老师,最近写了一套基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程,持续更新中,计划月底更新完,感谢支持。

视频在线地址:

https://www.bilibili.com/video/BV1BdUnBLE6N/

课程简介:


本课程采用主流的Python技术栈实现,分两套系统讲解,一套是专门讲PyTorch2卷积神经网络CNN训练模型,识别车牌,当然实现过程中还用到OpenCV实现图像格式转换,裁剪,大小缩放等。另外一套是基于前面Django+Vue通用权限系统基础上,加了车辆识别业务模型,Mysql8数据库,Django后端,Vue前端,后端集成训练好的模型,实现车牌识别。

基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程 - 验证检测到的矩阵是否符合车牌尺寸比例和面积特征

我们根据识别的矩阵,我们通过矩形尺寸比例和面积特征,来检测是否是车牌矩形。

# # 验证检测到的矩阵区域是否符合车牌的尺寸比例和面积特征
def verify_scale(rotate_rect):
    error = 0.4  # error为车牌允许的宽高比误差
    aspect = 4  # 4.7272  # aspect为期望的车牌宽高比,计算车牌的最小和最大面积。这些值用于过滤掉不符合车牌尺寸的矩形
    min_area = 10 * (10 * aspect)
    max_area = 150 * (150 * aspect)
    # 计算车牌区域的宽高比的最小值和最大值,考虑到了误差范围
    min_aspect = aspect * (1 - error)
    max_aspect = aspect * (1 + error)

    # 宽或高为0,不满足矩形直接返回False
    if rotate_rect[1][0] == 0 or rotate_rect[1][1] == 0:
        return False

    # 计算旋转矩形
    r = rotate_rect[1][0] / rotate_rect[1][1]
    r = max(r, 1 / r)
    area = rotate_rect[1][0] * rotate_rect[1][1]  # 计算旋转矩形的面积

    if area > min_area and area < max_area and r > min_aspect and r < max_aspect:
        return True
    return False

运行结果:

车牌坐标: ((313.5, 237.5), (255.0, 77.0), 0.0)
车牌坐标: ((401.5, 590.5), (71.0, 225.0), 90.0)
车牌坐标: ((658.30126953125, 182.3743438720703), (189.67578125, 53.47734832763672), 69.87654876708984)
车牌坐标: ((257.0, 175.5), (174.0, 41.0), 0.0)
车牌坐标: ((228.74288940429688, 81.48967742919922), (39.02401351928711, 144.0416717529297), 89.20427703857422)
车牌坐标: ((463.8109130859375, 338.7987976074219), (37.1049919128418, 124.45632934570312), 83.6598129272461)
车牌坐标: ((407.3741455078125, 437.90704345703125), (214.31515502929688, 61.04008102416992), 4.717602252960205)
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐