基于Python深度学习的车辆车牌识别系统(PyTorch2卷积神经网络CNN+OpenCV4实现)视频教程 - 车牌矩阵定位

大家好,我是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):
    return True
​
​
def img_transform(rotate_rect, orig_img):
    return None
​
​
def locate_carPlate(orig_img, pred_img):
    carPlate_list = []  # 车牌列表
    temp1_orig_img = orig_img.copy()  # 拷贝图片 调试用
    temp2_orig_img = orig_img.copy()  # 拷贝图片 调试用
    # 从二值图像中查找轮廓的函数
    # cv2.RETR_EXTERNAL参数表示只检索最外层轮廓,
    # cv2.CHAIN_APPROX_SIMPLE参数表示压缩轮廓的水平、垂直和对角线部分,只保留端点。
    # 函数返回轮廓列表contours和层级信息heriachy,用于后续的车牌定位处理。
    contours, hierarchy = cv2.findContours(pred_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    for i, contour in enumerate(contours):
        """
        这段代码的功能是在调试图像上绘制检测到的轮廓。具体来说:
        cv2.drawContours()函数用于在temp1_orig_img图像上绘制轮廓
        contours是要绘制的轮廓点集
        i表示当前绘制第几个轮廓
        (0, 255, 255)是绘制的颜色(青色)
        2是线条粗细度
        这样可以可视化显示所有检测到的车牌候选区域轮廓,便于调试观察。
        """
        cv2.drawContours(temp1_orig_img, contours, i, (0, 255, 255), 2)
        """
        获取当前轮廓的最小外接矩形,cv2.minAreaRect()函数会计算能够完全包围轮廓的最小面积矩形,
        并返回一个包含矩形中心点坐标、宽度高度和旋转角度的元组,
        用于后续的车牌定位和矫正处理。
        """
        rotate_rect = cv2.minAreaRect(contour)
​
        # 根据矩形面积大小和长宽比判断是否是车牌
        if verify_scale(rotate_rect):
            # 裁剪车牌并且位置矫正
            car_plate = img_transform(rotate_rect, temp2_orig_img)
            cv2.imwrite('process_img/transform_img.jpg', car_plate)
            # 调整尺寸为后面CNN车牌识别做准备
            car_plate = cv2.resize(car_plate, (car_plate_w, car_plate_h))
            cv2.imwrite('process_img/resize_img.jpg', car_plate)
            carPlate_list.append(car_plate)
    return carPlate_list
​
​
if __name__ == '__main__':
    car_plate_w, car_plate_h = 136, 36  # 车牌宽高
    char_w, char_h = 20, 20  # 字符宽高
    char_model_path = "char.pth"
    test_images_root = 'images/test/'  # 测试图片路径
    files = list_all_files(test_images_root)
    files.sort()
​
    for file in files:
        img = cv2.imread(file)  # 读取图片
        pred_img = pre_process(img)  # 预处理图片
        locate_carPlate(img, pred_img)  # 车牌定位
相关推荐
毕设源码-郭学长5 分钟前
【开题答辩全过程】以 基于python电商商城系统为例,包含答辩的问题和答案
开发语言·python
black0moonlight5 分钟前
win11 isaacsim 5.1.0 和lab配置
python
知乎的哥廷根数学学派9 分钟前
基于多尺度注意力机制融合连续小波变换与原型网络的滚动轴承小样本故障诊断方法(Pytorch)
网络·人工智能·pytorch·python·深度学习·算法·机器学习
网安CILLE10 分钟前
PHP四大输出语句
linux·开发语言·python·web安全·网络安全·系统安全·php
jjjddfvv12 分钟前
超级简单启动llamafactory!
windows·python·深度学习·神经网络·微调·audiolm·llamafactory
A先生的AI之旅14 分钟前
2025顶会TimeDRT快速解读
人工智能·pytorch·python·深度学习·机器学习
温柔只给梦中人15 分钟前
深度学习:正则化
人工智能·深度学习
狮子座明仔17 分钟前
DocDancer:北大联合腾讯提出端到端训练的文档问答Agent,将DocQA形式化为信息寻求过程
人工智能·深度学习·语言模型·自然语言处理
foundbug99918 分钟前
MATLAB中实现信号迭代解卷积功能
开发语言·深度学习·matlab
程序员小远22 分钟前
完整的项目测试方案流程
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例