Skip to content

Richard-wsy/yolov8_crane_yhsb

Repository files navigation

yolov-data-train

功能说明

yolov-data-train 项目旨在使用YOLOv8进行模型训练,以实现高效的对象检测。该项目包括以下主要功能:

  • 数据预处理:label-studio平台数据标注项目下载后的数据整合。
  • 模型训练和评估:使用YOLOv8架构进行模型训练。

启用步骤

  • 环境准备
    • 在终端中创建虚拟环境:
      conda create -n yolov-data-train python=3.9 -y
      conda activate yolov-data-train
    • 如果在Conda环境中无法使用git命令,可以按照以下命令安装git:
      conda install git
    • 克隆该项目:
      git clone https://github.com/Richard-wsy/yolov8_crane_yhsb.git
    • 查看自己设备cuda版本:
      nvidia-smi
      nvcc -V
    • 到pytorch官网根据自己设备型号选择torch版本,例如:在终端中运行nvidia-smi,得到CUDA Version: 12.5,可以在pytorch官网中依次选择:Your OS:你的操作系统如果是Windows选择Windows,如果是Linux选择LinuxPackage:选择PipLanguage:编程语言选择PythonCompute Platform:cuda选择比刚刚在终端运行的cuda小的版本(例如:终端运行nvidia-smi得到12.5时就可以在pytorch官网中选择cuda 12.1、如果得到11.8,在官网中只能选择11.8,不能选择12.1)最后复制Run this Command栏的命令如:
      pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
      
      官网链接:Pytorch
    • 安装依赖包:
      cd yolov-data-train #进入yolov-data-train文件目录
      pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 #将刚刚在pytorch官网复制好的命令在终端中运行
      pip install -r requirements.txt
    • 数据准备:
      • 当前文件夹下新建名称为data文件夹
        mkdir data
      • 在公司建立的label-studio标注平台库,导出标好的数据文件,导出格式为yolo格式,将导出的文件解压到刚刚新建的data文件中,label-studio的网址如下: label-studio
      • 将导入到data文件中的不同项目标签数据文件进行整合,combine_projects.py文件中可以修改project_paths = ['data/projects1', 'data/projects2', 'data/projects3']在终端中运行:
        python combine_projects.py
      • 运行脚本后当前目录下会出现dataset文件,将dataset文件夹下images文件和labels文件里的数据进行分割制作训练集train和验证集val,在终端中运行如下命令:
        python profils_seg.py
      • 制作数据集配置文件,得到.yaml文件,终端运行如下命令:
        python make_yaml.py
    • 模型准备: 在yolov官网中下载预训练模型文件到当前文件夹下,各个预训练模型文件下载地址如下:
    • 训练数据:
      • 训练参数配置,在train.py脚本中可以修改如下参数:
        parser.add_argument('--weights', type=str, default='yolov8n.pt', help='初始权重文件路径')
        parser.add_argument('--data', type=str, default='yolo_dataset.yaml', help='数据集配置文件路径')
        parser.add_argument('--epochs', type=int, default=300, help='训练的总周期数')
        parser.add_argument('--batch', type=int, default=64, help='每个批次的样本数')
        parser.add_argument('--imgsz', type=int, default=640, help='训练和验证的图像大小(以像素为单位)')
        parser.add_argument('--device', default='0', help='训练设备,例如 0 或 0,1,2,3 或 cpu')
        parser.add_argument('--workers', type=int, default=12, help='数据加载器的最大工作线程数')
        parser.add_argument('--optimizer', type=str, choices=['SGD', 'Adam', 'AdamW'], default='AdamW', help='选择优化器')
        parser.add_argument('--lr0', type=float, default=0.1, help='初始学习率')
        parser.add_argument('--lrf', type=float, default=0.001, help='最终学习率')
        parser.add_argument('--weight_decay', type=float, default=0.0001, help='优化器的权重衰减')
        parser.add_argument('--momentum', type=float, default=0.937, help='优化器动量')
        parser.add_argument('--save_period', type=int, default=-1, help='每隔多少周期保存一次模型(如果 < 1 则禁用)')
        parser.add_argument('--single_cls', action='store_true', help='将多类数据作为单类处理')
        parser.add_argument('--freeze', type=int, nargs='+', default=[0], help='冻结层:backbone=10, first3=0 1 2')
        parser.add_argument('--cos_lr', action='store_true', help='使用余弦退火学习率调度')
        parser.add_argument('--label_smoothing', type=float, default=0.0, help='标签平滑参数')
        parser.add_argument('--patience', type=int, default=300, help='早停策略的耐心值(无改进的周期数)')
        
      • 开始训练,在终端中运行如下命令:
        python train.py
      • 训练结果,训练完成后目录下会出现runs文件,里面有训练过程记录的数据和训练好的模型权重weights文件,文件保存了best.ptlast.pt两个模型。

电脑配置问题:

  • 建议在内存为32g及以上的配置运行,如果运行后一段时间卡住,尝试将batch参数调小。
  • 可以尝试调整修改不同参数,达到好的训练效果。

About

Crane target detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages