【Detectron2】代码库学习-3. 代码结构

目录

    • 1. 简介
    • 2. 工程结构
    • 3. 核心框架

1. 简介

Detectron2是Facebook AI Research(FAIR)推出的基于Pytorch的视觉算法开源框架,主要聚焦于目标检测和分割任务等视觉算法,此外还支持全景分割,关键点检测,旋转框检测等任务。Detectron2继承自Detectron 和mask-rcnn。
Detectron2具有较强的灵活性和可扩展性,支持快速的单GPU训练,多GPU并行训练和多节点分布式训练。

2. 工程结构

detectron2

  • configs
    特定数据特定任务的训练配置文件,如mask_rcnn, faster_rcnn, retina_net
  • datasets

准备数据集的脚本,包括 ADEChallengeData2016, LVIS: A Dataset for Large Vocabulary Instance Segmentation,COCO数据集

  • demo
    demo程序,可以在静态图像和视频上单帧推理或异步推理已训练好的模型
  • detectron2
    核心框架
  • dev
    开发构建工具,格式化,wheels包构建
  • docker
    docker虚拟环境构建
  • docs
    文档
  • projects
    基于detectron2的工程,包括DeepLab,DensePose,MViTv2,Panoptic-DeepLab,PointRend,PointSup,TensorMask,TridentNet,ViTDet
  • tests
    单元测试脚本
  • tools
    工具包,包括模型参数、flop统计,基准构建,LazyConfig训练,torch-lightning训练,数据可视化,检测结果可视化
    scripts
    包括setup.py,README.md,INSTALL.md,LICENSE,GETTING_STARTED.md等

3. 核心框架

  • checkpoint
    checkpoint管理工具,checkpoint加载,checkpoint转换
  • config
    配置文件管理工具,CfgNode,get_config,instantiate,LazyCall,LazyConfig
  • data
    数据集,自定义数据集注册,采样,分布式采样,分组批次采样,数据变换、增强,dataloader, 标注格式转换
  • engine
    训练pipeline,hooks插件,分布式训练,混合精度训练,多GPU训练,分布式训练
  • evaluation
    数据集评估模块,cityscapes,coco,lvis,panoptic,pascal_voc,rotated_coco,sem_seg
  • export
    模型导出模块,导出onnx, torchscript
  • layers
    aspp、bn、de-conv、losses、nms、roi_align_rotated、roi_align、rotated_boxes…
    部分算子c++/cuda实现:box_iou_rotated, cocoeval, deformable-conv,nms_rotated,ROIAlignRotated
  • model_zoo
    常见模型与对应预训练权重
  • modeling
    模型相关,backbone,算法框架,RPN, 检测头,anchor_generator, postprocess
  • solver
    优化器,lr_scheduler,梯度裁减
  • structures
    标注结构体,box,instance,keypoints,masks, rotated_boxes
  • tracking
    目标跟踪相关,基于IOU的tracking, 基于匈牙利算法的tracing
  • utils
    通用脚本,模型分析,环境搜集,颜色表,多GPU通信,事件存储(JSON,TensorboardX),文件IO, 日志系统,显存控制,序列化,tracing,可视化,视频可视化

你可能感兴趣的:(Detectron2,开源库,学习,深度学习,目标检测)