拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Detectron 目标检测研究平台全解析:架构、算法、安装、推理与训练实战指南

Detectron 目标检测研究平台全解析:架构、算法、安装、推理与训练实战指南
  • 计算机视觉
  • 深度学习

【免费下载链接】Detectron

FAIR's research platform for object detection research, implementing popular algorithms like Mask R-CNN and RetinaNet.

项目地址:https://gitcode.com/gh_mirrors/de/Detectron
点击查看免费下载

导读:Detectron 是 Facebook AI Research(FAIR)发布的目标检测研究平台,用 Python 编写、以 Caffe2 为深度学习后端,实现了 Mask R-CNN、RetinaNet、Faster R-CNN、RPN、Fast R-CNN、R-FCN 等主流算法。本文以仓库根目录 README.md 为核心骨架,结合 INSTALL.md、GETTING_STARTED.md、MODEL_ZOO.md、FAQ.md 与源码实现,系统讲解 Detectron 的定位、算法与骨干网络、安装与依赖、预训练模型推理、COCO 数据集训练、多 GPU 并行、Model Zoo 基线及自定义算子开发。读完本文,你将能够独立完成 Detectron 的安装、用预训练模型做单图/批量推理、按线性缩放规则配置 1/2/4/8 GPU 训练,并理解其配置文件的每一个关键参数。

注意:Detectron 已被官方弃用并停止维护,其官方推荐的替代方案是 detectron2——一个在 PyTorch 中从零重写的版本。本文所讲内容均以当前仓库实际代码与文档为准。

Detectron 是什么:研究导向的检测代码库

项目定位

Detectron 的目标是提供一个高质量、高性能、面向研究的目标检测代码库。它并非面向开箱即用的产品化部署,而是设计得足够灵活,以便快速实现和评估新的研究方法。这一研究导向决定了其目录组织、配置体系和代码风格。

支持的算法与骨干网络

README 明确列出 Detectron 实现的检测算法(对应论文可在文末 References 一节查到):

  • Mask R-CNN(ICCV 2017 Marr 奖)
  • RetinaNet(ICCV 2017 最佳学生论文奖,基于 Focal Loss 的密集检测器)
  • Faster R-CNN
  • RPN(Region Proposal Network,区域提议网络)
  • Fast R-CNN
  • R-FCN

支持的骨干网络架构包括:

  • ResNeXt{50,101,152}
  • ResNet{50,101,152}
  • Feature Pyramid Networks(FPN,与 ResNet/ResNeXt 组合使用)
  • VGG16

从源码结构看,这些骨干与检测头均可在 detectron/modeling/ 目录中找到对应实现,例如 ResNet.py、FPN.py、VGG16.py、mask_rcnn_heads.py、retinanet_heads.py、rpn_heads.py。额外的骨干架构可以很容易地按同样模式扩展。

与 FAIR 系列研究项目的关系

在 FAIR 内部,Detectron 支撑了大量研究项目,包括 FPN、Mask R-CNN、人体-物体交互检测(HOI)、Focal Loss 密集检测、Non-local 神经网络、Learning to Segment Every Thing、Data Distillation、DensePose 以及 Group Normalization 等。

项目结构速览

仓库根目录的核心组织如下:

  • configs/:所有实验的 YAML 配置文件,按基线批次组织(如12_2017_baselines/、04_2018_gn_baselines/)以及入门教程配置(getting_started/)
  • detectron/:核心 Python 包,包括core/(配置与测试引擎)、modeling/(模型构建)、roi_data/(数据加载)、datasets/(数据集与评估)、ops/(自定义算子)、utils/(工具函数)、tests/(测试)
  • tools/:命令行工具,如 infer_simple.py、test_net.py、train_net.py、infer.py、reval.py、visualize_results.py
  • demo/:演示图片与示例输出
  • docker/:Dockerfile,用于构建官方 Docker 镜像
  • projects/:研究专题目录,如 projects/GN/README.md 提供 Group Normalization 的模型与基线
  • 顶层文档:INSTALL.md、GETTING_STARTED.md、MODEL_ZOO.md、FAQ.md、CONTRIBUTING.md

安装 Detectron 与依赖(含 Caffe2 与 COCO)

完整安装步骤在 INSTALL.md 中,核心要点如下。

环境要求

  • NVIDIA GPU、Linux、Python2(这是当时 Caffe2 生态的要求,安装前务必确认环境匹配)
  • Caffe2、若干标准 Python 包、COCO API

注意:Detectron 的自定义算子目前没有 CPU 实现,因此 GPU 系统是硬性要求;官方在 CUDA 8.0 与 cuDNN 6.0.21 上做过充分测试。

安装 Caffe2

先按 Caffe2 官网指引安装带 CUDA 支持的 Caffe2。如果已安装 Caffe2,务必更新到包含 Detectron 模块的版本(该模块随 Caffe2/PyTorch 仓库分发,包含 GroupNorm、BatchPermutation、SpatialNarrowAs 等专用算子)。

安装后用以下命令自检:

# 检查 Caffe2 是否构建成功 python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure" # 检查 Caffe2 GPU 构建是否成功;必须打印大于 0 的数字才能使用 Detectron python -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

如果caffe2Python 包找不到,通常需要把 Caffe2 的 CMake 构建目录(/path/to/caffe2/build)加入PYTHONPATH。

安装其他依赖

安装 COCO API:

# COCOAPI=/path/to/clone/cocoapi git clone https://github.com/cocodataset/cocoapi.git $COCOAPI cd $COCOAPI/PythonAPI make install # 安装到全局 site-packages # 或者:python setup.py install --user # 无权限时安装到用户目录

安装 Detectron

# DETECTRON=/path/to/clone/detectron git clone https://github.com/facebookresearch/detectron $DETECTRON pip install -r $DETECTRON/requirements.txt # 安装 Python 依赖 cd $DETECTRON && make # 设置 Python 模块 # 检查测试是否通过(以 SpatialNarrowAsOp 测试为例) python $DETECTRON/detectron/tests/test_spatial_narrow_as_op.py

数据集:通过符号链接接入

Detectron 通过detectron/datasets/data下的符号链接定位数据集。详见 detectron/datasets/data/README.md。以 COCO 为例:

ln -s /path/to/coco $DETECTRON/detectron/datasets/data/coco

并要求本地 COCO 目录具有如下结构(coco_train2014/、coco_val2014/图片目录与annotations/instances_train2014.json等标注文件)。如果不满足,也可以逐项建符号链接:

mkdir -p $DETECTRON/detectron/datasets/data/coco ln -s /path/to/coco_train2014 $DETECTRON/detectron/datasets/data/coco/coco_train2014 ln -s /path/to/coco_val2014 $DETECTRON/detectron/datasets/data/coco/coco_val2014 ln -s /path/to/json/annotations $DETECTRON/detectron/datasets/data/coco/annotations

Detectron 使用的自定义minival与valminusminival标注可从官方链接下载(见该 README)。其中minival与 2017 年定义的val集完全等价,valminusminival与 2014train的并集与 2017train集完全等价。PASCAL VOC 与 Cityscapes 的符号链接设置方式同理(VOC 需把标注转为 COCO json 格式)。

高级主题:自定义 Caffe2 算子

Detectron 依赖一批专门的 Caffe2 算子,它们随 Caffe2 的 Detectron 模块分发。如需为研究项目编写自定义算子,参考实现位于 detectron/ops/(如 zero_even_op.cc、zero_even_op.cu),Python 侧加载示例见 detectron/tests/test_zero_even_op.py。

构建自定义算子库并验证:

cd $DETECTRON && make ops python $DETECTRON/detectron/tests/test_zero_even_op.py

Docker 方式

仓库提供了 docker/Dockerfile,可在满足要求的 Caffe2 镜像之上构建 Detectron 镜像:

cd $DETECTRON/docker docker build -t detectron:c2-cuda9-cudnn7 . # 运行镜像(以 BatchPermutationOp 测试为例) nvidia-docker run --rm -it detectron:c2-cuda9-cudnn7 python detectron/tests/test_batch_permutation_op.py

