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

做视频网站需要什么证件做百度竞价对网站空间有什么要求

做视频网站需要什么证件,做百度竞价对网站空间有什么要求,福州seo视频,鄞州区卖场设计网站建设从零开始使用MMSegmentation训练Segformer 写在前面:最新想要用最新的分割算法如:Segformer or SegNeXt 在自己的数据集上进行训练,但是有不是搞语义分割出身的,而且也没有系统的学过MMCV以及MMSegmentation。所以就折腾了很久&am…

从零开始使用MMSegmentation训练Segformer

写在前面:最新想要用最新的分割算法如:Segformer or SegNeXt 在自己的数据集上进行训练,但是有不是搞语义分割出身的,而且也没有系统的学过MMCV以及MMSegmentation。所以就折腾了很久,感觉利用MMSegmentation搭建框架可能比较系统,但是对于不熟悉的或者初学者非常不友好,因此记录一下自己training Segformer的心路历程。

Segformer paper: https://arxiv.org/abs/2105.15203>
官方实现: https://github.com/NVlabs/SegFormer>
纯Torch版Segformer: https://github.com/camlaedtke/segmentation_pytorch>

方法

在这里插入图片描述
在这里插入图片描述
由于本人不是研究语义分割的,所以只能简要地介绍一下Segformer。
SegFormer的动机在于:

① ViT作为backbone只能输出固定分辨率的特征图,这对于密集预测任务显然不够友好;
② 由于self-attention操作的存在,transformer的运算量和参数两都非常大,不利于大尺度图像的分割。

为此作者提出了相应的创新:

① 先是对transformer进行层次化结构设计,得到多层级的特征图;
② 构造轻量级的decoder,仅使用MLP进行特征聚合。
③ 除此之外,SegFormer抛弃了位置信息编码,选择采用MixFCN来学习位置信息,这样可以很好地扩充到不同尺度的测试环境下(避免由于尺寸变化,需要对positional-encoding进行插值,从而影响性能)。最后提出的模型在ADE20k上达到了新sota,并且在速度、性能和鲁棒性上都表现很好。

程序复现

在重新训练过程中主要参考了:手把手教你使用Segformer训练自己的数据
作者给的教程比较详细, 但是有几处修改并不合适,导致我复现出来的结果没啥效果,因此记录一下自己的采坑记录。
自己的主要配置为:

CUDA 10.1
Pytorch 1.10.0, torchvision 0.11.1
MMCV-full 1.3.0

其中在安装MMCV-full过程中还遇到了很多问题,主要是版本不适配的原因导致的。
在安装好环境后,首先从Github下载SegFormer的项目工程: https://github.com/NVlabs/SegFormer
然后进去SegFormer目录:

pip install -r requirements.txt
pip install -e . --use

安装需要的依赖。

数据集准备

代码默认用的是ADE20K数据集进行训练
ADE20K数据集 格式如下,按照要求放就完了

├── data
│   ├── ade
│   │   ├── ADEChallengeData2016
│   │   │   ├── annotations
│   │   │   │   ├── training
│   │   │   │   ├── validation
│   │   │   ├── images
│   │   │   │   ├── training
│   │   │   │   ├── validation

但是@中科哥哥使用的是VOC的数据格式,因此就使用了VOC的数据格式

├── VOCdevkit
│   ├── VOC2012
│   │   ├── ImageSets
│   │   │   ├── Segmentation
│   │   │   │   ├── train.txt
│   │   │   │   ├── val.txt
│   │   │   │   ├── trainval.txt│   │   │   ├── JPEGImages
│   │   │   │   ├── *.jpg    #所有图片│   │   │   ├── SegmentationClass
│   │   │   │   ├── *.jpg    #所有标签图

在这里可以根据自己的需要修改
下面是我自己的数据格式:

├── VOCdevkit
│   ├── VOC2012
│   │   ├── ImageSets
│   │   │   ├── Segmentation
│   │   │   │   ├── train.txt
│   │   │   │   ├── val.txt
│   │   │   │   ├── test.txt│   │   │   ├── JPEGImages
│   │   │   │   ├── *.png#所有图片│   │   │   ├── SegmentationClass
│   │   │   │   ├── *.png    #所有标签图

其实完全可以简洁一点:

├── MFNet
│   ├── Segmentation
│   │   ├── train.txt
│   │   ├── val.txt
│   │   ├── test.txt│   ├── Images
│   │   ├── *.png#所有图片│   ├── Label
│   │   ├── *.png    #所有标签图

其中: train.txt; val.txt; test.txt; 只要图片名,不需要后缀和路径 如下
在这里插入图片描述
后面的程序修改都基于复杂的版本进行介绍(自己在程序复现时使用的复杂的目录,因为是按照的教程来的)
数据准备好之后可以在SegFormer目录先新建一个/datasets/ 目录来存放自己的数据集

