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

基于detectron2框架的深度学习模型载入自定义数据集

基于detectron2框架的深度学习模型载入自定义数据集

一、前言

最近在做微光目标检测的研究工作,使用了Rank_DETR;这个模型是基于detrex框架,而detrex框架又是基于detectron2的。找了一圈没找到载入数据集的地方,后面查阅了资料得知要用API进行注册。

二、步骤

  1. 注册数据集:
    在脚本中,我们首先要注册数据集。Detectron2 提供了多种注册数据集的方式,常用的是 register_coco_instances,用于 COCO 格式的数据集。您可以在脚本的开头或配置文件中添加如下代码来注册您的数据集:

    from detectron2.data.datasets import register_coco_instancesregister_coco_instances("my_dataset_train", {}, "path/to/train_annotations.json", "path/to/train_images/")
    register_coco_instances("my_dataset_val", {}, "path/to/val_annotations.json", "path/to/val_images/")
    
    • "my_dataset_train""my_dataset_val" 是数据集的名称,您可以按需更改。
    • path/to/train_annotations.jsonpath/to/val_annotations.json 分别是训练和验证数据集的 COCO 格式标注文件路径。
    • path/to/train_images/path/to/val_images/ 是训练和验证图像的路径。
  2. 在配置文件中引用数据集:
    在您使用的配置文件中,需要确保数据加载器 (dataloader) 中引用了您刚才注册的数据集。通常,您需要修改以下内容:

    cfg.dataloader.train.dataset.names = "my_dataset_train"
    cfg.dataloader.test.dataset.names = "my_dataset_val"
    

    这确保了训练和验证时使用的是您自定义的数据集。

三、示例代码集成

如果您已经在脚本中集成了以上步骤,代码可能如下所示:

def main(args):cfg = LazyConfig.load(args.config_file)cfg = LazyConfig.apply_overrides(cfg, args.opts)default_setup(cfg, args)register_coco_instances("exdark_train", {},"/liushuai2/PCP/datasets/Exdark-MAE/OwnerToCOCO/annotations/instances_train2017.json","/liushuai2/PCP/datasets/Exdark-MAE/OwnerToCOCO/train2017")register_coco_instances("exdark_test", {},"/liushuai2/PCP/datasets/Exdark-MAE/OwnerToCOCO/annotations/instances_val2017.json","/liushuai2/PCP/datasets/Exdark-MAE/OwnerToCOCO/val2017")cfg.dataloader.train.dataset.names = "exdark_train"cfg.dataloader.test.dataset.names = "exdark_test"if args.eval_only:model = instantiate(cfg.model)model.to(cfg.train.device)model = create_ddp_model(model)DetectionCheckpointer(model).load(cfg.train.init_checkpoint)print(do_test(cfg, model))else:do_train(args, cfg)if __name__ == "__main__":parser = default_argument_parser()parser.add_argument("--use_wandb", action="store_true", help="Whether to use wandb.")parser.add_argument("--wandb_key", type=str, help="Wandb API key.")args = parser.parse_args()if args.use_wandb:wandb.login(key=args.wandb_key)launch(main,args.num_gpus,num_machines=args.num_machines,machine_rank=args.machine_rank,dist_url=args.dist_url,args=(args,),)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Flink1.14.* 各种算子在StreamTask控制下如何调用的源码
  • FPGA第 5 篇,FPGA技术优略势,FPGA学习方向,FPGA学习路线(FPGA专业知识的学习方向,FPGA现场可编程门阵列学习路线和方向)
  • 深入浅出:关系数据库中的基础概念与形式化定义
  • 提交保存,要做重复请求拦截,避免出现重复保存的问题
  • vue3图片找不到用一个其他图片代替
  • 跳跃游戏 II
  • Sinc Function介绍
  • C++:引用
  • 【Python报错已解决】`TypeError: an integer is required (got type bytes)`
  • 原码 补码 反码
  • 常用开发工具配置笔记
  • 保存大量数据用sqllite还是indexdb
  • 黑屏环境下,如何利用OBD部署OceanBase企业版集群
  • H264编码原理(二)帧内预测
  • 多场景建模: STAR(Star Topology Adaptive Recommender)
  • Druid 在有赞的实践
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • PHP 小技巧
  • React+TypeScript入门
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 笨办法学C 练习34:动态数组
  • 小程序开发中的那些坑
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 再谈express与koa的对比
  • elasticsearch-head插件安装
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 阿里云服务器购买完整流程
  • 说说我为什么看好Spring Cloud Alibaba
  • ​力扣解法汇总946-验证栈序列
  • ​水经微图Web1.5.0版即将上线
  • ‌移动管家手机智能控制汽车系统
  • # wps必须要登录激活才能使用吗?
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (1)Jupyter Notebook 下载及安装
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (九十四)函数和二维数组
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)c++ std::pair 与 std::make
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)从 Java 代码到 Java 堆
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ***监测系统的构建(chkrootkit )
  • ... 是什么 ?... 有什么用处?
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析