使用BiseNet从头训练&&微调自己的数据集

本文介绍了使用BiseNet进行深度学习训练的步骤,包括从头训练和微调模型。强调了数据集处理的重要性,特别是图片大小统一和MASK格式转换。在训练过程中,提供了训练命令,并提醒在微调时需要注意模型加载和类别匹配问题。此外,针对多标签分类问题,提出了处理策略。最后,提到了一个数据集标签的小错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、代码链接

        本次训练采用的是pytorch版本的BiseNet,代码链接为GitHub - CoinCheung/BiSeNet: Add bisenetv2. My implementation of BiSeNet

二、数据格式

        数据集分为原图和对应的MASK,尤其要主要的有两点:1、所有图片要resize到统一大小 

2、MASK图为8位的单通道图片,图片中的值从0开始,0代表背景,第一类前景为1,第二类前景为2,依次类推递增。labelme的json转换出来的mask图为16位彩色图,要想办法转成8位。

三、参数配置

        我使用的是bisenetv2,配置文件是configs里面的bisenetv2_city.py,

## bisenetv2
cfg = dict(
    model_type='bisenetv2',
    n_cats=5,  # 加上背景一共的类别数目
    num_aux_heads=4,
    lr_start=5e-3,
    weight_decay=5e-4,
    warmup_iters=1000,
    max_iter=150000, #最大迭代次数
    dataset='CityScapes',
    im_root='/mnt/sda/qilibin/project/BisenetFinal/BiSeNet/datasets/',
    train_im_anns='./datasets/yg/train.txt', ## 训练集路径
    val_im_anns='./datasets/yg/val.txt', ## 验证集路径
    scales=[0.25, 2.],
    cropsize=[512, 512],
    eval_crop=[512, 512],
    eval_scales=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
    ims_per_gpu=8, ## batchsize
    eval_ims_per_gpu=2,
    use_fp16=True,
    use_sync_bn=True,
    respth='./res',
)

lib/data/cityscapes_cv2.py 里面也要修改对应参数

class CityScapes(BaseDataset):
    '''
    '''
    def __init__(self, dataroot, annpath, trans_func=None, mode='train'):
        super(CityScapes, self).__init__(
                dataroot, annpath, trans_func, mode)
        self.n_cats = 4  ### 加上背景一共的类别数量
        self.lb_ignore = 255
        self.lb_map = np.arange(256).astype(np.uint8)
        # for el in labels_info:
        #     self.lb_map[el['id']] = el['trainId']
        
        ### 数据集RGB的均值和标准差 可以根据tools里面的checkdatainfo得到
        self.to_tensor = T.ToTensor(
            mean=(0.4386782673860911, 0.4386782673860911, 0.4386782673860911), # city, rgb
            std=(0.20391534352799226, 0.20391534352799226,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值