说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

1.项目背景

       车牌识别系统(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。车牌识别技术要求能够将运动中的汽车牌照从复杂背景中提取并识别出来,通过车牌提取、图像预处理、特征提取、车牌字符识别等技术,识别车辆牌号、颜色等信息,目前最新的技术水平为字母和数字的识别率可达到99.7%,汉字的识别率可达到99%。在停车场管理中,车牌识别技术也是识别车辆身份的主要手段。

      车牌识别系统(Vehicle License Plate Recognition)是计算机视频图像识别技术在车辆牌照识别中的一种应用,通常一个车牌识别系统主要包括以下这四个部分:车辆图像获取、车牌定位、车牌字符分割、车牌字符识别。本项目通过OpenCV和卷积伸进网络CNN进行实现。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

数据详情如下(部分展示):

 上图为36种类别,包括26个大写英文字母和0-9数字。

上图为某轿车的图片。

3.数据预处理

3.1 加载和读取数据

关键代码:

使用级联分类器检测车牌的图片上的数据,然后返回处理后的图像。

4.探索性数据分析

4.1.展示输入的图像

关键代码如下:

结果输出如下:

4.2.车牌检测图像

关键代码:

输出:

4.3.车牌图像

关键代码:

 输出:

4.4.车牌轮廓图像

关键代码:

 输出:

4.5.车牌号展示

关键代码:

 

输出:

5.特征工程

5.1.生成训练数据和验证数据

使用图片数据生成器ImageDataGenerator来生成训练数据和验证数据集。

关键代码如下:

6.构建CNN检测模型

主要使用CNN分类算法,用于目标检测。

6.1.建立车牌检测模型

 关键代码如下:

6.2.模型信息

关键代码:

 

输出:

从上图可以清晰地看出神经网络的层数和每层网络的类型,同时可以看到模型的总参数为757268。

7.模型评估

7.1.评估指标

关键代码:

F1分值:99.11%

7.2.预测结果展示

关键代码:

输出结果:

DL8CAF5030

8.结论与展望

综上所述,本文采用OpenCV对图像进行处理、应用CNN卷积神经网络进行车牌识别,最终证明了我们提出的模型效果良好。准确率达到了99.11%,可用于日常生活中进行建模预测,以提高价值。

plate_img = img.copy()
roi = img.copy()
# 检测车牌并返回检测到的车牌轮廓的坐标和尺寸
plate_rect = plate_cascade.detectMultiScale(plate_img, scaleFactor=1.2,
                                            minNeighbors=7)

# 本次机器学习项目实战所需的资料,项目资源如下:


链接:https://pan.baidu.com/s/1t4DdmX77ZCjdPL4XTRcjzQ 
提取码:3hxz








for (x, y, w, h) in plate_rect:
    # roi_ = roi[y:y + h, x:x + w, :]
    plate = roi[y:y + h, x:x + w, :]  # 提取车盘所在的区域
    cv2.rectangle(plate_img, (x + 2, y), (x + w - 3, y + h - 5), (51, 181, 155),
                  3)  # 最后通过在边缘周围绘制矩形来表示检测到的轮廓

if text != '':
    # 添加文字
    plate_img = cv2.putText(plate_img, text, (x - w // 2, y - h // 2),
                               cv2.FONT_HERSHEY_COMPLEX_SMALL, 0.5, (51, 181, 155), 1, cv2.LINE_AA)
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