当前位置: 首页 > article >正文

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

http://www.kler.cn/a/320835.html

相关文章:

  • JavaEE 重要的API阅读
  • 控制器ThinkPHP6
  • Python如何获取request response body
  • 51单片机基础05 定时器
  • # ubuntu 安装的pycharm不能输入中文的解决方法
  • Hadoop生态圈框架部署(六)- HBase完全分布式部署
  • Leetcode算法基础篇-位运算
  • 架构师论文备考-论软件系统架构评估
  • 云轴科技ZStack AIOS平台智塔亮相华为全联接大会
  • 在 macOS 上安装 ADB给安卓手机装APK,同样适用智能电视、车机
  • 单词的秘密2
  • DNS协议解析
  • leetcode第十三题:罗马数字转整数
  • win 录屏软件有哪些?5个软件帮助你快速进行电脑录屏。
  • 记录一次学习--委派攻击学习
  • 关于在vue2中自定义右键弹窗
  • nginx使用stream转发流量
  • Elasticsearch 实战应用
  • .netCore运行的环境WindowsHosting和dotnet-sdk区别
  • 自动化测试数据管理问题
  • 什么是注入攻击???
  • Linux-L12-更改文件的拥有者
  • 通信工程学习:什么是PNF物理网络功能
  • AI可信度标准与框架
  • 【文心智能体】从零到一的优质智能体构建全攻略
  • RabbitMQ 快速入门