【目标检测】YOLOv5-7.0:加入实例分割

这篇具有很好参考价值的文章主要介绍了【目标检测】YOLOv5-7.0:加入实例分割。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前段时间,YOLOv5推出7.0版本,主要更新点是在目标检测的同时引入了实例分割。
目前,YOLOv5团队已经转向了YOLOv8的更新,因此,7.0版本大概率是YOLOv5的最终稳定版。

更新信息

官方公告中给出了YOLOv5-7.0的更新要点:

  • 推出了基于coco-seg的实例分割预训练模型
  • 支持Paddle Paddle模型导出
  • 自动缓存机制:使用python train.py --cache ram可以自动扫描可用内存,并且为数据集的加载进行分配
  • 加入Comet日志记录和可视化集成

实例分割实践

下载代码

git clone https://github.com/ultralytics/yolov5.git -b v7.0

下载预训练模型

官方仓库有不同模型大小的预训练模型,这里以yolov5m-seg为例。
下载链接:https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5m-seg.pt

下载数据集

这里以教程文档中的coco128-seg.zip数据集为例。
下载链接:https://ultralytics.com/assets/coco128-seg.zip

数据集的文件结构如下:

  • coco128-seg
    • images
      • train2017
    • labels
      • train2017

数据集标签可视化

coco-seg数据集和coco数据集图片一样,唯一区别是标签不同。

coco-seg的标签示例如下:

45 0.557859 0.143813 0.487078 0.0314583 0.859547 0.00897917 0.985953 0.130333 0.984266 0.184271 0.930344 0.386521 0.80225 0.480896 0.763484 0.485396 0.684266 0.39775 0.670781 0.3955 0.679219 0.310104 0.642141 0.253937 0.561234 0.155063 0.559547 0.137083
50 0.39 0.727063 0.418234 0.649417 0.455297 0.614125 0.476469 0.614125 0.51 0.590583 0.54 0.569417 0.575297 0.562354 0.601766 0.56 0.607062 0.536479 0.614125 0.522354 0.637063 0.501167 0.665297 0.48 0.69 0.477646 0.698828 0.494125 0.698828 0.534125 0.712938 0.529417 0.742938 0.548229 0.760594 0.564708 0.774703 0.550583 0.778234 0.536479 0.781766 0.531771 0.792359 0.541167 0.802937 0.555292 0.802937 0.569417 0.802937 0.576479 0.822359 0.576479 0.822359 0.597646 0.811766 0.607062 0.811766 0.618833 0.818828 0.637646 0.820594 0.656479 0.827641 0.687063 0.827641 0.703521 0.829406 0.727063 0.838234 0.708229 0.852359 0.729417 0.868234 0.750583 0.871766 0.792938 0.877063 0.821167 0.884125 0.861167 0.817062 0.92 0.734125 0.976479 0.711172 0.988229 0.48 0.988229 0.494125 0.967063 0.517062 0.912937 0.508234 0.832937 0.485297 0.788229 0.471172 0.774125 0.395297 0.729417

其中第一个为类别标签,后面的两个为一组,即(x1,y1),(x2,y2)…意为一个个点,这些点连线即为所框选的实例。

下面的代码[2]实现了将标签进行可视化:

import cv2
import numpy as np


if __name__ == '__main__':
    pic_path = r"coco128-seg\images\train2017\000000000009.jpg"
    txt_path = r"coco128-seg\labels\train2017\000000000009.txt"
    img = cv2.imread(pic_path)
    height, width, _ = img.shape
    file_handle = open(txt_path)
    cnt_info = file_handle.readlines()
    new_cnt_info = [line_str.replace("\n", "").split(" ") for line_str in cnt_info]
    # 45 bowl 碗 49 橘子 50 西兰花
    color_map = {"49": (0, 255, 255), "45": (255, 0, 255), "50": (255, 255, 0)}
    for new_info in new_cnt_info:
        s = []
        for i in range(1, len(new_info), 2):
            b = [float(tmp) for tmp in new_info[i:i + 2]]
            s.append([int(b[0] * width), int(b[1] * height)])
        cv2.polylines(img, [np.array(s, np.int32)], True, color_map.get(new_info[0]))
    cv2.imshow('img', img)
    cv2.waitKey()

yolov5图像分割,目标检测,目标检测,YOLO,计算机视觉

模型检测

下载好预训练模型,可以直接用其进行检测:

python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

检测结果存放在runs/predict-seg文件夹中。

yolov5图像分割,目标检测,目标检测,YOLO,计算机视觉

模型训练

下面以coco128-seg数据集训练为例,首先修改data/coco128-seg.yaml配置文件,修改相应路径:

path: coco128-seg  
train: images/train2017
val: images/train2017

之后终端运行:

python segment/train.py --weights  yolov5m-seg.pt --data data/coco128-seg.yaml --epochs 5 --img 640 --project train-seg --batch-size 4

注:

  • –project设定了训练结果的保存路径,按照默认路径runs\train-seg会引发wandb的报错:wandb.errors.UsageError: Invalid project name "runs\train-seg": cannot contain characters "/,\,#,?,%,:", found "\"
  • 默认batch-size为16,普通单机有爆显存风险,因此调小。

