2 YOLO8的使用

1 介绍 

        YOLOv8是YOLO (You Only Look Once) 目标检测模型系列的最新版本,由Ultralytics公司开发和维护。YOLOv8是在先前版本的基础上进行的重大更新,不仅提升了性能,还增加了更多的功能,它不仅能够进行目标检测,还能完成实例分割、姿态估计、跟踪和图像分类等多种计算机视觉任务。由于其高效性和多功能性,YOLOv8在多个行业和领域都有广泛的应用

YOLOv8的主要特点

  1. 无锚框(Anchor-Free)

    • YOLOv8抛弃了之前版本中使用的锚框(anchor boxes),这有助于简化模型,并可能提高检测速度和准确性。
  2. 统一框架

    • 提供一个统一的框架来执行目标检测、实例分割等多种任务,这意味着用户可以使用相同的代码库进行不同的计算机视觉任务。
  3. 新的骨干网络

    • YOLOv8采用了新的网络结构,这有助于提高模型的检测精度和速度。
  4. 多尺度特征融合

    • 通过融合不同层次的特征来提高模型对不同大小物体的检测能力。
  5. 改进的特征提取

    • 包括更复杂的网络架构和更优化的训练流程,从而增强特征提取能力。
  6. 新的激活函数和Attention机制

    • 通过采用新的激活函数和注意力机制来改善模型的表现力。
  7. 灵活的训练和部署

    • 可以在大型数据集上进行训练,并且能够在各种硬件平台上运行,包括CPU和GPU。
  8. 支持多种任务

    • YOLOv8不仅可以进行目标检测,还可以进行实例分割、图像分类、姿态识别和跟踪等任务。

以下是一些主要的应用场景:

目标检测

  • 安防监控:实时监测并识别出异常行为或入侵者。
  • 交通监控:检测道路上的车辆、行人以及其他障碍物,用于智能交通系统的管理。
  • 零售分析:监控顾客流量,分析顾客行为,提高店铺布局效率。
  • 自动化生产线:检测产品缺陷,确保产品质量控制。
  • 无人机应用:用于无人机上的目标检测,如农田监测、野生动物保护等。

实例分割

  • 医疗图像分析:精确地分割出医学图像中的特定组织或器官,辅助医生进行诊断。
  • 农业领域:作物健康状况评估,病虫害监测。
  • 工业检测:精细地检测零件表面的瑕疵或损伤。

图像分类

  • 自动图像排序:根据图像内容进行分类和组织。
  • 内容发现与推荐系统:基于图像内容推荐相关的产品或服务。

姿态估计

  • 体育分析:分析运动员的动作和姿势,帮助教练和运动员提高训练效果。
  • 人机交互:识别人体姿态,实现手势控制等交互方式。
  • 动作识别:用于视频游戏、虚拟现实和增强现实等应用中的用户动作识别。

跟踪

  • 自动驾驶:追踪道路上的动态对象,如行人、车辆等。
  • 视频监控:持续跟踪特定个体或物体。

其他应用场景

  • 机器人导航:为机器人提供环境感知能力,帮助它们避开障碍物。
  • 仓库管理:自动识别和定位货物,提高物流效率。
  • 质量控制:在制造过程中快速识别不合格产品。
  • 无人机巡检:用于电力线路巡检、建筑物检查等。

 2 目标检测简单的案例

数据集的准备:

2.1 准备自己的数据

        基于labelme进行制造自己的训练数据。本文主要使用的数据集合来源于此。参考上一篇文章;

https://github.com/TommyZihao/Train_Custom_Dataset/tree/main/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%E6%95%B0%E6%8D%AE%E9%9B%86icon-default.png?t=N7T8https://github.com/TommyZihao/Train_Custom_Dataset/tree/main/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%E6%95%B0%E6%8D%AE%E9%9B%86

2.2 使用现有的

在很多网站都存在。

2.3 下载模型: YOLOV8训练模型下载_yolov8下载-CSDN博客

Models Supported by Ultralytics - Ultralytics YOLO Docs

按照需要下载自己的即可: 

2.3 配置yaml

看一下文件结构:

data.yaml: 保存训练数据的路径;

train: bvn/images/train # 训练数据
val: bvn/images/val # 验证数据
# test: # test fiel
nc: 4 # 几个类别
names: ['Angle','Ruler','Triangle_30','Triangle_45'] # 类别的名称

yolov8n.pt: 模型文件;

datasets: 必须要有,保存训练的数据集合;

datasets:

注意: images\ labels 文件名称要一一对应起来。

 

2.4 训练

command 命令搞定:

yolo task=detect mode='train' model=./yolov8n.pt data=./data.yaml epochs=5 batch=4

每个epoch的产出:

最终的结果:多了一个 run文件;

代码版本

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
#model = YOLO("path/to/best.pt")  # load a custom model
model.train(data='./data.yaml',workers=1,epochs=4,batch=4)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值