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

相关推荐
如果能为勤奋颁奖11 小时前
YOLO11改进|卷积篇|引入可变核卷积AKConv
yolo
GIS潮流15 小时前
遥感影像-实例分割数据集:iSAID 从切图到YOLO格式数据集制作详细介绍
yolo
FL16238631291 天前
[数据集][目标检测]辣椒缺陷检测数据集VOC+YOLO格式695张5类别
人工智能·yolo·目标检测
FL16238631292 天前
[深度学习][python]yolov11+deepsort+pyqt5实现目标追踪
人工智能·yolo
霍夫曼vx_helloworld73522 天前
yolov8/9/11模型在中医舌苔分类中的应用【代码+数据集+python环境+GUI系统】
python·yolo·分类
深度学习lover2 天前
<数据集>工程机械识别数据集<目标检测>
人工智能·python·yolo·目标检测·计算机视觉
FL16238631292 天前
[C++]使用纯opencv部署yolov11目标检测onnx模型
c++·opencv·yolo
FL16238631292 天前
[C#]C# winform部署yolov11目标检测的onnx模型
开发语言·yolo·c#
wei_shuo2 天前
YOLOv1代码复现(论文复现)
yolo
音沐mu2 天前
【YOLO目标检测行人与车数据集】共5607张、已标注txt格式、有训练好的yolov5的模型
人工智能·yolo·目标检测