【Object Detection】【maskrcnn_benckmark】项目文件说明

1. Project 的结构

maskrcnn-benchmark
|
|_  configs  # 保存配置文件
|_  demo  # Demo展示
|_  docker  # Docker安装使用
|_  maskrcnn_benchmark  # 核心代码
|_  maskrcnn_benchmark.egg-info  # 编译产物
|_  tests  # 源码测试代码
|_  tools=  # 训练和测试脚本
|_  ABSTRACTIONS.md  # 介绍 ImageList 和 BoxList
|_  CODE_OF_CONDUCT.md  # 代码参与者守则
|_  CONTRIBUTING.md  # 项目贡献者守则
|_  INSTALL.md  # 安装说明
|_  LICENSE  # 许可协议
|_  MODEL_ZOO.md  # 预训练模型及其指标
|_  README.md  # 项目说明文档
|_  requirements.txt  # 项目依赖
|_  setup.py  # 项目安装程序
|_  TROUBLESHOOTING.md  # 常见问题

2. configs 目录

maskrcnn-benchmark
|
|_ configs  # 配置文件
   |
   |_ caffe2
   |  |
   |  |_
   |  
   |_ cityscapes
   |_ dcn
   |_ gn_baselines
   |_ pascal_voc
   |_ quick_schedules
   |_ retinanet
   |_ test_time_aug
   |
   |_ e2e_faster_rcnn_fbnet.yaml
   |_ e2e_faster_rcnn_fbnet_600.yaml
   |_ ...
   |_ ...
   |_ rpn_X_101_32x8d_FPN_1x.yaml

3. maskrcnn_benchmark 目录

../maskrcnn_benchmark/maskrcnn_benchmark/ 是项目源码目录,import maskrcnn_benchmark 语句导入的既是该目录下的内容.

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ config  # 配置文件接口
   |_ csrc  # 部分cpp或cuda实现
   |_ data  # 数据接口,包括评价指标的代码实现
   |_ engine  # 训练和测试模型的函数
   |_ layers  # 项目自定义的网络层代码
   |_ modeling  # 构建网络模型的代码
   |_ solver  # 构建训练优化器的代码
   |_ structures  # 检测框、关键点等术语的实现
   |_ utils  # 训练网络的工具组件
   |_ __init__.py
   |_ _C.cpython-36m-x86_64-linux-gnu.so  # 由`csrc`编译得到

3.1 config 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ config  # 配置文件接口
      |
      |_ __init__.py
      |_ defaults.py  # 全部配置信息,配置文件接口
      |_ path_catalog.py  # 数据文件路径接口,权重文件路径接口

(1) defaults.py 文件
defaults.py 定义了配置文件的格式和信息,并设置了默认配置信息,基于 yacspyyamlyaml 的 python 库).
不要修改 defaults.py 文件.

(2)path_catalog.py 文件
path_catalog.py 文件主要有两个作用:

  1. 定义数据集的接口,并设置了 COCO 和 VOC 的默认接口格式;添加自定义数据集需要在此文件增加代码.
  2. 获取下载模型初始权重的 URL,并将权重文件缓存在 ~/.torch/modles/.

3.2 scrc 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |_ csrc  # cpp 源码
      |
      |_ cpu  # cpu 实现
      |  |_ nms_cpu.cpp
      |  |_ ROIAlign_cpu.cpp
      |  |_ vision.h
      |  
      |_ cuda  # gpu 实现
      |  |_ nms.cu
      |  |_ ROIAlign_cuda.cu
      |  |_ ROIPool_cuda.cu
      |  |_ SigmoidFocalLoss_cuda.cu
      |  |_ vision.h
      |  
      |_ deform_conv.h
      |_ deform_pool.h
      |_ nms.h
      |_ ROIAlign.h
      |_ ROIPool.h
      |_ SigmoidFocalLoss.h
      |_ vision.cpp

3.3 data 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ data  # 定义 data pipe
      |
      |_ datasets  # 定义 Dataset
      |  |
      |  |_ evaluation  # 定义对应 Dataset 的评价方式的代码
      |  |  |
      |  |  |_ cityscapes
      |  |  |  |
      |  |  |  |_ __init__.py
      |  |  |  |_ cityscapes_eval.py
      |  |  |  |_ eval_instances.py
      |  |  |
      |  |  |_ coco
      |  |  |  |
      |  |  |  |_ __init__.py
      |  |  |  |_ abs_to_coco.py
      |  |  |  |_ coco_eval.py
      |  |  |  |_ coco_eval_wrapper.py
      |  |  |
      |  |  |_ voc
      |  |  |  |
      |  |  |  |_ __init__.py
      |  |  |  |_ voc_eval.py
      |  |  |
      |  |  |_ __init__.py
      |  |  
      |  |_ __init__.py
      |  |_ abstract.py
      |  |_ cityscapes.py
      |  |_ coco.py
      |  |_ concat_dataset.py
      |  |_ list_dataset.py
      |  |_ voc.py
      |  
      |_ samplers  # 定义 samplers
      |  |_ __init__.py
      |  |_ distributed.py
      |  |_ grouped_batch_sampler.py
      |  |_ iteration_based_batch_sampler.py
      |  
      |_ transforms  # 定义 transforms
      |  |_ __init__.py
      |  |_ build.py
      |  |_ transforms.py
      |
      |_ __init__.py
      |_ build.py
      |_ collate_batch.py
      |_ README.md

3.4 engine 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ engine  # 
      |
      |_ __init__.py
      |_ bbox_aug.py
      |_ inference.py  # 推理或评价代码
      |_ trainer.py  # 训练代码