安装疑难排查要点

  • CMake 找不到 CUDA/cuDNN:构建 Caffe2 或自定义算子时用-DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda/toolkit/dir和-DCUDNN_ROOT_DIR=/path/to/cudnn/root/dir显式指定。
  • Protobuf 错误:Caffe2 要求 protobuf 3.2.0 或更新版本;较老版本可从 Caffe2 的 protobuf 子模块重新构建并用-DPROTOBUF_PROTOC_EXECUTABLE、-DPROTOBUF_INCLUDE_DIR、-DPROTOBUF_LIBRARY指定。系统与 anaconda 同时装 protobuf 可能导致版本混用问题。
  • Caffe2 Python 二进制问题:用-DPYTHON_LIBRARY=$(python -c "from distutils import sysconfig; print(sysconfig.get_python_lib())")与-DPYTHON_INCLUDE_DIR=$(python -c "from distutils import sysconfig; print(sysconfig.get_python_inc())")指向 Python 库与头文件目录。
  • NNPACK / OpenCV:Detectron 不要求 NNPACK,可用-DUSE_NNPACK=OFF关闭;OpenCV 同理可用-DUSE_OPENCV=OFF。
  • COCO API undefined symbol:通常是系统与 conda 的 Python/numpy 混用导致,注意统一 Python 环境。
  • CMake 找不到 Caffe2:确保 Caffe2 安装过程中执行过make install。
  • 算子性能分析:Caffe2 提供 profiling 支持(默认未开启,构建时加-DUSE_PROF=ON),可用于基准测试与调试算子。

使用预训练模型进行推理

安装完成后即可用 Model Zoo 的预训练模型做推理,教程在 GETTING_STARTED.md。

方式一:对图片目录或单张图片推理

