YOLOV7语义分割(日后自用笔记)

这篇具有很好参考价值的文章主要介绍了YOLOV7语义分割(日后自用笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统win10。本文只是根据readme文件走流程,记录一些常用公式。

RizwanMunawar/yolov7-segmentation at 87b016cda50371d6e2824378d641c2d4417ea1c3 (github.com)

目录

一、项目文件的下载与直接运用

1.将工程文件git到本地

2.创建并配置虚拟环境,记录常用公式

3.下载权重文件进行训练后结果测试

 二、用自己的数据集进行训练

1.数据集的预处理

 2.文件个性化修改

3.开始训练

4.训练完成


一、项目文件的下载与直接运用

1.将工程文件git到本地

error1:直接使用Anaconda Prompt报错

fatal: unable to access 'https://github.com/RizwanMunawar/yolov7-segmentation.git/': OpenSSL SSL_read: Connection was reset, errno 10054

通过解除ssl安全验证,如下所示:
git config --global http.sslVerify “false”

error2:提示连接服务器失败,如unable to access ‘https://gitee...‘: Failed to connect to 127.0.0.1 port 31181 after 2029 ms。解决方法:http://t.csdn.cn/XOGJahttp://t.csdn.cn/XOGJa

随后再在Prompt或者git bash中输入下列代码即可git到本地目标文件夹

git clone https://github.com/RizwanMunawar/yolov7-segmentation.git

2.创建并配置虚拟环境,记录常用公式

#查看当前的虚拟环境
conda env list
#创建虚拟环境
conda create -n yolov7seg python=3.8
#激活环境
conda activate yolov7seg
#配置环境
pip install -r requirements.txt

3.下载权重文件进行训练后结果测试

https://github.com/RizwanMunawar/yolov7-segmentation/releases/download/yolov7-segmentation/yolov7-seg.pt

下载yolov7-seg.pt权重文件,放到主文件夹下。

YOLOV7语义分割(日后自用笔记)

输入以下代码对目标进行预测

#视频
python segment/predict.py --weights yolov7-seg.pt --source "football1.mp4"
#图片
python segment/predict.py --weights yolov7-seg.pt --source 1.jpg
文件夹
python segment/predict.py --weights yolov7-seg.pt --source test

图片效果如下,位置在runs文件夹下

YOLOV7语义分割(日后自用笔记)

 二、用自己的数据集进行训练

1.数据集的预处理

使用labelme提前标记好数据集,格式如下,每一个image有一个json格式的标注文件。

YOLOV7语义分割(日后自用笔记)

 作者推荐使用roboflow进行数据标记

Roboflow: Give your software the power to see objects in images and video

在已有数据集的情况下,进行格式转换,根据流程走,全程默认选项,最后输出格式为:

YOLOV7语义分割(日后自用笔记)

 输出的数据集文件夹如下:

YOLOV7语义分割(日后自用笔记)

 2.文件个性化修改

根据readme文件指示要求,将train和test文件夹放到工程文件的的data子文件夹下方

YOLOV7语义分割(日后自用笔记)

 在data文件夹下创建一个custom.yaml文件,valid文件夹可一并放入data中,并将代码内容编辑如下,用pwd命令确定文件夹的位置进行修改:

#标准train和val文件夹位置,..中的内容用pwd确定
train: ../yolov7-segmentation/data/train/images
val: ../yolov7-segmentation/data/valid/images
#nc为number of classes,即标记的种类的个数
nc: 2
#按以下格式将label的内容填入
names: ['car','person']

3.开始训练

按作者要求将上面用到的权重文件下载到主文件夹下,并输入以下代码进行训练:

#根据个人需求进行参数修改,如batch和epoch等
python segment/train.py --data data/custom.yaml --batch 4 --weights "yolov7-seg.pt" --cfg yolov7-seg.yaml --epochs 10 --name yolov7-seg  --img 640 --hyp hyp.scratch-high.yaml

如果显示如下,即启用了cuda,用的是显卡进行训练,如果最后一行显示CPU,则未成功启用显卡。YOLOV7语义分割(日后自用笔记)

如果未成功启用显卡,问题存在于pytorch可能下载为cpu的版本,因为环境配置是根据requirements.txt文件直接安装的,可能会存在差错。

这里将torch和torchvision进行卸载,去pytorch官网进行安装,如我的电脑cuda版本是11.6,去官网下载了适用于11.7的2.0.0的torch版本,即可成功启用cuda。

 以下会报错,说是np.int不存在(该问题每次重启后都会出现,幸而不麻烦,也未作处理)

AttributeError: module 'numpy' has no attribute 'int'.`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:https://numpy.org/devdocs/release/1.20.0notes.html#deprecations

经尝试发现,只有numpy1.20.3符合要求,因此使用pip进行安装

pip install numpy==1.20.3

安装完指定版本的numpy以后,重新输入代码进行训练。显示如下,可以看到显存调用起来了,如果未成功启用显卡,那么GPU_mem将显示0G

YOLOV7语义分割(日后自用笔记)

4.训练完成

Results saved to runs\train-seg\yolov7-seg2

根据命令行提示,可以去相应文件夹下看到一些训练信息,很多直观的图片。在weight文件中存在的是训练后的权重文件。其中best.pt即为所得。

YOLOV7语义分割(日后自用笔记)

 输入如下代码进行预测,可根据个人需求进行修改。文章来源地址https://www.toymoban.com/news/detail-468551.html

python segment/predict.py --weights "runs/train-seg/yolov7-seg2/weights/best.pt" --source test

到了这里,关于YOLOV7语义分割(日后自用笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【CV】Yolov8:ultralytics目标检测、关键点检测、语义分割

    Yolov8提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求 骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成

    2024年02月06日
    浏览(64)
  • 实时语义分割---PIDNet论文笔记

    PIDNet是2023年发表在CVPR上的实时语义分割网络,在推理速度和准确性之间实现了最佳平衡,其中该系列的PIDNet-S在Cityscapes 测试集上达到93.2 FPS + 78.6% mIOU。 论文和开源代码在这里。 解决的问题:传统双分支网络低层的细节信息和高层语义信息直接融合,会导致细节特征很容易

    2023年04月08日
    浏览(35)
  • 语义分割学习笔记(二)转置卷积

    目录 1.转置卷积Transposed Convolution概念 2.转置卷积操作步骤 3.转置卷积参数 4.实战案例 推荐课程:转置卷积(transposed convolution)_哔哩哔哩_bilibili 感谢霹雳吧啦Wz,真乃神人也。 1.转置卷积Transposed Convolution概念 转置卷积的作用:转置卷积是上采样方法中的一种, 通常,对图

    2024年02月01日
    浏览(49)
  • win下YOLOv7训练自己的数据集(交通标志TT100K识别)

    预测结果: 数据集的准备包括数据集适配YOLO格式的重新分配以及相应配置文件的书写,此处可查看博主的TT100K2yolo的重新分配博文,该文章包括数据集划分,配置文件书写,以及最终的数据集层级目录组织,可以直接提供给下一步进行训练。 需要注意的是数据集的yaml文件有

    2024年02月06日
    浏览(47)
  • Yolov7学习笔记(一)模型结构

    个人学习笔记,项目代码参考Bubbliiiing的yolov7-pytorch-master版 参考: 1、Pytorch搭建YoloV7目标检测平台 源码 2、最终版本YOLOv1-v7全系列大解析 3、三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7 4、yolo系列的Neck模块 如图所示,yolo系类的结构主要由主干提取结构(Backbon

    2024年02月08日
    浏览(57)
  • [论文笔记] Swin UNETR 论文笔记: MRI 图像脑肿瘤语义分割

    Author: Sijin Yu [1] Ali Hatamizadeh, Vishwesh Nath, Yucheng Tang, Dong Yang, Holger R. Roth, and Daguang Xu. Swin UNETR: Swin Transformers for Semantic Segmentation of Brain Tumors in MRI Images . MICCAI, 2022. 📎开源代码链接 脑肿瘤的语义分割是一项基本的医学影像分析任务, 涉及多种 MRI 成像模态, 可协助临床医生诊断病

    2024年04月14日
    浏览(69)
  • [YOLOv7]基于YOLOv7的水果识别系统(源码&部署教程)

    [YOLOv7]基于YOLOv7的水果识别系统(源码&部署教程)_哔哩哔哩_bilibili 如果不懂yolo格式数据集是什么样子的,建议先学习一下。大部分CVer都会推荐用labelImg进行数据的标注,我也不例外,推荐大家用labelImg进行数据标注。不过这里我不再详细介绍如何使用labelImg,网上有很多的教

    2024年02月05日
    浏览(64)
  • 【yolov7】训练自己的数据集-实践笔记

    使用yolov7训练自己的数据集,以RSOD数据集为例,图像数量976,一共四类。 yolov7源码:https://github.com/WongKinYiu/yolov7 同时在该网址下载好预训练文件,直接放到yolov7-main/下 1.环境配置 2.数据集准备 前两步与yolov5相同,参考【yolov5】训练自己的数据集-实践笔记 测试 直接执行de

    2024年02月16日
    浏览(42)
  • AI实战营第二期 第七节 《语义分割与MMSegmentation》——笔记8

    MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 OpenMMLab 项目的一部分。 main 分支代码目前支持 PyTorch 1.6 以上的版本。 代码链接:https://gitee.com/open-mmlab/mmsegmentation 统一的基准平台。我们将各种各样的语义分割算法集成到了一个统一的工具箱,进行基准测试。 模块

    2024年02月08日
    浏览(39)
  • YOLOv7训练自己的数据集(txt文件,笔记)

    目录 1.代码下载 2.数据集准备(.xml转.txt) (1)修改图像文件名 (2)图片和标签文件数量不对应,解决办法 (3).xml转.txt (4).txt文件随机划分出对应的训练集、测试集、验证集 3.训练数据集 (1)修改.yaml文件  (2)修改网络参数  (3)训练中断 论文地址: https://arxiv.

    2024年02月02日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包