3.5 layers 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ layers  # 
      |
      |_ dcn
      |  |
      |  |_ __init__.py
      |  |_ deform_conv_func.py
      |  |_ deform_conv_module.py
      |  |_ deform_pool_func.py
      |  |_ deform_pool_module.py
      |
      |_ __init__.py
      |_ _utils.py
      |_ batch_norm.py
      |_ misc.py
      |_ nms.py
      |_ roi_align.py
      |_ roi_pool.py
      |_ sigmoid_focal_loss.py
      |_ smooth_l1_loss.py

3.6 modeling 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ modeling  # 
      |
      |_ backbone
      |  |
      |  |_ __init__.py
      |  |_ backbone.py
      |  |_ fbnet.py
      |  |_ fbnet_builder.py
      |  |_ fbnet_modeldef.py
      |  |_ fpn.py
      |  |_ resnet.py
      |
      |_ detector
      |  |
      |  |_ __init__.py
      |  |_ detectors.py
      |  |_ generalized_rcnn.py
      |
      |_ roi_heads
      |  |
      |  |_ box_head
      |  |  |
      |  |  |_ __init__.py
      |  |  |_ box_head.py
      |  |  |_ inference.py
      |  |  |_ loss.py
      |  |  |_ roi_box_feature_extractors.py
      |  |  |_ roi_box_predictors.py
      |  |
      |  |_ keypoint_head
      |  |  |
      |  |  |_ __init__.py
      |  |  |_ inference.py
      |  |  |_ keypoint_head.py
      |  |  |_ loss.py
      |  |  |_ roi_keypoint_feature_extractors.py
      |  |  |_ roi_keypoint_predictors.py
      |  |
      |  |_  mask_head
      |  |  |
      |  |  |_ __init__.py
      |  |  |_ inference.py
      |  |  |_ loss.py
      |  |  |_ mask_head.py
      |  |  |_ roi_mask_feature_extractors.py
      |  |  |_ roi_mask_predictors.py
      |  |
      |  |_ __init__.py
      |  |_ roi_heads.py
      |  
      |_ rpn
      |  |
      |  |_ retinanet
      |  |  | 
      |  |  |_ __init__.py
      |  |  |_ inference.py
      |  |  |_ loss.py
      |  |  |_ retinanet.py
      |  |
      |  |_ __init__.py
      |  |_ anchor_generator.py
      |  |_ inference.py
      |  |_ loss.py
      |  |_ rpn.py
      |  |_ utils.py
      |  
      |_ __init__.py
      |_ balanced_positive_negative_sampler.py
      |_ box_coder.py  # 推理或评价代码
      |_ make_layers.py  # 训练代码
      |_ matcher.py
      |_ poolers.py
      |_ registry.py
      |_ utils.py

3.7 solver 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |_ solver
      |_ __init__.py
      |_ build.py
      |_ lr_scheduler.py

(1) lr_scheduler.py 文件
lr_scheduler.py 文件定义了 WarmupMultiStepLR,基于 torch.optim.lr_scheduler._LRScheduler。训练时可以使用 warm up.
(2)build.py文件
build.py文件定义了函数 make_optimizermake_lr_scheduler.
函数 make_optimizer 返回一个 SGD 优化器(torch.optim.SGD).
函数 make_lr_scheduler 返回一个学习率的 scheduler (WarmupNultiStepLR).

3.8 structures 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ structures
      |
      |_ __init__.py
      |_ bounding_box.py
      |_ boxlist_ops.py
      |_ image_list.py
      |_ keypoint.py
      |_ segmentation_mask.py

3.9 utils 子目录

maskrcnn-benchmark
|
|_ maskrcnn_benchmark  # 核心代码
   |
   |_ utils
      |
      |_ __init__.py
      |_ c2_model_loading.py
      |_ checkpoint.py
      |_ collect_env.py
      |_ comm.py
      |_ cv2_util.py
      |_ env.py
      |_ imports.py
      |_ logger.py
      |_ metric_logger.py
      |_ miscellaneous.py
      |_ model_serialization.py
      |_ model_zoo.py
      |_ README.md
      |_ registry.py
      |_ timer.py

4. tools 目录

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Mask R-CNN的Python代码,你需要以下步骤: 1. 首先,你需要安装所需的库。根据引用,你可以使用conda进行安装,命令为: ``` conda install opencv ipython cython pillow ``` 2. 然后,你需要转换模型。根据引用,你可以运行以下命令进行模型转换: ``` python ./research/object_detection/export_inference_graph.py --input_type image_tensor --pipeline_config_path ./finetune_model/mask_rcnn_inception_v2_coco.config --trained_checkpoint_prefix ./output/model.ckpt-1000 --output_directory ./output python tf_text_graph_mask_rcnn.py --input ./output/frozen_inference_graph.pb --output ./output/mask_rcnn.pbtxt --config ./finetune_model/mask_rcnn_inception_v2_coco.config python mask_rcnn_predict.py ``` 3. 接下来是训练模型。根据引用,你可以运行以下命令进行训练: ``` python ./research/object_detection/model_main.py --model_dir=./output --pipeline_config_path=./finetune_model/mask_rcnn_inception_v2_coco.config ``` 这些步骤将帮助你实现Mask R-CNN的Python代码。请注意,根据你的需求,你可能需要根据你的具体情况修改代码中的路径和文件名。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用opencv实现对Mask_Rcnn的调用(C++/python)](https://blog.csdn.net/fightingxyz/article/details/107013155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值