• 基于yolov8的车牌检测训练全流程


    在这里插入图片描述
    YOLOv8 是Ultralytics的YOLO的最新版本。作为一种前沿、最先进(SOTA)的模型,YOLOv8在之前版本的成功基础上引入了新功能和改进,以提高性能、灵活性和效率。YOLOv8支持全范围的视觉AI任务,包括检测, 分割, 姿态估计, 跟踪, 和分类。这种多功能性使用户能够利用YOLOv8的功能应对多种应用和领域的需求。

    代码地址:https://github.com/ultralytics/ultralytics

    一、数据集预处理

    yolov8的数据集格式处理可以参考我的这篇博客:yolo系列模型训练数据集全流程制作方法(附数据增强代码)
    这里就不再详细讲述,处理完并划分训练集和验证集后格式为下:

    - mydata
      |- train
      |  |- images
      |  |- labels
      |
      |- val
      |  |- images
      |  |- labels
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    处理完以后,自己创建一个mydata.yaml文件,文件内容如下:

    train: mydata/train/images
    val: mydata/val/images
    #如果按照上述方式建立文件夹,则上面train、test和val地址可以不变
    
    nc: 8         #标签类别个数
    names: ['0', '1', '2', '3', '4', '5', '6', '7']    #标签名
    #上面nc和names可以根据自己的数据集进行修改
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后将mydata.yaml直接放到yolov8代码的主目录下即可,即./ultralytics-main下。
    在这里插入图片描述

    二、训练

    使用yolov8的小伙伴可以发现,yolov8同v5、v7不太一样,里面的文件代码路径什么的都发生了很大的变化,所以刚上手可能会觉得非常的不知所措。但是,其实v8训练起来同前面的版本相比更加简单,可以直接用yolo命令进行训练。

    首先,我们需要安装 ultralytics 这个库。

    pip install ultralytics
    
    • 1

    然后直接使用下面的指令在命令行进行单卡训练即可:

    yolo task=detect mode=train model=yolov8n.pt data=mydata.yaml batch=32 epochs=100 imgsz=640 workers=16 device=0
    
    • 1

    注意:
    1. 如果是在windows系统中训练yolov8的话,worker设置成0,如果是Linux或服务器的话,就可以设置成8或16等。
    2. 如果训练过程中报了路径的错误,那么就将mydata.yaml改为绝对路径。

    训练成功如下图所示:
    在这里插入图片描述

    如果你有服务器,想要进行多卡训练,则使用下面的命令:

    yolo task=detect mode=train model=yolov8n.pt data=mydata.yaml batch=32 epochs=100 imgsz=640 workers=16 device=\'0,1,2,3\'
    
    • 1

    三、验证

    在训练完以后,我们可以使用验证集对模型的性能进行一个验证,具体命令如下:

    yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=mydata.yaml device=0
    
    • 1

    四、预测

    对图片进行预测的代码如下:

    yolo task=detect mode=predict model=runs/detect/train/weights/best.pt source=inferdata device=0
    
    • 1

    如果想要将检测的结果导出labels的txt文件的话,命令如下:

    yolo task=detect mode=predict model=runs/detect/train/weights/best.pt source=inferdata save_txt=True device=0
    
    • 1

    对模糊图片的检测结果如下:
    在这里插入图片描述

    五、导出ONNX模型

    导出onnx的代码如下:

    yolo task=detect mode=export model=runs/detect/train/weights/best.pt format=onnx
    
    • 1
  • 相关阅读:
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    晶振如何产生数字时钟信号
    如何在Windows系统搭建VisualSVN服务并在公网远程访问【内网穿透】
    JVM简单理解
    灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”
    Python 绘制玫瑰花
    vue3 defineProps defineEmits defineExpose
    Spring【注解实现IOC(@Component、@Repository、@Service、@Controller)】(三)-全面详解(学习总结---从入门到深化)
    Unity API详解——Mathf类
    代码随想录训练营第42天|416.分割等和子集
  • 原文地址:https://blog.csdn.net/m0_63007797/article/details/134517824