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,可视化,视频可视化