程序修改

  1. mmseg/datasets/voc.py修改自己数据集的类别即修改CLASSESPALETTE在我自己的数据集中一共由于9个类别,所以修改如下:
    在这里插入图片描述

  2. mmseg/models/decode_heads/segformer_head.py 中BatchNorm 方式(如果使用单卡训练的话就修改,多卡训练的话就不用修改)。 将第59行SyncBN 修改为 BN
    在这里插入图片描述

  3. 修改 local_configs/segformer/B5/segformer.b5.640x640.ade.160k.py 的配置文件(这里我们使用的是B5模型,需要使用哪个模型就修改对应的配置文件即可,配置文件都位于:**local_configs/segformer/**下 );主要修改

__base__=[]中的数据集文件路径(也就是下图中的第二行)
指定dataset_type的类型,此处
dataset_type = 'PascalVOCDataset'
data_root = '/data1/timer/Segmentation/SegFormer/datasets/VOC2012'  也可以给相对路径。
然后根据自己的数据需要修改文件中的crop_size, train_pipline中的img_scale,以及test_pipline中的img_scale

在这里插入图片描述

同时好需要在data字典中指定 img_dir, ann_dir, 以及split的路径,如果是单卡训练的话需要将norm_cfg 的type由的SyncBN 修改为 BN
在这里插入图片描述
接下来继续修改模型相关的文件,主要是给定预训练权重的位置即修改:pretrained 以及backbone[‘type’],这里的type因为使用的是B5的结构所以type就指定为mit_b5,然后预训练权重需要从项目中给定的链接下载。值得注意的是还需要指定decode_head[‘num_classes’] (这个需要根据你的数据集来指定,因为我的数据集中包含9类,所以这里就设置为9了)
在这里插入图片描述

  1. local_configs/base/models/segformer.py 修改

norm_cfg[‘type’]=‘BN’
num_classes=9 (这里修改成你数据集对应的类别的数量)

在这里插入图片描述
5. 在 tools/train.py中修改

parser.add_argument('--config', default='/data1/timer/Segmentation/SegFormer/local_configs/segformer/B5/segformer.b5.640x640.ade.160k.py') 
parser.add_argument('--work-dir', default='res_MFNet')

其中 /data1/timer/Segmentation/SegFormer/local_configs/segformer/B5/segformer.b5.640x640.ade.160k.py 是配置文件的路径
res_MFNet是训练日志和模型保存的路径
同时指定GPU的卡号

    group_gpus.add_argument('--gpu-ids',type=int,        default=[0],help='ids of gpus to use ''(only applicable to non-distributed training)')

在这里插入图片描述6. 进入tools目录下运行

python train.py

即可开始训练模型。
由于本人也在摸索阶段,有不当之处,恳请各位不吝赐教。也欢迎大家交流:2458707789@qq.com

http://www.yayakq.cn/news/271606/

相关文章:

  • 网站建设要架服务器百色网站建设公司
  • 青岛网站建设小公司排名保健品网站建设方案书模板
  • 友链网站热狗seo优化外包
  • 名师工作室网站建设建议wordpress更改复原
  • 个人做民宿需要建立网站吗课程培训网站建设
  • 网站开发菜鸟适合用什么软件wordpress中文版广告
  • 中国建设人才信息网站官网扬州建设网站
  • 本网站维护升级固定ip 建网站
  • 河北雄安建设投资集团网站免费做动态图片的网站
  • 大学网站建设工作总结网络品牌推广策略
  • 网站下载的视频怎么变成本地视频网站引流.
  • 山东省建设项目监理协会网站做英文的小说网站有哪些
  • 网站二维码弹窗绵阳口碑最好的装修公司
  • 国外浏览器网站wordpress postmeta
  • 网站建设公司应该怎么做推广制作ppt免费软件
  • 仿魔酷阁网站源码上海做网站公司
  • 网站未备案或已封禁怎么样做搜索引擎网站
  • 成都电子网站建设多少钱社交app定制开发
  • 石狮网站怎样在网上做广告
  • 找事做搜索网站网站seo外链
  • 金塔凯元建设集团有限公司官方网站合肥平台网站建设
  • 芜湖网站推广200元自助网站建设
  • 西昌市住房与城乡建设厅网站软件开发工程师简历范文
  • 品牌建设10步通达墨猴seo排名公司
  • 简述网站建设的基本流程图上海建设钢结构工程网站
  • 建设局网站新闻南宁营销型网站
  • 苏州商城网站建设电话wordpress自定义文章排序
  • 网站建设服务商排行个人网站设计及实现论文
  • 温州网页建站模板企业交易平台的网站制作多少钱
  • 中国建设银行手机网站下载安装varnish 4.0 wordpress