基于yolov8-paddleocr-车牌识别

1 介绍

使用yolov8模型进行车牌区域识别,然后使用paddlecor模型将字体提取出来,由于数据量很大,支持复杂环境下的识别。数据集共29642张,其中27642张用了做训练,2000张用来做验证。

2 训练yolov8模型

yolov8详细介绍可以在网上找资料看,训练很简单,安装完包就一行train训练就行。

python 复制代码
from ultralytics import YOLO

# 29642 # 27642 训练 2000 测试
if __name__ == '__main__':
    model = YOLO("yolov8m.yaml")  # build a new model from scratch
    results = model.train(data="data.yaml", epochs=20, batch = 8)  # train the model

3 OCR识别

3.1 导入paddleocr模型

python 复制代码
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'  # 设置允许重复加载动态链接库,若不允许,使用jupyter运行时内核会挂掉
# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(rec_model_dir = "models/ocr",use_angle_cls=False,
                use_gpu=False,lang="ch", show_log=False)  # need to run only once to download and load model into memory

3.2 导入yolov8模型,进行推理

python 复制代码
#导入yolov8模型
model = YOLO("models/yolov8n/best.pt")  # load a pretrained model (recommended for training)

3.3 进行推理

对于每张图片,先识别出车牌的位置,然后再提取字符。

python 复制代码
  if img is not None:
        car_num, xyxy, xywhn = get_yolov8_result(model, img)
        roi_out_path = os.path.join(roi_path, file)
        if car_num == 1:
            # 表示只有一个位置是车牌
            xyxy_tr = torch.tensor(xyxy)  # 转换为tensor类型
            ROI = save_one_box(xyxy_tr, img, file=Path(roi_out_path), BGR=True)  # 提取车牌区域
            ocr_text = ocr.ocr(ROI, cls=False)  # 输入到百度模型进行ocr识别
            if len(ocr_text[0]) != 0:
                # 表示这个位置是车牌
                number_plate = process_car_text(ocr_text)  # 处理车牌
                xywhn_str = process_xywhn(xywhn)
                line_str = file + "," + xywhn_str + "," + number_plate + "\n"
                write_append_content(output_file_path, line_str)

4 结果展示

提取到的ROI车牌区域

提取到的车牌结果,只展示部分结果

完整代码可以咨询:https://docs.qq.com/doc/DWEtRempVZ1NSZHdQ

相关推荐
羊羊小栈18 小时前
基于「YOLO目标检测 + 多模态AI分析」的遥感影像目标检测分析系统(vue+flask+数据集+模型训练)
人工智能·深度学习·yolo·目标检测·毕业设计·大作业
大霸王龙2 天前
基于vLLM与YOLO的智能图像分类系统
yolo·分类·数据挖掘
m_136872 天前
Mac M 系列芯片 YOLOv8 部署教程(CPU/Metal 后端一键安装)
yolo·macos
格林威2 天前
机器视觉在半导体制造中有哪些检测应用
人工智能·数码相机·yolo·计算机视觉·视觉检测·制造·相机
、、、、南山小雨、、、、3 天前
YOLO在ubuntu22安装
yolo
羊羊小栈3 天前
基于「YOLO目标检测 + 多模态AI分析」的铁路轨道缺陷检测安全系统(vue+flask+数据集+模型训练)
人工智能·yolo·目标检测·语言模型·毕业设计·创业创新·大作业
Python图像识别4 天前
63_基于深度学习的草莓病害检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
python·深度学习·yolo
范男4 天前
YOLO11目标检测运行推理简约GUI界面
图像处理·人工智能·yolo·计算机视觉·视觉检测
model20054 天前
ubuntu24.04+5070ti训练yolo模型(2)
人工智能·yolo
强盛小灵通专卖员4 天前
RK3576边缘计算设备部署YOLOv11
人工智能·深度学习·yolo·边缘计算·sci·rk3576·小论文