yolov8图像检测图像分类的快速方法

        YOLOv8 基于深度学习和计算机视觉领域的尖端技术,在速度和准确性方面具有无与伦比的性能。适用于各种应用,并可轻松适应从边缘设备到云 API 等不同硬件平台。

        作为一种成熟的算法,yolov8性能稳定,资料论坛齐全,适合用于项目或者个人学习,下面就简单介绍一下yolov8的使用方法。

        如果可以的话尽可能安装一下cuda和anaconda,cuda可以很大程度地加快训练和识别的速度,而安装anaconda可以解决新手大部分的环境问题,且便于多个不同版本python项目的管理。

        开始安装yolov8的环境

# Install the ultralytics package from PyPI
pip install ultralytics

        训练一下yolov8提供的coco数据体验一下

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # 用预训练模型训练,用默认配置,模型也可以换成自己训练完的
#YAML里面是对yolo模型训练配置的参数后面会讲解到
model = YOLO("yolov8n.yaml").load("yolov8n.pt")  # build from YAML and transfer weights
# Train the model
#coco8里面有训练集,验证集位置的定义,参数的讲解见后文
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

        这边的运行可能会遇到numpy的版本问题可能是np.int找不到这类的报错,可以改成np.int32,就可以正常运行。

        yolov8n.yam和coco8.yaml在第一次训练会自动下载,可以将这两个文件也放在你自己训练用的文件夹下,方便后续的修改。

        yolo8n.yaml里面的参数如下:(新手可以暂时不改)


# 任务类型,指定为检测任务
task: detect
# 模式,指定为训练模式
mode: train
# 使用的模型配置文件
model: yolov8n.yaml
# 数据集配置文件
data: coco8.yaml
# 训练轮数
epochs: 100
# 训练时间设置,null表示不限制
time: null
# 早停策略的耐心值
patience: 100
# 批量大小
batch: 16
# 输入图像大小
imgsz: 640
# 是否保存训练过程中的模型
save: true
# 模型保存周期,-1表示每轮都保存
save_period: -1
# 是否使用缓存
cache: false
# 训练使用的设备,null表示自动选择
device: null
# 工作线程数
workers: 8
# 项目名称
project: null
# 训练任务名称
name: train
# 是否覆盖已存在的训练目录
exist_ok: false
# 是否使用预训练模型
pretrained: true
# 自动选择优化器
optimizer: auto
# 是否输出详细日志
verbose: true
# 随机种子
seed: 0
# 是否确定性训练
deterministic: true
# 是否只训练单个类别
single_cls: false
# 是否使用矩形标注
rect: false
# 是否使用余弦学习率衰减
cos_lr: false
# 在训练中关闭mosaic数据增强的阈值
close_mosaic: 10
# 是否恢复训练
resume: false
# 是否使用自动混合精度训练
amp: true
# 训练数据的采样比例
fraction: 1.0
# 是否进行性能分析
profile: false
# 冻结层配置,null表示不冻结任何层
freeze: null
# 是否使用多尺度训练
multi_scale: false
# 是否在遮罩生成时使用重叠
overlap_mask: true
# 遮罩生成的比率
mask_ratio: 4
# 是否使用dropout
dropout: 0.0
# 是否进行验证
val: true
# 验证数据集的分割类型
split: val
# 是否保存JSON格式的预测结果
save_json: false
# 是否保存混合模型
save_hybrid: false
# NMS的置信度阈值
conf: null
# NMS的IOU阈值
iou: 0.7
# 最大检测数量
max_det: 300
# 是否使用半精度训练
half: false
# 是否使用DNN加速
dnn: false
# 是否生成训练过程中的图表
plots: true
# 数据源配置,null表示使用默认配置
source: null
# 视频处理的帧间隔
vid_stride: 1
# 是否使用流式缓冲区处理视频
stream_buffer: false
# 是否可视化训练结果
visualize: false
# 是否使用数据增强
augment: false
# 是否使用类无关的NMS
agnostic_nms: false
# 类别列表,null表示使用数据集中的所有类别
classes: null
# 是否使用RetinaNet风格的掩码生成
retina_masks: false
# 特征嵌入配置,null表示不使用
embed: null
# 是否显示检测结果
show: false
# 是否保存检测过程中的帧图像
save_frames: false
# 是否保存检测结果的文本描述
save_txt: false
# 是否保存检测结果的置信度图
save_conf: false
# 是否保存裁剪后的图像
save_crop: false
# 是否显示标签
show_labels: true
# 是否显示置信度
show_conf: true
# 是否显示边界框
show_boxes: true
# 边界框的线宽
line_width: null
# 模型保存的格式
format: torchscript
# 是否使用Keras
keras: false
# 是否对模型进行优化
optimize: false
# 是否使用INT8量化
int8: false
# 是否使用动态量化
dynamic: false
# 是否对模型进行简化
simplify: false
# ONNX操作集版本
opset: null
# CUDNN工作空间大小
workspace: 4
# 是否使用NMS
nms: false
# 初始学习率
lr0: 0.01
# 学习率衰减因子
lrf: 0.01
# 动量
momentum: 0.937
# 权重衰减
weight_decay: 0.0005
# 学习率预热的轮数
warmup_epochs: 3.0
# 学习率预热结束时的动量
warmup_momentum: 0.8
# 学习率预热结束时的偏置学习率
warmup_bias_lr: 0.1
# 盒子的IOU阈值
box: 7.5
# 类别的置信度阈值
cls: 0.5
# 方向类别的置信度阈值
dfl: 1.5
# 关节的置信度阈值
pose: 12.0
# 对象的关键点置信度阈值
kobj: 1.0
# 标签平滑的参数
label_smoothing: 0.0
# 单个GPU上的批处理大小
nbs: 64
# HSV颜色空间的H通道变化范围
hsv_h: 0.015
# HSV颜色空间的S通道变化范围
hsv_s: 0.7
# HSV颜色空间的V通道变化范围
hsv_v: 0.4
# 随机旋转的角度范围
degrees: 0.0
# 随机平移的比例范围
translate: 0.1
# 随机放缩的比例范围
scale: 0.5
# 随机剪切的角度范围
shear: 0.0
# 随机透视变形的比例范围
perspective: 0.0
# 随机上下翻转的概率
flipud: 0.0
# 随机左右翻转的概率
fliplr: 0.5
# 是否将图像从RGB转换为BGR
bgr: 0.0
# 数据增强mosaic的概率
mosaic: 1.0
# 数据增强mixup的概率
mixup: 0.0
# 数据增强copy_paste的概率
copy_paste: 0.0
# 自动数据增强策略
auto_augment: randaugment
# 部分区域擦除的概率
erasing: 0.4
# 随机裁剪的比例
crop_fraction: 1.0
# 配置文件,用于更详细的设置
cfg: null
# 追踪算法的配置文件
tracker: botsort.yaml
# 模型和日志的保存目录
save_dir: runs\detect\train

coco.yaml参数如下:

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8  ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8 # dataset root dir

train: images/train # train images (relative to 'path') 4 images这边也可以是划分好的train.txt
val: images/val # val images (relative to 'path') 4 images这边也可以是划分好的val.txt
test: # test images (optional)

# Classes
#需要训练的类别
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus

训练完就可以啦

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值