mask2former训练自定义数据集

server/2024/10/17 13:56:58/

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

二、环境配置
根据实际需要可能需要执行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.ppmy.cn/server/125294.html

相关文章

在线PDF怎么转换成JPG图片?分享14种转换操作!

作为一名社畜,俺也经常要将PDF转换为图片格式! 如何进行快速转换,包括电脑端、在线端和手机端,今天俺就测评了50款工具,给你得出了下面这些渠道,不少也是免费的,相信对你有帮助哦! …

Vue Mini基于 Vue 3 的小程序框架

新的小程序框架 https://vuemini.org/ Vue Mini 是一个基于 Vue 3 的小程序框架,它允许开发者利用 Vue 3 的强大功能来构建微信小程序。Vue Mini 的核心优势在于它的响应式系统和组合式 API,这些特性让开发者能够以一种更声明式、更高效的方式来编写和…

【C++篇】启航——初识C++(下篇)

接上篇【C篇】启航——初识C(上篇) 目录 一、引用 1.引用的概念 2.引用的基本语法 3.引用的特点 3.1 别名 3.2 不占用额外内存 3.3 必须初始化 3.4 不能为 NULL 4.引用的使用 4.1 函数参数传递 4.2 返回值 4.3 常量引用 5.引用和指针的关…

算法安全自评估报告如何填写?(附模板)

之前,小编给大家讲过办理互联网信息服务算法备案有三部分组成:主体备案、算法备案和产品备案。 主体备案主要审查的就是一家主体公司是否有算法相应的规章制度,里面最主要的就是算法安全管理制度。 算法备案主要审查的就是算法本身的情况&a…

PostgreSQL是否有等待事件

PostgreSQL是否有等待事件 PostgreSQL 提供了等待事件(Wait Events)的机制,用于监控数据库运行过程中因资源争用而导致的等待情况。这些等待事件可以帮助数据库管理员识别导致性能问题的瓶颈,例如锁冲突、I/O 等待等。 什么是等…

N32移植sd卡和fatfs 文件系统

简介 http://elm-chan.org/fsw/ff/00index_e.html FATFS 是一个完全免费开源的 FAT/exFAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言(ANSI C C89)编写,所以具有良好的硬件平台独立性,只需做简单的修改就可以移植到 8051、PIC、AVR、ARM、Z80、RX…

【Linux实践】实验五:用户和组群账户管理

【Linux实践】实验五:用户和组群账户管理 实验目的实验内容实验步骤及结果1. 创建用户2. 切换用户3. 修改用户4. 删除用户5. 创建组群6. 修改组群补充:删除组群 实验目的 1、掌握字符界面下用户账户的设置,包括命令useradd、usermod、userde…

python爬虫初体验(三)——将网页数据导出csv和excel文件

1. 安装库 pip install requests pip install pandas pip install BeautifulSouprequests 是一个非常流行的 Python 第三方库,用于简化 HTTP 请求。它允许你发送 HTTP/1.1 请求极其简单,而无需底层的socket库或urllib库。requests 库使得发起请求、处理…