mask2former训练自定义数据集

一 、下载工程源码
项目工程源码

二、环境配置
根据实际需要可能需要执行TORCH_CUDA_ARCH_LIST='11.6' FORCE_CUDA=1 python setup.py build install
1、 下载所需的detectron2 或者使用git clone git@github.com:facebookresearch/detectron2.git获取
2、将detectron2放到Mask2Former根目录下
3、pip install -e .
4、pip install git+https://github.com/cocodataset/panopticapi.git
5、pip install git+https://github.com/mcordts/cityscapesScripts.git
6、然后执行项目自带推荐环境requirements.txt
7、cd mask2former/modeling/pixel_decoder/ops/
8、sh make.sh

三、准备数据集
在项目根目录下创建数据集文件夹,例如

datas
	|__train
		|__1.pg
		|__1.json
		|__2.jpg
		|__2.jsom
		|__3.jpg
		|__3.json
	|__val
		|__1.pg
		|__1.json

将标注好的数据进行转换
json2coco.py

import labelme2coco

# 设置LabelMe注解和图片文件所在的目录
labelme_folder = "datas/train"					# 修改为对应路径
# 设置导出文件的目录
export_dir = "datas"										# 修改为对应路径

# 设置训练集和验证集的切分比例
train_split_rate = 0.95
# 设置类别ID的起始值
category_id_start = 1

# 转换LabelMe注解到COCO格式
labelme2coco.convert(
    labelme_folder,
    export_dir,
    train_split_rate=train_split_rate,
    category_id_start=category_id_start
)

执行完后,会在hh文件夹下生成train_coco_format.json、val_coco_format.json

datas
	|__train
		|__1.pg
		|__1.json
		|__2.jpg
		|__2.jsom
		|__3.jpg
		|__3.json
	|__val
		|__1.pg
		|__1.json
	|__train_coco_format.json
	|__val_coco_format.json

四、注册数据集,添加

register_coco_instances("my_dataset_train", {}, "datas/train_coco_format.json", "")
register_coco_instances("my_dataset_val", {}, "datas/val_coco_format.json", "")

添加后如下

if __name__ == "__main__":
    args = default_argument_parser().parse_args()
    print("Command Line Args:", args)

    register_coco_instances("my_dataset_train", {}, "datas/train_coco_format.json", "")
	register_coco_instances("my_dataset_val", {}, "datas/val_coco_format.json", "")

    launch(
        main,
        args.num_gpus,
        num_machines=args.num_machines,
        machine_rank=args.machine_rank,
        dist_url=args.dist_url,
        args=(args,),
    )

五、更改配置文件
修改configs/coco/instance-segmentatio/Base-COCO-InstanceSegmentation.yaml中修改为注册的数据集名。

DATASETS:
  TRAIN: ("my_dataset_train",)
  TEST: ("my_dataset_val",)

修改configs/coco/instance-segmentatio/maskformer2_R50_bs16_50ep.yaml中修改为分类识别个数。

NUM_CLASSES: 2				# 修改为识别类别个数

六、训练

python train_net.py --num-gpus 0 --config-file configs/coco/instance-segmentation/maskformer2_R50_bs16_50ep.yaml
或
python train_net.py --num-gpus 0 --config-file configs/coco/instance-segmentation/maskformer2_R50_bs16_50ep.yaml  MODEL.WEIGHTS "weights/model_final_94dc52.pkl"

七、预测

python demo/demo.py  --config-file ../configs/coco/instance-segmentation/maskformer2_R50_bs16_50ep.yaml --input "../datas/val/*.jpg" --confidence-threshold 0.3 --output "../output/test_mask/" --opts MODEL.WEIGHTS ../output/model_0024999.pth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值