tools/infer_simple.py可对一个目录下的所有图片(如demo/*.jpg)或单张图片执行端到端推理。以下示例使用 Model Zoo 中端到端训练的 Mask R-CNN(ResNet-101-FPN 骨干,2x 学习率计划):

python tools/infer_simple.py \ --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \ --output-dir /tmp/detectron-visualizations \ --image-ext jpg \ --wts https://dl.fbaipublicfiles.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \ demo

Detectron 会根据--wts指定的 URL自动下载模型,并把检测结果的可视化(默认 PDF 格式,可用--output-ext改为 jpg/png 等)输出到--output-dir。

从 tools/infer_simple.py 的源码可以看到该工具支持的全部参数:

参数作用默认值
--cfg模型配置文件路径(yaml)无
--wts模型权重文件路径或 URL(/path/to/model_weights.pkl)无
--output-dir可视化输出目录/tmp/infer_simple
--image-ext输入图片扩展名jpg
--always-out即使未检测到物体也输出图片False
--output-ext输出图片格式pdf
--thresh可视化检测结果的置信度阈值0.7
--kp-thresh可视化关键点的阈值2.0
im_or_folder单张图片或图片文件夹路径(必填位置参数)无

另外从源码可以确认几个行为细节:infer_simple.py会把cfg.NUM_GPUS强制设为 1、拒绝 RPN-only 模型与需要预计算提议(precomputed proposals)的模型,并对第一张图片输出提示——因为 cudnn 等缓存与自动调优需要预热,首张图片的推理会明显慢于后续图片(对应 FAQ.md 中"单图推理偏慢"的解答)。

性能提示(针对高分辨率图片):Mask R-CNN 对高分辨率图片推理较慢,主要耗时在把预测 mask 上采样回原图分辨率(该步骤未优化)。可通过tools/infer_simple.py输出的misc_mask时间诊断——若该时间明显超过 20-90ms,则建议先把图片短边缩放到约 600-800px 再推理。demo 图片的版权信息见 demo/NOTICE。

方式二:在 COCO 数据集上评测

以下命令用 Model Zoo 的端到端 Mask R-CNN 模型、单 GPU 在coco_2014_minival(需已正确安装)上运行推理:

python tools/test_net.py \ --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \ TEST.WEIGHTS https://dl.fbaipublicfiles.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \ NUM_GPUS 1

用$N块 GPU 做多卡并行推理(例如 N=8):

python tools/test_net.py \ --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \ --multi-gpu-testing \ TEST.WEIGHTS https://dl.fbaipublicfiles.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \ NUM_GPUS $N

官方在 NVIDIA Tesla P100 上测得该示例推理约130-140 ms/图。注意这里通过KEY.VALUE形式直接在命令行覆盖配置项(对应train_net.py/test_net.py中merge_cfg_from_list的机制),NUM_GPUS会决定使用的 GPU 数量。

训练模型:从单卡到多卡

单 GPU 训练入门示例

GETTING_STARTED 提供了一个教学性训练示例:端到端 Faster R-CNN,ResNet-50-FPN 骨干,使用较短训练计划与较小输入尺寸,因此训练与推理都较快(代价是 COCO box AP 低于正式基线,仅供教学,不用于论文对比):

python tools/train_net.py \ --cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml \ OUTPUT_DIR /tmp/detectron-output

官方给出的预期结果(以 Maxwell 架构 GPU,如 M40 为参考):

  • 模型、验证集检测结果等输出保存在/tmp/detectron-output
  • 训练约 4.2 小时
  • 推理约 80ms/图
  • coco_2014_minival上的 box AP 约 22.1%(3 次运行标准差 ±0.1%)

多 GPU 训练与线性缩放规则

仓库提供了 2/4/8 GPU 的等价教学配置:configs/getting_started/tutorial_{2,4,8}gpu_e2e_faster_rcnn_R-50-FPN.yaml。2 GPU 示例:

python tools/train_net.py \ --multi-gpu-testing \ --cfg configs/getting_started/tutorial_2gpu_e2e_faster_rcnn_R-50-FPN.yaml \ OUTPUT_DIR /tmp/detectron-output

--multi-gpu-testing指示训练结束后用配置中的NUM_GPUS块 GPU 并行推理。官方预期:训练约 2.3 小时(2 x M40),推理仍约 80ms/图(但 2 卡并行,总耗时减半),box AP 同样约 22.1%。

核心原理:线性缩放规则。阅读教程配置文件可以直观理解不同 GPU 数下学习计划的等价换算。以 configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml 为例,其注释给出了完整换算表:

GPU 数BASE_LRMAX_ITERSTEPS
10.002560000[0, 30000, 40000]
20.00530000[0, 15000, 20000]
40.0115000[0, 7500, 10000]
80.027500[0, 3750, 5000]

即:GPU 数翻倍,minibatch 翻倍,基础学习率按相同倍数放大、迭代数减半、学习率下降点按比例前移。这一规则出自论文《Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour》。除教程外,仓库发布的全部正式配置都默认 8 GPU 训练;若你用少于 8 卡(或其他任何改变 minibatch 大小的方式),必须按线性缩放规则调整训练计划。

扩展说明:该教学示例使用的模型 GPU 计算量较小,Caffe2 Python 算子的开销占比高,因此 2 卡到 8 卡的扩展效率一般(8 卡约 0.9 小时,只有 1 卡的 4.5 倍);改用计算密集的大模型后扩展性会更好。

train_net.py 的命令行参数

从 tools/train_net.py 源码可以看到:

  • --cfg:训练(及可选测试)用的配置文件
  • --multi-gpu-testing:用cfg.NUM_GPUS块 GPU 做推理
  • --skip-test:跳过最终模型测试
  • opts:任意数量的KEY.VALUE命令行覆盖项(如OUTPUT_DIR /tmp/detectron-output、NUM_GPUS 1),机制是merge_cfg_from_list合并到全局配置

训练主流程(main())依次执行:初始化 Caffe2 workspace → 加载配置(文件 + 命令行覆盖)→assert_and_infer_cfg校验并推导配置 → 打印 nvidia-smi/CUDA/cuDNN 信息 → 设置随机种子 →train_model()训练 → 测试最终模型。注意即便设置了 numpy 随机种子,训练整体仍非确定性(部分 cudnn 函数不可控)。

读懂 Detectron 配置文件

教学配置逐项解析

以 configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml 为例:

MODEL: TYPE: generalized_rcnn # 模型类型:通用两阶段检测器 CONV_BODY: FPN.add_fpn_ResNet50_conv5_body # 骨干网络构建函数 NUM_CLASSES: 81 # COCO 80 类 + 背景 FASTER_RCNN: True NUM_GPUS: 1 SOLVER: WEIGHT_DECAY: 0.0001 LR_POLICY: steps_with_decay # 分段衰减学习率策略 BASE_LR: 0.0025 GAMMA: 0.1 # 每次衰减乘 0.1 MAX_ITER: 60000 STEPS: [0, 30000, 40000] # 0 为预热起点,之后在 30k/40k 迭代衰减 FPN: FPN_ON: True MULTILEVEL_ROIS: True # 多层级 RoI 池化 MULTILEVEL_RPN: True # 多层级 RPN FAST_RCNN: ROI_BOX_HEAD: fast_rcnn_heads.add_roi_2mlp_head # 2 个 MLP 全连接层的 box 头 ROI_XFORM_METHOD: RoIAlign ROI_XFORM_RESOLUTION: 7 # RoI 池化输出分辨率 ROI_XFORM_SAMPLING_RATIO: 2 # RoIAlign 采样率 TRAIN: WEIGHTS: https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/MSRA/R-50.pkl # 预训练权重 DATASETS: ('coco_2014_train',) SCALES: (500,) # 训练尺度:短边 500px MAX_SIZE: 833 # 长边上限 BATCH_SIZE_PER_IM: 256 # 每图 RoI 采样数 RPN_PRE_NMS_TOP_N: 2000 # NMS 前每个 FPN 层保留的候选数 TEST: DATASETS: ('coco_2014_minival',) SCALE: 500 MAX_SIZE: 833 NMS: 0.5 # 检测结果 NMS 阈值 RPN_PRE_NMS_TOP_N: 1000 RPN_POST_NMS_TOP_N: 1000 OUTPUT_DIR: .

所有配置项的完整定义与默认值见 detectron/core/config.py,命令行覆盖项(opts)也以该文件为准。

正式基线配置要点

正式基线(如 configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml)与教学配置的差异值得对比:

  • NUM_GPUS: 8,BASE_LR: 0.02,MAX_ITER: 180000,STEPS: [0, 120000, 160000](即文档所称 2x 计划,180k 迭代)
  • 增加MASK_ON: True与MRCNN:段:mask 头为mask_rcnn_heads.mask_rcnn_fcn_head_v1up4convs,输出分辨率 28、RoI 输入分辨率 14、DILATION 1、CONV_INIT MSRAFill(注释标出与默认值的差异)
  • TRAIN.SCALES: (800,)、MAX_SIZE: 1333,训练集为coco_2014_train与coco_2014_valminusminival的并集
  • TRAIN.WEIGHTS指向 MSRA 的 R-101 预训练权重(ImageNet)

Model Zoo:12_2017_baselines 基线与可下载模型

仓库提供了大量基线结果与预训练模型,详见 MODEL_ZOO.md,官方统称为12_2017_baselines(2017 年 12 月左右训练),所有配置位于 configs/12_2017_baselines/。

统一实验设置

  • 硬件:8 块 NVIDIA Tesla P100(16GB 显存,CUDA 8.0,cuDNN 6.0.21)的 Big Basin 服务器
  • 训练:8 GPU 数据并行同步 SGD,minibatch 为 8 或 16 张图(见各表im/gpu列)
  • 数据增强:训练仅用水平翻转;推理不使用任何测试时增强(多尺度、翻转等)
  • 数据划分:全部模型在coco_2014_train∪coco_2014_valminusminival上训练(等价于 2017 定义的coco_2017_train),在coco_2014_minival上测试(等价于coco_2017_val)
  • 推理时间用 "X + Y" 表示:X 为优化较好的 GPU 代码耗时,Y 为未优化的 CPU 代码耗时(后者可通过工程优化大幅压缩)
  • 结果(boxes/masks/kps)均为 COCO json 格式;任意下载 URL 后追加.md5sum可获取 md5 校验值

训练计划定义

  • 1x:minibatch 16 时,初始 LR 0.02,60k 与 80k 迭代各衰减一次(乘 0.1),90k 迭代结束;对应 118,287 张训练图上的 12.17 个 epoch
  • 2x:1x 的两倍时长,LR 变化点按比例平移
  • s1x("stretched 1x"):把 1x 大约拉伸 1.44 倍,同时延长首个学习率阶段;minibatch 16 时在 100k 与 120k 迭代衰减,130k 迭代结束

所有计划都包含 500 迭代的线性学习率预热。minibatch 在 8 与 16 之间切换时,按线性缩放规则调整迭代数与基础学习率。

基线族系

Model Zoo 依次给出:

  1. RPN 提议基线:单阶段 RPN,指标为 1000 proposals/图的提议平均召回(prop. AR),推理时间仅含提议生成
  2. 使用预计算 RPN 提议的 Fast & Mask R-CNN 基线:每行复用同骨干的 RPN 提议,推理时间不含提议生成
  3. 端到端 Faster & Mask R-CNN 基线:RPN 与检测器联合训练,推理时间为从图像到检测的完整耗时(含提议生成)
  4. RetinaNet 基线:单阶段密集检测器
  5. Mask R-CNN with Bells & Whistles:ResNeXt-152-32x8d-FPN(ImageNet-5k 预训练骨干),训练用多尺度抖动 {640, 672, 704, 736, 768, 800},测试时多尺度 {400, 500, 600, 700, 900, 1000, 1100, 1200} 加水平翻转;第二行给出同一模型无测试时增强的结果(45.2/39.7 box/mask AP vs 增强版 48.1/41.5)
  6. 关键点检测基线:训练启用多尺度抖动、只用含有效关键点标注的人像图、指标仅针对 person 类,含 Person-Specific RPN、基于预计算提议的 Keypoint-Only Mask R-CNN、端到端 Keypoint-Only Mask R-CNN 三个子类

例如端到端 Mask R-CNN R-101-FPN 2x(model id 35861858,即 GETTING_STARTED 推理示例所用模型)在coco_2014_minival上的 box/mask AP 为 40.9/36.4,推理 0.126+0.017 s/图;每行均提供 model.pkl 与 boxes/masks/kps 结果 json 的下载链接。下载模型的许可为 CC-BY-SA 3.0。另有 ImageNet 预训练骨干模型(R-50/R-101/X-101-64x4d/X-101-32x8d/X-152-32x8d-IN5k)与训练/推理日志包可供下载。

附录

常见问题(FAQ)要点

FAQ.md 收录了以下高频问题与官方解答:

  • 训练中如何计算验证 AP?Detectron 训练时不算验证统计(会拖慢训练);官方用"validation monitor"进程轮询新 checkpoint 并异步调度tools/test_net.py推理,但该组件未开源(依赖内部集群)。
  • 如何限制只用服务器上部分 GPU?不改代码,直接用CUDA_VISIBLE_DEVICES环境变量。
  • 单图推理为何比报告值慢很多?各类算法与缓存(如 cudnn)需要预热,处理几张图后才达峰值;此外高分辨率 Mask R-CNN 推理慢可归因于 mask 上采样(诊断misc_mask,建议缩图到短边 600-800px)。
  • 如何实现自定义 Caffe2 CPU/GPU 算子?参考 detectron/ops/ 下的玩具示例(zero_even_op)与 detectron/tests/test_zero_even_op.py,并阅读 Caffe2 自定义算子文档。
  • 如何在自定义数据集上训练?强烈建议先把标注转为 COCO API json 格式,再把数据集加入 detectron/datasets/dataset_catalog.py 的 dataset catalog;无法转换则需要更大幅度的代码改动。

相关研究论文(References)

Detectron 支撑的算法与骨干对应的代表性论文(完整 BibTeX 与出处见 README.md 与 GETTING_STARTED.md 中的引用信息):

  • Data Distillation: Towards Omni-Supervised Learning(Radosavovic 等,2017)
  • Learning to Segment Every Thing(Hu 等,2017)
  • Non-Local Neural Networks(Wang 等,2017)
  • Mask R-CNN(He 等,ICCV 2017)
  • Focal Loss for Dense Object Detection(Lin 等,ICCV 2017)
  • Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour(Goyal 等,2017)
  • Detecting and Recognizing Human-Object Interactions(Gkioxari 等,2017)
  • Feature Pyramid Networks for Object Detection(Lin 等,CVPR 2017)
  • Aggregated Residual Transformations for Deep Neural Networks / ResNeXt(Xie 等,CVPR 2017)
  • R-FCN(Dai 等,NIPS 2016)
  • Deep Residual Learning for Image Recognition / ResNet(He 等,CVPR 2016)
  • Faster R-CNN(Ren 等,NIPS 2015)
  • Fast R-CNN(Girshick,ICCV 2015)
  • Group Normalization(Wu 与 He,2018,见 projects/GN/README.md)

引用 Detectron(BibTeX)

若研究中使用了 Detectron 或引用其 Model Zoo 基线结果,官方建议使用如下 BibTeX:

@misc{Detectron2018, author = {Ross Girshick and Ilija Radosavovic and Georgia Gkioxari and Piotr Doll\'{a}r and Kaiming He}, title = {Detectron}, howpublished = {\url{https://github.com/facebookresearch/detectron}}, year = {2018} }

许可证与帮助渠道

Detectron 以Apache 2.0 许可证发布,附加细节见 NOTICE。遇到问题先查 INSTALL.md 的 troubleshooting 章节与 FAQ.md,再搜索官方 GitHub issues(社区共同排查问题的论坛);提交 bug 修复欢迎以 Pull Request 形式贡献(包括往 FAQ.md 补充 Q&A、改进安装与排查文档),贡献规范见 CONTRIBUTING.md。

  • 计算机视觉
  • 深度学习

【免费下载链接】Detectron

FAIR's research platform for object detection research, implementing popular algorithms like Mask R-CNN and RetinaNet.

项目地址:https://gitcode.com/gh_mirrors/de/Detectron
点击查看免费下载

相关推荐

上一篇:深度拆解Photo-SLAM架构:ORB-SLAM3与高斯模型的创新融合
下一篇:免费VR视频转换终极指南:5分钟掌握3D转2D的完整方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表