最终模型依然会保存最佳和最后两个模型,以及一些验证结果图片,和之前版本相似。

参考

[1] YOLOv5官方仓库:https://github.com/ultralytics/yolov5/tree/v7.0
[2] 【深度学习】yolov5 tag7.0 实例分割 从0到1的体会,从模型训练,到量化完成 https://betheme.net/xiaochengxu/38021.html文章来源地址https://www.toymoban.com/news/detail-676121.html

到了这里,关于【目标检测】YOLOv5-7.0:加入实例分割的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5+BiSeNet——同时进行目标检测和语义分割

    在Gayhub上看到个项目,有人在YOLOv5的基础上,新增了一个分割头,把BiSeNet语义分割算法加入到了目标检测中,使其能够同时进行目标检测和语义分割。 项目地址:https://github.com/TomMao23/multiyolov5 先看我使用原作者提供的模型,复刻出来的效果: (本来想放视频的,不过传了两

    2024年02月07日
    浏览(46)
  • 涨点神器:Yolov5 加入ODConv+ConvNeXt提升小目标检测能力,适用yolo各个系列

    论文:Omni-Dimensional Dynamic Convolution 论文地址:Omni-Dimensional Dynamic Convolution | OpenReview ODConv通过并行策略引入一种多维注意力机制以对卷积核空间的四个维度学习更灵活的注意力。上图给出CondConv、DyConv以及ODConv的差异图。延续动态卷积的定义,ODConv可以描述成如下形式:其中

    2024年02月04日
    浏览(54)
  • YOLOv5改进 | Neck篇 | 利用ASF-YOLO改进特征融合层(适用于分割和目标检测)

    本文给大家带来的改进机制是 ASF-YOLO(发布于2023.12月份的最新机制) ,其是特别设计用于细胞实例分割。这个模型通过结合空间和尺度特征,提高了在处理细胞图像时的准确性和速度。在实验中, ASF-YOLO在2018年数据科学竞赛 数据集上取得了卓越的分割准确性和速度,达到了

    2024年01月15日
    浏览(47)
  • 目标检测算法之YOLOv5在乒乓球赛事中运动员行为分析领域的应用实例详解(基础版--上)

    目录 YOLOv5乒乓球赛事中运动员行为分析 优化措施 优化代码 继续优化 在乒乓球赛事中,YOLOv5可以应用于运动员行为分析,通过实时识别和追踪运动员的动作,帮助教练分析技术动作,或者为观众提供更丰富的观赛体验。下面是一个简单的应用实例和相关代码片段。 首先,需

    2024年02月22日
    浏览(104)
  • YOLOv5 实例分割入门

    YOLOv5 目标检测模型以其出色的性能和优化的推理速度而闻名。因此, YOLOv5 实例分割 模型已成为实时实例分割中最快、最准确的模型之一。  在这篇文章中,我们将回答以下关于 YOLOv5 实例分割的问题: YOLOv5检测模型做了哪些改动,得到了YOLOv5实例分割架构? 使用的 ProtoN

    2024年02月05日
    浏览(43)
  • 目标检测算法之YOLOv5的应用实例(零售业库存管理、无人机航拍分析、工业自动化领域应用的详解)

    在零售业库存管理中,YOLOv5可以帮助自动化商品识别和库存盘点过程。通过使用深度学习模型来实时识别货架上的商品,零售商可以更高效地管理库存,减少人工盘点的时间和成本。以下是一个使用YOLOv5进行商品识别的Python脚本示例:

    2024年02月20日
    浏览(79)
  • YOLOv5实现目标检测

    YOLOv5 🚀 是COCO数据集上预处理的一系列对象检测架构和模型,代表Ultralytics对未来视觉人工智能方法的开源研究,融合了数千小时研究和开发过程中积累的经验教训和最佳实践。 本文用来记录第一次使用 YOLOv5实现: 视频目标检测 摄像头目标检测 博主所使用的环境是win10 +

    2024年02月09日
    浏览(44)
  • YOLOv5目标检测实验

    最近在用YOLOv5跑一些目标检测的东西,这是自己日常学习的一些总结!后期会继续更新!有问题也欢迎批评指正!如果雷同请见谅! 创建数据集是在detect.py里面的create_dataloader,并在主函数里面调用 yolov5在计算资源的调用上采用了torch.nn.parallel.DistributedDataParallel(DDP,多张显卡

    2024年02月07日
    浏览(45)
  • YOLOv5 实例分割 用 OPenCV DNN C++ 部署

    如果之前从没接触过实例分割,建议先了解一下实例分割的输出是什么。 实例分割两个关键输出是:mask系数、mask原型 本文参考自该项目(这么优秀的代码当然要给star!):GitHub - UNeedCryDear/yolov5-seg-opencv-onnxruntime-cpp: yolov5 segmentation with onnxruntime and opencv 目录 Pre: 一、代码总结

    2024年02月12日
    浏览(35)
  • 【目标检测】yolov5模型详解

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不断进行升级迭代。 Yolov5有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本。文件中,这几个模型的结构基本一样,不同的是depth_multiple模型深度和width_multiple模型宽度这两个参数。 yolov5主要分为以下几部分: Input:输入 Backbone:

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包