位置: IT常识 - 正文

YOLOv8 目标检测 | 自定义数据集(yolov8目标检测测试输出类别个数)

编辑:rootadmin
YOLOv8 目标检测 | 自定义数据集

推荐整理分享YOLOv8 目标检测 | 自定义数据集(yolov8目标检测测试输出类别个数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:YOLOv8目标检测提高准确率,yolov8目标检测语音播报,yolov8目标检测算法改进,yolov8目标检测正确率,YOLOv8目标检测提高准确率,yolov8目标检测正确率,yolov8目标检测分割,yolov8目标检测算法,内容如对您有帮助,希望把文章链接给更多的朋友!

本文介绍了使用用于目标检测的自定义数据训练 YOLOv8 模型。我正在使用来自 kaggle 的 yolo 格式的“Face Mask Dataset”,数据集链接如下:https://www.kaggle.com/datasets/maalialharbi/face-mask-dataset?resource=download

YOLOv8 是目前最先进的 YOLO 模型,可用于目标检测、图像分类和实例分割任务。

我使用 Google Colab 进行训练,如果您有兴趣使用 YOLOv5 对自定义数据进行检查,可是使用下面链接中的代码:https://github.com/Balakishan77/yolov5_custom_traffic_sign_detector。

关于这个用于目标检测任务的数据集:

数据集“Face Mask Dataset”已转换好 YOLO 格式以用于检测任务。它既可以用于训练,也可以用于测试。

图像数据集可以切分如下:

测试:136 =10%

训练:990 = 70%

验证:294 = 20%

总计 = 1420 张图片

图像数据增强是为了增加数据集的大小并使其更强大。图像格式:JPEG、PNG,共有 3 个类:no_mask mask improper_mask。

训练自定义检测模型:

我正在使用 Yolov8m 对口罩数据进行自定义训练。我通过从 Google Drive 读取数据并在 Google colab 上进行训练。以下步骤将详细介绍使用 YOLOv8 在 Mask Data 上进行自定义训练:

配置 Google Colab

YOLOv8 安装

安装 Google Drive

创建 face_mask_detetcion.yaml(数据集配置文件)(YOLOV8格式)

训练我们的自定义口罩检测模型

指标

使用自定义 YOLOv8 目标检测模型训练权重进行推理

1. 配置 Google Colab

Google Colab 是一个类似于 Jupiter notebook 的在线深度学习训练环境,您可以在上面的 GPU/TPU 上训练深度学习模型。Google Colab 允许您在断开连接之前免费训练深度学习模型长达 12 小时。通过访问运行时部分,将运行类型更改为 GPU 并使用以下命令检查 GPU 详细信息。

# to check and monitoring of NVIDIA GPU devices.!nvidia-smi

2. YOLOv8 安装

我们可以通过 clone git 上面的代码或使用 torch hub 使用 YOLOv5。最近的 YOLOv8 已经发布为 pip 包,所以我们不需要 clone 任何代码,便可以安装 v8 版本所有的依赖项。

# installing package to work with yolov8!pip install ultralytics

3. 安装 Google Drive

我已经将 mask_dataset 文件夹上传到“MyDrive/datasets/mask_dataset/”路径中的 Google Drive,我将使用以下代码进行安装。(它会要求您输入授权码,您可以通过单击下面显示的链接来输入授权码)。标注数据已按照图像和标签(文本文件)分开的方式进行切分。

from google.colab import drivedrive.mount('/content/drive')

YOLOv8格式:

YOLOv8 的格式与 Yolov5 相同。YOLO 格式,每个图像有一个对应的 .txt 文件(如果图像中没有对象,则不需要 .txt 文件)。*.txt 文件规范为:

每个对象对应一行,每行依次保存了 class, x_center, y_center width height。框坐标必须采用 xywh 格式(归一化到 0–1)。如果您的框以像素为单位,请将 x_center 和 width 除以图像 width,将 y_center 和 height 除以图像 heigth。class 是从零进行索引的。下面我们将探索数据集中的一些示例图像。

# Checking the size of images and displaying themimport numpy as npimport cv2# Image shape in Trainingimage = cv2.imread('/content/drive/MyDrive/datasets/mask_dataset/train/images/5e353e347af50726986e84c0.jpeg')height = np.size(image, 0)width = np.size(image, 1)print ("shape of the training image {}, {}".format(height, width))# Image shape in validationimage = cv2.imread('/content/drive/MyDrive/datasets/mask_dataset/valid/images/maksssksksss67.png')height = np.size(image, 0)width = np.size(image, 1)print ("shape of the validation image {}, {}".format(height, width))# dispying with different widthfrom IPython.display import ImageImage(filename='/content/drive/MyDrive/datasets/mask_dataset/train/images/5e353e347af50726986e84c0.jpeg', width=300)YOLOv8 目标检测 | 自定义数据集(yolov8目标检测测试输出类别个数)

4. 创建 face_mask_detetcion.yaml(数据集配置文件)

“face mask dataset”中的图像拆分如下:

训练:990 = 70%

验证:294 = 20%

测试:136 =10% 

(我没有使用测试数据集,而是用一些来自互联网的视频进行测试)

总计 = 1420 张图片

下面创建的 mask_dataset/face_mask_detetcion.yaml 是定义以下内容的数据集配置文件:

数据集根目录路径和 train / test /val 图像目录的相对路径(或带有图像路径的 *.txt 文件)

nc:类别数目

names:类名列表

# I will write the contents of the cell to a file%%writefile /content/drive/MyDrive/datasets/mask_dataset/face_mask_detection.yaml# 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: /content/drive/MyDrive/datasets/mask_dataset # dataset root dirtrain: train/images/ # train images (relative to 'path')val: valid/images/ # val images (relative to 'path')test: # test images (optional)# number of classesnc: 3# class names#names: ['0', '1', '2']names: [ 'no_mask', 'mask','improper_mask'] # class names

5. 训练我们自定义口罩检测模型

我正在使用 YOLOv8m 预训练模型对口罩数据集进行训练。我们可以调整多个参数以获得更好的结果,我正在使用 yolov8m 模型训练 25 个 epoch。

参数:

指定数据配置文件的路径

输入图像尺寸

epoch

from ultralytics import YOLO# Load a model# model = YOLO("yolov8m.yaml") # build a new model from scratchmodel = YOLO("yolov8m.pt") # load a pretrained model (recommended for training)# Use the modelresults = model.train(data="/content/drive/MyDrive/datasets/mask_dataset/face_mask_detection.yaml", epochs=25, imgsz=640) # train the model

VAL:

在验证数据集上验证经过训练的 YOLOv8m 模型准确性。不需要传递参数,因为模型将其训练数据和参数保留为一个完整模型。

results = model.val() # evaluate model performance on the validation set

6. 指标

每个类别和整体的训练 mAP 效果都很好,视频测试结果也很好。如果我们针对 epoch 进行训练,添加更多数据并使用超参数可以提高模型的性能。下面我们可以看到 Precision-Recall 和 F1 置信度曲线。

# dislaying metrics for train datafrom IPython.display import Imagefrom IPython.display import displayx = Image(filename='runs/detect/train2/F1_curve.png')y = Image(filename='runs/detect/train2/PR_curve.png')z = Image(filename='runs/detect/train2/confusion_matrix.png')display(x, y,z)

7. 推理

# checking the latest trained files!ls 'runs/detect/train2/weights'best.pt last.pt# loading the trianed modelmodel = YOLO("runs/detect/train2/weights/best.pt") # load a custom model# testing the model on a video!yolo task=detect mode=predict model="runs/detect/train2/weights/best.pt" source="/content/drive/MyDrive/datasets/mask_dataset/mask_testing.mp4"

下面是使用该模型对图像进行推理的示例。

下面提供了使用经过训练模型推理并进行标注的视频链接:

https://github.com/Balakishan77/Yolov8-Custom-ObjectDetetction/blob/main/face_mask_detetcion_yolov8.mp4

结论

根据推理结果,经过训练的模型效果很好。我们可以尝试通过使用更大型的 YOLOv8 模型、扩增数据集和添加超参数的方式对模型进行改进,小伙伴们有兴趣可以自行尝试。

·  END  ·

HAPPY LIFE

本文链接地址:https://www.jiuchutong.com/zhishi/289002.html 转载请保留说明!

上一篇:网络层:IP协议(网络层IP协议的配套协议有哪些)

下一篇:flex布局 多种方法让两个盒子分布在左右两边(flex的几个常用布局)

  • 浅谈怎样做好团购网站的推广(如何做好一名团员100字)

    浅谈怎样做好团购网站的推广(如何做好一名团员100字)

  • 苹果13promax怎么唤醒siri(苹果13promax怎么分屏)

    苹果13promax怎么唤醒siri(苹果13promax怎么分屏)

  • 苹果手机如何升级内存(苹果手机如何升级微信最新版本)

    苹果手机如何升级内存(苹果手机如何升级微信最新版本)

  • 4g lte是什么意思(4g手机lte)

    4g lte是什么意思(4g手机lte)

  • 电脑显示证书过期怎么回事(电脑显示证书过期或未生效)

    电脑显示证书过期怎么回事(电脑显示证书过期或未生效)

  • 手机视频传到电脑音画不同步(手机视频传到电脑上只有声音没有画面)

    手机视频传到电脑音画不同步(手机视频传到电脑上只有声音没有画面)

  • 苹果11主卡在上面还是下面(苹果11为啥主卡显示在下面)

    苹果11主卡在上面还是下面(苹果11为啥主卡显示在下面)

  • 为什么头像老是变企鹅(头像是啥原因)

    为什么头像老是变企鹅(头像是啥原因)

  • 华为mate30pro充电器型号(华为mate30pro充电口接触不良怎么办)

    华为mate30pro充电器型号(华为mate30pro充电口接触不良怎么办)

  • xsmax港行是zp还是za(xsmax港行和国行区别)

    xsmax港行是zp还是za(xsmax港行和国行区别)

  • 图库里的照片怎么恢复(图库里的照片怎么编辑)

    图库里的照片怎么恢复(图库里的照片怎么编辑)

  • 如何保存b站视频到本地(如何保存b站视频到手机)

    如何保存b站视频到本地(如何保存b站视频到手机)

  • 文件夹是按照什么关系来组织的(文件夹属于哪一类)

    文件夹是按照什么关系来组织的(文件夹属于哪一类)

  • 拼多多gmv什么意思(拼多多gmv计算公式)

    拼多多gmv什么意思(拼多多gmv计算公式)

  • 华为caztl10是叫什么(华为caz-al10是什么型号手机)

    华为caztl10是叫什么(华为caz-al10是什么型号手机)

  • qq卸载了怎么恢复数据(qq卸载了怎么恢复以前的聊天记录免费)

    qq卸载了怎么恢复数据(qq卸载了怎么恢复以前的聊天记录免费)

  • ipad7如何设置自动休眠(ipad7自动旋转怎么设置)

    ipad7如何设置自动休眠(ipad7自动旋转怎么设置)

  • 5g下载速度是多少mb(5g下载速度是多少mb/s)

    5g下载速度是多少mb(5g下载速度是多少mb/s)

  • 手机qq怎么制作表情包(手机qq怎么制作文件夹发给好友)

    手机qq怎么制作表情包(手机qq怎么制作文件夹发给好友)

  • pr是什么软件(cad是什么软件)

    pr是什么软件(cad是什么软件)

  • i74710mq属于高端i7吗(i74710mq上市时间)

    i74710mq属于高端i7吗(i74710mq上市时间)

  • 货拉拉下单后怎么取消(货拉拉从哪下单)

    货拉拉下单后怎么取消(货拉拉从哪下单)

  • 苹果怎么回车下一行(苹果怎么样回车键)

    苹果怎么回车下一行(苹果怎么样回车键)

  • 快手的热门在哪里找到(快手的热门在哪里)

    快手的热门在哪里找到(快手的热门在哪里)

  • 淘宝网卖家中心在哪(淘宝网卖家中心网页版)

    淘宝网卖家中心在哪(淘宝网卖家中心网页版)

  • 怎么拒绝骚扰电话(怎么拒绝骚扰电话和信息)

    怎么拒绝骚扰电话(怎么拒绝骚扰电话和信息)

  • 网站国际化 多语言处理工具i18n安装使用方法(网站国际化方案)

    网站国际化 多语言处理工具i18n安装使用方法(网站国际化方案)

  • 大雾笼罩下的巴伐利亚阿尔卑斯山脉,德国 (© Anton Petrus/Getty Images)(大雾笼罩的早晨)

    大雾笼罩下的巴伐利亚阿尔卑斯山脉,德国 (© Anton Petrus/Getty Images)(大雾笼罩的早晨)

  • 免交增值税怎么账务处理
  • 其他负债是流动负债还是非流动负债
  • 合伙企业主要缴纳的税种?
  • 企业所得税季末数怎么填
  • 回购股票注销股本,股价大涨案例
  • 发票密码区超出可以用吗
  • 短期投资会计科目编码
  • 个体工商户的个人所得税如何申报
  • 稿酬收入怎么算
  • 企业所得税营业收入包括什么
  • 物业公司转售电费怎么开票
  • 取得无形资产当期收入
  • 股东转账实收资本怎么填
  • 哪些项目需要征税
  • 业务人员出差住宿费记什么科目
  • 国税发200931号文件解读
  • 一般纳税人辅导期预缴
  • 建筑业3%人工费可以开专票吗?
  • 取得海运费发票怎么入账
  • 暂时关闭朋友圈
  • 床垫专票可以抵扣吗
  • 销售货物结转成本会计分录
  • macos big sur正式版
  • 怎么冲财务费用
  • 内部审计类型分为哪几种
  • php验证码功能怎么实现
  • 现金流量表补充资料怎么理解
  • Yii2——使用数据库操作汇总(增删查改、事务)
  • 工资属于营业成本
  • java多线程线程数控制在多少
  • 实现会话跟踪的两种方式
  • vs命令参数
  • get命令获取文件夹
  • 小规模固定资产处置税率
  • 应收账款收不回来的情况说明
  • 一台设备可以分开开票吗
  • 工业企业成本核算的一般程序
  • 施工单位代建收费合法吗
  • 建筑企业提供建筑服务适用一般计税方法的,以取得
  • 5 分钟速通 SVG
  • 发票红字冲回账务处理
  • 工资只计提没有发放需要申报个税吗
  • 差旅费的处理
  • 交通运输企业会计科目
  • 酒店维修费是计入销售成本吗
  • 企业出租专利技术收取的租金不得确认为收入对吗
  • 押金的增值税处理流程
  • 提取备用金如何填写现金日记账
  • 房地产资质代办需要多少钱
  • 抵账的房子怎么办理房产证
  • 小微企业减免附加税税率
  • 公司车辆保养计入什么费用
  • 原料到产品
  • 土地使用权使用年限怎么算
  • 怎么设置库存限额
  • dhcp client服务无法启动1083
  • windows10pc游戏无法全屏
  • freebsd怎么用
  • linux那些事儿
  • WIN7系统如何设置表格默认保存位置
  • 帝国时代2能在win10
  • Ubuntu中Virtualbox虚拟机NAT方式无法上网解决方法
  • linux的awk命令大全
  • Linux系统中如何复制虚拟机
  • 用linux配置ftp服务器的过程
  • cocos2djs
  • cocos2d游戏源码
  • opengl绘制多个图形
  • unity3d inspector
  • linux定时执行任务
  • 列举出python的5个数据类型
  • python的垃圾处理机制
  • 手把手教你打造班级主题环境 培训后心得
  • 地税可以补开以前发票吗
  • 广东省电子税务局电话
  • 青岛新农合咨询电话
  • 福建电子税务局登录入口
  • 个人所得税法实施条例2011
  • 三国杀马钧获取
  • 海关进口增值税怎么认证抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设