基于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

相关推荐
JicasdC123asd3 小时前
密集残差瓶颈网络改进YOLOv26特征复用与梯度传播双重优化
网络·yolo·目标跟踪
JicasdC123asd6 小时前
密集连接瓶颈模块改进YOLOv26特征复用与梯度流动双重优化
人工智能·yolo·目标跟踪
duyinbi75177 小时前
局部特征提取改进YOLOv26空间移位卷积与轻量化设计双重突破
人工智能·yolo·目标跟踪
张道宁8 小时前
基于Spring Boot与Docker的YOLOv8检测服务实战
spring boot·yolo·docker
duyinbi751712 小时前
大核瓶颈架构改进YOLOv26扩大感受野与多尺度特征提取双重突破
yolo·架构
孤狼warrior12 小时前
YOLO技术架构发展详解(从v1到v8)近万字底层实现逻辑解析
yolo
张张123y12 小时前
机器学习与深度学习:从基础概念到YOLOv8全解析
深度学习·yolo·机器学习
hans汉斯1 天前
基于区块链和语义增强的科研诚信智能管控平台
人工智能·算法·yolo·数据挖掘·区块链·汉斯出版社
Dev7z1 天前
斑点叉尾鮰鱼损伤检测数据集(YOLO格式)
yolo·斑点叉尾鮰鱼
duyinbi75171 天前
多尺度空洞卷积分支模块改进YOLOv26感受野扩展与特征提取能力双重突破
深度学习·yolo·目标跟踪