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

相关推荐
YuTaoShao2 小时前
【论文阅读】YOLOv8在单目下视多车目标检测中的应用
人工智能·yolo·目标检测
极智视界9 小时前
分类场景数据集大全「包含数据标注+训练脚本」 (持续原地更新)
人工智能·yolo·数据集·分类算法·数据标注·classification·分类数据集
叶子2024221 天前
学习使用YOLO的predict函数使用
人工智能·学习·yolo
一勺汤1 天前
YOLO12 改进|融入 Mamba 架构:插入视觉状态空间模块 VSS Block 的硬核升级
yolo·计算机视觉·mamba·yolov12·yolo12·yolo12该机·yolo12 mamba
蹦蹦跳跳真可爱5892 天前
Python----目标检测(使用YOLO 模型进行线程安全推理和流媒体源)
人工智能·python·yolo·目标检测·目标跟踪
蹦蹦跳跳真可爱5892 天前
Python----目标检测(训练YOLOV8网络)
人工智能·python·yolo·目标检测
孤独野指针*P2 天前
释放模型潜力:浅谈目标检测微调技术(Fine-tuning)
人工智能·深度学习·yolo·计算机视觉·目标跟踪
蹦蹦跳跳真可爱5892 天前
Python----目标检测(YOLO简介)
人工智能·python·yolo·目标检测·计算机视觉·目标跟踪
蹦蹦跳跳真可爱5892 天前
Python----目标检测(《YOLOv3:AnIncrementalImprovement》和YOLO-V3的原理与网络结构)
人工智能·python·深度学习·神经网络·yolo·目标检测·目标跟踪
Coovally AI模型快速验证3 天前
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
人工智能·神经网络·yolo·目标检测·无人机·cocos2d