mask rcnn训练自己的数据

主流的Mask RCNN主要有两个,一个是matterport的keras版本,另一个是facebookresearch的pytorch版本。

pytorch版本的编译报错问题较多,以下采用tensorflow-gpu版本。

检查gpu算力,低算力下高版本tf可能只调用cpu

参考:tensorflow对应CUDA版本

验证gpu

import tensorflow as tf
tf.test.is_built_with_cuda()#验证tf是否调用GPU
tf.config.list_physical_devices('GPU')#查看gpu列表

下载requirements,tensorflow,cuda,mask_rcnn_coco.h5权重

python setup.py install

划分数据集

data

——cv2_mask(掩膜)

——jason(jason)

——labelme_json(json文件夹)

——pic(原图)

其中labelme新版本在json文件夹生成info.yaml的方法

~\envs\xx\Lib\site-packages\labelme\cli\json_to_dataset.py

            f.write(lbl_name + '\n')
	# 添加部分
    logger.warning('info.yaml is being replaced by label_names.txt')
    info = dict(label_names=label_names)
    with open(osp.join(out_dir, 'info.yaml'), 'w') as f:
        yaml.safe_dump(info, f, default_flow_style=False)

    logger.info('Saved to: {}'.format(out_dir))

训练代码参考:修改train_shapes.ipynb

其中

ROOT_DIR = os.path.abspath("../../")#根目录地址
#显存设置
GPU_COUNT = 2
IMAGES_PER_GPU = 1
COCO_MODEL_PATH = os.path.join(ROOT_DIR, "mask_rcnn_coco.h5")#权重文件地址
NUM_CLASSES = 1 + 80  # 背景加类别
#图片像素大小(用自己数据中最低的分辨率)
IMAGE_MIN_DIM = 768
IMAGE_MAX_DIM = 1024
#训练次数
model.train(dataset_train, dataset_val, 
            learning_rate=config.LEARNING_RATE, 
            epochs=300,
            layers='heads')
self.add_class("shapes", 1, "box")#逐个添加每个类别
#逐个添加每个类别 
if labels[i].find("box")!=-1:
    labels_form.append("box")
dataset_root_path=os.path.join(ROOT_DIR, "C:\\Users\\LARA\\Desktop\\Mask_RCNN-master\\train_data_test1")#数据集目录
#图片尺寸
width = 1024
height = 768
dataset_train.load_shapes(count, 768, 1024, img_floder, mask_floder, imglist,dataset_root_path)
dataset_val.load_shapes(count, 768, 1024, img_floder, mask_floder, imglist,dataset_root_path)

改写train.py中的init_with=““last””,下次训练时会接着上一次的epoch继续训练。 

运行问题

1>No module named ‘xxx‘

下载对应安装包

2>load() missing 1 required positional argument: ‘Loader‘

降低yaml版本到5.4.1

3>‘str‘ object has no attribute ‘decode‘

报错位置修改decode('utf-8')为encode('utf-8').decode('utf-8')

降级h5py到3以下版本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值