当前位置: 首页 > news >正文

Yolov8目标检测

Yolov8目标检测

目录

  • Yolov8目标检测
  • 一、准备数据集
  • 二、源码下载配置
    • 2.1 下载库
    • 2.2 修改配置
    • 2.3 训练
    • 2.4 验证
    • 2.5 测试
    • 2.6 模型导出
    • 2.7 本地测试


一、准备数据集

Yolov8只支持yolo格式的数据,所以,需要将数据集格式调整为

datasets|images|train|000000.jpg000001.jpgtest|100000.jpg100001.jpglabels|train|000000.txt000001.txttest|100000.txt100001.txt

二、源码下载配置

2.1 下载库

pip install ultralytics

2.2 修改配置

新建一个模型配置文件yolov8.yaml,里面添加数据路径和类别:

train: "/home/dxfcv/workspace/sunsirui/label/dataset/train/images"
val: "/home/dxfcv/workspace/sunsirui/label/dataset/test/images"
nc: 3
names: ["cement","metal","plastics"]

2.3 训练

具体参数可参看链接

yolo task=detect mode=train model=yolov8s.pt data=yolov8.yaml batch=8 epochs=100 imgsz=640 workers=16 device=0

训练完会生成一个文件夹存放所有结果

2.4 验证

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

2.5 测试

yolo task=detect mode=predict model=runs/detect/train/weights/best.pt source=/home/dxfcv/workspace/sunsirui/label/dataset/images device=0

在生成的predict文件夹下就能看到效果了(像标注的效果)

2.6 模型导出

yolo task=detect mode=export model=runs/detect/train/weights/best.pt format=onnx

2.7 本地测试

使用不同方式(比如opencv)调图片去检测,结果会在对应文件夹下出现

from ultralytics import YOLO
from PIL import Image
import cv2model = YOLO("/home/dxfcv/workspace/sunsirui/label/dataset/runs/detect/train/weights/best.onnx")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
# results = model.predict(source="0")
# results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments# # from PIL
# im1 = Image.open("bus.jpg")
# results = model.predict(source=im1, save=True)  # save plotted images# from ndarray
im2 = cv2.imread("/home/dxfcv/workspace/sunsirui/label/dataset/images/camera2_200025.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels# from list of PIL/ndarray
# results = model.predict(source=[im1, im2]
http://www.lryc.cn/news/104931.html

相关文章:

  • Jmeter用于接口测试中,关联如何实现
  • 线程状态
  • HTML一些基础知识
  • git 命令总结
  • 【Django】如何优化数据库访问
  • 常压室温超导材料:揭开物理学的新篇章
  • 【《C# 10 和 .NET 6入门与跨平台开发(第6版)》——一本循序渐进的C#指南】
  • 2.5 BUMP图改进
  • 第六篇-ChatGLM2-6B-CentOS7安装部署-GPU版
  • dotnet 依赖注入-批量注入Controller,service,Dao
  • 【Spring】Spring对IoC的实现
  • 正则表达式中的大括号-花括号{}有什么用?
  • Flutter 状态栏完美攻略
  • Packet Tracer - 连接有线和无线 LAN
  • 02 笔记本电脑m.2硬盘更换
  • 2.04 商品搜索功能实现
  • 【SEO基础】百度权重是什么意思及网站关键词应该怎么选?
  • Unity实现在3D模型标记
  • iOS开发-NotificationServiceExtension实现实时音视频呼叫通知响铃与震动
  • 性能调试【学习笔记】
  • 【taro react】---- 获取元素的位置和宽高等信息
  • Java【Spring】项目创建、存储和获取 Bean 的基本方式
  • docker minio安装
  • 设计模式-命令模式在Java中的使用示例-桌面程序自定义功能键
  • 分冶算法 剑指 07 重建二叉树 排序算法:剑指45 把数组排成最小的数 10-I 斐波那契数列
  • Postgresql取消正在执行的任务或强制终止正在执行的任务
  • 【Linux】Centos7 的 Systemctl 与 创建系统服务 (shell脚本)
  • Redis集群Cluster搭建
  • swing组件应用
  • Spring学习记录----十五、面向切面编程AOP+十六、Spring对事务的支持