在Pytorch实现语义分割的一些思考1

在Pytorch实现语义分割的一些思考1

一些小的说明

在语义分割中输入的有原图(image),标签(label,也叫ground truth)。label就像是image的mask一样,所以在有的时候,我会吧label写成mask。

我写这篇文章的原因是,最近学习语义分割的时候遇到挺多的问题的,也看了很多他人的学习经验,就想把自己的学习心得也写一下,分享给同样在语义分割遇到困难的人们。

Dataset

首先,pytorch的dataset很自由,在有image和label(也是一张图片)的情况下,自主定义一个Mydataset是个很好的选择。
要注意,
1.image和相对应的label的图片预处理是一致的,即使用random crop这类的function,要保证都crop出同一块区域。
2. image和label必须一一对应,即在导入image和label时,假如图片i的label缺失,或label z没有相应的原图,我们要舍弃这个不成组的图片i和label z。

我用的是LIP的single person的数据库,所以底下的代码展示是更据single person的数据库path做例子的。

class MyDataset(data.Dataset):
    
    
    def __init__(self, file_path=None, mask_path=None, transform=None,data="train"):   
        """
        初始化自定义Dataset类的参数
        Attributes
            file_path: 字符串,数据集的存储路径,例如‘./UCF101/train’ 或 './UCF101/eval'等
            mask_path: 字符串,数据集的存储路径,例如‘./UCF101/train_annotation’等
            transform: 传入一个从torchvision.transforms定义的数据预处理
        """
        self.count=0
        self.transform = transform
        if data=='train':
            self.name=open(os.path.join("../input/singleperson/TrainVal_images","train_id.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值