爬虫做网站相关教程,免费响应式模板网站模板下载,做html5视频网站,用我在线网站建设全流程#xff0c;训练语义分割数据集 数据标注json转mask 运行源码MMSegmentation模型选择运行部分 数据标注
# 安装
pip install labelme
# 启动labelme
labelme然后 ctrl N 开启多边形标注即可#xff0c;命名类为person 之后会保存到同目录下json文件#xff1a;
js… 全流程训练语义分割数据集 数据标注json转mask 运行源码MMSegmentation模型选择运行部分 数据标注
# 安装
pip install labelme
# 启动labelme
labelme然后 ctrl N 开启多边形标注即可命名类为person 之后会保存到同目录下json文件
json转mask
下载labelme代码里的转换代码 labels里存储的如下形式 运行指令
python labelme2voc.py ./img output labels.txt生成如下
运行源码MMSegmentation
mmseg/datasets里生成一个my_data.py文件这个文件存储的是类别信息和seg颜色 需要多加一个backbone
# Copyright (c) OpenMMLab. All rights reserved.
from mmseg.registry import DATASETS
from .basesegdataset import BaseSegDatasetDATASETS.register_module()
class mydata(BaseSegDataset):Cityscapes dataset.The img_suffix is fixed to _leftImg8bit.png and seg_map_suffix isfixed to _gtFine_labelTrainIds.png for Cityscapes dataset.METAINFO dict(classes(backbone,person),palette[[128, 64, 128], [244, 35, 232]])def __init__(self,img_suffix.jpg,seg_map_suffix.png,reduce_zero_labelTrue,**kwargs) - None:super().__init__(img_suffiximg_suffix,seg_map_suffixseg_map_suffix,reduce_zero_labelreduce_zero_label,**kwargs)mmseg/utils/class_names.py文件里添加不加backbone也不报错这里没加最好加上另外seg颜色要与上面文件一致
def mydata_classes():shengteng class names for external use.return [person]def mydata_palette():return [[244, 35, 232]]mmseg/datasets/init.py中加引入
from .my_data import mydataconfigs/base/datasets文件下新建一个my_data.py文件 这个就是一个读取数据的文件了包含数据地址、type和加载增加等方式
# dataset settings
dataset_type mydata #改
data_root data/my_dataset #改
crop_size (512, 512)
train_pipeline [dict(typeLoadImageFromFile),dict(typeLoadAnnotations, reduce_zero_labelTrue),dict(typeRandomResize,scale(2048, 512),ratio_range(0.5, 2.0),keep_ratioTrue),dict(typeRandomCrop, crop_sizecrop_size, cat_max_ratio0.75),dict(typeRandomFlip, prob0.5),dict(typePhotoMetricDistortion),dict(typePackSegInputs)
]
test_pipeline [dict(typeLoadImageFromFile),dict(typeResize, scale(2048, 512), keep_ratioTrue),# add loading annotation after Resize because ground truth# does not need to do resize data transformdict(typeLoadAnnotations, reduce_zero_labelTrue),dict(typePackSegInputs)
]
img_ratios [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]
tta_pipeline [dict(typeLoadImageFromFile, backend_argsNone),dict(typeTestTimeAug,transforms[[dict(typeResize, scale_factorr, keep_ratioTrue)for r in img_ratios],[dict(typeRandomFlip, prob0., directionhorizontal),dict(typeRandomFlip, prob1., directionhorizontal)], [dict(typeLoadAnnotations)], [dict(typePackSegInputs)]])
]
train_dataloader dict(batch_size4,num_workers4,persistent_workersTrue,samplerdict(typeInfiniteSampler, shuffleTrue),datasetdict(typedataset_type,data_rootdata_root,data_prefixdict(img_pathimages/training, seg_map_pathannotations/training), #改pipelinetrain_pipeline))
val_dataloader dict(batch_size1,num_workers4,persistent_workersTrue,samplerdict(typeDefaultSampler, shuffleFalse),datasetdict(typedataset_type,data_rootdata_root,data_prefixdict(img_pathimages/validation, #改seg_map_pathannotations/validation), #改pipelinetest_pipeline))
test_dataloader val_dataloaderval_evaluator dict(typeIoUMetric, iou_metrics[mIoU])
test_evaluator val_evaluator模型选择运行部分
我选择的是configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.py主要是修改继承的数据部分
运行 每次修改配置文件最好是运行一遍python setup.py install
python setup.py install
python ./tools/train.py ./configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.py