Full Code of facebookresearch/Detectron for AI

main 04155a01a6ea cached
210 files
1008.7 KB
300.1k tokens
610 symbols
1 requests
Download .txt
Showing preview only (1,072K chars total). Download the full file or copy to clipboard to get everything.
Repository: facebookresearch/Detectron
Branch: main
Commit: 04155a01a6ea
Files: 210
Total size: 1008.7 KB

Directory structure:
gitextract_5vn9xfb_/

├── .github/
│   └── issue_template.md
├── .gitignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── FAQ.md
├── GETTING_STARTED.md
├── INSTALL.md
├── LICENSE
├── MODEL_ZOO.md
├── Makefile
├── NOTICE
├── README.md
├── cmake/
│   ├── Summary.cmake
│   └── legacy/
│       ├── Cuda.cmake
│       ├── Dependencies.cmake
│       ├── Modules/
│       │   └── FindCuDNN.cmake
│       ├── Summary.cmake
│       ├── Utils.cmake
│       └── legacymake.cmake
├── configs/
│   ├── 04_2018_gn_baselines/
│   │   ├── e2e_mask_rcnn_R-101-FPN_2x_gn.yaml
│   │   ├── e2e_mask_rcnn_R-101-FPN_3x_gn.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_2x_gn.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_3x_gn.yaml
│   │   ├── mask_rcnn_R-50-FPN_1x_gn.yaml
│   │   ├── scratch_e2e_mask_rcnn_R-101-FPN_3x_gn.yaml
│   │   └── scratch_e2e_mask_rcnn_R-50-FPN_3x_gn.yaml
│   ├── 12_2017_baselines/
│   │   ├── e2e_faster_rcnn_R-101-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_R-101-FPN_2x.yaml
│   │   ├── e2e_faster_rcnn_R-50-C4_1x.yaml
│   │   ├── e2e_faster_rcnn_R-50-C4_2x.yaml
│   │   ├── e2e_faster_rcnn_R-50-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_R-50-FPN_2x.yaml
│   │   ├── e2e_faster_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── e2e_faster_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── e2e_keypoint_rcnn_R-101-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_R-101-FPN_s1x.yaml
│   │   ├── e2e_keypoint_rcnn_R-50-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_R-50-FPN_s1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml
│   │   ├── e2e_mask_rcnn_R-101-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_R-101-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_R-50-C4_1x.yaml
│   │   ├── e2e_mask_rcnn_R-50-C4_2x.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_X-152-32x8d-FPN-IN5k_1.44x.yaml
│   │   ├── fast_rcnn_R-101-FPN_1x.yaml
│   │   ├── fast_rcnn_R-101-FPN_2x.yaml
│   │   ├── fast_rcnn_R-50-C4_1x.yaml
│   │   ├── fast_rcnn_R-50-C4_2x.yaml
│   │   ├── fast_rcnn_R-50-FPN_1x.yaml
│   │   ├── fast_rcnn_R-50-FPN_2x.yaml
│   │   ├── fast_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── fast_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── fast_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── fast_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── keypoint_rcnn_R-101-FPN_1x.yaml
│   │   ├── keypoint_rcnn_R-101-FPN_s1x.yaml
│   │   ├── keypoint_rcnn_R-50-FPN_1x.yaml
│   │   ├── keypoint_rcnn_R-50-FPN_s1x.yaml
│   │   ├── keypoint_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml
│   │   ├── keypoint_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml
│   │   ├── mask_rcnn_R-101-FPN_1x.yaml
│   │   ├── mask_rcnn_R-101-FPN_2x.yaml
│   │   ├── mask_rcnn_R-50-C4_1x.yaml
│   │   ├── mask_rcnn_R-50-C4_2x.yaml
│   │   ├── mask_rcnn_R-50-FPN_1x.yaml
│   │   ├── mask_rcnn_R-50-FPN_2x.yaml
│   │   ├── mask_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── mask_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── mask_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── mask_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── retinanet_R-101-FPN_1x.yaml
│   │   ├── retinanet_R-101-FPN_2x.yaml
│   │   ├── retinanet_R-50-FPN_1x.yaml
│   │   ├── retinanet_R-50-FPN_2x.yaml
│   │   ├── retinanet_X-101-32x8d-FPN_1x.yaml
│   │   ├── retinanet_X-101-32x8d-FPN_2x.yaml
│   │   ├── retinanet_X-101-64x4d-FPN_1x.yaml
│   │   ├── retinanet_X-101-64x4d-FPN_2x.yaml
│   │   ├── rpn_R-101-FPN_1x.yaml
│   │   ├── rpn_R-50-C4_1x.yaml
│   │   ├── rpn_R-50-FPN_1x.yaml
│   │   ├── rpn_X-101-32x8d-FPN_1x.yaml
│   │   ├── rpn_X-101-64x4d-FPN_1x.yaml
│   │   ├── rpn_person_only_R-101-FPN_1x.yaml
│   │   ├── rpn_person_only_R-50-FPN_1x.yaml
│   │   ├── rpn_person_only_X-101-32x8d-FPN_1x.yaml
│   │   └── rpn_person_only_X-101-64x4d-FPN_1x.yaml
│   ├── getting_started/
│   │   ├── tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   │   ├── tutorial_2gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   │   ├── tutorial_4gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   │   └── tutorial_8gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   └── test_time_aug/
│       ├── e2e_mask_rcnn_R-50-FPN_2x.yaml
│       └── keypoint_rcnn_R-50-FPN_1x.yaml
├── demo/
│   └── NOTICE
├── detectron/
│   ├── __init__.py
│   ├── core/
│   │   ├── __init__.py
│   │   ├── config.py
│   │   ├── rpn_generator.py
│   │   ├── test.py
│   │   ├── test_engine.py
│   │   └── test_retinanet.py
│   ├── datasets/
│   │   ├── VOCdevkit-matlab-wrapper/
│   │   │   ├── get_voc_opts.m
│   │   │   ├── voc_eval.m
│   │   │   └── xVOCap.m
│   │   ├── __init__.py
│   │   ├── cityscapes_json_dataset_evaluator.py
│   │   ├── coco_to_cityscapes_id.py
│   │   ├── data/
│   │   │   └── README.md
│   │   ├── dataset_catalog.py
│   │   ├── dummy_datasets.py
│   │   ├── json_dataset.py
│   │   ├── json_dataset_evaluator.py
│   │   ├── roidb.py
│   │   ├── task_evaluation.py
│   │   ├── voc_dataset_evaluator.py
│   │   └── voc_eval.py
│   ├── modeling/
│   │   ├── FPN.py
│   │   ├── ResNet.py
│   │   ├── VGG16.py
│   │   ├── VGG_CNN_M_1024.py
│   │   ├── __init__.py
│   │   ├── detector.py
│   │   ├── fast_rcnn_heads.py
│   │   ├── generate_anchors.py
│   │   ├── keypoint_rcnn_heads.py
│   │   ├── mask_rcnn_heads.py
│   │   ├── model_builder.py
│   │   ├── name_compat.py
│   │   ├── optimizer.py
│   │   ├── retinanet_heads.py
│   │   ├── rfcn_heads.py
│   │   └── rpn_heads.py
│   ├── ops/
│   │   ├── __init__.py
│   │   ├── collect_and_distribute_fpn_rpn_proposals.py
│   │   ├── generate_proposal_labels.py
│   │   ├── generate_proposals.py
│   │   ├── zero_even_op.cc
│   │   ├── zero_even_op.cu
│   │   └── zero_even_op.h
│   ├── roi_data/
│   │   ├── __init__.py
│   │   ├── data_utils.py
│   │   ├── fast_rcnn.py
│   │   ├── keypoint_rcnn.py
│   │   ├── loader.py
│   │   ├── mask_rcnn.py
│   │   ├── minibatch.py
│   │   ├── retinanet.py
│   │   └── rpn.py
│   ├── tests/
│   │   ├── data_loader_benchmark.py
│   │   ├── test_batch_permutation_op.py
│   │   ├── test_bbox_transform.py
│   │   ├── test_cfg.py
│   │   ├── test_loader.py
│   │   ├── test_restore_checkpoint.py
│   │   ├── test_smooth_l1_loss_op.py
│   │   ├── test_spatial_narrow_as_op.py
│   │   └── test_zero_even_op.py
│   └── utils/
│       ├── __init__.py
│       ├── blob.py
│       ├── boxes.py
│       ├── c2.py
│       ├── collections.py
│       ├── colormap.py
│       ├── coordinator.py
│       ├── cython_bbox.pyx
│       ├── cython_nms.pyx
│       ├── env.py
│       ├── image.py
│       ├── io.py
│       ├── keypoints.py
│       ├── logging.py
│       ├── lr_policy.py
│       ├── model_convert_utils.py
│       ├── net.py
│       ├── segms.py
│       ├── subprocess.py
│       ├── timer.py
│       ├── train.py
│       ├── training_stats.py
│       └── vis.py
├── docker/
│   └── Dockerfile
├── projects/
│   └── GN/
│       └── README.md
├── requirements.txt
├── setup.py
└── tools/
    ├── convert_cityscapes_to_coco.py
    ├── convert_coco_model_to_cityscapes.py
    ├── convert_pkl_to_pb.py
    ├── convert_selective_search.py
    ├── generate_testdev_from_test.py
    ├── infer.py
    ├── infer_simple.py
    ├── pickle_caffe_blobs.py
    ├── reval.py
    ├── test_net.py
    ├── train_net.py
    └── visualize_results.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/issue_template.md
================================================
## PLEASE FOLLOW THESE INSTRUCTIONS BEFORE POSTING
1. Please thoroughly read README.md, INSTALL.md, GETTING_STARTED.md, and FAQ.md
2. Please search existing *open and closed* issues in case your issue has already been reported
3. Please try to debug the issue in case you can solve it on your own before posting

## After following steps 1-3 above and agreeing to provide the detailed information requested below, you may continue with posting your issue
(**Delete this line and the text above it.**)

### Expected results

What did you expect to see?

### Actual results

What did you observe instead?

### Detailed steps to reproduce

E.g.:

```
The command that you ran
```

### System information

* Operating system: ?
* Compiler version: ?
* CUDA version: ?
* cuDNN version: ?
* NVIDIA driver version: ?
* GPU models (for all devices if they are not all the same): ?
* `PYTHONPATH` environment variable: ?
* `python --version` output: ?
* Anything else that seems relevant: ?


================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Shared objects
*.so

# Distribution / packaging
build/
*.egg-info/
*.egg

# Temporary files
*.swn
*.swo
*.swp

# Dataset symlinks
detectron/datasets/data/*
!detectron/datasets/data/README.md

# Generated C files
detectron/utils/cython_*.c


================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)

# Find the Caffe2 package.
# Caffe2 exports the required targets, so find_package should work for
# the standard Caffe2 installation. If you encounter problems with finding
# the Caffe2 package, make sure you have run `make install` when installing
# Caffe2 (`make install` populates your share/cmake/Caffe2).
find_package(Caffe2 REQUIRED)

if (${CAFFE2_VERSION} VERSION_LESS 0.8.2)
  # Pre-0.8.2 caffe2 does not have proper interface libraries set up, so we
  # will rely on the old path.
  message(WARNING
      "You are using an older version of Caffe2 (version " ${CAFFE2_VERSION}
      "). Please consider moving to a newer version.")
  include(cmake/legacy/legacymake.cmake)
  return()
endif()

# Add compiler flags.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O2 -fPIC -Wno-narrowing")

# Print configuration summary.
include(cmake/Summary.cmake)
detectron_print_config_summary()

# Collect custom ops sources.
file(GLOB CUSTOM_OPS_CPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/detectron/ops/*.cc)
file(GLOB CUSTOM_OPS_GPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/detectron/ops/*.cu)

# Install custom CPU ops lib.
add_library(
    caffe2_detectron_custom_ops SHARED
    ${CUSTOM_OPS_CPU_SRCS})

target_include_directories(
    caffe2_detectron_custom_ops PRIVATE
    ${CAFFE2_INCLUDE_DIRS})

target_link_libraries(caffe2_detectron_custom_ops caffe2_library)
install(TARGETS caffe2_detectron_custom_ops DESTINATION lib)

# Install custom GPU ops lib, if gpu is present.
if (CAFFE2_USE_CUDA OR CAFFE2_FOUND_CUDA)
  # Additional -I prefix is required for CMake versions before commit (< 3.7):
  # https://github.com/Kitware/CMake/commit/7ded655f7ba82ea72a82d0555449f2df5ef38594
  list(APPEND CUDA_INCLUDE_DIRS -I${CAFFE2_INCLUDE_DIRS})
  CUDA_ADD_LIBRARY(
      caffe2_detectron_custom_ops_gpu SHARED
      ${CUSTOM_OPS_CPU_SRCS}
      ${CUSTOM_OPS_GPU_SRCS})

  target_link_libraries(caffe2_detectron_custom_ops_gpu caffe2_gpu_library)
  install(TARGETS caffe2_detectron_custom_ops_gpu DESTINATION lib)
endif()


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
  advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
  address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <opensource-conduct@fb.com>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq



================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Detectron
We want to make contributing to this project as easy and transparent as
possible.

## Our Development Process
Minor changes and improvements will be released on an ongoing basis. Larger
changes (e.g., changesets implementing a new paper) will be released on a more
periodic basis.

## Pull Requests
We actively welcome your pull requests.

1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests.
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes.
5. Make sure your code lints.
6. Ensure no regressions in baseline model speed and accuracy.
7. If you haven't already, complete the Contributor License Agreement ("CLA").

## Contributor License Agreement ("CLA")
In order to accept your pull request, we need you to submit a CLA. You only need
to do this once to work on any of Facebook's open source projects.

Complete your CLA here: <https://code.facebook.com/cla>

## Issues
GitHub issues will be largely unattended and are mainly intended as a community
forum for collectively debugging issues, hopefully leading to pull requests with
fixes when appropriate.

## Coding Style  
* 4 spaces for indentation rather than tabs
* 80 character line length
* PEP8 formatting

## License
By contributing to Detectron, you agree that your contributions will be licensed
under the LICENSE file in the root directory of this source tree.


================================================
FILE: FAQ.md
================================================
# FAQ

This document covers frequently asked questions.

- For general information about Detectron, please see [`README.md`](README.md).
- For installation instructions, please see [`INSTALL.md`](INSTALL.md).
- For a quick getting started guide, please see [`GETTING_STARTED.md`](GETTING_STARTED.md).

#### Q: How do I compute validation AP during training?

**A:** Detectron does not compute validation statistics (e.g., AP) during training because this slows training. Instead, we've implemented a "validation monitor", which is a process that polls for new model checkpoints saved by a training job and when one is found performs inference with it by scheduling a job with `tools/test_net.py` asynchronously using free GPUs in our cluster. We have not released the validation monitor because (1) it's a relatively thin wrapper on top of `tools/train_net.py` and (2) the little code that comprises it is specific to our cluster and would not be generally useful.

#### Q: How do I restrict Detectron to use only a subset of the GPUs on a server?

**A:** Don't modify the code; use the [`CUDA_VISIBLE_DEVICES`](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars) environment variable instead.

#### Q: Detection on one image is really slow compared to the reported performance, why?

A: Various algorithms and caches (e.g., from `cudnn`) take some time to warm up. Peak inference performance will not be reached until after a few images have been processed.

Also potentially relevant: inference with Mask R-CNN on high-resolution images may be slow simply because substantial time is spent upsampling the predicted masks to the original image resolution (this has not been optimized). You can diagnose this issue if the `misc_mask` time reported by `tools/infer_simple.py` is high (e.g., much more than 20-90ms). The solution is to first resize your images such that the short side is around 600-800px (the exact choice does not matter) and then run inference on the resized image.


#### Q: How do I implement a custom Caffe2 CPU or GPU operator for use in Detectron?

**A:** Detectron uses a number of specialized Caffe2 operators that are distributed via the [Caffe2 Detectron module](https://github.com/pytorch/pytorch/tree/master/modules/detectron) as part of the core Caffe2 GitHub repository. If you'd like to implement a custom Caffe2 operator for your project, we have written a toy example illustrating how to add an operator under the Detectron source tree; please see [`detectron/ops/zero_even_op.*`](detectron/ops/) and [`detectron/tests/test_zero_even_op.py`](detectron/tests/test_zero_even_op.py). For more background on writing Caffe2 operators please consult the [Caffe2 documentation](https://caffe2.ai/docs/custom-operators.html).

#### Q: How do I use Detectron to train a model on a custom dataset?

**A:** If possible, we strongly recommend that you first convert the custom dataset annotation format to the [COCO API json format](http://cocodataset.org/#download). Then, add your dataset to the [dataset catalog](detectron/datasets/dataset_catalog.py) so that Detectron can use it for training and inference. If your dataset cannot be converted to the COCO API json format, then it's likely that more significant code modifications will be required. If the dataset you're adding is popular, please consider making the converted annotations publicly available; If code modifications are required, please consider submitting a pull request.


================================================
FILE: GETTING_STARTED.md
================================================
# Using Detectron

This document provides brief tutorials covering Detectron for inference and training on the COCO dataset.

- For general information about Detectron, please see [`README.md`](README.md).
- For installation instructions, please see [`INSTALL.md`](INSTALL.md).

## Inference with Pretrained Models

#### 1. Directory of Image Files
To run inference on a directory of image files (`demo/*.jpg` in this example), you can use the `infer_simple.py` tool. In this example, we're using an end-to-end trained Mask R-CNN model with a ResNet-101-FPN backbone from the model zoo:

```
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 should automatically download the model from the URL specified by the `--wts` argument. This tool will output visualizations of the detections in PDF format in the directory specified by `--output-dir`. Here's an example of the output you should expect to see (for copyright information about the demo images see [`demo/NOTICE`](demo/NOTICE)).

<div align="center">
  <img src="demo/output/17790319373_bd19b24cfc_k_example_output.jpg" width="700px" />
  <p>Example Mask R-CNN output.</p>
</div>

**Notes:**

- When running inference on your own high-resolution images, Mask R-CNN may be slow simply because substantial time is spent upsampling the predicted masks to the original image resolution (this has not been optimized). You can diagnose this issue if the `misc_mask` time reported by `tools/infer_simple.py` is high (e.g., much more than 20-90ms). The solution is to first resize your images such that the short side is around 600-800px (the exact choice does not matter) and then run inference on the resized image.


#### 2. COCO Dataset
This example shows how to run an end-to-end trained Mask R-CNN model from the model zoo using a single GPU for inference. As configured, this will run inference on all images in `coco_2014_minival` (which must be properly installed).

```
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
```

Running inference with the same model using `$N` GPUs (e.g., `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
```

On an NVIDIA Tesla P100 GPU, inference should take about 130-140 ms per image for this example.


## Training a Model with Detectron

This is a tiny tutorial showing how to train a model on COCO. The model will be an end-to-end trained Faster R-CNN using a ResNet-50-FPN backbone. For the purpose of this tutorial, we'll use a short training schedule and a small input image size so that training and inference will be relatively fast. As a result, the box AP on COCO will be relatively low compared to our [baselines](MODEL_ZOO.md). This example is provided for instructive purposes only (i.e., not for comparing against publications).

#### 1. Training with 1 GPU

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

**Expected results:**

- Output (models, validation set detections, etc.) will be saved under `/tmp/detectron-output`
- On a Maxwell generation GPU (e.g., M40), training should take around 4.2 hours
- Inference time should be around 80ms / image (also on an M40)
- Box AP on `coco_2014_minival` should be around 22.1% (+/- 0.1% stdev measured over 3 runs)

### 2. Multi-GPU Training

We've also provided configs to illustrate training with 2, 4, and 8 GPUs using learning schedules that will be approximately equivalent to the one used with 1 GPU above. The configs are located at: `configs/getting_started/tutorial_{2,4,8}gpu_e2e_faster_rcnn_R-50-FPN.yaml`. For example, launching a training job with 2 GPUs will look like this:

```
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
```

Note that we've also added the `--multi-gpu-testing` flag to instruct Detectron to parallelize inference over multiple GPUs (2 in this example; see `NUM_GPUS` in the config file) after training has finished.

**Expected results:**

- Training should take around 2.3 hours (2 x M40)
- Inference time should be around 80ms / image (but in parallel on 2 GPUs, so half the total time)
- Box AP on `coco_2014_minival` should be around 22.1% (+/- 0.1% stdev measured over 3 runs)

To understand how learning schedules are adjusted (the "linear scaling rule"), please study these tutorial config files and read our paper [Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour](https://arxiv.org/abs/1706.02677). **Aside from this tutorial, all of our released configs make use of 8 GPUs. If you will be using fewer than 8 GPUs for training (or do anything else that changes the minibatch size), it is essential that you understand how to manipulate training schedules according to the linear scaling rule.**

**Notes:**

- This training example uses a relatively low GPU-compute model and thus overhead from Caffe2 Python ops is relatively high. As a result, scaling as the number of GPUs is increased from 2 to 8 is relatively poor (e.g., training with 8 GPUs takes about 0.9 hours, only 4.5x faster than with 1 GPU). As larger, more GPU-compute heavy models are used, the scaling improves.


================================================
FILE: INSTALL.md
================================================
# Installing Detectron

This document covers how to install Detectron, its dependencies (including Caffe2), and the COCO dataset.

- For general information about Detectron, please see [`README.md`](README.md).

**Requirements:**

- NVIDIA GPU, Linux, Python2
- Caffe2, various standard Python packages, and the COCO API; Instructions for installing these dependencies are found below

**Notes:**

- Detectron operators currently do not have CPU implementation; a GPU system is required.
- Detectron has been tested extensively with CUDA 8.0 and cuDNN 6.0.21.

## Caffe2

To install Caffe2 with CUDA support, follow the [installation instructions](https://caffe2.ai/docs/getting-started.html) from the [Caffe2 website](https://caffe2.ai/). **If you already have Caffe2 installed, make sure to update your Caffe2 to a version that includes the [Detectron module](https://github.com/pytorch/pytorch/tree/master/modules/detectron).**

Please ensure that your Caffe2 installation was successful before proceeding by running the following commands and checking their output as directed in the comments.

```
# To check if Caffe2 build was successful
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

# To check if Caffe2 GPU build was successful
# This must print a number > 0 in order to use Detectron
python -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
```

If the `caffe2` Python package is not found, you likely need to adjust your `PYTHONPATH` environment variable to include its location (`/path/to/caffe2/build`, where `build` is the Caffe2 CMake build directory).

## Other Dependencies

Install the [COCO API](https://github.com/cocodataset/cocoapi):

```
# COCOAPI=/path/to/clone/cocoapi
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
# Install into global site-packages
make install
# Alternatively, if you do not have permissions or prefer
# not to install the COCO API into global site-packages
python setup.py install --user
```

Note that instructions like `# COCOAPI=/path/to/install/cocoapi` indicate that you should pick a path where you'd like to have the software cloned and then set an environment variable (`COCOAPI` in this case) accordingly.

## Detectron

Clone the Detectron repository:

```
# DETECTRON=/path/to/clone/detectron
git clone https://github.com/facebookresearch/detectron $DETECTRON
```

Install Python dependencies:

```
pip install -r $DETECTRON/requirements.txt
```

Set up Python modules:

```
cd $DETECTRON && make
```

Check that Detectron tests pass (e.g. for [`SpatialNarrowAsOp test`](detectron/tests/test_spatial_narrow_as_op.py)):

```
python $DETECTRON/detectron/tests/test_spatial_narrow_as_op.py
```

## That's All You Need for Inference

At this point, you can run inference using pretrained Detectron models. Take a look at our [inference tutorial](GETTING_STARTED.md) for an example. If you want to train models on the COCO dataset, then please continue with the installation instructions.

## Datasets

Detectron finds datasets via symlinks from `detectron/datasets/data` to the actual locations where the dataset images and annotations are stored. For instructions on how to create symlinks for COCO and other datasets, please see [`detectron/datasets/data/README.md`](detectron/datasets/data/README.md).

After symlinks have been created, that's all you need to start training models.

## Advanced Topic: Custom Operators for New Research Projects

Please read the custom operators section of the [`FAQ`](FAQ.md) first.

For convenience, we provide CMake support for building custom operators. All custom operators are built into a single library that can be loaded dynamically from Python.
Place your custom operator implementation under [`detectron/ops/`](detectron/ops/) and see [`detectron/tests/test_zero_even_op.py`](detectron/tests/test_zero_even_op.py) for an example of how to load custom operators from Python.

Build the custom operators library:

```
cd $DETECTRON && make ops
```

Check that the custom operator tests pass:

```
python $DETECTRON/detectron/tests/test_zero_even_op.py
```

## Docker Image

We provide a [`Dockerfile`](docker/Dockerfile) that you can use to build a Detectron image on top of a Caffe2 image that satisfies the requirements outlined at the top. If you would like to use a Caffe2 image different from the one we use by default, please make sure that it includes the [Detectron module](https://github.com/pytorch/pytorch/tree/master/modules/detectron).

Build the image:

```
cd $DETECTRON/docker
docker build -t detectron:c2-cuda9-cudnn7 .
```

Run the image (e.g. for [`BatchPermutationOp test`](detectron/tests/test_batch_permutation_op.py)):

```
nvidia-docker run --rm -it detectron:c2-cuda9-cudnn7 python detectron/tests/test_batch_permutation_op.py
```

## Troubleshooting

In case of Caffe2 installation problems, please read the troubleshooting section of the relevant Caffe2 [installation instructions](https://caffe2.ai/docs/getting-started.html) first. In the following, we provide additional troubleshooting tips for Caffe2 and Detectron.

### Caffe2 Operator Profiling

Caffe2 comes with performance [`profiling`](https://github.com/pytorch/pytorch/tree/master/caffe2/contrib/prof)
support which you may find useful for benchmarking or debugging your operators
(see [`BatchPermutationOp test`](detectron/tests/test_batch_permutation_op.py) for example usage).
Profiling support is not built by default and you can enable it by setting
the `-DUSE_PROF=ON` flag when running Caffe2 CMake.

### CMake Cannot Find CUDA and cuDNN

Sometimes CMake has trouble with finding CUDA and cuDNN dirs on your machine.

When building Caffe2, you can point CMake to CUDA and cuDNN dirs by running:

```
cmake .. \
  # insert your Caffe2 CMake flags here
  -DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda/toolkit/dir \
  -DCUDNN_ROOT_DIR=/path/to/cudnn/root/dir
```

Similarly, when building custom Detectron operators you can use:

```
cd $DETECTRON
mkdir -p build && cd build
cmake .. \
  -DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda/toolkit/dir \
  -DCUDNN_ROOT_DIR=/path/to/cudnn/root/dir
make
```

Note that you can use the same commands to get CMake to use specific versions of CUDA and cuDNN out of possibly multiple versions installed on your machine.

### Protobuf Errors

Caffe2 uses protobuf as its serialization format and requires version `3.2.0` or newer.
If your protobuf version is older, you can build protobuf from Caffe2 protobuf submodule and use that version instead.

To build Caffe2 protobuf submodule:

```
# CAFFE2=/path/to/caffe2
cd $CAFFE2/third_party/protobuf/cmake
mkdir -p build && cd build
cmake .. \
  -DCMAKE_INSTALL_PREFIX=$HOME/c2_tp_protobuf \
  -Dprotobuf_BUILD_TESTS=OFF \
  -DCMAKE_CXX_FLAGS="-fPIC"
make install
```

To point Caffe2 CMake to the newly built protobuf:

```
cmake .. \
  # insert your Caffe2 CMake flags here
  -DPROTOBUF_PROTOC_EXECUTABLE=$HOME/c2_tp_protobuf/bin/protoc \
  -DPROTOBUF_INCLUDE_DIR=$HOME/c2_tp_protobuf/include \
  -DPROTOBUF_LIBRARY=$HOME/c2_tp_protobuf/lib64/libprotobuf.a
```

You may also experience problems with protobuf if you have both system and anaconda packages installed.
This could lead to problems as the versions could be mixed at compile time or at runtime.
This issue can also be overcome by following the commands from above.

### Caffe2 Python Binaries

In case you experience issues with CMake being unable to find the required Python paths when
building Caffe2 Python binaries (e.g. in virtualenv), you can try pointing Caffe2 CMake to python
library and include dir by using:

```
cmake .. \
  # insert your Caffe2 CMake flags here
  -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())")
```

### Caffe2 with NNPACK Build

Detectron does not require Caffe2 built with NNPACK support. If you face NNPACK related issues during Caffe2 installation, you can safely disable NNPACK by setting the `-DUSE_NNPACK=OFF` CMake flag.

### Caffe2 with OpenCV Build

Analogously to the NNPACK case above, you can disable OpenCV by setting the `-DUSE_OPENCV=OFF` CMake flag.

### COCO API Undefined Symbol Error

If you encounter a COCO API import error due to an undefined symbol, as reported [here](https://github.com/cocodataset/cocoapi/issues/35),
make sure that your python versions are not getting mixed. For instance, this issue may arise if you have
[both system and conda numpy installed](https://stackoverflow.com/questions/36190757/numpy-undefined-symbol-pyfpe-jbuf).

### CMake Cannot Find Caffe2

In case you experience issues with CMake being unable to find the Caffe2 package when building custom operators,
make sure you have run `make install` as part of your Caffe2 installation process.


================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!)  The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


================================================
FILE: MODEL_ZOO.md
================================================
# Detectron Model Zoo and Baselines

## Introduction

This file documents a large collection of baselines trained with Detectron, primarily in late December 2017. We refer to these results as the *12_2017_baselines*. All configurations for these baselines are located in the `configs/12_2017_baselines` directory. The tables below provide results and useful statistics about training and inference. Links to the trained models as well as their output are provided. Unless noted differently below (see "Notes" under each table), the following common settings are used for all training and inference runs.

#### Common Settings and Notes

- All baselines were run on [Big Basin](https://code.facebook.com/posts/1835166200089399/introducing-big-basin) servers with 8 NVIDIA Tesla P100 GPU accelerators (with 16GB GPU memory, CUDA 8.0, and cuDNN 6.0.21).
- All baselines were trained using 8 GPU data parallel sync SGD with a minibatch size of either 8 or 16 images (see the *im/gpu* column).
- For training, only horizontal flipping data augmentation was used.
- For inference, no test-time augmentations (e.g., multiple scales, flipping) were used.
- All models were trained on the union of `coco_2014_train` and `coco_2014_valminusminival`, which is exactly equivalent to the recently defined `coco_2017_train` dataset.
- All models were tested on the `coco_2014_minival` dataset, which is exactly equivalent to the recently defined `coco_2017_val` dataset.
- Inference times are often expressed as "*X* + *Y*", in which *X* is time taken in reasonably well-optimized GPU code and *Y* is time taken in unoptimized CPU code. (The CPU code time could be reduced substantially with additional engineering.)
- Inference results for boxes, masks, and keypoints ("kps") are provided in the [COCO json format](http://cocodataset.org/#format-data).
- The *model id* column is provided for ease of reference.
- To check downloaded file integrity: for any download URL on this page, simply append `.md5sum` to the URL to download the file's md5 hash.
- All models and results below are on the [COCO dataset](http://cocodataset.org).
- Baseline models and results for the [Cityscapes dataset](https://www.cityscapes-dataset.com/) are coming soon!

#### Training Schedules

We use three training schedules, indicated by the *lr schd* column in the tables below.

- **1x**: For minibatch size 16, this schedule starts at a LR of 0.02 and is decreased by a factor of * 0.1 after 60k and 80k iterations and finally terminates at 90k iterations. This schedules results in 12.17 epochs over the 118,287 images in `coco_2014_train` union `coco_2014_valminusminival` (or equivalently, `coco_2017_train`).
- **2x**: Twice as long as the 1x schedule with the LR change points scaled proportionally.
- **s1x** ("stretched 1x"): This schedule scales the 1x schedule by roughly 1.44x, but also extends the duration of the first learning rate. With a minibatch size of 16, it reduces the LR by * 0.1 at 100k and 120k iterations, finally ending after 130k iterations.

All training schedules also use a 500 iteration linear learning rate warm up. When changing the minibatch size between 8 and 16 images, we adjust the number of SGD iterations and the base learning rate according to the principles outlined in our paper [Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour](https://arxiv.org/abs/1706.02677).

#### License

All models available for download through this document are licensed under the [Creative Commons Attribution-ShareAlike 3.0 license](https://creativecommons.org/licenses/by-sa/3.0/).

#### ImageNet Pretrained Models

The backbone models pretrained on ImageNet are available in the format used by Detectron. Unless otherwise noted, these models are trained on the standard ImageNet-1k dataset.

- [R-50.pkl](https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/MSRA/R-50.pkl): converted copy of MSRA's original ResNet-50 model
- [R-101.pkl](https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/MSRA/R-101.pkl): converted copy of MSRA's original ResNet-101 model
- [X-101-64x4d.pkl](https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/FBResNeXt/X-101-64x4d.pkl): converted copy of FB's original ResNeXt-101-64x4d model trained with Torch7
- [X-101-32x8d.pkl](https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/20171220/X-101-32x8d.pkl): ResNeXt-101-32x8d model trained with Caffe2 at FB
- [X-152-32x8d-IN5k.pkl](https://dl.fbaipublicfiles.com/detectron/ImageNetPretrained/25093814/X-152-32x8d-IN5k.pkl): ResNeXt-152-32x8d model **trained on ImageNet-5k** with Caffe2 at FB (see our [ResNeXt paper](https://arxiv.org/abs/1611.05431) for details on ImageNet-5k)

#### Log Files

[Training and inference logs](https://dl.fbaipublicfiles.com/detectron/logs/model_zoo_12_2017_baseline_logs.tgz) are available for most models in the model zoo.

## Proposal, Box, and Mask Detection Baselines

### RPN Proposal Baselines

<table><tbody>
<!-- START RPN TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop.<br/>AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>4.3</sub></sup></td>
<td align="right"><sup><sub>0.187</sub></sup></td>
<td align="right"><sup><sub>4.7</sub></sup></td>
<td align="right"><sup><sub>0.113</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>51.6</sub></sup></td>
<td align="right"><sup><sub>35998355</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35998355/12_2017_baselines/rpn_R-50-C4_1x.yaml.08_00_43.njH5oD9L/output/train/coco_2014_train%3Acoco_2014_valminusminival/rpn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998355/12_2017_baselines/rpn_R-50-C4_1x.yaml.08_00_43.njH5oD9L/output/test/coco_2014_train/rpn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998355/12_2017_baselines/rpn_R-50-C4_1x.yaml.08_00_43.njH5oD9L/output/test/coco_2014_valminusminival/rpn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998355/12_2017_baselines/rpn_R-50-C4_1x.yaml.08_00_43.njH5oD9L/output/test/coco_2014_minival/rpn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>6.4</sub></sup></td>
<td align="right"><sup><sub>0.416</sub></sup></td>
<td align="right"><sup><sub>10.4</sub></sup></td>
<td align="right"><sup><sub>0.080</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>57.2</sub></sup></td>
<td align="right"><sup><sub>35998814</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35998814/12_2017_baselines/rpn_R-50-FPN_1x.yaml.08_06_03.Axg0r179/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998814/12_2017_baselines/rpn_R-50-FPN_1x.yaml.08_06_03.Axg0r179/output/test/coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998814/12_2017_baselines/rpn_R-50-FPN_1x.yaml.08_06_03.Axg0r179/output/test/coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998814/12_2017_baselines/rpn_R-50-FPN_1x.yaml.08_06_03.Axg0r179/output/test/coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.1</sub></sup></td>
<td align="right"><sup><sub>0.503</sub></sup></td>
<td align="right"><sup><sub>12.6</sub></sup></td>
<td align="right"><sup><sub>0.108</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>58.2</sub></sup></td>
<td align="right"><sup><sub>35998887</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35998887/12_2017_baselines/rpn_R-101-FPN_1x.yaml.08_07_07.vzhHEs0V/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998887/12_2017_baselines/rpn_R-101-FPN_1x.yaml.08_07_07.vzhHEs0V/output/test/coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998887/12_2017_baselines/rpn_R-101-FPN_1x.yaml.08_07_07.vzhHEs0V/output/test/coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998887/12_2017_baselines/rpn_R-101-FPN_1x.yaml.08_07_07.vzhHEs0V/output/test/coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>11.5</sub></sup></td>
<td align="right"><sup><sub>1.395</sub></sup></td>
<td align="right"><sup><sub>34.9</sub></sup></td>
<td align="right"><sup><sub>0.292</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>59.4</sub></sup></td>
<td align="right"><sup><sub>35998956</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35998956/12_2017_baselines/rpn_X-101-64x4d-FPN_1x.yaml.08_08_41.Seh0psKz/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998956/12_2017_baselines/rpn_X-101-64x4d-FPN_1x.yaml.08_08_41.Seh0psKz/output/test/coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998956/12_2017_baselines/rpn_X-101-64x4d-FPN_1x.yaml.08_08_41.Seh0psKz/output/test/coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998956/12_2017_baselines/rpn_X-101-64x4d-FPN_1x.yaml.08_08_41.Seh0psKz/output/test/coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>11.6</sub></sup></td>
<td align="right"><sup><sub>1.102</sub></sup></td>
<td align="right"><sup><sub>27.6</sub></sup></td>
<td align="right"><sup><sub>0.222</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>59.5</sub></sup></td>
<td align="right"><sup><sub>36760102</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36760102/12_2017_baselines/rpn_X-101-32x8d-FPN_1x.yaml.06_00_16.RWeBAniO/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36760102/12_2017_baselines/rpn_X-101-32x8d-FPN_1x.yaml.06_00_16.RWeBAniO/output/test/coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36760102/12_2017_baselines/rpn_X-101-32x8d-FPN_1x.yaml.06_00_16.RWeBAniO/output/test/coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36760102/12_2017_baselines/rpn_X-101-32x8d-FPN_1x.yaml.06_00_16.RWeBAniO/output/test/coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
</tr>
<!-- END RPN TABLE -->
</tbody></table>

**Notes:**

- Inference time only includes RPN proposal generation.
- "prop. AR" is proposal average recall at 1000 proposals per image.
- Proposal download links ("props"): "1" is `coco_2014_train`; "2" is `coco_2014_valminusminival`; and "3" is `coco_2014_minival`.

### Fast & Mask R-CNN Baselines Using Precomputed RPN Proposals

<table><tbody>
<!-- START 2-STAGE TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop.<br/>AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.0</sub></sup></td>
<td align="right"><sup><sub>0.456</sub></sup></td>
<td align="right"><sup><sub>22.8</sub></sup></td>
<td align="right"><sup><sub>0.241&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>34.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36224013</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36224013/12_2017_baselines/fast_rcnn_R-50-C4_1x.yaml.08_22_00.vHd5BeBP/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36224013/12_2017_baselines/fast_rcnn_R-50-C4_1x.yaml.08_22_00.vHd5BeBP/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.0</sub></sup></td>
<td align="right"><sup><sub>0.453</sub></sup></td>
<td align="right"><sup><sub>45.3</sub></sup></td>
<td align="right"><sup><sub>0.241&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>35.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36224046</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36224046/12_2017_baselines/fast_rcnn_R-50-C4_2x.yaml.08_22_57.XFxNqEnL/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36224046/12_2017_baselines/fast_rcnn_R-50-C4_2x.yaml.08_22_57.XFxNqEnL/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>6.0</sub></sup></td>
<td align="right"><sup><sub>0.285</sub></sup></td>
<td align="right"><sup><sub>7.1</sub></sup></td>
<td align="right"><sup><sub>0.076&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>36.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36225147</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36225147/12_2017_baselines/fast_rcnn_R-50-FPN_1x.yaml.08_39_09.L3obSdQ2/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36225147/12_2017_baselines/fast_rcnn_R-50-FPN_1x.yaml.08_39_09.L3obSdQ2/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>6.0</sub></sup></td>
<td align="right"><sup><sub>0.287</sub></sup></td>
<td align="right"><sup><sub>14.4</sub></sup></td>
<td align="right"><sup><sub>0.077&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>36.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36225249</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36225249/12_2017_baselines/fast_rcnn_R-50-FPN_2x.yaml.08_40_18.zoChak1f/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36225249/12_2017_baselines/fast_rcnn_R-50-FPN_2x.yaml.08_40_18.zoChak1f/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.7</sub></sup></td>
<td align="right"><sup><sub>0.448</sub></sup></td>
<td align="right"><sup><sub>11.2</sub></sup></td>
<td align="right"><sup><sub>0.102&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>38.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36228880</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36228880/12_2017_baselines/fast_rcnn_R-101-FPN_1x.yaml.09_25_03.tZuHkSpl/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36228880/12_2017_baselines/fast_rcnn_R-101-FPN_1x.yaml.09_25_03.tZuHkSpl/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.7</sub></sup></td>
<td align="right"><sup><sub>0.449</sub></sup></td>
<td align="right"><sup><sub>22.5</sub></sup></td>
<td align="right"><sup><sub>0.103&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>39.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36228933</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36228933/12_2017_baselines/fast_rcnn_R-101-FPN_2x.yaml.09_26_27.jkOUTrrk/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36228933/12_2017_baselines/fast_rcnn_R-101-FPN_2x.yaml.09_26_27.jkOUTrrk/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.3</sub></sup></td>
<td align="right"><sup><sub>0.994</sub></sup></td>
<td align="right"><sup><sub>49.7</sub></sup></td>
<td align="right"><sup><sub>0.292&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>40.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36226250</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36226250/12_2017_baselines/fast_rcnn_X-101-64x4d-FPN_1x.yaml.08_54_22.u0LaxQsC/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36226250/12_2017_baselines/fast_rcnn_X-101-64x4d-FPN_1x.yaml.08_54_22.u0LaxQsC/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.3</sub></sup></td>
<td align="right"><sup><sub>0.980</sub></sup></td>
<td align="right"><sup><sub>98.0</sub></sup></td>
<td align="right"><sup><sub>0.291&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>39.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36226326</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36226326/12_2017_baselines/fast_rcnn_X-101-64x4d-FPN_2x.yaml.08_55_54.2F7MP1CD/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36226326/12_2017_baselines/fast_rcnn_X-101-64x4d-FPN_2x.yaml.08_55_54.2F7MP1CD/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.4</sub></sup></td>
<td align="right"><sup><sub>0.721</sub></sup></td>
<td align="right"><sup><sub>36.1</sub></sup></td>
<td align="right"><sup><sub>0.217&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>40.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37119777</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37119777/12_2017_baselines/fast_rcnn_X-101-32x8d-FPN_1x.yaml.06_38_03.d5N36egm/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37119777/12_2017_baselines/fast_rcnn_X-101-32x8d-FPN_1x.yaml.06_38_03.d5N36egm/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Fast</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.4</sub></sup></td>
<td align="right"><sup><sub>0.720</sub></sup></td>
<td align="right"><sup><sub>72.0</sub></sup></td>
<td align="right"><sup><sub>0.217&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>39.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37121469</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37121469/12_2017_baselines/fast_rcnn_X-101-32x8d-FPN_2x.yaml.07_03_53.EPrHk63L/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37121469/12_2017_baselines/fast_rcnn_X-101-32x8d-FPN_2x.yaml.07_03_53.EPrHk63L/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.4</sub></sup></td>
<td align="right"><sup><sub>0.466</sub></sup></td>
<td align="right"><sup><sub>23.3</sub></sup></td>
<td align="right"><sup><sub>0.252&nbsp;+&nbsp;0.020</sub></sup></td>
<td align="right"><sup><sub>35.5</sub></sup></td>
<td align="right"><sup><sub>31.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36224121</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36224121/12_2017_baselines/mask_rcnn_R-50-C4_1x.yaml.08_24_37.wdU8r5Jo/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36224121/12_2017_baselines/mask_rcnn_R-50-C4_1x.yaml.08_24_37.wdU8r5Jo/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36224121/12_2017_baselines/mask_rcnn_R-50-C4_1x.yaml.08_24_37.wdU8r5Jo/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.4</sub></sup></td>
<td align="right"><sup><sub>0.464</sub></sup></td>
<td align="right"><sup><sub>46.4</sub></sup></td>
<td align="right"><sup><sub>0.253&nbsp;+&nbsp;0.019</sub></sup></td>
<td align="right"><sup><sub>36.9</sub></sup></td>
<td align="right"><sup><sub>32.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36224151</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36224151/12_2017_baselines/mask_rcnn_R-50-C4_2x.yaml.08_25_34.RSN5CVSH/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36224151/12_2017_baselines/mask_rcnn_R-50-C4_2x.yaml.08_25_34.RSN5CVSH/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36224151/12_2017_baselines/mask_rcnn_R-50-C4_2x.yaml.08_25_34.RSN5CVSH/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.9</sub></sup></td>
<td align="right"><sup><sub>0.377</sub></sup></td>
<td align="right"><sup><sub>9.4</sub></sup></td>
<td align="right"><sup><sub>0.082&nbsp;+&nbsp;0.019</sub></sup></td>
<td align="right"><sup><sub>37.3</sub></sup></td>
<td align="right"><sup><sub>33.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36225401</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36225401/12_2017_baselines/mask_rcnn_R-50-FPN_1x.yaml.08_42_04.MocEgrRW/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36225401/12_2017_baselines/mask_rcnn_R-50-FPN_1x.yaml.08_42_04.MocEgrRW/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36225401/12_2017_baselines/mask_rcnn_R-50-FPN_1x.yaml.08_42_04.MocEgrRW/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.9</sub></sup></td>
<td align="right"><sup><sub>0.377</sub></sup></td>
<td align="right"><sup><sub>18.9</sub></sup></td>
<td align="right"><sup><sub>0.083&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>37.7</sub></sup></td>
<td align="right"><sup><sub>34.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36225732</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36225732/12_2017_baselines/mask_rcnn_R-50-FPN_2x.yaml.08_43_08.gDqBz9zS/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36225732/12_2017_baselines/mask_rcnn_R-50-FPN_2x.yaml.08_43_08.gDqBz9zS/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36225732/12_2017_baselines/mask_rcnn_R-50-FPN_2x.yaml.08_43_08.gDqBz9zS/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>9.6</sub></sup></td>
<td align="right"><sup><sub>0.539</sub></sup></td>
<td align="right"><sup><sub>13.5</sub></sup></td>
<td align="right"><sup><sub>0.111&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>39.4</sub></sup></td>
<td align="right"><sup><sub>35.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36229407</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36229407/12_2017_baselines/mask_rcnn_R-101-FPN_1x.yaml.09_38_04.zbVPo8ZE/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36229407/12_2017_baselines/mask_rcnn_R-101-FPN_1x.yaml.09_38_04.zbVPo8ZE/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36229407/12_2017_baselines/mask_rcnn_R-101-FPN_1x.yaml.09_38_04.zbVPo8ZE/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>9.6</sub></sup></td>
<td align="right"><sup><sub>0.537</sub></sup></td>
<td align="right"><sup><sub>26.9</sub></sup></td>
<td align="right"><sup><sub>0.109&nbsp;+&nbsp;0.016</sub></sup></td>
<td align="right"><sup><sub>40.0</sub></sup></td>
<td align="right"><sup><sub>35.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36229740</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36229740/12_2017_baselines/mask_rcnn_R-101-FPN_2x.yaml.09_39_00.Z7O7zOEC/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36229740/12_2017_baselines/mask_rcnn_R-101-FPN_2x.yaml.09_39_00.Z7O7zOEC/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36229740/12_2017_baselines/mask_rcnn_R-101-FPN_2x.yaml.09_39_00.Z7O7zOEC/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.3</sub></sup></td>
<td align="right"><sup><sub>1.036</sub></sup></td>
<td align="right"><sup><sub>51.8</sub></sup></td>
<td align="right"><sup><sub>0.292&nbsp;+&nbsp;0.016</sub></sup></td>
<td align="right"><sup><sub>41.3</sub></sup></td>
<td align="right"><sup><sub>37.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36226382</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36226382/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_1x.yaml.08_56_59.rUCejrBN/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36226382/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_1x.yaml.08_56_59.rUCejrBN/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36226382/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_1x.yaml.08_56_59.rUCejrBN/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.3</sub></sup></td>
<td align="right"><sup><sub>1.035</sub></sup></td>
<td align="right"><sup><sub>103.5</sub></sup></td>
<td align="right"><sup><sub>0.292&nbsp;+&nbsp;0.014</sub></sup></td>
<td align="right"><sup><sub>41.1</sub></sup></td>
<td align="right"><sup><sub>36.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36672114</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36672114/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_2x.yaml.08_58_13.aNWCi3U7/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36672114/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_2x.yaml.08_58_13.aNWCi3U7/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36672114/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_2x.yaml.08_58_13.aNWCi3U7/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.4</sub></sup></td>
<td align="right"><sup><sub>0.766</sub></sup></td>
<td align="right"><sup><sub>38.3</sub></sup></td>
<td align="right"><sup><sub>0.223&nbsp;+&nbsp;0.017</sub></sup></td>
<td align="right"><sup><sub>41.3</sub></sup></td>
<td align="right"><sup><sub>37.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37121516</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37121516/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_1x.yaml.07_04_58.CbM22DZg/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37121516/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_1x.yaml.07_04_58.CbM22DZg/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37121516/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_1x.yaml.07_04_58.CbM22DZg/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.4</sub></sup></td>
<td align="right"><sup><sub>0.765</sub></sup></td>
<td align="right"><sup><sub>76.5</sub></sup></td>
<td align="right"><sup><sub>0.222&nbsp;+&nbsp;0.014</sub></sup></td>
<td align="right"><sup><sub>40.7</sub></sup></td>
<td align="right"><sup><sub>36.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37121596</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37121596/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_2x.yaml.07_05_48.TL22uFaK/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37121596/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_2x.yaml.07_05_48.TL22uFaK/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37121596/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_2x.yaml.07_05_48.TL22uFaK/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<!-- END 2-STAGE TABLE -->
</tbody></table>

**Notes:**

- Each row uses precomputed RPN proposals from the corresponding table row above that uses the same backbone.
- Inference time *excludes* proposal generation.

### End-to-End Faster & Mask R-CNN Baselines

<table><tbody>
<!-- START E2E FASTER AND MASK TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop.<br/>AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.3</sub></sup></td>
<td align="right"><sup><sub>0.566</sub></sup></td>
<td align="right"><sup><sub>28.3</sub></sup></td>
<td align="right"><sup><sub>0.167&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>34.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35857197</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35857197/12_2017_baselines/e2e_faster_rcnn_R-50-C4_1x.yaml.01_33_49.iAX0mXvW/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35857197/12_2017_baselines/e2e_faster_rcnn_R-50-C4_1x.yaml.01_33_49.iAX0mXvW/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.3</sub></sup></td>
<td align="right"><sup><sub>0.569</sub></sup></td>
<td align="right"><sup><sub>56.9</sub></sup></td>
<td align="right"><sup><sub>0.174&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>36.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35857281</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35857281/12_2017_baselines/e2e_faster_rcnn_R-50-C4_2x.yaml.01_34_56.ScPH0Z4r/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35857281/12_2017_baselines/e2e_faster_rcnn_R-50-C4_2x.yaml.01_34_56.ScPH0Z4r/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.2</sub></sup></td>
<td align="right"><sup><sub>0.544</sub></sup></td>
<td align="right"><sup><sub>13.6</sub></sup></td>
<td align="right"><sup><sub>0.093&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>36.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35857345</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35857345/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_1x.yaml.01_36_30.cUF7QR7I/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35857345/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_1x.yaml.01_36_30.cUF7QR7I/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.2</sub></sup></td>
<td align="right"><sup><sub>0.546</sub></sup></td>
<td align="right"><sup><sub>27.3</sub></sup></td>
<td align="right"><sup><sub>0.092&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>37.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35857389</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35857389/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_2x.yaml.01_37_22.KSeq0b5q/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35857389/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_2x.yaml.01_37_22.KSeq0b5q/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.9</sub></sup></td>
<td align="right"><sup><sub>0.647</sub></sup></td>
<td align="right"><sup><sub>16.2</sub></sup></td>
<td align="right"><sup><sub>0.120&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>39.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35857890</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35857890/12_2017_baselines/e2e_faster_rcnn_R-101-FPN_1x.yaml.01_38_50.sNxI7sX7/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35857890/12_2017_baselines/e2e_faster_rcnn_R-101-FPN_1x.yaml.01_38_50.sNxI7sX7/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.9</sub></sup></td>
<td align="right"><sup><sub>0.647</sub></sup></td>
<td align="right"><sup><sub>32.4</sub></sup></td>
<td align="right"><sup><sub>0.119&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>39.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35857952</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35857952/12_2017_baselines/e2e_faster_rcnn_R-101-FPN_2x.yaml.01_39_49.JPwJDh92/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35857952/12_2017_baselines/e2e_faster_rcnn_R-101-FPN_2x.yaml.01_39_49.JPwJDh92/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.9</sub></sup></td>
<td align="right"><sup><sub>1.057</sub></sup></td>
<td align="right"><sup><sub>52.9</sub></sup></td>
<td align="right"><sup><sub>0.305&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>41.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35858015</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35858015/12_2017_baselines/e2e_faster_rcnn_X-101-64x4d-FPN_1x.yaml.01_40_54.1xc565DE/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858015/12_2017_baselines/e2e_faster_rcnn_X-101-64x4d-FPN_1x.yaml.01_40_54.1xc565DE/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.9</sub></sup></td>
<td align="right"><sup><sub>1.055</sub></sup></td>
<td align="right"><sup><sub>105.5</sub></sup></td>
<td align="right"><sup><sub>0.304&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>40.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35858198</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35858198/12_2017_baselines/e2e_faster_rcnn_X-101-64x4d-FPN_2x.yaml.01_41_46.CX2InaoG/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858198/12_2017_baselines/e2e_faster_rcnn_X-101-64x4d-FPN_2x.yaml.01_41_46.CX2InaoG/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.0</sub></sup></td>
<td align="right"><sup><sub>0.799</sub></sup></td>
<td align="right"><sup><sub>40.0</sub></sup></td>
<td align="right"><sup><sub>0.233&nbsp;+&nbsp;0.004</sub></sup></td>
<td align="right"><sup><sub>41.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36761737</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36761737/12_2017_baselines/e2e_faster_rcnn_X-101-32x8d-FPN_1x.yaml.06_31_39.5MIHi1fZ/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36761737/12_2017_baselines/e2e_faster_rcnn_X-101-32x8d-FPN_1x.yaml.06_31_39.5MIHi1fZ/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Faster</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.0</sub></sup></td>
<td align="right"><sup><sub>0.800</sub></sup></td>
<td align="right"><sup><sub>80.0</sub></sup></td>
<td align="right"><sup><sub>0.233&nbsp;+&nbsp;0.003</sub></sup></td>
<td align="right"><sup><sub>40.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36761786</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36761786/12_2017_baselines/e2e_faster_rcnn_X-101-32x8d-FPN_2x.yaml.06_33_22.VqFNuxk6/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36761786/12_2017_baselines/e2e_faster_rcnn_X-101-32x8d-FPN_2x.yaml.06_33_22.VqFNuxk6/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.6</sub></sup></td>
<td align="right"><sup><sub>0.620</sub></sup></td>
<td align="right"><sup><sub>31.0</sub></sup></td>
<td align="right"><sup><sub>0.181&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>35.8</sub></sup></td>
<td align="right"><sup><sub>31.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35858791</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35858791/12_2017_baselines/e2e_mask_rcnn_R-50-C4_1x.yaml.01_45_57.ZgkA7hPB/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858791/12_2017_baselines/e2e_mask_rcnn_R-50-C4_1x.yaml.01_45_57.ZgkA7hPB/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858791/12_2017_baselines/e2e_mask_rcnn_R-50-C4_1x.yaml.01_45_57.ZgkA7hPB/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-C4</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>6.6</sub></sup></td>
<td align="right"><sup><sub>0.620</sub></sup></td>
<td align="right"><sup><sub>62.0</sub></sup></td>
<td align="right"><sup><sub>0.182&nbsp;+&nbsp;0.017</sub></sup></td>
<td align="right"><sup><sub>37.8</sub></sup></td>
<td align="right"><sup><sub>32.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35858828</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35858828/12_2017_baselines/e2e_mask_rcnn_R-50-C4_2x.yaml.01_46_47.HBThTerB/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858828/12_2017_baselines/e2e_mask_rcnn_R-50-C4_2x.yaml.01_46_47.HBThTerB/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858828/12_2017_baselines/e2e_mask_rcnn_R-50-C4_2x.yaml.01_46_47.HBThTerB/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.6</sub></sup></td>
<td align="right"><sup><sub>0.889</sub></sup></td>
<td align="right"><sup><sub>22.2</sub></sup></td>
<td align="right"><sup><sub>0.099&nbsp;+&nbsp;0.019</sub></sup></td>
<td align="right"><sup><sub>37.7</sub></sup></td>
<td align="right"><sup><sub>33.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35858933</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35858933/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_1x.yaml.01_48_14.DzEQe4wC/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858933/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_1x.yaml.01_48_14.DzEQe4wC/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35858933/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_1x.yaml.01_48_14.DzEQe4wC/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.6</sub></sup></td>
<td align="right"><sup><sub>0.897</sub></sup></td>
<td align="right"><sup><sub>44.9</sub></sup></td>
<td align="right"><sup><sub>0.099&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>38.6</sub></sup></td>
<td align="right"><sup><sub>34.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35859007</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35859007/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_2x.yaml.01_49_07.By8nQcCH/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35859007/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_2x.yaml.01_49_07.By8nQcCH/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35859007/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_2x.yaml.01_49_07.By8nQcCH/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>10.2</sub></sup></td>
<td align="right"><sup><sub>1.008</sub></sup></td>
<td align="right"><sup><sub>25.2</sub></sup></td>
<td align="right"><sup><sub>0.126&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>40.0</sub></sup></td>
<td align="right"><sup><sub>35.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35861795</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35861795/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_1x.yaml.02_31_37.KqyEK4tT/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35861795/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_1x.yaml.02_31_37.KqyEK4tT/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35861795/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_1x.yaml.02_31_37.KqyEK4tT/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>10.2</sub></sup></td>
<td align="right"><sup><sub>0.993</sub></sup></td>
<td align="right"><sup><sub>49.7</sub></sup></td>
<td align="right"><sup><sub>0.126&nbsp;+&nbsp;0.017</sub></sup></td>
<td align="right"><sup><sub>40.9</sub></sup></td>
<td align="right"><sup><sub>36.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35861858</sub></sup></td>
<td align="left"><sup><sub><a href="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%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.6</sub></sup></td>
<td align="right"><sup><sub>1.217</sub></sup></td>
<td align="right"><sup><sub>60.9</sub></sup></td>
<td align="right"><sup><sub>0.309&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>42.4</sub></sup></td>
<td align="right"><sup><sub>37.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36494496</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36494496/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_1x.yaml.07_50_11.fkwVtEvg/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36494496/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_1x.yaml.07_50_11.fkwVtEvg/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36494496/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_1x.yaml.07_50_11.fkwVtEvg/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.6</sub></sup></td>
<td align="right"><sup><sub>1.210</sub></sup></td>
<td align="right"><sup><sub>121.0</sub></sup></td>
<td align="right"><sup><sub>0.309&nbsp;+&nbsp;0.015</sub></sup></td>
<td align="right"><sup><sub>42.2</sub></sup></td>
<td align="right"><sup><sub>37.2</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>35859745</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35859745/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_2x.yaml.02_00_30.ESWbND2w/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35859745/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_2x.yaml.02_00_30.ESWbND2w/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35859745/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_2x.yaml.02_00_30.ESWbND2w/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.7</sub></sup></td>
<td align="right"><sup><sub>0.961</sub></sup></td>
<td align="right"><sup><sub>48.1</sub></sup></td>
<td align="right"><sup><sub>0.239&nbsp;+&nbsp;0.019</sub></sup></td>
<td align="right"><sup><sub>42.1</sub></sup></td>
<td align="right"><sup><sub>37.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36761843</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36761843/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_1x.yaml.06_35_59.RZotkLKI/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36761843/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_1x.yaml.06_35_59.RZotkLKI/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36761843/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_1x.yaml.06_35_59.RZotkLKI/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>7.7</sub></sup></td>
<td align="right"><sup><sub>0.975</sub></sup></td>
<td align="right"><sup><sub>97.5</sub></sup></td>
<td align="right"><sup><sub>0.240&nbsp;+&nbsp;0.016</sub></sup></td>
<td align="right"><sup><sub>41.7</sub></sup></td>
<td align="right"><sup><sub>36.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36762092</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36762092/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_2x.yaml.06_37_59.DM5gJYRF/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36762092/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_2x.yaml.06_37_59.DM5gJYRF/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36762092/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_2x.yaml.06_37_59.DM5gJYRF/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
</tr>
<!-- END E2E FASTER AND MASK TABLE -->
</tbody></table>

**Notes:**

- For these models, RPN and the detector are trained jointly and end-to-end.
- Inference time is fully image-to-detections, *including* proposal generation.


### RetinaNet Baselines

<table><tbody>
<!-- START RETINANET TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop.<br/>AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>6.8</sub></sup></td>
<td align="right"><sup><sub>0.483</sub></sup></td>
<td align="right"><sup><sub>12.1</sub></sup></td>
<td align="right"><sup><sub>0.125</sub></sup></td>
<td align="right"><sup><sub>35.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36768636</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36768636/12_2017_baselines/retinanet_R-50-FPN_1x.yaml.08_29_48.t4zc9clc/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36768636/12_2017_baselines/retinanet_R-50-FPN_1x.yaml.08_29_48.t4zc9clc/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>6.8</sub></sup></td>
<td align="right"><sup><sub>0.482</sub></sup></td>
<td align="right"><sup><sub>24.1</sub></sup></td>
<td align="right"><sup><sub>0.127</sub></sup></td>
<td align="right"><sup><sub>35.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36768677</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36768677/12_2017_baselines/retinanet_R-50-FPN_2x.yaml.08_30_38.sgZIQZQ5/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36768677/12_2017_baselines/retinanet_R-50-FPN_2x.yaml.08_30_38.sgZIQZQ5/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.7</sub></sup></td>
<td align="right"><sup><sub>0.666</sub></sup></td>
<td align="right"><sup><sub>16.7</sub></sup></td>
<td align="right"><sup><sub>0.156</sub></sup></td>
<td align="right"><sup><sub>37.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36768744</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36768744/12_2017_baselines/retinanet_R-101-FPN_1x.yaml.08_31_38.5poQe1ZB/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36768744/12_2017_baselines/retinanet_R-101-FPN_1x.yaml.08_31_38.5poQe1ZB/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.7</sub></sup></td>
<td align="right"><sup><sub>0.666</sub></sup></td>
<td align="right"><sup><sub>33.3</sub></sup></td>
<td align="right"><sup><sub>0.154</sub></sup></td>
<td align="right"><sup><sub>37.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36768840</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36768840/12_2017_baselines/retinanet_R-101-FPN_2x.yaml.08_33_29.grtM0RTf/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36768840/12_2017_baselines/retinanet_R-101-FPN_2x.yaml.08_33_29.grtM0RTf/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.6</sub></sup></td>
<td align="right"><sup><sub>1.613</sub></sup></td>
<td align="right"><sup><sub>40.3</sub></sup></td>
<td align="right"><sup><sub>0.341</sub></sup></td>
<td align="right"><sup><sub>39.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36768875</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36768875/12_2017_baselines/retinanet_X-101-64x4d-FPN_1x.yaml.08_34_37.FSXgMpzP/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36768875/12_2017_baselines/retinanet_X-101-64x4d-FPN_1x.yaml.08_34_37.FSXgMpzP/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.6</sub></sup></td>
<td align="right"><sup><sub>1.625</sub></sup></td>
<td align="right"><sup><sub>81.3</sub></sup></td>
<td align="right"><sup><sub>0.339</sub></sup></td>
<td align="right"><sup><sub>39.2</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36768907</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36768907/12_2017_baselines/retinanet_X-101-64x4d-FPN_2x.yaml.08_35_40.pF3nzPpu/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36768907/12_2017_baselines/retinanet_X-101-64x4d-FPN_2x.yaml.08_35_40.pF3nzPpu/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.7</sub></sup></td>
<td align="right"><sup><sub>1.343</sub></sup></td>
<td align="right"><sup><sub>33.6</sub></sup></td>
<td align="right"><sup><sub>0.277</sub></sup></td>
<td align="right"><sup><sub>39.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36769563</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36769563/12_2017_baselines/retinanet_X-101-32x8d-FPN_1x.yaml.08_42_05.06JTK6vJ/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36769563/12_2017_baselines/retinanet_X-101-32x8d-FPN_1x.yaml.08_42_05.06JTK6vJ/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>RetinaNet</sub></sup></td>
<td align="left"><sup><sub>2x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.7</sub></sup></td>
<td align="right"><sup><sub>1.340</sub></sup></td>
<td align="right"><sup><sub>67.0</sub></sup></td>
<td align="right"><sup><sub>0.276</sub></sup></td>
<td align="right"><sup><sub>38.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>36769641</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36769641/12_2017_baselines/retinanet_X-101-32x8d-FPN_2x.yaml.08_42_55.sUPnwXI5/output/train/coco_2014_train%3Acoco_2014_valminusminival/retinanet/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36769641/12_2017_baselines/retinanet_X-101-32x8d-FPN_2x.yaml.08_42_55.sUPnwXI5/output/test/coco_2014_minival/retinanet/detections_coco_2014_minival_results.json">boxes</a></sub></sup></td>
</tr>
<!-- END RETINANET TABLE -->
</tbody></table>

**Notes:** none

### Mask R-CNN with Bells & Whistles

<table><tbody>
<!-- START BELLS TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp<br/>AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop.<br/>AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>X-152-32x8d-FPN-IN5k</sub></sup></td>
<td align="left"><sup><sub>Mask</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>1</sub></sup></td>
<td align="right"><sup><sub>9.6</sub></sup></td>
<td align="right"><sup><sub>1.188</sub></sup></td>
<td align="right"><sup><sub>85.8</sub></sup></td>
<td align="right"><sup><sub>12.100&nbsp;+&nbsp;0.046</sub></sup></td>
<td align="right"><sup><sub>48.1</sub></sup></td>
<td align="right"><sup><sub>41.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37129812</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37129812/12_2017_baselines/e2e_mask_rcnn_X-152-32x8d-FPN-IN5k_1.44x.yaml.09_35_36.8pzTQKYK/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37129812/12_2017_baselines/e2e_mask_rcnn_X-152-32x8d-FPN-IN5k_1.44x.yaml.09_35_36.8pzTQKYK/output/test/coco_2014_minival/generalized_rcnn/bbox_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37129812/12_2017_baselines/e2e_mask_rcnn_X-152-32x8d-FPN-IN5k_1.44x.yaml.09_35_36.8pzTQKYK/output/test/coco_2014_minival/generalized_rcnn/segmentations_coco_2014_minival_results.json">masks</a></sub></sup></td>
<tr>
<td align="left"><sup><sub>[above without test-time aug.]</sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub>0.325&nbsp;+&nbsp;0.018</sub></sup></td>
<td align="right"><sup><sub>45.2</sub></sup></td>
<td align="right"><sup><sub>39.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
<td align="right"><sup><sub></sub></sup></td>
</tr>
<!-- END BELLS TABLE -->
</tbody></table>

**Notes:**

- A deeper backbone architecture is used: ResNeXt-**152**-32x8d-FPN
- The backbone ResNeXt-152-32x8d model was trained on ImageNet-**5k** (not the usual ImageNet-1k)
- Training uses multi-scale jitter over scales {640, 672, 704, 736, 768, 800}
- Row 1: test-time augmentations are multi-scale testing over {400, 500, 600, 700, 900, 1000, 1100, 1200} and horizontal flipping (on each scale)
- Row 2: same model as row 1, but without any test-time augmentation (i.e., same as the common baseline configuration)
- Like the other results, this is a single model result (it is not an ensemble of models)

## Keypoint Detection Baselines

#### Common Settings for Keypoint Detection Baselines (That Differ from Boxes and Masks)

Our keypoint detection baselines differ from our box and mask baselines in a couple of details:

- Due to less training data for the keypoint detection task compared with boxes and masks, we enable multi-scale jitter during training for all keypoint detection models. (Testing is still without any test-time augmentations by default.)
- Models are trained only on images from `coco_2014_train` union `coco_2014_valminusminival` that contain at least one person with keypoint annotations (all other images are discarded from the training set).
- Metrics are reported for the person class only (still run on the entire `coco_2014_minival` dataset).

### Person-Specific RPN Baselines

<table><tbody>
<!-- START PERSON-ONLY RPN TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop. AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>6.4</sub></sup></td>
<td align="right"><sup><sub>0.391</sub></sup></td>
<td align="right"><sup><sub>9.8</sub></sup></td>
<td align="right"><sup><sub>0.082</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>64.0</sub></sup></td>
<td align="right"><sup><sub>35998996</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>8.1</sub></sup></td>
<td align="right"><sup><sub>0.504</sub></sup></td>
<td align="right"><sup><sub>12.6</sub></sup></td>
<td align="right"><sup><sub>0.109</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>65.2</sub></sup></td>
<td align="right"><sup><sub>35999521</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35999521/12_2017_baselines/rpn_person_only_R-101-FPN_1x.yaml.08_20_33.1OkqMmqP/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35999521/12_2017_baselines/rpn_person_only_R-101-FPN_1x.yaml.08_20_33.1OkqMmqP/output/test/keypoints_coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35999521/12_2017_baselines/rpn_person_only_R-101-FPN_1x.yaml.08_20_33.1OkqMmqP/output/test/keypoints_coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35999521/12_2017_baselines/rpn_person_only_R-101-FPN_1x.yaml.08_20_33.1OkqMmqP/output/test/keypoints_coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>11.5</sub></sup></td>
<td align="right"><sup><sub>1.394</sub></sup></td>
<td align="right"><sup><sub>34.9</sub></sup></td>
<td align="right"><sup><sub>0.289</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>65.9</sub></sup></td>
<td align="right"><sup><sub>35999553</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/35999553/12_2017_baselines/rpn_person_only_X-101-64x4d-FPN_1x.yaml.08_21_33.ghFzzArr/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35999553/12_2017_baselines/rpn_person_only_X-101-64x4d-FPN_1x.yaml.08_21_33.ghFzzArr/output/test/keypoints_coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35999553/12_2017_baselines/rpn_person_only_X-101-64x4d-FPN_1x.yaml.08_21_33.ghFzzArr/output/test/keypoints_coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/35999553/12_2017_baselines/rpn_person_only_X-101-64x4d-FPN_1x.yaml.08_21_33.ghFzzArr/output/test/keypoints_coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>RPN</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>11.6</sub></sup></td>
<td align="right"><sup><sub>1.104</sub></sup></td>
<td align="right"><sup><sub>27.6</sub></sup></td>
<td align="right"><sup><sub>0.224</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.2</sub></sup></td>
<td align="right"><sup><sub>36760438</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/36760438/12_2017_baselines/rpn_person_only_X-101-32x8d-FPN_1x.yaml.06_04_23.M2oJlDPW/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;props:&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36760438/12_2017_baselines/rpn_person_only_X-101-32x8d-FPN_1x.yaml.06_04_23.M2oJlDPW/output/test/keypoints_coco_2014_train/generalized_rcnn/rpn_proposals.pkl">1</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36760438/12_2017_baselines/rpn_person_only_X-101-32x8d-FPN_1x.yaml.06_04_23.M2oJlDPW/output/test/keypoints_coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl">2</a>,&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/36760438/12_2017_baselines/rpn_person_only_X-101-32x8d-FPN_1x.yaml.06_04_23.M2oJlDPW/output/test/keypoints_coco_2014_minival/generalized_rcnn/rpn_proposals.pkl">3</a></sub></sup></td>
</tr>
<!-- END PERSON-ONLY RPN TABLE -->
</tbody></table>

**Notes:**

- *Metrics are for the person category only.*
- Inference time only includes RPN proposal generation.
- "prop. AR" is proposal average recall at 1000 proposals per image.
- Proposal download links ("props"): "1" is `coco_2014_train`; "2" is `coco_2014_valminusminival`; and "3" is `coco_2014_minival`. These include all images, not just the ones with valid keypoint annotations.

### Keypoint-Only Mask R-CNN Baselines Using Precomputed RPN Proposals

<table><tbody>
<!-- START 2-STAGE KEYPOINTS TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop. AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.7</sub></sup></td>
<td align="right"><sup><sub>0.533</sub></sup></td>
<td align="right"><sup><sub>13.3</sub></sup></td>
<td align="right"><sup><sub>0.081&nbsp;+&nbsp;0.087</sub></sup></td>
<td align="right"><sup><sub>52.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>64.1</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37651787</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37651787/12_2017_baselines/keypoint_rcnn_R-50-FPN_1x.yaml.20_00_48.UiwJsTXB/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/gene
ralized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37651787/12_2017_baselines/keypoint_rcnn_R-50-FPN_1x.yaml.20_00_48.UiwJsTXB/output/test/keypoints_coco_2014_minival/generalized_rcnn
/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37651787/12_2017_baselines/keypoint_rcnn_R-50-FPN_1x.yaml.20_00_48.UiwJsTXB/output/test/keypoints_coco_2014_miniva
l/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>7.7</sub></sup></td>
<td align="right"><sup><sub>0.533</sub></sup></td>
<td align="right"><sup><sub>19.2</sub></sup></td>
<td align="right"><sup><sub>0.080&nbsp;+&nbsp;0.085</sub></sup></td>
<td align="right"><sup><sub>53.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>65.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37651887</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37651887/12_2017_baselines/keypoint_rcnn_R-50-FPN_s1x.yaml.20_01_40.FDjUQ7VX/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/gen
eralized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37651887/12_2017_baselines/keypoint_rcnn_R-50-FPN_s1x.yaml.20_01_40.FDjUQ7VX/output/test/keypoints_coco_2014_minival/generalized_rc
nn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37651887/12_2017_baselines/keypoint_rcnn_R-50-FPN_s1x.yaml.20_01_40.FDjUQ7VX/output/test/keypoints_coco_2014_min
ival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>9.4</sub></sup></td>
<td align="right"><sup><sub>0.668</sub></sup></td>
<td align="right"><sup><sub>16.7</sub></sup></td>
<td align="right"><sup><sub>0.109&nbsp;+&nbsp;0.080</sub></sup></td>
<td align="right"><sup><sub>53.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>65.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37651996</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37651996/12_2017_baselines/keypoint_rcnn_R-101-FPN_1x.yaml.20_02_37.eVXnKM2Q/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/gen
eralized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37651996/12_2017_baselines/keypoint_rcnn_R-101-FPN_1x.yaml.20_02_37.eVXnKM2Q/output/test/keypoints_coco_2014_minival/generalized_rc
nn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37651996/12_2017_baselines/keypoint_rcnn_R-101-FPN_1x.yaml.20_02_37.eVXnKM2Q/output/test/keypoints_coco_2014_min
ival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>9.4</sub></sup></td>
<td align="right"><sup><sub>0.668</sub></sup></td>
<td align="right"><sup><sub>24.1</sub></sup></td>
<td align="right"><sup><sub>0.108&nbsp;+&nbsp;0.076</sub></sup></td>
<td align="right"><sup><sub>54.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37652016</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37652016/12_2017_baselines/keypoint_rcnn_R-101-FPN_s1x.yaml.20_03_32.z86wT97d/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/ge
neralized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37652016/12_2017_baselines/keypoint_rcnn_R-101-FPN_s1x.yaml.20_03_32.z86wT97d/output/test/keypoints_coco_2014_minival/generalized_
rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37652016/12_2017_baselines/keypoint_rcnn_R-101-FPN_s1x.yaml.20_03_32.z86wT97d/output/test/keypoints_coco_2014_
minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.8</sub></sup></td>
<td align="right"><sup><sub>1.477</sub></sup></td>
<td align="right"><sup><sub>36.9</sub></sup></td>
<td align="right"><sup><sub>0.288&nbsp;+&nbsp;0.077</sub></sup></td>
<td align="right"><sup><sub>55.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.7</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37731079</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37731079/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_1x.yaml.16_40_56.wj7Hg7lX/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminiv
al/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37731079/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_1x.yaml.16_40_56.wj7Hg7lX/output/test/keypoints_coco_2014_minival/ge
neralized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37731079/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_1x.yaml.16_40_56.wj7Hg7lX/output/test/keypo
ints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.9</sub></sup></td>
<td align="right"><sup><sub>1.478</sub></sup></td>
<td align="right"><sup><sub>53.4</sub></sup></td>
<td align="right"><sup><sub>0.286&nbsp;+&nbsp;0.075</sub></sup></td>
<td align="right"><sup><sub>56.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>67.1</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37731142</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37731142/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml.16_41_54.e1sD4Frh/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusmini
val/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37731142/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml.16_41_54.e1sD4Frh/output/test/keypoints_coco_2014_minival/
generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37731142/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml.16_41_54.e1sD4Frh/output/test/ke
ypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.9</sub></sup></td>
<td align="right"><sup><sub>1.215</sub></sup></td>
<td align="right"><sup><sub>30.4</sub></sup></td>
<td align="right"><sup><sub>0.219&nbsp;+&nbsp;0.084</sub></sup></td>
<td align="right"><sup><sub>55.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.2</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37730253</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37730253/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_1x.yaml.16_34_24.3G9OcQuR/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminiv
al/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37730253/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_1x.yaml.16_34_24.3G9OcQuR/output/test/keypoints_coco_2014_minival/ge
neralized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37730253/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_1x.yaml.16_34_24.3G9OcQuR/output/test/keypo
ints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>12.9</sub></sup></td>
<td align="right"><sup><sub>1.214</sub></sup></td>
<td align="right"><sup><sub>43.8</sub></sup></td>
<td align="right"><sup><sub>0.218&nbsp;+&nbsp;0.071</sub></sup></td>
<td align="right"><sup><sub>55.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>67.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37731010</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37731010/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml.16_39_51.xt1oMzRk/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusmini
val/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37731010/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml.16_39_51.xt1oMzRk/output/test/keypoints_coco_2014_minival/
generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37731010/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml.16_39_51.xt1oMzRk/output/test/ke
ypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<!-- END 2-STAGE KEYPOINTS TABLE -->
</tbody></table>

**Notes:**

- *Metrics are for the person category only.*
- Each row uses precomputed RPN proposals from the corresponding table row above that uses the same backbone.
- Inference time *excludes* proposal generation.


### End-to-End Keypoint-Only Mask R-CNN Baselines

<table><tbody>
<!-- START END-TO-END KEYPOINTS TABLE -->
<!-- TABLE HEADER -->
<!-- Info: we use wrap text in <sup><sub></sub><sup> to make is small -->
<th valign="bottom"><sup><sub>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backbone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</sub></sup></th>
<th valign="bottom"><sup><sub>type</sub></sup></th>
<th valign="bottom"><sup><sub>lr<br/>schd</sub></sup></th>
<th valign="bottom"><sup><sub>im/<br/>gpu</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>mem<br/>(GB)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>(s/iter)</sub></sup></th>
<th valign="bottom"><sup><sub>train<br/>time<br/>total<br/>(hr)</sub></sup></th>
<th valign="bottom"><sup><sub>inference<br/>time<br/>(s/im)</sub></sup></th>
<th valign="bottom"><sup><sub>box AP</sub></sup></th>
<th valign="bottom"><sup><sub>mask AP</sub></sup></th>
<th valign="bottom"><sup><sub>kp AP</sub></sup></th>
<th valign="bottom"><sup><sub>prop. AR</sub></sup></th>
<th valign="bottom"><sup><sub>model id</sub></sup></th>
<th valign="bottom"><sup><sub>download<br/>links</sub></sup></th>
<!-- TABLE BODY -->
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>9.0</sub></sup></td>
<td align="right"><sup><sub>0.832</sub></sup></td>
<td align="right"><sup><sub>20.8</sub></sup></td>
<td align="right"><sup><sub>0.097&nbsp;+&nbsp;0.092</sub></sup></td>
<td align="right"><sup><sub>53.6</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>64.2</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37697547</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37697547/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_1x.yaml.08_42_54.kdzV35ao/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37697547/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_1x.yaml.08_42_54.kdzV35ao/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37697547/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_1x.yaml.08_42_54.kdzV35ao/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-50-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>9.0</sub></sup></td>
<td align="right"><sup><sub>0.828</sub></sup></td>
<td align="right"><sup><sub>29.9</sub></sup></td>
<td align="right"><sup><sub>0.096&nbsp;+&nbsp;0.089</sub></sup></td>
<td align="right"><sup><sub>54.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>65.4</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37697714</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37697714/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_s1x.yaml.08_44_03.qrQ0ph6M/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37697714/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_s1x.yaml.08_44_03.qrQ0ph6M/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37697714/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_s1x.yaml.08_44_03.qrQ0ph6M/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>10.6</sub></sup></td>
<td align="right"><sup><sub>0.923</sub></sup></td>
<td align="right"><sup><sub>23.1</sub></sup></td>
<td align="right"><sup><sub>0.124&nbsp;+&nbsp;0.084</sub></sup></td>
<td align="right"><sup><sub>54.5</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>64.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37697946</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37697946/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_1x.yaml.08_45_06.Y14KqbST/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37697946/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_1x.yaml.08_45_06.Y14KqbST/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37697946/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_1x.yaml.08_45_06.Y14KqbST/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>R-101-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>10.6</sub></sup></td>
<td align="right"><sup><sub>0.921</sub></sup></td>
<td align="right"><sup><sub>33.3</sub></sup></td>
<td align="right"><sup><sub>0.123&nbsp;+&nbsp;0.083</sub></sup></td>
<td align="right"><sup><sub>55.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>65.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37698009</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37698009/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_s1x.yaml.08_45_57.YkrJgP6O/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37698009/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_s1x.yaml.08_45_57.YkrJgP6O/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37698009/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_s1x.yaml.08_45_57.YkrJgP6O/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>14.1</sub></sup></td>
<td align="right"><sup><sub>1.655</sub></sup></td>
<td align="right"><sup><sub>41.4</sub></sup></td>
<td align="right"><sup><sub>0.302&nbsp;+&nbsp;0.079</sub></sup></td>
<td align="right"><sup><sub>56.3</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37732355</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37732355/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_1x.yaml.16_56_16.yv4t4W8N/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37732355/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_1x.yaml.16_56_16.yv4t4W8N/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37732355/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_1x.yaml.16_56_16.yv4t4W8N/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-64x4d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>14.1</sub></sup></td>
<td align="right"><sup><sub>1.731</sub></sup></td>
<td align="right"><sup><sub>62.5</sub></sup></td>
<td align="right"><sup><sub>0.322&nbsp;+&nbsp;0.074</sub></sup></td>
<td align="right"><sup><sub>56.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.8</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37732415</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37732415/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml.16_57_48.Spqtq3Sf/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37732415/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml.16_57_48.Spqtq3Sf/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37732415/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml.16_57_48.Spqtq3Sf/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>14.2</sub></sup></td>
<td align="right"><sup><sub>1.410</sub></sup></td>
<td align="right"><sup><sub>35.3</sub></sup></td>
<td align="right"><sup><sub>0.235&nbsp;+&nbsp;0.080</sub></sup></td>
<td align="right"><sup><sub>56.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>66.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37792158</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37792158/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_1x.yaml.16_54_16.LgZeo40k/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37792158/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_1x.yaml.16_54_16.LgZeo40k/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37792158/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_1x.yaml.16_54_16.LgZeo40k/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<tr>
<td align="left"><sup><sub>X-101-32x8d-FPN</sub></sup></td>
<td align="left"><sup><sub>Kps</sub></sup></td>
<td align="left"><sup><sub>s1x</sub></sup></td>
<td align="right"><sup><sub>2</sub></sup></td>
<td align="right"><sup><sub>14.2</sub></sup></td>
<td align="right"><sup><sub>1.408</sub></sup></td>
<td align="right"><sup><sub>50.8</sub></sup></td>
<td align="right"><sup><sub>0.236&nbsp;+&nbsp;0.075</sub></sup></td>
<td align="right"><sup><sub>56.9</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>67.0</sub></sup></td>
<td align="right"><sup><sub>-</sub></sup></td>
<td align="right"><sup><sub>37732318</sub></sup></td>
<td align="left"><sup><sub><a href="https://dl.fbaipublicfiles.com/detectron/37732318/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml.16_55_09.Lx8H5JVu/output/train/keypoints_coco_2014_train%3Akeypoints_coco_2014_valminusminival/generalized_rcnn/model_final.pkl">model</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37732318/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml.16_55_09.Lx8H5JVu/output/test/keypoints_coco_2014_minival/generalized_rcnn/bbox_keypoints_coco_2014_minival_results.json">boxes</a>&nbsp;|&nbsp;<a href="https://dl.fbaipublicfiles.com/detectron/37732318/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml.16_55_09.Lx8H5JVu/output/test/keypoints_coco_2014_minival/generalized_rcnn/keypoints_keypoints_coco_2014_minival_results.json">kps</a></sub></sup></td>
</tr>
<!-- END END-TO-END KEYPOINTS TABLE -->
</tbody></table>

**Notes:**

- *Metrics are for the person category only.*
- For these models, RPN and the detector are trained jointly and end-to-end.
- Inference time is fully image-to-detections, *including* proposal generation.


================================================
FILE: Makefile
================================================
# Don't use the --user flag for setup.py develop mode with virtualenv.
DEV_USER_FLAG=$(shell python -c "import sys; print('' if hasattr(sys, 'real_prefix') else '--user')")

.PHONY: default
default: dev

.PHONY: install
install:
	python setup.py install

.PHONY: ops
ops:
	mkdir -p build && cd build && cmake .. && make -j$(shell nproc)

.PHONY: dev
dev:
	python setup.py develop $(DEV_USER_FLAG)

.PHONY: clean
clean:
	python setup.py develop --uninstall $(DEV_USER_FLAG)
	rm -rf build


================================================
FILE: NOTICE
================================================
Portions of this software are derived from py-faster-rcnn.

==============================================================================
py-faster-rcnn licence
==============================================================================

Faster R-CNN

The MIT License (MIT)

Copyright (c) 2015 Microsoft Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: README.md
================================================
**Detectron is deprecated. Please see [detectron2](https://github.com/facebookresearch/detectron2), a ground-up rewrite of Detectron in PyTorch.**

# Detectron

Detectron is Facebook AI Research's software system that implements state-of-the-art object detection algorithms, including [Mask R-CNN](https://arxiv.org/abs/1703.06870). It is written in Python and powered by the [Caffe2](https://github.com/caffe2/caffe2) deep learning framework.

At FAIR, Detectron has enabled numerous research projects, including: [Feature Pyramid Networks for Object Detection](https://arxiv.org/abs/1612.03144), [Mask R-CNN](https://arxiv.org/abs/1703.06870), [Detecting and Recognizing Human-Object Interactions](https://arxiv.org/abs/1704.07333), [Focal Loss for Dense Object Detection](https://arxiv.org/abs/1708.02002), [Non-local Neural Networks](https://arxiv.org/abs/1711.07971), [Learning to Segment Every Thing](https://arxiv.org/abs/1711.10370), [Data Distillation: Towards Omni-Supervised Learning](https://arxiv.org/abs/1712.04440), [DensePose: Dense Human Pose Estimation In The Wild](https://arxiv.org/abs/1802.00434), and [Group Normalization](https://arxiv.org/abs/1803.08494).

<div align="center">
  <img src="demo/output/33823288584_1d21cf0a26_k_example_output.jpg" width="700px" />
  <p>Example Mask R-CNN output.</p>
</div>

## Introduction

The goal of Detectron is to provide a high-quality, high-performance
codebase for object detection *research*. It is designed to be flexible in order
to support rapid implementation and evaluation of novel research. Detectron
includes implementations of the following object detection algorithms:

- [Mask R-CNN](https://arxiv.org/abs/1703.06870) -- *Marr Prize at ICCV 2017*
- [RetinaNet](https://arxiv.org/abs/1708.02002) -- *Best Student Paper Award at ICCV 2017*
- [Faster R-CNN](https://arxiv.org/abs/1506.01497)
- [RPN](https://arxiv.org/abs/1506.01497)
- [Fast R-CNN](https://arxiv.org/abs/1504.08083)
- [R-FCN](https://arxiv.org/abs/1605.06409)

using the following backbone network architectures:

- [ResNeXt{50,101,152}](https://arxiv.org/abs/1611.05431)
- [ResNet{50,101,152}](https://arxiv.org/abs/1512.03385)
- [Feature Pyramid Networks](https://arxiv.org/abs/1612.03144) (with ResNet/ResNeXt)
- [VGG16](https://arxiv.org/abs/1409.1556)

Additional backbone architectures may be easily implemented. For more details about these models, please see [References](#references) below.

## Update

- 4/2018: Support Group Normalization - see [`GN/README.md`](./projects/GN/README.md)

## License

Detectron is released under the [Apache 2.0 license](https://github.com/facebookresearch/detectron/blob/master/LICENSE). See the [NOTICE](https://github.com/facebookresearch/detectron/blob/master/NOTICE) file for additional details.

## Citing Detectron

If you use Detectron in your research or wish to refer to the baseline results published in the [Model Zoo](MODEL_ZOO.md), please use the following BibTeX entry.

```
@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}
}
```

## Model Zoo and Baselines

We provide a large set of baseline results and trained models available for download in the [Detectron Model Zoo](MODEL_ZOO.md).

## Installation

Please find installation instructions for Caffe2 and Detectron in [`INSTALL.md`](INSTALL.md).

## Quick Start: Using Detectron

After installation, please see [`GETTING_STARTED.md`](GETTING_STARTED.md) for brief tutorials covering inference and training with Detectron.

## Getting Help

To start, please check the [troubleshooting](INSTALL.md#troubleshooting) section of our installation instructions as well as our [FAQ](FAQ.md). If you couldn't find help there, try searching our GitHub issues. We intend the issues page to be a forum in which the community collectively troubleshoots problems.

If bugs are found, **we appreciate pull requests** (including adding Q&A's to `FAQ.md` and improving our installation instructions and troubleshooting documents). Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information about contributing to Detectron.

## References

- [Data Distillation: Towards Omni-Supervised Learning](https://arxiv.org/abs/1712.04440).
  Ilija Radosavovic, Piotr Dollár, Ross Girshick, Georgia Gkioxari, and Kaiming He.
  Tech report, arXiv, Dec. 2017.
- [Learning to Segment Every Thing](https://arxiv.org/abs/1711.10370).
  Ronghang Hu, Piotr Dollár, Kaiming He, Trevor Darrell, and Ross Girshick.
  Tech report, arXiv, Nov. 2017.
- [Non-Local Neural Networks](https://arxiv.org/abs/1711.07971).
  Xiaolong Wang, Ross Girshick, Abhinav Gupta, and Kaiming He.
  Tech report, arXiv, Nov. 2017.
- [Mask R-CNN](https://arxiv.org/abs/1703.06870).
  Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Girshick.
  IEEE International Conference on Computer Vision (ICCV), 2017.
- [Focal Loss for Dense Object Detection](https://arxiv.org/abs/1708.02002).
  Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár.
  IEEE International Conference on Computer Vision (ICCV), 2017.
- [Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour](https://arxiv.org/abs/1706.02677).
  Priya Goyal, Piotr Dollár, Ross Girshick, Pieter Noordhuis, Lukasz Wesolowski, Aapo Kyrola, Andrew Tulloch, Yangqing Jia, and Kaiming He.
  Tech report, arXiv, June 2017.
- [Detecting and Recognizing Human-Object Interactions](https://arxiv.org/abs/1704.07333).
  Georgia Gkioxari, Ross Girshick, Piotr Dollár, and Kaiming He.
  Tech report, arXiv, Apr. 2017.
- [Feature Pyramid Networks for Object Detection](https://arxiv.org/abs/1612.03144).
  Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie.
  IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.
- [Aggregated Residual Transformations for Deep Neural Networks](https://arxiv.org/abs/1611.05431).
  Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, and Kaiming He.
  IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.
- [R-FCN: Object Detection via Region-based Fully Convolutional Networks](http://arxiv.org/abs/1605.06409).
  Jifeng Dai, Yi Li, Kaiming He, and Jian Sun.
  Conference on Neural Information Processing Systems (NIPS), 2016.
- [Deep Residual Learning for Image Recognition](http://arxiv.org/abs/1512.03385).
  Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun.
  IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
- [Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks](http://arxiv.org/abs/1506.01497)
  Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun.
  Conference on Neural Information Processing Systems (NIPS), 2015.
- [Fast R-CNN](http://arxiv.org/abs/1504.08083).
  Ross Girshick.
  IEEE International Conference on Computer Vision (ICCV), 2015.


================================================
FILE: cmake/Summary.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# Adapted from https://github.com/caffe2/caffe2/blob/master/cmake/Summary.cmake

# Prints configuration summary.
function (detectron_print_config_summary)
  message(STATUS "Summary:")
  message(STATUS "  CMake version        : ${CMAKE_VERSION}")
  message(STATUS "  CMake command        : ${CMAKE_COMMAND}")
  message(STATUS "  System name          : ${CMAKE_SYSTEM_NAME}")
  message(STATUS "  C++ compiler         : ${CMAKE_CXX_COMPILER}")
  message(STATUS "  C++ compiler version : ${CMAKE_CXX_COMPILER_VERSION}")
  message(STATUS "  CXX flags            : ${CMAKE_CXX_FLAGS}")
  message(STATUS "  Caffe2 version       : ${CAFFE2_VERSION}")
  message(STATUS "  Caffe2 include path  : ${CAFFE2_INCLUDE_DIRS}")
  if (CAFFE2_USE_CUDA OR CAFFE2_FOUND_CUDA)
    message(STATUS "  Caffe2 found CUDA    : True")
    message(STATUS "    CUDA version       : ${CUDA_VERSION}")
    message(STATUS "    CuDNN version      : ${CUDNN_VERSION}")
  else()
    message(STATUS "  Caffe2 found CUDA    : False")
  endif()
endfunction()


================================================
FILE: cmake/legacy/Cuda.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# Copied from https://github.com/caffe2/caffe2/blob/master/cmake/Cuda.cmake

# Caffe2 cmake utility to prepare for cuda build.
# This cmake file is called from Dependencies.cmake. You do not need to
# manually invoke it.

# Known NVIDIA GPU achitectures Caffe2 can be compiled for.
# Default is set to cuda 9. If we detect the cuda architectores to be less than
# 9, we will lower it to the corresponding known archs.
set(Caffe2_known_gpu_archs "30 35 50 52 60 61 70") # for CUDA 9.x
set(Caffe2_known_gpu_archs8 "20 21(20) 30 35 50 52 60 61") # for CUDA 8.x
set(Caffe2_known_gpu_archs7 "20 21(20) 30 35 50 52") # for CUDA 7.x


################################################################################################
# Function for selecting GPU arch flags for nvcc based on CUDA_ARCH_NAME
# Usage:
#   caffe_select_nvcc_arch_flags(out_variable)
function(caffe2_select_nvcc_arch_flags out_variable)
  # List of arch names
  set(__archs_names "Kepler" "Maxwell" "Pascal" "Volta" "All" "Manual")
  set(__archs_name_default "All")

  # Set CUDA_ARCH_NAME strings (so it will be seen as dropbox in the CMake GUI)
  set(CUDA_ARCH_NAME ${__archs_name_default} CACHE STRING "Select target NVIDIA GPU architecture")
  set_property(CACHE CUDA_ARCH_NAME PROPERTY STRINGS "" ${__archs_names})
  mark_as_advanced(CUDA_ARCH_NAME)

  # Verify CUDA_ARCH_NAME value
  if(NOT ";${__archs_names};" MATCHES ";${CUDA_ARCH_NAME};")
    string(REPLACE ";" ", " __archs_names "${__archs_names}")
    message(FATAL_ERROR "Invalid CUDA_ARCH_NAME, supported values: ${__archs_names}. Got ${CUDA_ARCH_NAME}")
  endif()

  if(${CUDA_ARCH_NAME} STREQUAL "Manual")
    set(CUDA_ARCH_BIN "" CACHE STRING
      "Specify GPU architectures to build binaries for (BIN(PTX) format is supported)")
    set(CUDA_ARCH_PTX "" CACHE STRING
      "Specify GPU architectures to build PTX intermediate code for")
    mark_as_advanced(CUDA_ARCH_BIN CUDA_ARCH_PTX)
  else()
    unset(CUDA_ARCH_BIN CACHE)
    unset(CUDA_ARCH_PTX CACHE)
  endif()

  if(${CUDA_ARCH_NAME} STREQUAL "Kepler")
    set(__cuda_arch_bin "30 35")
  elseif(${CUDA_ARCH_NAME} STREQUAL "Maxwell")
    set(__cuda_arch_bin "50")
  elseif(${CUDA_ARCH_NAME} STREQUAL "Pascal")
    set(__cuda_arch_bin "60 61")
  elseif(${CUDA_ARCH_NAME} STREQUAL "Volta")
    set(__cuda_arch_bin "70")
  elseif(${CUDA_ARCH_NAME} STREQUAL "All")
    set(__cuda_arch_bin ${Caffe2_known_gpu_archs})
  elseif(${CUDA_ARCH_NAME} STREQUAL "Manual")
    set(__cuda_arch_bin ${CUDA_ARCH_BIN})
    set(__cuda_arch_ptx ${CUDA_ARCH_PTX})
  else()
    message(FATAL_ERROR "Invalid CUDA_ARCH_NAME")
  endif()

  # Remove dots and convert to lists
  string(REGEX REPLACE "\\." "" __cuda_arch_bin "${__cuda_arch_bin}")
  string(REGEX REPLACE "\\." "" __cuda_arch_ptx "${__cuda_arch_ptx}")
  string(REGEX MATCHALL "[0-9()]+" __cuda_arch_bin "${__cuda_arch_bin}")
  string(REGEX MATCHALL "[0-9]+"   __cuda_arch_ptx "${__cuda_arch_ptx}")
  list(REMOVE_DUPLICATES __cuda_arch_bin)
  list(REMOVE_DUPLICATES __cuda_arch_ptx)

  set(__nvcc_flags "")
  set(__nvcc_archs_readable "")

  # Tell NVCC to add binaries for the specified GPUs
  foreach(__arch ${__cuda_arch_bin})
    if(__arch MATCHES "([0-9]+)\\(([0-9]+)\\)")
      # User explicitly specified PTX for the concrete BIN
      list(APPEND __nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1})
      list(APPEND __nvcc_archs_readable sm_${CMAKE_MATCH_1})
    else()
      # User didn't explicitly specify PTX for the concrete BIN, we assume PTX=BIN
      list(APPEND __nvcc_flags -gencode arch=compute_${__arch},code=sm_${__arch})
      list(APPEND __nvcc_archs_readable sm_${__arch})
    endif()
  endforeach()

  # Tell NVCC to add PTX intermediate code for the specified architectures
  foreach(__arch ${__cuda_arch_ptx})
    list(APPEND __nvcc_flags -gencode arch=compute_${__arch},code=compute_${__arch})
    list(APPEND __nvcc_archs_readable compute_${__arch})
  endforeach()

  string(REPLACE ";" " " __nvcc_archs_readable "${__nvcc_archs_readable}")
  set(${out_variable}          ${__nvcc_flags}          PARENT_SCOPE)
  set(${out_variable}_readable ${__nvcc_archs_readable} PARENT_SCOPE)
endfunction()


################################################################################################
# Short command for cuda compilation
# Usage:
#   caffe_cuda_compile(<objlist_variable> <cuda_files>)
macro(caffe2_cuda_compile objlist_variable)
  foreach(var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
    set(${var}_backup_in_cuda_compile_ "${${var}}")

    # we remove /EHa as it generates warnings under windows
    string(REPLACE "/EHa" "" ${var} "${${var}}")

  endforeach()

  if(APPLE)
    list(APPEND CUDA_NVCC_FLAGS -Xcompiler -Wno-unused-function)
  endif()

  cuda_compile(cuda_objcs ${ARGN})

  foreach(var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
    set(${var} "${${var}_backup_in_cuda_compile_}")
    unset(${var}_backup_in_cuda_compile_)
  endforeach()

  set(${objlist_variable} ${cuda_objcs})
endmacro()

################################################################################################
###  Non macro section
################################################################################################

# Special care for windows platform: we know that 32-bit windows does not support cuda.
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
  if(NOT (CMAKE_SIZEOF_VOID_P EQUAL 8))
    message(FATAL_ERROR
            "CUDA support not available with 32-bit windows. Did you "
            "forget to set Win64 in the generator target?")
    return()
  endif()
endif()

find_package(CUDA 7.0 QUIET)
find_cuda_helper_libs(curand)  # cmake 2.8.7 compartibility which doesn't search for curand

if(NOT CUDA_FOUND)
  set(HAVE_CUDA FALSE)
  return()
endif()

set(HAVE_CUDA TRUE)
message(STATUS "CUDA detected: " ${CUDA_VERSION})
if (${CUDA_VERSION} LESS 7.0)
  message(FATAL_ERROR "Caffe2 requires CUDA 7.0 or later version")
elseif (${CUDA_VERSION} LESS 8.0) # CUDA 7.x
  set(Caffe2_known_gpu_archs ${Caffe2_known_gpu_archs7})
  list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
  list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
elseif (${CUDA_VERSION} LESS 9.0) # CUDA 8.x
  set(Caffe2_known_gpu_archs ${Caffe2_known_gpu_archs8})
  list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED")
  list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__")
  # CUDA 8 may complain that sm_20 is no longer supported. Suppress the
  # warning for now.
  list(APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets")
endif()

caffe2_include_directories(${CUDA_INCLUDE_DIRS})
list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS ${CUDA_CUDART_LIBRARY}
                              ${CUDA_curand_LIBRARY} ${CUDA_CUBLAS_LIBRARIES})

# find libcuda.so and lbnvrtc.so
# For libcuda.so, we will find it under lib, lib64, and then the
# stubs folder, in case we are building on a system that does not
# have cuda driver installed. On windows, we also search under the
# folder lib/x64.

find_library(CUDA_CUDA_LIB cuda
    PATHS ${CUDA_TOOLKIT_ROOT_DIR}
    PATH_SUFFIXES lib lib64 lib/stubs lib64/stubs lib/x64)
find_library(CUDA_NVRTC_LIB nvrtc
    PATHS ${CUDA_TOOLKIT_ROOT_DIR}
    PATH_SUFFIXES lib lib64 lib/x64)

# setting nvcc arch flags
caffe2_select_nvcc_arch_flags(NVCC_FLAGS_EXTRA)
list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA})
message(STATUS "Added CUDA NVCC flags for: ${NVCC_FLAGS_EXTRA_readable}")

if(CUDA_CUDA_LIB)
    message(STATUS "Found libcuda: ${CUDA_CUDA_LIB}")
    list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS ${CUDA_CUDA_LIB})
else()
    message(FATAL_ERROR "Cannot find libcuda.so. Please file an issue on https://github.com/caffe2/caffe2 with your build output.")
endif()
if(CUDA_NVRTC_LIB)
  message(STATUS "Found libnvrtc: ${CUDA_NVRTC_LIB}")
  list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS ${CUDA_NVRTC_LIB})
else()
    message(FATAL_ERROR "Cannot find libnvrtc.so. Please file an issue on https://github.com/caffe2/caffe2 with your build output.")
endif()

# disable some nvcc diagnostic that apears in boost, glog, glags, opencv, etc.
foreach(diag cc_clobber_ignored integer_sign_change useless_using_declaration set_but_not_used)
  list(APPEND CUDA_NVCC_FLAGS -Xcudafe --diag_suppress=${diag})
endforeach()

# Set C++11 support
set(CUDA_PROPAGATE_HOST_FLAGS OFF)
if (NOT MSVC)
  list(APPEND CUDA_NVCC_FLAGS "-std=c++14")
  list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -fPIC")
endif()

# Debug and Release symbol support
if (MSVC)
  if (${CMAKE_BUILD_TYPE} MATCHES "Release")
    if (${BUILD_SHARED_LIBS})
      list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MD")
    else()
      list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MT")
    endif()
  elseif(${CMAKE_BUILD_TYPE} MATCHES "Debug")
    message(FATAL_ERROR
            "Caffe2 currently does not support the combination of MSVC, Cuda "
            "and Debug mode. Either set USE_CUDA=OFF or set the build type "
            "to Release")
    if (${BUILD_SHARED_LIBS})
      list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MDd")
    else()
      list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MTd")
    endif()
  else()
    message(FATAL_ERROR "Unknown cmake build type: " ${CMAKE_BUILD_TYPE})
  endif()
endif()


if(OpenMP_FOUND)
  list(APPEND CUDA_NVCC_FLAGS "-Xcompiler ${OpenMP_CXX_FLAGS}")
endif()

# Set :expt-relaxed-constexpr to suppress Eigen warnings
list(APPEND CUDA_NVCC_FLAGS "--expt-relaxed-constexpr")

mark_as_advanced(CUDA_BUILD_CUBIN CUDA_BUILD_EMULATION CUDA_VERBOSE_BUILD)
mark_as_advanced(CUDA_SDK_ROOT_DIR CUDA_SEPARABLE_COMPILATION)


================================================
FILE: cmake/legacy/Dependencies.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# Adapted from https://github.com/caffe2/caffe2/blob/master/cmake/Dependencies.cmake

# Find CUDA.
include(cmake/legacy/Cuda.cmake)
if (HAVE_CUDA)
  # CUDA 9.x requires GCC version <= 6
  if ((CUDA_VERSION VERSION_EQUAL   9.0) OR
      (CUDA_VERSION VERSION_GREATER 9.0  AND CUDA_VERSION VERSION_LESS 10.0))
    if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND
        NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0 AND
        CUDA_HOST_COMPILER STREQUAL CMAKE_C_COMPILER)
      message(FATAL_ERROR
        "CUDA ${CUDA_VERSION} is not compatible with GCC version >= 7. "
        "Use the following option to use another version (for example): \n"
        "  -DCUDA_HOST_COMPILER=/usr/bin/gcc-6\n")
    endif()
  # CUDA 8.0 requires GCC version <= 5
  elseif (CUDA_VERSION VERSION_EQUAL 8.0)
    if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND
        NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.0 AND
        CUDA_HOST_COMPILER STREQUAL CMAKE_C_COMPILER)
      message(FATAL_ERROR
        "CUDA 8.0 is not compatible with GCC version >= 6. "
        "Use the following option to use another version (for example): \n"
        "  -DCUDA_HOST_COMPILER=/usr/bin/gcc-5\n")
    endif()
  endif()
endif()

# Find CUDNN.
if (HAVE_CUDA)
  find_package(CuDNN REQUIRED)
  if (CUDNN_FOUND)
    caffe2_include_directories(${CUDNN_INCLUDE_DIRS})
  endif()
endif()


================================================
FILE: cmake/legacy/Modules/FindCuDNN.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# Copied from https://github.com/caffe2/caffe2/blob/master/cmake/Modules/FindCuDNN.cmake

# - Try to find cuDNN
#
# The following variables are optionally searched for defaults
#  CUDNN_ROOT_DIR:            Base directory where all cuDNN components are found
#
# The following are set after configuration is done:
#  CUDNN_FOUND
#  CUDNN_INCLUDE_DIRS
#  CUDNN_LIBRARIES
#  CUDNN_LIBRARY_DIRS

include(FindPackageHandleStandardArgs)

set(CUDNN_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA cuDNN")

find_path(CUDNN_INCLUDE_DIR cudnn.h
    HINTS ${CUDNN_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}
    PATH_SUFFIXES cuda/include include)

find_library(CUDNN_LIBRARY cudnn
    HINTS ${CUDNN_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}
    PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64)

find_package_handle_standard_args(
    CUDNN DEFAULT_MSG CUDNN_INCLUDE_DIR CUDNN_LIBRARY)

if(CUDNN_FOUND)
	# get cuDNN version
  file(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_HEADER_CONTENTS)
	string(REGEX MATCH "define CUDNN_MAJOR * +([0-9]+)"
				 CUDNN_VERSION_MAJOR "${CUDNN_HEADER_CONTENTS}")
	string(REGEX REPLACE "define CUDNN_MAJOR * +([0-9]+)" "\\1"
				 CUDNN_VERSION_MAJOR "${CUDNN_VERSION_MAJOR}")
	string(REGEX MATCH "define CUDNN_MINOR * +([0-9]+)"
				 CUDNN_VERSION_MINOR "${CUDNN_HEADER_CONTENTS}")
	string(REGEX REPLACE "define CUDNN_MINOR * +([0-9]+)" "\\1"
				 CUDNN_VERSION_MINOR "${CUDNN_VERSION_MINOR}")
	string(REGEX MATCH "define CUDNN_PATCHLEVEL * +([0-9]+)"
				 CUDNN_VERSION_PATCH "${CUDNN_HEADER_CONTENTS}")
	string(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1"
				 CUDNN_VERSION_PATCH "${CUDNN_VERSION_PATCH}")
  # Assemble cuDNN version
  if(NOT CUDNN_VERSION_MAJOR)
    set(CUDNN_VERSION "?")
  else()
    set(CUDNN_VERSION "${CUDNN_VERSION_MAJOR}.${CUDNN_VERSION_MINOR}.${CUDNN_VERSION_PATCH}")
  endif()

  set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR})
  set(CUDNN_LIBRARIES ${CUDNN_LIBRARY})
  message(STATUS "Found cuDNN: v${CUDNN_VERSION}  (include: ${CUDNN_INCLUDE_DIR}, library: ${CUDNN_LIBRARY})")
  mark_as_advanced(CUDNN_ROOT_DIR CUDNN_LIBRARY CUDNN_INCLUDE_DIR)
endif()


================================================
FILE: cmake/legacy/Summary.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# Adapted from https://github.com/caffe2/caffe2/blob/master/cmake/Summary.cmake

# Prints configuration summary.
function (detectron_print_config_summary)
  message(STATUS "Summary:")
  message(STATUS "  CMake version        : ${CMAKE_VERSION}")
  message(STATUS "  CMake command        : ${CMAKE_COMMAND}")
  message(STATUS "  System name          : ${CMAKE_SYSTEM_NAME}")
  message(STATUS "  C++ compiler         : ${CMAKE_CXX_COMPILER}")
  message(STATUS "  C++ compiler version : ${CMAKE_CXX_COMPILER_VERSION}")
  message(STATUS "  CXX flags            : ${CMAKE_CXX_FLAGS}")
  message(STATUS "  Caffe2 version       : ${CAFFE2_VERSION}")
  message(STATUS "  Caffe2 include path  : ${CAFFE2_INCLUDE_DIRS}")
  message(STATUS "  Have CUDA            : ${HAVE_CUDA}")
  if (${HAVE_CUDA})
    message(STATUS "    CUDA version       : ${CUDA_VERSION}")
    message(STATUS "    CuDNN version      : ${CUDNN_VERSION}")
  endif()
endfunction()


================================================
FILE: cmake/legacy/Utils.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# Copied from https://github.com/caffe2/caffe2/blob/master/cmake/Utils.cmake

################################################################################################
# Exclude and prepend functionalities
function (exclude OUTPUT INPUT)
set(EXCLUDES ${ARGN})
foreach(EXCLUDE ${EXCLUDES})
        list(REMOVE_ITEM INPUT "${EXCLUDE}")
endforeach()
set(${OUTPUT} ${INPUT} PARENT_SCOPE)
endfunction(exclude)

function (prepend OUTPUT PREPEND)
set(OUT "")
foreach(ITEM ${ARGN})
        list(APPEND OUT "${PREPEND}${ITEM}")
endforeach()
set(${OUTPUT} ${OUT} PARENT_SCOPE)
endfunction(prepend)


################################################################################################
# Clears variables from list
# Usage:
#   caffe_clear_vars(<variables_list>)
macro(caffe_clear_vars)
  foreach(_var ${ARGN})
    unset(${_var})
  endforeach()
endmacro()

################################################################################################
# Prints list element per line
# Usage:
#   caffe_print_list(<list>)
function(caffe_print_list)
  foreach(e ${ARGN})
    message(STATUS ${e})
  endforeach()
endfunction()

################################################################################################
# Reads set of version defines from the header file
# Usage:
#   caffe_parse_header(<file> <define1> <define2> <define3> ..)
macro(caffe_parse_header FILENAME FILE_VAR)
  set(vars_regex "")
  set(__parnet_scope OFF)
  set(__add_cache OFF)
  foreach(name ${ARGN})
    if("${name}" STREQUAL "PARENT_SCOPE")
      set(__parnet_scope ON)
    elseif("${name}" STREQUAL "CACHE")
      set(__add_cache ON)
    elseif(vars_regex)
      set(vars_regex "${vars_regex}|${name}")
    else()
      set(vars_regex "${name}")
    endif()
  endforeach()
  if(EXISTS "${FILENAME}")
    file(STRINGS "${FILENAME}" ${FILE_VAR} REGEX "#define[ \t]+(${vars_regex})[ \t]+[0-9]+" )
  else()
    unset(${FILE_VAR})
  endif()
  foreach(name ${ARGN})
    if(NOT "${name}" STREQUAL "PARENT_SCOPE" AND NOT "${name}" STREQUAL "CACHE")
      if(${FILE_VAR})
        if(${FILE_VAR} MATCHES ".+[ \t]${name}[ \t]+([0-9]+).*")
          string(REGEX REPLACE ".+[ \t]${name}[ \t]+([0-9]+).*" "\\1" ${name} "${${FILE_VAR}}")
        else()
          set(${name} "")
        endif()
        if(__add_cache)
          set(${name} ${${name}} CACHE INTERNAL "${name} parsed from ${FILENAME}" FORCE)
        elseif(__parnet_scope)
          set(${name} "${${name}}" PARENT_SCOPE)
        endif()
      else()
        unset(${name} CACHE)
      endif()
    endif()
  endforeach()
endmacro()

################################################################################################
# Reads single version define from the header file and parses it
# Usage:
#   caffe_parse_header_single_define(<library_name> <file> <define_name>)
function(caffe_parse_header_single_define LIBNAME HDR_PATH VARNAME)
  set(${LIBNAME}_H "")
  if(EXISTS "${HDR_PATH}")
    file(STRINGS "${HDR_PATH}" ${LIBNAME}_H REGEX "^#define[ \t]+${VARNAME}[ \t]+\"[^\"]*\".*$" LIMIT_COUNT 1)
  endif()

  if(${LIBNAME}_H)
    string(REGEX REPLACE "^.*[ \t]${VARNAME}[ \t]+\"([0-9]+).*$" "\\1" ${LIBNAME}_VERSION_MAJOR "${${LIBNAME}_H}")
    string(REGEX REPLACE "^.*[ \t]${VARNAME}[ \t]+\"[0-9]+\\.([0-9]+).*$" "\\1" ${LIBNAME}_VERSION_MINOR  "${${LIBNAME}_H}")
    string(REGEX REPLACE "^.*[ \t]${VARNAME}[ \t]+\"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" ${LIBNAME}_VERSION_PATCH "${${LIBNAME}_H}")
    set(${LIBNAME}_VERSION_MAJOR ${${LIBNAME}_VERSION_MAJOR} ${ARGN} PARENT_SCOPE)
    set(${LIBNAME}_VERSION_MINOR ${${LIBNAME}_VERSION_MINOR} ${ARGN} PARENT_SCOPE)
    set(${LIBNAME}_VERSION_PATCH ${${LIBNAME}_VERSION_PATCH} ${ARGN} PARENT_SCOPE)
    set(${LIBNAME}_VERSION_STRING "${${LIBNAME}_VERSION_MAJOR}.${${LIBNAME}_VERSION_MINOR}.${${LIBNAME}_VERSION_PATCH}" PARENT_SCOPE)

    # append a TWEAK version if it exists:
    set(${LIBNAME}_VERSION_TWEAK "")
    if("${${LIBNAME}_H}" MATCHES "^.*[ \t]${VARNAME}[ \t]+\"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$")
      set(${LIBNAME}_VERSION_TWEAK "${CMAKE_MATCH_1}" ${ARGN} PARENT_SCOPE)
    endif()
    if(${LIBNAME}_VERSION_TWEAK)
      set(${LIBNAME}_VERSION_STRING "${${LIBNAME}_VERSION_STRING}.${${LIBNAME}_VERSION_TWEAK}" ${ARGN} PARENT_SCOPE)
    else()
      set(${LIBNAME}_VERSION_STRING "${${LIBNAME}_VERSION_STRING}" ${ARGN} PARENT_SCOPE)
    endif()
  endif()
endfunction()

########################################################################################################
# An option that the user can select. Can accept condition to control when option is available for user.
# Usage:
#   caffe_option(<option_variable> "doc string" <initial value or boolean expression> [IF <condition>])
function(caffe_option variable description value)
  set(__value ${value})
  set(__condition "")
  set(__varname "__value")
  foreach(arg ${ARGN})
    if(arg STREQUAL "IF" OR arg STREQUAL "if")
      set(__varname "__condition")
    else()
      list(APPEND ${__varname} ${arg})
    endif()
  endforeach()
  unset(__varname)
  if("${__condition}" STREQUAL "")
    set(__condition 2 GREATER 1)
  endif()

  if(${__condition})
    if("${__value}" MATCHES ";")
      if(${__value})
        option(${variable} "${description}" ON)
      else()
        option(${variable} "${description}" OFF)
      endif()
    elseif(DEFINED ${__value})
      if(${__value})
        option(${variable} "${description}" ON)
      else()
        option(${variable} "${description}" OFF)
      endif()
    else()
      option(${variable} "${description}" ${__value})
    endif()
  else()
    unset(${variable} CACHE)
  endif()
endfunction()

##############################################################################
# Helper function to add as-needed flag around a library.
function(caffe_add_as_needed_flag lib output_var)
  if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
    # TODO: Clang seems to not need this flag. Double check.
    set(${output_var} ${lib} PARENT_SCOPE)
  elseif(MSVC)
    # TODO: check what is the behavior of MSVC.
    # In MSVC, we will add whole archive in default.
    set(${output_var} ${lib} PARENT_SCOPE)
  else()
    # Assume everything else is like gcc: we will need as-needed flag.
    set(${output_var} -Wl,--no-as-needed ${lib} -Wl,--as-needed PARENT_SCOPE)
  endif()
endfunction()

##############################################################################
# Helper function to add whole_archive flag around a library.
function(caffe_add_whole_archive_flag lib output_var)
  if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
    set(${output_var} -Wl,-force_load,$<TARGET_FILE:${lib}> PARENT_SCOPE)
  elseif(MSVC)
    # In MSVC, we will add whole archive in default.
    set(${output_var} -WHOLEARCHIVE:$<TARGET_FILE:${lib}> PARENT_SCOPE)
  else()
    # Assume everything else is like gcc
    set(${output_var} -Wl,--whole-archive ${lib} -Wl,--no-whole-archive PARENT_SCOPE)
  endif()
endfunction()

##############################################################################
# Helper function to add either as-needed, or whole_archive flag around a library.
function(caffe_add_linker_flag lib output_var)
  if (BUILD_SHARED_LIBS)
    caffe_add_as_needed_flag(${lib} tmp)
  else()
    caffe_add_whole_archive_flag(${lib} tmp)
  endif()
  set(${output_var} ${tmp} PARENT_SCOPE)
endfunction()

##############################################################################
# Helper function to automatically generate __init__.py files where python
# sources reside but there are no __init__.py present.
function(caffe_autogen_init_py_files)
  file(GLOB_RECURSE all_python_files RELATIVE ${PROJECT_SOURCE_DIR}
       "${PROJECT_SOURCE_DIR}/caffe2/*.py")
  set(python_paths_need_init_py)
  foreach(python_file ${all_python_files})
    get_filename_component(python_path ${python_file} PATH)
    string(REPLACE "/" ";" path_parts ${python_path})
    set(rebuilt_path ${CMAKE_BINARY_DIR})
    foreach(path_part ${path_parts})
      set(rebuilt_path "${rebuilt_path}/${path_part}")
      list(APPEND python_paths_need_init_py ${rebuilt_path})
    endforeach()
  endforeach()
  list(REMOVE_DUPLICATES python_paths_need_init_py)
  # Since the _pb2.py files are yet to be created, we will need to manually
  # add them to the list.
  list(APPEND python_paths_need_init_py ${CMAKE_BINARY_DIR}/caffe)
  list(APPEND python_paths_need_init_py ${CMAKE_BINARY_DIR}/caffe/proto)
  list(APPEND python_paths_need_init_py ${CMAKE_BINARY_DIR}/caffe2/proto)

  foreach(tmp ${python_paths_need_init_py})
    if(NOT EXISTS ${tmp}/__init__.py)
      # message(STATUS "Generate " ${tmp}/__init__.py)
      file(WRITE ${tmp}/__init__.py "")
    endif()
  endforeach()
endfunction()

##############################################################################
# Creating a Caffe2 binary target with sources specified with relative path.
# Usage:
#   caffe2_binary_target(target_name_or_src <src1> [<src2>] [<src3>] ...)
# If only target_name_or_src is specified, this target is build with one single
# source file and the target name is autogen from the filename. Otherwise, the
# target name is given by the first argument and the rest are the source files
# to build the target.
function(caffe2_binary_target target_name_or_src)
  if (${ARGN})
    set(__target ${target_name_or_src})
    prepend(__srcs "${CMAKE_CURRENT_SOURCE_DIR}/" "${ARGN}")
  else()
    get_filename_component(__target ${target_name_or_src} NAME_WE)
    prepend(__srcs "${CMAKE_CURRENT_SOURCE_DIR}/" "${target_name_or_src}")
  endif()
  add_executable(${__target} ${__srcs})
  add_dependencies(${__target} ${Caffe2_MAIN_LIBS_ORDER})
  target_link_libraries(${__target} ${Caffe2_MAIN_LIBS} ${Caffe2_DEPENDENCY_LIBS})
  install(TARGETS ${__target} DESTINATION bin)
endfunction()

##############################################################################
# Helper function to add paths to system include directories.
#
# Anaconda distributions typically contain a lot of packages and some
# of those can conflict with headers/libraries that must be sourced
# from elsewhere. This helper ensures that Anaconda paths are always
# added AFTER other include paths, such that it does not accidentally
# takes precedence when it shouldn't.
#
# This is just a heuristic and does not have any guarantees. We can
# add other corner cases here (as long as they are generic enough).
# A complete include path cross checker is a final resort if this
# hacky approach proves insufficient.
#
function(caffe2_include_directories)
  foreach(path IN LISTS ARGN)
    if (${path} MATCHES "/anaconda")
      include_directories(AFTER SYSTEM ${path})
    else()
      include_directories(BEFORE SYSTEM ${path})
    endif()
  endforeach()
endfunction()


================================================
FILE: cmake/legacy/legacymake.cmake
================================================
# Copyright (c) 2017-present, Facebook, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################

# This file contains legacy cmake scripts that is going to be removed
# in a future release.

# Add CMake modules.
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/legacy/Modules)

# Add compiler flags.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O2 -fPIC -Wno-narrowing")

# Include Caffe2 CMake utils.
include(cmake/legacy/Utils.cmake)

# Find dependencies.
include(cmake/legacy/Dependencies.cmake)

# Print configuration summary.
include(cmake/legacy/Summary.cmake)
detectron_print_config_summary()

# Collect custom ops sources.
file(GLOB CUSTOM_OPS_CPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/detectron/ops/*.cc)
file(GLOB CUSTOM_OPS_GPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/detectron/ops/*.cu)

# Install custom CPU ops lib.
add_library(
     caffe2_detectron_custom_ops SHARED
     ${CUSTOM_OPS_CPU_SRCS})

target_include_directories(
    caffe2_detectron_custom_ops PRIVATE
    ${CAFFE2_INCLUDE_DIRS})
target_link_libraries(caffe2_detectron_custom_ops caffe2)
install(TARGETS caffe2_detectron_custom_ops DESTINATION lib)

# Install custom GPU ops lib.
if (${HAVE_CUDA})
  # Additional -I prefix is required for CMake versions before commit (< 3.7):
  # https://github.com/Kitware/CMake/commit/7ded655f7ba82ea72a82d0555449f2df5ef38594
  list(APPEND CUDA_INCLUDE_DIRS -I${CAFFE2_INCLUDE_DIRS})
  CUDA_ADD_LIBRARY(
      caffe2_detectron_custom_ops_gpu SHARED
      ${CUSTOM_OPS_CPU_SRCS}
      ${CUSTOM_OPS_GPU_SRCS})

  target_link_libraries(caffe2_detectron_custom_ops_gpu caffe2_gpu)
  install(TARGETS caffe2_detectron_custom_ops_gpu DESTINATION lib)
endif()


================================================
FILE: configs/04_2018_gn_baselines/e2e_mask_rcnn_R-101-FPN_2x_gn.yaml
================================================
MODEL:
  TYPE: generalized_rcnn
  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body
  NUM_CLASSES: 81
  FASTER_RCNN: True
  MASK_ON: True
NUM_GPUS: 8
SOLVER:
  WEIGHT_
Download .txt
gitextract_5vn9xfb_/

├── .github/
│   └── issue_template.md
├── .gitignore
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── FAQ.md
├── GETTING_STARTED.md
├── INSTALL.md
├── LICENSE
├── MODEL_ZOO.md
├── Makefile
├── NOTICE
├── README.md
├── cmake/
│   ├── Summary.cmake
│   └── legacy/
│       ├── Cuda.cmake
│       ├── Dependencies.cmake
│       ├── Modules/
│       │   └── FindCuDNN.cmake
│       ├── Summary.cmake
│       ├── Utils.cmake
│       └── legacymake.cmake
├── configs/
│   ├── 04_2018_gn_baselines/
│   │   ├── e2e_mask_rcnn_R-101-FPN_2x_gn.yaml
│   │   ├── e2e_mask_rcnn_R-101-FPN_3x_gn.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_2x_gn.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_3x_gn.yaml
│   │   ├── mask_rcnn_R-50-FPN_1x_gn.yaml
│   │   ├── scratch_e2e_mask_rcnn_R-101-FPN_3x_gn.yaml
│   │   └── scratch_e2e_mask_rcnn_R-50-FPN_3x_gn.yaml
│   ├── 12_2017_baselines/
│   │   ├── e2e_faster_rcnn_R-101-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_R-101-FPN_2x.yaml
│   │   ├── e2e_faster_rcnn_R-50-C4_1x.yaml
│   │   ├── e2e_faster_rcnn_R-50-C4_2x.yaml
│   │   ├── e2e_faster_rcnn_R-50-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_R-50-FPN_2x.yaml
│   │   ├── e2e_faster_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── e2e_faster_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── e2e_faster_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── e2e_keypoint_rcnn_R-101-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_R-101-FPN_s1x.yaml
│   │   ├── e2e_keypoint_rcnn_R-50-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_R-50-FPN_s1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── e2e_keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml
│   │   ├── e2e_mask_rcnn_R-101-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_R-101-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_R-50-C4_1x.yaml
│   │   ├── e2e_mask_rcnn_R-50-C4_2x.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_R-50-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── e2e_mask_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── e2e_mask_rcnn_X-152-32x8d-FPN-IN5k_1.44x.yaml
│   │   ├── fast_rcnn_R-101-FPN_1x.yaml
│   │   ├── fast_rcnn_R-101-FPN_2x.yaml
│   │   ├── fast_rcnn_R-50-C4_1x.yaml
│   │   ├── fast_rcnn_R-50-C4_2x.yaml
│   │   ├── fast_rcnn_R-50-FPN_1x.yaml
│   │   ├── fast_rcnn_R-50-FPN_2x.yaml
│   │   ├── fast_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── fast_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── fast_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── fast_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── keypoint_rcnn_R-101-FPN_1x.yaml
│   │   ├── keypoint_rcnn_R-101-FPN_s1x.yaml
│   │   ├── keypoint_rcnn_R-50-FPN_1x.yaml
│   │   ├── keypoint_rcnn_R-50-FPN_s1x.yaml
│   │   ├── keypoint_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml
│   │   ├── keypoint_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml
│   │   ├── mask_rcnn_R-101-FPN_1x.yaml
│   │   ├── mask_rcnn_R-101-FPN_2x.yaml
│   │   ├── mask_rcnn_R-50-C4_1x.yaml
│   │   ├── mask_rcnn_R-50-C4_2x.yaml
│   │   ├── mask_rcnn_R-50-FPN_1x.yaml
│   │   ├── mask_rcnn_R-50-FPN_2x.yaml
│   │   ├── mask_rcnn_X-101-32x8d-FPN_1x.yaml
│   │   ├── mask_rcnn_X-101-32x8d-FPN_2x.yaml
│   │   ├── mask_rcnn_X-101-64x4d-FPN_1x.yaml
│   │   ├── mask_rcnn_X-101-64x4d-FPN_2x.yaml
│   │   ├── retinanet_R-101-FPN_1x.yaml
│   │   ├── retinanet_R-101-FPN_2x.yaml
│   │   ├── retinanet_R-50-FPN_1x.yaml
│   │   ├── retinanet_R-50-FPN_2x.yaml
│   │   ├── retinanet_X-101-32x8d-FPN_1x.yaml
│   │   ├── retinanet_X-101-32x8d-FPN_2x.yaml
│   │   ├── retinanet_X-101-64x4d-FPN_1x.yaml
│   │   ├── retinanet_X-101-64x4d-FPN_2x.yaml
│   │   ├── rpn_R-101-FPN_1x.yaml
│   │   ├── rpn_R-50-C4_1x.yaml
│   │   ├── rpn_R-50-FPN_1x.yaml
│   │   ├── rpn_X-101-32x8d-FPN_1x.yaml
│   │   ├── rpn_X-101-64x4d-FPN_1x.yaml
│   │   ├── rpn_person_only_R-101-FPN_1x.yaml
│   │   ├── rpn_person_only_R-50-FPN_1x.yaml
│   │   ├── rpn_person_only_X-101-32x8d-FPN_1x.yaml
│   │   └── rpn_person_only_X-101-64x4d-FPN_1x.yaml
│   ├── getting_started/
│   │   ├── tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   │   ├── tutorial_2gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   │   ├── tutorial_4gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   │   └── tutorial_8gpu_e2e_faster_rcnn_R-50-FPN.yaml
│   └── test_time_aug/
│       ├── e2e_mask_rcnn_R-50-FPN_2x.yaml
│       └── keypoint_rcnn_R-50-FPN_1x.yaml
├── demo/
│   └── NOTICE
├── detectron/
│   ├── __init__.py
│   ├── core/
│   │   ├── __init__.py
│   │   ├── config.py
│   │   ├── rpn_generator.py
│   │   ├── test.py
│   │   ├── test_engine.py
│   │   └── test_retinanet.py
│   ├── datasets/
│   │   ├── VOCdevkit-matlab-wrapper/
│   │   │   ├── get_voc_opts.m
│   │   │   ├── voc_eval.m
│   │   │   └── xVOCap.m
│   │   ├── __init__.py
│   │   ├── cityscapes_json_dataset_evaluator.py
│   │   ├── coco_to_cityscapes_id.py
│   │   ├── data/
│   │   │   └── README.md
│   │   ├── dataset_catalog.py
│   │   ├── dummy_datasets.py
│   │   ├── json_dataset.py
│   │   ├── json_dataset_evaluator.py
│   │   ├── roidb.py
│   │   ├── task_evaluation.py
│   │   ├── voc_dataset_evaluator.py
│   │   └── voc_eval.py
│   ├── modeling/
│   │   ├── FPN.py
│   │   ├── ResNet.py
│   │   ├── VGG16.py
│   │   ├── VGG_CNN_M_1024.py
│   │   ├── __init__.py
│   │   ├── detector.py
│   │   ├── fast_rcnn_heads.py
│   │   ├── generate_anchors.py
│   │   ├── keypoint_rcnn_heads.py
│   │   ├── mask_rcnn_heads.py
│   │   ├── model_builder.py
│   │   ├── name_compat.py
│   │   ├── optimizer.py
│   │   ├── retinanet_heads.py
│   │   ├── rfcn_heads.py
│   │   └── rpn_heads.py
│   ├── ops/
│   │   ├── __init__.py
│   │   ├── collect_and_distribute_fpn_rpn_proposals.py
│   │   ├── generate_proposal_labels.py
│   │   ├── generate_proposals.py
│   │   ├── zero_even_op.cc
│   │   ├── zero_even_op.cu
│   │   └── zero_even_op.h
│   ├── roi_data/
│   │   ├── __init__.py
│   │   ├── data_utils.py
│   │   ├── fast_rcnn.py
│   │   ├── keypoint_rcnn.py
│   │   ├── loader.py
│   │   ├── mask_rcnn.py
│   │   ├── minibatch.py
│   │   ├── retinanet.py
│   │   └── rpn.py
│   ├── tests/
│   │   ├── data_loader_benchmark.py
│   │   ├── test_batch_permutation_op.py
│   │   ├── test_bbox_transform.py
│   │   ├── test_cfg.py
│   │   ├── test_loader.py
│   │   ├── test_restore_checkpoint.py
│   │   ├── test_smooth_l1_loss_op.py
│   │   ├── test_spatial_narrow_as_op.py
│   │   └── test_zero_even_op.py
│   └── utils/
│       ├── __init__.py
│       ├── blob.py
│       ├── boxes.py
│       ├── c2.py
│       ├── collections.py
│       ├── colormap.py
│       ├── coordinator.py
│       ├── cython_bbox.pyx
│       ├── cython_nms.pyx
│       ├── env.py
│       ├── image.py
│       ├── io.py
│       ├── keypoints.py
│       ├── logging.py
│       ├── lr_policy.py
│       ├── model_convert_utils.py
│       ├── net.py
│       ├── segms.py
│       ├── subprocess.py
│       ├── timer.py
│       ├── train.py
│       ├── training_stats.py
│       └── vis.py
├── docker/
│   └── Dockerfile
├── projects/
│   └── GN/
│       └── README.md
├── requirements.txt
├── setup.py
└── tools/
    ├── convert_cityscapes_to_coco.py
    ├── convert_coco_model_to_cityscapes.py
    ├── convert_pkl_to_pb.py
    ├── convert_selective_search.py
    ├── generate_testdev_from_test.py
    ├── infer.py
    ├── infer_simple.py
    ├── pickle_caffe_blobs.py
    ├── reval.py
    ├── test_net.py
    ├── train_net.py
    └── visualize_results.py
Download .txt
SYMBOL INDEX (610 symbols across 83 files)

FILE: detectron/core/config.py
  function assert_and_infer_cfg (line 1085) | def assert_and_infer_cfg(cache_urls=True, make_immutable=True):
  function cache_cfg_urls (line 1103) | def cache_cfg_urls():
  function get_output_dir (line 1117) | def get_output_dir(datasets, training=True):
  function load_cfg (line 1131) | def load_cfg(cfg_to_load):
  function merge_cfg_from_file (line 1148) | def merge_cfg_from_file(cfg_filename):
  function merge_cfg_from_cfg (line 1155) | def merge_cfg_from_cfg(cfg_other):
  function merge_cfg_from_list (line 1160) | def merge_cfg_from_list(cfg_list):
  function _merge_a_into_b (line 1184) | def _merge_a_into_b(a, b, stack=None):
  function _key_is_deprecated (line 1219) | def _key_is_deprecated(full_key):
  function _key_is_renamed (line 1228) | def _key_is_renamed(full_key):
  function _raise_key_rename_error (line 1232) | def _raise_key_rename_error(full_key):
  function _decode_cfg_value (line 1245) | def _decode_cfg_value(v):
  function _check_and_coerce_cfg_value_type (line 1278) | def _check_and_coerce_cfg_value_type(value_a, value_b, key, full_key):

FILE: detectron/core/rpn_generator.py
  function generate_rpn_on_dataset (line 55) | def generate_rpn_on_dataset(
  function multi_gpu_generate_rpn_on_dataset (line 87) | def multi_gpu_generate_rpn_on_dataset(
  function generate_rpn_on_range (line 121) | def generate_rpn_on_range(
  function generate_proposals_on_roidb (line 170) | def generate_proposals_on_roidb(
  function im_proposals (line 208) | def im_proposals(model, im):
  function get_roidb (line 253) | def get_roidb(dataset_name, ind_range):
  function evaluate_proposal_file (line 272) | def evaluate_proposal_file(dataset, proposal_file, output_dir):

FILE: detectron/core/test.py
  function im_detect_all (line 52) | def im_detect_all(model, im, box_proposals, timers=None):
  function im_conv_body_only (line 111) | def im_conv_body_only(model, im, target_scale, target_max_size):
  function im_detect_bbox (line 121) | def im_detect_bbox(model, im, target_scale, target_max_size, boxes=None):
  function im_detect_bbox_aug (line 197) | def im_detect_bbox_aug(model, im, box_proposals=None):
  function im_detect_bbox_hflip (line 294) | def im_detect_bbox_hflip(
  function im_detect_bbox_scale (line 319) | def im_detect_bbox_scale(
  function im_detect_bbox_aspect_ratio (line 336) | def im_detect_bbox_aspect_ratio(
  function im_detect_mask (line 373) | def im_detect_mask(model, im_scale, boxes):
  function im_detect_mask_aug (line 416) | def im_detect_mask_aug(model, im, boxes):
  function im_detect_mask_hflip (line 489) | def im_detect_mask_hflip(model, im, target_scale, target_max_size, boxes):
  function im_detect_mask_scale (line 506) | def im_detect_mask_scale(
  function im_detect_mask_aspect_ratio (line 520) | def im_detect_mask_aspect_ratio(model, im, aspect_ratio, boxes, hflip=Fa...
  function im_detect_keypoints (line 540) | def im_detect_keypoints(model, im_scale, boxes):
  function im_detect_keypoints_aug (line 581) | def im_detect_keypoints_aug(model, im, boxes):
  function im_detect_keypoints_hflip (line 668) | def im_detect_keypoints_hflip(model, im, target_scale, target_max_size, ...
  function im_detect_keypoints_scale (line 685) | def im_detect_keypoints_scale(
  function im_detect_keypoints_aspect_ratio (line 699) | def im_detect_keypoints_aspect_ratio(
  function combine_heatmaps_size_dep (line 721) | def combine_heatmaps_size_dep(hms_ts, ds_ts, us_ts, boxes, heur_f):
  function box_results_with_nms_and_limit (line 749) | def box_results_with_nms_and_limit(scores, boxes):
  function segm_results (line 812) | def segm_results(cls_boxes, masks, ref_boxes, im_h, im_w):
  function keypoint_results (line 870) | def keypoint_results(cls_boxes, pred_heatmaps, ref_boxes):
  function _get_rois_blob (line 889) | def _get_rois_blob(im_rois, im_scale):
  function _project_im_rois (line 905) | def _project_im_rois(im_rois, scales):
  function _add_multilevel_rois_for_test (line 921) | def _add_multilevel_rois_for_test(blobs, name):
  function _get_blobs (line 942) | def _get_blobs(im, rois, target_scale, target_max_size):

FILE: detectron/core/test_engine.py
  function get_eval_functions (line 51) | def get_eval_functions():
  function get_inference_dataset (line 65) | def get_inference_dataset(index, is_parent=True):
  function run_inference (line 84) | def run_inference(
  function test_net_on_dataset (line 139) | def test_net_on_dataset(
  function multi_gpu_test_net_on_dataset (line 168) | def multi_gpu_test_net_on_dataset(
  function test_net (line 217) | def test_net(
  function initialize_model_from_cfg (line 323) | def initialize_model_from_cfg(weights_file, gpu_id=0):
  function get_roidb_and_dataset (line 341) | def get_roidb_and_dataset(dataset_name, proposal_file, ind_range):
  function empty_results (line 367) | def empty_results(num_classes, num_images):
  function extend_results (line 389) | def extend_results(index, all_res, im_res):

FILE: detectron/core/test_retinanet.py
  function _create_cell_anchors (line 38) | def _create_cell_anchors():
  function im_detect_bbox (line 67) | def im_detect_bbox(model, im, timers=None):

FILE: detectron/datasets/cityscapes_json_dataset_evaluator.py
  function evaluate_masks (line 36) | def evaluate_masks(

FILE: detectron/datasets/coco_to_cityscapes_id.py
  function cityscapes_to_coco (line 38) | def cityscapes_to_coco(cityscapes_id):
  function cityscapes_to_coco_with_rider (line 53) | def cityscapes_to_coco_with_rider(cityscapes_id):
  function cityscapes_to_coco_without_person_rider (line 68) | def cityscapes_to_coco_without_person_rider(cityscapes_id):
  function cityscapes_to_coco_all_random (line 83) | def cityscapes_to_coco_all_random(cityscapes_id):

FILE: detectron/datasets/dataset_catalog.py
  function datasets (line 208) | def datasets():
  function contains (line 213) | def contains(name):
  function get_im_dir (line 218) | def get_im_dir(name):
  function get_ann_fn (line 223) | def get_ann_fn(name):
  function get_im_prefix (line 228) | def get_im_prefix(name):
  function get_devkit_dir (line 233) | def get_devkit_dir(name):
  function get_raw_dir (line 238) | def get_raw_dir(name):

FILE: detectron/datasets/dummy_datasets.py
  function get_coco_dataset (line 28) | def get_coco_dataset():

FILE: detectron/datasets/json_dataset.py
  class JsonDataset (line 51) | class JsonDataset:
    method __init__ (line 54) | def __init__(self, name):
    method get_roidb (line 83) | def get_roidb(
    method _prep_roidb_entry (line 128) | def _prep_roidb_entry(self, entry):
    method _add_gt_annotations (line 161) | def _add_gt_annotations(self, entry):
    method _add_proposals_from_file (line 249) | def _add_proposals_from_file(
    method _init_keypoints (line 282) | def _init_keypoints(self):
    method _get_gt_keypoints (line 311) | def _get_gt_keypoints(self, obj):
  function add_proposals (line 331) | def add_proposals(roidb, rois, scales, crowd_thresh):
  function _merge_proposal_boxes_into_roidb (line 347) | def _merge_proposal_boxes_into_roidb(roidb, box_list):
  function _filter_crowd_proposals (line 411) | def _filter_crowd_proposals(roidb, crowd_thresh):
  function _add_class_assignments (line 431) | def _add_class_assignments(roidb):
  function _sort_proposals (line 452) | def _sort_proposals(proposals, id_field):
  function _remove_proposals_not_in_roidb (line 460) | def _remove_proposals_not_in_roidb(proposals, roidb, id_field):

FILE: detectron/datasets/json_dataset_evaluator.py
  function evaluate_masks (line 39) | def evaluate_masks(
  function _write_coco_segms_results_file (line 70) | def _write_coco_segms_results_file(
  function _coco_segms_results_one_category (line 103) | def _coco_segms_results_one_category(json_dataset, boxes, segms, cat_id):
  function _do_segmentation_eval (line 129) | def _do_segmentation_eval(json_dataset, res_file, output_dir):
  function evaluate_boxes (line 141) | def evaluate_boxes(
  function _write_coco_bbox_results_file (line 166) | def _write_coco_bbox_results_file(json_dataset, all_boxes, res_file):
  function _coco_bbox_results_one_category (line 186) | def _coco_bbox_results_one_category(json_dataset, boxes, cat_id):
  function _do_detection_eval (line 210) | def _do_detection_eval(json_dataset, res_file, output_dir):
  function _log_detection_eval_metrics (line 222) | def _log_detection_eval_metrics(json_dataset, coco_eval):
  function evaluate_box_proposals (line 255) | def evaluate_box_proposals(
  function evaluate_keypoints (line 357) | def evaluate_keypoints(
  function _write_coco_keypoint_results_file (line 388) | def _write_coco_keypoint_results_file(
  function _coco_kp_results_one_category (line 410) | def _coco_kp_results_one_category(json_dataset, boxes, kps, cat_id):
  function _do_keypoint_eval (line 458) | def _do_keypoint_eval(json_dataset, res_file, output_dir):

FILE: detectron/datasets/roidb.py
  function combined_roidb_for_training (line 36) | def combined_roidb_for_training(dataset_names, proposal_files):
  function extend_with_flipped_entries (line 76) | def extend_with_flipped_entries(roidb, dataset):
  function filter_for_training (line 111) | def filter_for_training(roidb):
  function add_bbox_regression_targets (line 139) | def add_bbox_regression_targets(roidb):
  function compute_bbox_regression_targets (line 145) | def compute_bbox_regression_targets(entry):
  function _compute_and_log_stats (line 179) | def _compute_and_log_stats(roidb):

FILE: detectron/datasets/task_evaluation.py
  function evaluate_all (line 53) | def evaluate_all(
  function evaluate_boxes (line 74) | def evaluate_boxes(dataset, all_boxes, output_dir, use_matlab=False):
  function evaluate_masks (line 103) | def evaluate_masks(dataset, all_boxes, all_segms, output_dir):
  function evaluate_keypoints (line 134) | def evaluate_keypoints(dataset, all_boxes, all_keyps, output_dir):
  function evaluate_box_proposals (line 152) | def evaluate_box_proposals(dataset, roidb):
  function log_box_proposal_results (line 170) | def log_box_proposal_results(results):
  function log_copy_paste_friendly_results (line 180) | def log_copy_paste_friendly_results(results):
  function check_expected_results (line 194) | def check_expected_results(results, atol=0.005, rtol=0.1):
  function _use_json_dataset_evaluator (line 270) | def _use_json_dataset_evaluator(dataset):
  function _use_cityscapes_evaluator (line 275) | def _use_cityscapes_evaluator(dataset):
  function _use_voc_evaluator (line 280) | def _use_voc_evaluator(dataset):
  function _coco_eval_to_box_results (line 301) | def _coco_eval_to_box_results(coco_eval):
  function _coco_eval_to_mask_results (line 314) | def _coco_eval_to_mask_results(coco_eval):
  function _coco_eval_to_keypoint_results (line 327) | def _coco_eval_to_keypoint_results(coco_eval):
  function _voc_eval_to_box_results (line 339) | def _voc_eval_to_box_results(voc_eval):
  function _cs_eval_to_mask_results (line 344) | def _cs_eval_to_mask_results(cs_eval):
  function _empty_box_results (line 349) | def _empty_box_results():
  function _empty_mask_results (line 365) | def _empty_mask_results():
  function _empty_keypoint_results (line 381) | def _empty_keypoint_results():
  function _empty_box_proposal_results (line 396) | def _empty_box_proposal_results():

FILE: detectron/datasets/voc_dataset_evaluator.py
  function evaluate_boxes (line 37) | def evaluate_boxes(
  function _write_voc_results_files (line 57) | def _write_voc_results_files(json_dataset, all_boxes, salt):
  function _get_voc_results_file_template (line 94) | def _get_voc_results_file_template(json_dataset, salt):
  function _do_python_eval (line 104) | def _do_python_eval(json_dataset, salt, output_dir='output'):
  function _do_matlab_eval (line 145) | def _do_matlab_eval(json_dataset, salt, output_dir='output'):
  function voc_info (line 163) | def voc_info(json_dataset):

FILE: detectron/datasets/voc_eval.py
  function parse_rec (line 36) | def parse_rec(filename):
  function voc_ap (line 56) | def voc_ap(rec, prec, use_07_metric=False):
  function voc_eval (line 88) | def voc_eval(detpath,

FILE: detectron/modeling/FPN.py
  function add_fpn_ResNet50_conv5_body (line 46) | def add_fpn_ResNet50_conv5_body(model):
  function add_fpn_ResNet50_conv5_P2only_body (line 52) | def add_fpn_ResNet50_conv5_P2only_body(model):
  function add_fpn_ResNet101_conv5_body (line 61) | def add_fpn_ResNet101_conv5_body(model):
  function add_fpn_ResNet101_conv5_P2only_body (line 67) | def add_fpn_ResNet101_conv5_P2only_body(model):
  function add_fpn_ResNet152_conv5_body (line 76) | def add_fpn_ResNet152_conv5_body(model):
  function add_fpn_ResNet152_conv5_P2only_body (line 82) | def add_fpn_ResNet152_conv5_P2only_body(model):
  function add_fpn_onto_conv_body (line 95) | def add_fpn_onto_conv_body(
  function add_fpn (line 117) | def add_fpn(model, fpn_level_info):
  function add_topdown_lateral_module (line 259) | def add_topdown_lateral_module(
  function get_min_max_levels (line 301) | def get_min_max_levels():
  function add_fpn_rpn_outputs (line 323) | def add_fpn_rpn_outputs(model, blobs_in, dim_in, spatial_scales):
  function add_fpn_rpn_losses (line 440) | def add_fpn_rpn_losses(model):
  function map_rois_to_fpn_levels (line 493) | def map_rois_to_fpn_levels(rois, k_min, k_max):
  function add_multilevel_roi_blobs (line 508) | def add_multilevel_roi_blobs(
  function fpn_level_info_ResNet50_conv5 (line 547) | def fpn_level_info_ResNet50_conv5():
  function fpn_level_info_ResNet101_conv5 (line 555) | def fpn_level_info_ResNet101_conv5():
  function fpn_level_info_ResNet152_conv5 (line 563) | def fpn_level_info_ResNet152_conv5():

FILE: detectron/modeling/ResNet.py
  function add_ResNet50_conv4_body (line 35) | def add_ResNet50_conv4_body(model):
  function add_ResNet50_conv5_body (line 39) | def add_ResNet50_conv5_body(model):
  function add_ResNet101_conv4_body (line 43) | def add_ResNet101_conv4_body(model):
  function add_ResNet101_conv5_body (line 47) | def add_ResNet101_conv5_body(model):
  function add_ResNet152_conv5_body (line 51) | def add_ResNet152_conv5_body(model):
  function add_stage (line 60) | def add_stage(
  function add_ResNet_convX_body (line 91) | def add_ResNet_convX_body(model, block_counts):
  function add_ResNet_roi_conv5_head (line 129) | def add_ResNet_roi_conv5_head(model, blob_in, dim_in, spatial_scale):
  function add_residual_block (line 153) | def add_residual_block(
  function basic_bn_shortcut (line 203) | def basic_bn_shortcut(model, prefix, blob_in, dim_in, dim_out, stride):
  function basic_gn_shortcut (line 223) | def basic_gn_shortcut(model, prefix, blob_in, dim_in, dim_out, stride):
  function basic_bn_stem (line 246) | def basic_bn_stem(model, data, **kwargs):
  function basic_gn_stem (line 259) | def basic_gn_stem(model, data, **kwargs):
  function bottleneck_transformation (line 276) | def bottleneck_transformation(
  function bottleneck_gn_transformation (line 336) | def bottleneck_gn_transformation(

FILE: detectron/modeling/VGG16.py
  function add_VGG16_conv5_body (line 26) | def add_VGG16_conv5_body(model):
  function add_VGG16_roi_fc_head (line 61) | def add_VGG16_roi_fc_head(model, blob_in, dim_in, spatial_scale):

FILE: detectron/modeling/VGG_CNN_M_1024.py
  function add_VGG_CNN_M_1024_conv5_body (line 26) | def add_VGG_CNN_M_1024_conv5_body(model):
  function add_VGG_CNN_M_1024_roi_fc_head (line 47) | def add_VGG_CNN_M_1024_roi_fc_head(model, blob_in, dim_in, spatial_scale):

FILE: detectron/modeling/detector.py
  class DetectionModelHelper (line 43) | class DetectionModelHelper(cnn.CNNModelHelper):
    method __init__ (line 44) | def __init__(self, **kwargs):
    method TrainableParams (line 68) | def TrainableParams(self, gpu_id=-1):
    method AffineChannel (line 81) | def AffineChannel(self, blob_in, blob_out, dim, inplace=False):
    method GenerateProposals (line 107) | def GenerateProposals(self, blobs_in, blobs_out, anchors, spatial_scale):
    method GenerateProposalLabels (line 170) | def GenerateProposalLabels(self, blobs_in):
    method CollectAndDistributeFpnRpnProposals (line 202) | def CollectAndDistributeFpnRpnProposals(self):
    method DropoutIfTraining (line 258) | def DropoutIfTraining(self, blob_in, dropout_rate):
    method RoIFeatureTransform (line 268) | def RoIFeatureTransform(
    method ConvShared (line 333) | def ConvShared(
    method BilinearInterpolation (line 368) | def BilinearInterpolation(
    method ConvAffine (line 414) | def ConvAffine(  # args in the same order of Conv()
    method ConvGN (line 444) | def ConvGN(  # args in the same order of Conv()
    method DisableCudnn (line 486) | def DisableCudnn(self):
    method RestorePreviousUseCudnn (line 490) | def RestorePreviousUseCudnn(self):
    method UpdateWorkspaceLr (line 495) | def UpdateWorkspaceLr(self, cur_iter, new_lr):
    method _SetNewLr (line 513) | def _SetNewLr(self, cur_lr, new_lr):
    method _CorrectMomentum (line 525) | def _CorrectMomentum(self, correction):
    method GetLossScale (line 547) | def GetLossScale(self):
    method AddLosses (line 554) | def AddLosses(self, losses):
    method AddMetrics (line 561) | def AddMetrics(self, metrics):
  function _get_lr_change_ratio (line 567) | def _get_lr_change_ratio(cur_lr, new_lr):

FILE: detectron/modeling/fast_rcnn_heads.py
  function add_fast_rcnn_outputs (line 46) | def add_fast_rcnn_outputs(model, blob_in, dim):
  function add_fast_rcnn_losses (line 75) | def add_fast_rcnn_losses(model):
  function add_roi_2mlp_head (line 100) | def add_roi_2mlp_head(model, blob_in, dim_in, spatial_scale):
  function add_roi_Xconv1fc_head (line 120) | def add_roi_Xconv1fc_head(model, blob_in, dim_in, spatial_scale):
  function add_roi_Xconv1fc_gn_head (line 151) | def add_roi_Xconv1fc_gn_head(model, blob_in, dim_in, spatial_scale):

FILE: detectron/modeling/generate_anchors.py
  function generate_anchors (line 54) | def generate_anchors(
  function _generate_anchors (line 68) | def _generate_anchors(base_size, scales, aspect_ratios):
  function _whctrs (line 80) | def _whctrs(anchor):
  function _mkanchors (line 89) | def _mkanchors(ws, hs, x_ctr, y_ctr):
  function _ratio_enum (line 106) | def _ratio_enum(anchor, ratios):
  function _scale_enum (line 117) | def _scale_enum(anchor, scales):

FILE: detectron/modeling/keypoint_rcnn_heads.py
  function add_keypoint_outputs (line 46) | def add_keypoint_outputs(model, blob_in, dim):
  function add_keypoint_losses (line 110) | def add_keypoint_losses(model):
  function add_ResNet_roi_conv5_head_for_keypoints (line 156) | def add_ResNet_roi_conv5_head_for_keypoints(
  function add_roi_pose_head_v1convX (line 187) | def add_roi_pose_head_v1convX(model, blob_in, dim_in, spatial_scale):

FILE: detectron/modeling/mask_rcnn_heads.py
  function add_mask_rcnn_outputs (line 47) | def add_mask_rcnn_outputs(model, blob_in, dim):
  function add_mask_rcnn_losses (line 96) | def add_mask_rcnn_losses(model, blob_mask):
  function mask_rcnn_fcn_head_v1up4convs (line 112) | def mask_rcnn_fcn_head_v1up4convs(model, blob_in, dim_in, spatial_scale):
  function mask_rcnn_fcn_head_v1up4convs_gn (line 119) | def mask_rcnn_fcn_head_v1up4convs_gn(model, blob_in, dim_in, spatial_sca...
  function mask_rcnn_fcn_head_v1up (line 126) | def mask_rcnn_fcn_head_v1up(model, blob_in, dim_in, spatial_scale):
  function mask_rcnn_fcn_head_v1upXconvs (line 133) | def mask_rcnn_fcn_head_v1upXconvs(
  function mask_rcnn_fcn_head_v1upXconvs_gn (line 183) | def mask_rcnn_fcn_head_v1upXconvs_gn(
  function mask_rcnn_fcn_head_v0upshare (line 233) | def mask_rcnn_fcn_head_v0upshare(model, blob_in, dim_in, spatial_scale):
  function mask_rcnn_fcn_head_v0up (line 275) | def mask_rcnn_fcn_head_v0up(model, blob_in, dim_in, spatial_scale):
  function add_ResNet_roi_conv5_head_for_masks (line 302) | def add_ResNet_roi_conv5_head_for_masks(model, blob_in, dim_in, spatial_...

FILE: detectron/modeling/model_builder.py
  function generalized_rcnn (line 74) | def generalized_rcnn(model):
  function rfcn (line 93) | def rfcn(model):
  function retinanet (line 98) | def retinanet(model):
  function create (line 107) | def create(model_type_func, train=False, gpu_id=0):
  function get_func (line 127) | def get_func(func_name):
  function build_generic_detection_model (line 155) | def build_generic_detection_model(
  function _narrow_to_fpn_roi_levels (line 233) | def _narrow_to_fpn_roi_levels(blobs, spatial_scales):
  function _add_fast_rcnn_head (line 249) | def _add_fast_rcnn_head(
  function _add_roi_mask_head (line 264) | def _add_roi_mask_head(
  function _add_roi_keypoint_head (line 294) | def _add_roi_keypoint_head(
  function build_generic_rfcn_model (line 324) | def build_generic_rfcn_model(model, add_conv_body_func, dim_reduce=None):
  function build_generic_retinanet_model (line 341) | def build_generic_retinanet_model(
  function add_training_inputs (line 368) | def add_training_inputs(model, roidb=None):
  function add_inference_inputs (line 406) | def add_inference_inputs(model):
  function fast_rcnn (line 439) | def fast_rcnn(model):
  function mask_rcnn (line 444) | def mask_rcnn(model):
  function keypoint_rcnn (line 452) | def keypoint_rcnn(model):
  function mask_and_keypoint_rcnn (line 460) | def mask_and_keypoint_rcnn(model):
  function rpn (line 468) | def rpn(model):
  function fpn_rpn (line 476) | def fpn_rpn(model):
  function faster_rcnn (line 484) | def faster_rcnn(model):
  function fast_rcnn_frozen_features (line 492) | def fast_rcnn_frozen_features(model):
  function rpn_frozen_features (line 502) | def rpn_frozen_features(model):
  function fpn_rpn_frozen_features (line 509) | def fpn_rpn_frozen_features(model):
  function mask_rcnn_frozen_features (line 516) | def mask_rcnn_frozen_features(model):
  function keypoint_rcnn_frozen_features (line 527) | def keypoint_rcnn_frozen_features(model):
  function VGG_CNN_M_1024_fast_rcnn (line 543) | def VGG_CNN_M_1024_fast_rcnn(model):
  function VGG16_fast_rcnn (line 550) | def VGG16_fast_rcnn(model):
  function ResNet50_fast_rcnn (line 556) | def ResNet50_fast_rcnn(model):
  function ResNet101_fast_rcnn (line 562) | def ResNet101_fast_rcnn(model):
  function ResNet50_fast_rcnn_frozen_features (line 568) | def ResNet50_fast_rcnn_frozen_features(model):
  function ResNet101_fast_rcnn_frozen_features (line 577) | def ResNet101_fast_rcnn_frozen_features(model):
  function VGG_CNN_M_1024_rpn (line 591) | def VGG_CNN_M_1024_rpn(model):
  function VGG16_rpn (line 597) | def VGG16_rpn(model):
  function ResNet50_rpn_conv4 (line 601) | def ResNet50_rpn_conv4(model):
  function ResNet101_rpn_conv4 (line 605) | def ResNet101_rpn_conv4(model):
  function VGG_CNN_M_1024_rpn_frozen_features (line 609) | def VGG_CNN_M_1024_rpn_frozen_features(model):
  function VGG16_rpn_frozen_features (line 617) | def VGG16_rpn_frozen_features(model):
  function ResNet50_rpn_conv4_frozen_features (line 623) | def ResNet50_rpn_conv4_frozen_features(model):
  function ResNet101_rpn_conv4_frozen_features (line 629) | def ResNet101_rpn_conv4_frozen_features(model):
  function VGG16_faster_rcnn (line 640) | def VGG16_faster_rcnn(model):
  function ResNet50_faster_rcnn (line 647) | def ResNet50_faster_rcnn(model):
  function ResNet101_faster_rcnn (line 654) | def ResNet101_faster_rcnn(model):
  function ResNet50_rfcn (line 666) | def ResNet50_rfcn(model):
  function ResNet101_rfcn (line 672) | def ResNet101_rfcn(model):

FILE: detectron/modeling/name_compat.py
  function get_new_name (line 59) | def get_new_name(func_name):

FILE: detectron/modeling/optimizer.py
  function build_data_parallel_model (line 33) | def build_data_parallel_model(model, single_gpu_build_func):
  function _build_forward_graph (line 57) | def _build_forward_graph(model, single_gpu_build_func):
  function _add_allreduce_graph (line 67) | def _add_allreduce_graph(model):
  function add_single_gpu_param_update_ops (line 90) | def add_single_gpu_param_update_ops(model, gpu_id):

FILE: detectron/modeling/retinanet_heads.py
  function get_retinanet_bias_init (line 29) | def get_retinanet_bias_init(model):
  function add_fpn_retinanet_outputs (line 63) | def add_fpn_retinanet_outputs(model, blobs_in, dim_in, spatial_scales):
  function add_fpn_retinanet_losses (line 248) | def add_fpn_retinanet_losses(model):

FILE: detectron/modeling/rfcn_heads.py
  function add_rfcn_outputs (line 30) | def add_rfcn_outputs(model, blob_in, dim_in, dim_reduce, spatial_scale):

FILE: detectron/modeling/rpn_heads.py
  function add_generic_rpn_outputs (line 33) | def add_generic_rpn_outputs(model, blob_in, dim_in, spatial_scale_in):
  function add_single_scale_rpn_outputs (line 55) | def add_single_scale_rpn_outputs(model, blob_in, dim_in, spatial_scale):
  function add_single_scale_rpn_losses (line 125) | def add_single_scale_rpn_losses(model):

FILE: detectron/ops/collect_and_distribute_fpn_rpn_proposals.py
  class CollectAndDistributeFpnRpnProposalsOp (line 31) | class CollectAndDistributeFpnRpnProposalsOp:
    method __init__ (line 32) | def __init__(self, train):
    method forward (line 35) | def forward(self, inputs, outputs):
  function collect (line 71) | def collect(inputs, is_training):
  function distribute (line 91) | def distribute(rois, label_blobs, outputs, train):

FILE: detectron/ops/generate_proposal_labels.py
  class GenerateProposalLabelsOp (line 31) | class GenerateProposalLabelsOp:
    method forward (line 33) | def forward(self, inputs, outputs):

FILE: detectron/ops/generate_proposals.py
  class GenerateProposalsOp (line 30) | class GenerateProposalsOp:
    method __init__ (line 38) | def __init__(self, anchors, spatial_scale, train, reg_weights=(1.0, 1....
    method forward (line 45) | def forward(self, inputs, outputs):
    method proposals_for_one_image (line 110) | def proposals_for_one_image(
  function _filter_boxes (line 174) | def _filter_boxes(boxes, min_size, im_info):

FILE: detectron/ops/zero_even_op.cc
  type caffe2 (line 19) | namespace caffe2 {

FILE: detectron/ops/zero_even_op.h
  function namespace (line 23) | namespace caffe2 {

FILE: detectron/roi_data/data_utils.py
  function get_field_of_anchors (line 50) | def get_field_of_anchors(
  function unmap (line 104) | def unmap(data, count, inds, fill=0):
  function compute_targets (line 121) | def compute_targets(ex_rois, gt_rois, weights=(1.0, 1.0, 1.0, 1.0)):

FILE: detectron/roi_data/fast_rcnn.py
  function get_fast_rcnn_blob_names (line 40) | def get_fast_rcnn_blob_names(is_training=True):
  function add_fast_rcnn_blobs (line 108) | def add_fast_rcnn_blobs(blobs, im_scales, roidb):
  function _sample_rois (line 132) | def _sample_rois(roidb, im_scale, batch_idx):
  function _expand_bbox_targets (line 209) | def _expand_bbox_targets(bbox_target_data):
  function _add_multilevel_rois (line 238) | def _add_multilevel_rois(blobs):

FILE: detectron/roi_data/keypoint_rcnn.py
  function add_keypoint_rcnn_blobs (line 37) | def add_keypoint_rcnn_blobs(
  function finalize_keypoint_minibatch (line 94) | def finalize_keypoint_minibatch(blobs, valid):
  function _within_box (line 114) | def _within_box(points, boxes):

FILE: detectron/roi_data/loader.py
  class RoIDataLoader (line 66) | class RoIDataLoader:
    method __init__ (line 67) | def __init__(
    method minibatch_loader_thread (line 97) | def minibatch_loader_thread(self):
    method enqueue_blobs_thread (line 115) | def enqueue_blobs_thread(self, gpu_id, blob_names):
    method get_next_minibatch (line 128) | def get_next_minibatch(self):
    method _shuffle_roidb_inds (line 137) | def _shuffle_roidb_inds(self):
    method _get_next_minibatch_inds (line 163) | def _get_next_minibatch_inds(self):
    method get_output_names (line 177) | def get_output_names(self):
    method enqueue_blobs (line 180) | def enqueue_blobs(self, gpu_id, blob_names, blobs):
    method create_threads (line 205) | def create_threads(self):
    method start (line 225) | def start(self, prefill=False):
    method has_stopped (line 244) | def has_stopped(self):
    method shutdown (line 247) | def shutdown(self):
    method create_blobs_queues (line 254) | def create_blobs_queues(self):
    method close_blobs_queues (line 267) | def close_blobs_queues(self):
    method create_enqueue_blobs (line 277) | def create_enqueue_blobs(self):
    method register_sigint_handler (line 288) | def register_sigint_handler(self):

FILE: detectron/roi_data/mask_rcnn.py
  function add_mask_rcnn_blobs (line 37) | def add_mask_rcnn_blobs(blobs, sampled_boxes, roidb, im_scale, batch_idx):
  function _expand_to_class_specific_mask_targets (line 105) | def _expand_to_class_specific_mask_targets(masks, mask_class_labels):

FILE: detectron/roi_data/minibatch.py
  function get_minibatch_blob_names (line 44) | def get_minibatch_blob_names(is_training=True):
  function get_minibatch (line 64) | def get_minibatch(roidb):
  function _get_image_blob (line 89) | def _get_image_blob(roidb):

FILE: detectron/roi_data/retinanet.py
  function get_retinanet_blob_names (line 34) | def get_retinanet_blob_names(is_training=True):
  function add_retinanet_blobs (line 78) | def add_retinanet_blobs(blobs, im_scales, roidb, image_width, image_heig...
  function _get_retinanet_blobs (line 182) | def _get_retinanet_blobs(

FILE: detectron/roi_data/rpn.py
  function get_rpn_blob_names (line 35) | def get_rpn_blob_names(is_training=True):
  function add_rpn_blobs (line 62) | def add_rpn_blobs(blobs, im_scales, roidb):
  function _get_rpn_blobs (line 131) | def _get_rpn_blobs(im_height, im_width, foas, all_anchors, gt_boxes):

FILE: detectron/tests/data_loader_benchmark.py
  function parse_args (line 51) | def parse_args():
  function loader_loop (line 80) | def loader_loop(roi_data_loader):
  function main (line 91) | def main(opts):

FILE: detectron/tests/test_batch_permutation_op.py
  class BatchPermutationOpTest (line 33) | class BatchPermutationOpTest(unittest.TestCase):
    method _run_op_test (line 34) | def _run_op_test(self, X, I, check_grad=False):
    method _run_speed_test (line 55) | def _run_speed_test(self, iters=5, N=1024):
    method test_forward_and_gradient (line 81) | def test_forward_and_gradient(self):
    method test_size_exceptions (line 94) | def test_size_exceptions(self):

FILE: detectron/tests/test_bbox_transform.py
  function random_boxes (line 29) | def random_boxes(mean_box, stdev, N):
  class TestBboxTransform (line 34) | class TestBboxTransform(unittest.TestCase):
    method test_bbox_transform_and_inverse (line 35) | def test_bbox_transform_and_inverse(self):
    method test_bbox_dataset_to_prediction_roundtrip (line 49) | def test_bbox_dataset_to_prediction_roundtrip(self):
    method test_cython_bbox_iou_against_coco_api_bbox_iou (line 77) | def test_cython_bbox_iou_against_coco_api_bbox_iou(self):

FILE: detectron/tests/test_cfg.py
  class TestAttrDict (line 32) | class TestAttrDict(unittest.TestCase):
    method test_immutability (line 33) | def test_immutability(self):
  class TestCfg (line 67) | class TestCfg(unittest.TestCase):
    method test_copy_cfg (line 68) | def test_copy_cfg(self):
    method test_merge_cfg_from_cfg (line 74) | def test_merge_cfg_from_cfg(self):
    method test_merge_cfg_from_file (line 120) | def test_merge_cfg_from_file(self):
    method test_merge_cfg_from_list (line 129) | def test_merge_cfg_from_list(self):
    method test_deprecated_key_from_list (line 144) | def test_deprecated_key_from_list(self):
    method test_deprecated_key_from_file (line 158) | def test_deprecated_key_from_file(self):
    method test_renamed_key_from_list (line 171) | def test_renamed_key_from_list(self):
    method test_renamed_key_from_file (line 181) | def test_renamed_key_from_file(self):

FILE: detectron/tests/test_loader.py
  function get_roidb_blobs (line 37) | def get_roidb_blobs(roidb):
  function get_net (line 43) | def get_net(data_loader, name):
  function get_roidb_sample_data (line 61) | def get_roidb_sample_data(sample_data):
  function create_loader_and_network (line 68) | def create_loader_and_network(sample_data, name):
  function run_net (line 77) | def run_net(net):
  class TestRoIDataLoader (line 87) | class TestRoIDataLoader(unittest.TestCase):
    method test_two_parallel_loaders (line 96) | def test_two_parallel_loaders(self, _1, _2):

FILE: detectron/tests/test_restore_checkpoint.py
  function get_params (line 41) | def get_params(model):
  function add_momentum_init_ops (line 60) | def add_momentum_init_ops(model):
  function init_weights (line 66) | def init_weights(model):
  function test_restore_checkpoint (line 72) | def test_restore_checkpoint():

FILE: detectron/tests/test_smooth_l1_loss_op.py
  class SmoothL1LossTest (line 33) | class SmoothL1LossTest(unittest.TestCase):
    method test_forward_and_gradient (line 34) | def test_forward_and_gradient(self):

FILE: detectron/tests/test_spatial_narrow_as_op.py
  class SpatialNarrowAsOpTest (line 33) | class SpatialNarrowAsOpTest(unittest.TestCase):
    method _run_test (line 34) | def _run_test(self, A, B, check_grad=False):
    method test_small_forward_and_gradient (line 56) | def test_small_forward_and_gradient(self):
    method test_large_forward (line 65) | def test_large_forward(self):
    method test_size_exceptions (line 74) | def test_size_exceptions(self):

FILE: detectron/tests/test_zero_even_op.py
  class ZeroEvenOpTest (line 31) | class ZeroEvenOpTest(unittest.TestCase):
    method _run_zero_even_op (line 33) | def _run_zero_even_op(self, X):
    method _run_zero_even_op_gpu (line 40) | def _run_zero_even_op_gpu(self, X):
    method test_throws_on_non_1D_arrays (line 48) | def test_throws_on_non_1D_arrays(self):
    method test_handles_empty_arrays (line 53) | def test_handles_empty_arrays(self):
    method test_sets_vals_at_even_inds_to_zero (line 59) | def test_sets_vals_at_even_inds_to_zero(self):
    method test_preserves_vals_at_odd_inds (line 65) | def test_preserves_vals_at_odd_inds(self):
    method test_handles_even_length_arrays (line 71) | def test_handles_even_length_arrays(self):
    method test_handles_odd_length_arrays (line 78) | def test_handles_odd_length_arrays(self):
    method test_gpu_throws_on_non_1D_arrays (line 85) | def test_gpu_throws_on_non_1D_arrays(self):
    method test_gpu_handles_empty_arrays (line 90) | def test_gpu_handles_empty_arrays(self):
    method test_gpu_sets_vals_at_even_inds_to_zero (line 96) | def test_gpu_sets_vals_at_even_inds_to_zero(self):
    method test_gpu_preserves_vals_at_odd_inds (line 102) | def test_gpu_preserves_vals_at_odd_inds(self):
    method test_gpu_handles_even_length_arrays (line 108) | def test_gpu_handles_even_length_arrays(self):
    method test_gpu_handles_odd_length_arrays (line 115) | def test_gpu_handles_odd_length_arrays(self):

FILE: detectron/utils/blob.py
  function get_image_blob (line 40) | def get_image_blob(im, target_scale, target_max_size):
  function im_list_to_blob (line 67) | def im_list_to_blob(ims):
  function prep_im_for_blob (line 100) | def prep_im_for_blob(im, pixel_means, target_size, max_size):
  function zeros (line 128) | def zeros(shape, int32=False):
  function ones (line 135) | def ones(shape, int32=False):
  function py_op_copy_blob (line 142) | def py_op_copy_blob(blob_in, blob_out):
  function get_loss_gradients (line 161) | def get_loss_gradients(model, loss_blobs):
  function serialize (line 170) | def serialize(obj):
  function deserialize (line 177) | def deserialize(arr):

FILE: detectron/utils/boxes.py
  function boxes_area (line 57) | def boxes_area(boxes):
  function unique_boxes (line 66) | def unique_boxes(boxes, scale=1.0):
  function xywh_to_xyxy (line 74) | def xywh_to_xyxy(xywh):
  function xyxy_to_xywh (line 92) | def xyxy_to_xywh(xyxy):
  function filter_small_boxes (line 108) | def filter_small_boxes(boxes, min_size):
  function clip_boxes_to_image (line 116) | def clip_boxes_to_image(boxes, height, width):
  function clip_xyxy_to_image (line 123) | def clip_xyxy_to_image(x1, y1, x2, y2, height, width):
  function clip_tiled_boxes (line 132) | def clip_tiled_boxes(boxes, im_shape):
  function bbox_transform (line 150) | def bbox_transform(boxes, deltas, weights=(1.0, 1.0, 1.0, 1.0)):
  function bbox_transform_inv (line 193) | def bbox_transform_inv(boxes, gt_boxes, weights=(1.0, 1.0, 1.0, 1.0)):
  function expand_boxes (line 227) | def expand_boxes(boxes, scale):
  function flip_boxes (line 246) | def flip_boxes(boxes, im_width):
  function aspect_ratio (line 254) | def aspect_ratio(boxes, aspect_ratio):
  function box_voting (line 262) | def box_voting(top_dets, all_dets, thresh, scoring_method='ID', beta=1.0):
  function nms (line 314) | def nms(dets, thresh):
  function soft_nms (line 321) | def soft_nms(

FILE: detectron/utils/c2.py
  function import_contrib_ops (line 36) | def import_contrib_ops():
  function import_detectron_ops (line 41) | def import_detectron_ops():
  function import_custom_ops (line 47) | def import_custom_ops():
  function SuffixNet (line 53) | def SuffixNet(name, net, prefix_len, outputs):
  function BlobReferenceList (line 82) | def BlobReferenceList(blob_ref_or_list):
  function UnscopeName (line 97) | def UnscopeName(possibly_scoped_name):
  function NamedCudaScope (line 106) | def NamedCudaScope(gpu_id):
  function GpuNameScope (line 115) | def GpuNameScope(gpu_id):
  function CudaScope (line 122) | def CudaScope(gpu_id):
  function CpuScope (line 130) | def CpuScope():
  function CudaDevice (line 137) | def CudaDevice(gpu_id):
  function gauss_fill (line 142) | def gauss_fill(std):
  function const_fill (line 147) | def const_fill(value):
  function get_nvidia_info (line 152) | def get_nvidia_info():
  function get_nvidia_smi_output (line 160) | def get_nvidia_smi_output():

FILE: detectron/utils/collections.py
  class AttrDict (line 24) | class AttrDict(dict):
    method __init__ (line 28) | def __init__(self, *args, **kwargs):
    method __getattr__ (line 32) | def __getattr__(self, name):
    method __setattr__ (line 40) | def __setattr__(self, name, value):
    method immutable (line 52) | def immutable(self, is_immutable):
    method is_immutable (line 65) | def is_immutable(self):

FILE: detectron/utils/colormap.py
  function colormap (line 26) | def colormap(rgb=False):

FILE: detectron/utils/coordinator.py
  class Coordinator (line 32) | class Coordinator:
    method __init__ (line 34) | def __init__(self):
    method request_stop (line 37) | def request_stop(self):
    method should_stop (line 41) | def should_stop(self):
    method wait_for_stop (line 44) | def wait_for_stop(self):
    method stop_on_exception (line 48) | def stop_on_exception(self):
  function coordinated_get (line 57) | def coordinated_get(coordinator, queue):
  function coordinated_put (line 66) | def coordinated_put(coordinator, queue, element):

FILE: detectron/utils/env.py
  function get_runtime_dir (line 33) | def get_runtime_dir():
  function get_py_bin_ext (line 38) | def get_py_bin_ext():
  function set_up_matplotlib (line 43) | def set_up_matplotlib():
  function exit_on_error (line 50) | def exit_on_error():
  function import_nccl_ops (line 55) | def import_nccl_ops():
  function get_detectron_ops_lib (line 62) | def get_detectron_ops_lib():
  function get_custom_ops_lib (line 78) | def get_custom_ops_lib():

FILE: detectron/utils/image.py
  function aspect_ratio_rel (line 27) | def aspect_ratio_rel(im, aspect_ratio):
  function aspect_ratio_abs (line 35) | def aspect_ratio_abs(im, aspect_ratio):

FILE: detectron/utils/io.py
  function save_object (line 39) | def save_object(obj, file_name, pickle_format=2):
  function load_object (line 72) | def load_object(file_name):
  function cache_url (line 86) | def cache_url(url_or_file, cache_dir):
  function assert_cache_file_is_ok (line 118) | def assert_cache_file_is_ok(url, file_path):
  function _progress_bar (line 132) | def _progress_bar(count, total):
  function download_url (line 152) | def download_url(
  function _get_file_md5sum (line 180) | def _get_file_md5sum(file_name):
  function _get_reference_md5sum (line 188) | def _get_reference_md5sum(url):

FILE: detectron/utils/keypoints.py
  function get_keypoints (line 30) | def get_keypoints():
  function get_person_class_index (line 66) | def get_person_class_index():
  function flip_keypoints (line 71) | def flip_keypoints(keypoints, keypoint_flip_map, keypoint_coords, width):
  function flip_heatmaps (line 90) | def flip_heatmaps(heatmaps):
  function heatmaps_to_keypoints (line 103) | def heatmaps_to_keypoints(maps, rois):
  function keypoints_to_heatmap_labels (line 160) | def keypoints_to_heatmap_labels(keypoints, rois):
  function scores_to_probs (line 214) | def scores_to_probs(scores):
  function nms_oks (line 225) | def nms_oks(kp_predictions, rois, thresh):
  function compute_oks (line 243) | def compute_oks(src_keypoints, src_roi, dst_keypoints, dst_roi):

FILE: detectron/utils/logging.py
  function log_json_stats (line 32) | def log_json_stats(stats, sort_keys=True):
  class SmoothedValue (line 41) | class SmoothedValue:
    method __init__ (line 46) | def __init__(self, window_size):
    method AddValue (line 52) | def AddValue(self, value):
    method GetMedianValue (line 58) | def GetMedianValue(self):
    method GetAverageValue (line 61) | def GetAverageValue(self):
    method GetGlobalAverageValue (line 64) | def GetGlobalAverageValue(self):
  function send_email (line 68) | def send_email(subject, body, to):
  function setup_logging (line 76) | def setup_logging(name):

FILE: detectron/utils/lr_policy.py
  function get_lr_at_iter (line 28) | def get_lr_at_iter(it):
  function lr_func_steps_with_lrs (line 50) | def lr_func_steps_with_lrs(cur_iter):
  function lr_func_steps_with_decay (line 67) | def lr_func_steps_with_decay(cur_iter):
  function lr_func_step (line 86) | def lr_func_step(cur_iter):
  function lr_func_cosine_decay (line 94) | def lr_func_cosine_decay(cur_iter):
  function lr_func_exp_decay (line 102) | def lr_func_exp_decay(cur_iter):
  function get_step_index (line 115) | def get_step_index(cur_iter):
  function get_lr_func (line 125) | def get_lr_func():

FILE: detectron/utils/model_convert_utils.py
  class OpFilter (line 31) | class OpFilter:
    method __init__ (line 32) | def __init__(self, **kwargs):
    method check (line 45) | def check(self, op):
  function filter_op (line 64) | def filter_op(op, **kwargs):
  function op_filter (line 69) | def op_filter(**filter_args):
  function op_func_chain (line 81) | def op_func_chain(convert_func_list):
  function convert_op_in_ops (line 95) | def convert_op_in_ops(ops_ref, func_or_list):
  function convert_op_in_proto (line 112) | def convert_op_in_proto(proto, func_or_list):
  function get_op_arg (line 116) | def get_op_arg(op, arg_name):
  function get_op_arg_valf (line 123) | def get_op_arg_valf(op, arg_name, default_val):
  function update_mobile_engines (line 128) | def update_mobile_engines(net):
  function pairwise (line 136) | def pairwise(iterable):
  function blob_uses (line 144) | def blob_uses(net, blob):
  function fuse_first_affine (line 152) | def fuse_first_affine(net, params, removed_tensors):
  function fuse_affine (line 238) | def fuse_affine(net, params, ignore_failure):
  function fuse_net (line 255) | def fuse_net(fuse_func, net, blobs, ignore_failure=False):
  function fuse_net_affine (line 270) | def fuse_net_affine(net, blobs):
  function add_tensor (line 274) | def add_tensor(net, name, blob):
  function gen_init_net_from_blobs (line 307) | def gen_init_net_from_blobs(blobs, blobs_to_use=None, excluded_blobs=None):
  function get_ws_blobs (line 327) | def get_ws_blobs(blob_names=None):
  function get_device_option_cpu (line 338) | def get_device_option_cpu():
  function get_device_option_cuda (line 343) | def get_device_option_cuda(gpu_id=0):
  function create_input_blobs_for_net (line 350) | def create_input_blobs_for_net(net_def):
  function compare_model (line 357) | def compare_model(model1_func, model2_func, test_image, check_blobs):
  function save_graph (line 390) | def save_graph(net, file_name, graph_name="net", op_only=True):

FILE: detectron/utils/net.py
  function initialize_from_weights_file (line 43) | def initialize_from_weights_file(model, weights_file, broadcast=True):
  function initialize_gpu_from_weights_file (line 53) | def initialize_gpu_from_weights_file(model, weights_file, gpu_id=0):
  function save_model_to_weights_file (line 136) | def save_model_to_weights_file(weights_file, model):
  function broadcast_parameters (line 172) | def broadcast_parameters(model):
  function sum_multi_gpu_blob (line 198) | def sum_multi_gpu_blob(blob_name):
  function average_multi_gpu_blob (line 206) | def average_multi_gpu_blob(blob_name):
  function print_net (line 211) | def print_net(model, namescope='gpu_0'):
  function configure_bbox_reg_weights (line 257) | def configure_bbox_reg_weights(model, saved_cfg):
  function get_group_gn (line 282) | def get_group_gn(dim):

FILE: detectron/utils/segms.py
  function is_poly (line 40) | def is_poly(segm):
  function flip_segms (line 47) | def flip_segms(segms, height, width):
  function polys_to_mask (line 75) | def polys_to_mask(polygons, height, width):
  function mask_to_bbox (line 89) | def mask_to_bbox(mask):
  function polys_to_mask_wrt_box (line 104) | def polys_to_mask_wrt_box(polygons, box, M):
  function polys_to_boxes (line 131) | def polys_to_boxes(polys):
  function rle_mask_voting (line 145) | def rle_mask_voting(
  function rle_mask_nms (line 209) | def rle_mask_nms(masks, dets, thresh, mode='IOU'):
  function rle_masks_to_boxes (line 254) | def rle_masks_to_boxes(masks):

FILE: detectron/utils/subprocess.py
  function process_in_parallel (line 39) | def process_in_parallel(
  function log_subprocess_output (line 106) | def log_subprocess_output(i, p, output_dir, tag, start, end):

FILE: detectron/utils/timer.py
  class Timer (line 34) | class Timer:
    method __init__ (line 37) | def __init__(self):
    method tic (line 40) | def tic(self):
    method toc (line 45) | def toc(self, average=True):
    method reset (line 55) | def reset(self):

FILE: detectron/utils/train.py
  function train_model (line 51) | def train_model():
  function handle_critical_error (line 96) | def handle_critical_error(model, msg):
  function create_model (line 103) | def create_model():
  function optimize_memory (line 153) | def optimize_memory(model):
  function setup_model_for_training (line 167) | def setup_model_for_training(model, weights_file, output_dir):
  function add_model_training_inputs (line 189) | def add_model_training_inputs(model):
  function dump_proto_files (line 200) | def dump_proto_files(model, output_dir):

FILE: detectron/utils/training_stats.py
  class TrainingStats (line 37) | class TrainingStats:
    method __init__ (line 40) | def __init__(self, model):
    method IterTic (line 59) | def IterTic(self):
    method IterToc (line 62) | def IterToc(self):
    method ResetIterTimer (line 65) | def ResetIterTimer(self):
    method UpdateIterStats (line 68) | def UpdateIterStats(self):
    method LogIterStats (line 85) | def LogIterStats(self, cur_iter, lr):
    method GetStats (line 92) | def GetStats(self, cur_iter, lr):

FILE: detectron/utils/vis.py
  function kp_connections (line 47) | def kp_connections(keypoints):
  function convert_from_cls_format (line 68) | def convert_from_cls_format(cls_boxes, cls_segms, cls_keyps):
  function get_class_string (line 91) | def get_class_string(class_index, score, dataset):
  function vis_mask (line 97) | def vis_mask(img, mask, col, alpha=0.4, show_border=True, border_thick=1):
  function vis_class (line 114) | def vis_class(img, pos, class_str, font_scale=0.35):
  function vis_bbox (line 132) | def vis_bbox(img, bbox, thick=1):
  function vis_keypoints (line 142) | def vis_keypoints(img, kps, kp_thresh=2, alpha=0.7):
  function vis_one_image_opencv (line 203) | def vis_one_image_opencv(
  function vis_one_image (line 253) | def vis_one_image(

FILE: tools/convert_cityscapes_to_coco.py
  function parse_args (line 36) | def parse_args():
  function convert_coco_stuff_mat (line 51) | def convert_coco_stuff_mat(data_dir, out_dir):
  function getLabelID (line 92) | def getLabelID(self, instID):
  function convert_cityscapes_instance_only (line 99) | def convert_cityscapes_instance_only(

FILE: tools/convert_coco_model_to_cityscapes.py
  function parse_args (line 41) | def parse_args():
  function convert_coco_blobs_to_cityscape_blobs (line 65) | def convert_coco_blobs_to_cityscape_blobs(model_dict):
  function convert_coco_blob_to_cityscapes_blob (line 80) | def convert_coco_blob_to_cityscapes_blob(coco_blob, convert_func):
  function remove_momentum (line 106) | def remove_momentum(model_dict):
  function load_and_convert_coco_model (line 112) | def load_and_convert_coco_model(args):

FILE: tools/convert_pkl_to_pb.py
  function parse_args (line 69) | def parse_args():
  function unscope_name (line 144) | def unscope_name(name):
  function reset_names (line 148) | def reset_names(names):
  function convert_collect_and_distribute (line 153) | def convert_collect_and_distribute(
  function convert_gen_proposals (line 188) | def convert_gen_proposals(
  function get_anchors (line 224) | def get_anchors(spatial_scale, anchor_sizes):
  function reset_blob_names (line 233) | def reset_blob_names(blobs):
  function convert_net (line 239) | def convert_net(args, net, blobs):
  function add_bbox_ops (line 338) | def add_bbox_ops(args, net, blobs):
  function convert_model_gpu (line 375) | def convert_model_gpu(args, net, init_net):
  function gen_init_net (line 416) | def gen_init_net(net, blobs, empty_blobs):
  function _save_image_graphs (line 425) | def _save_image_graphs(args, all_net, all_init_net):
  function _save_models (line 433) | def _save_models(all_net, all_init_net, args):
  function load_model (line 450) | def load_model(args):
  function _get_result_blobs (line 457) | def _get_result_blobs(check_blobs):
  function _sort_results (line 469) | def _sort_results(boxes, segms, keypoints, classes):
  function run_model_cfg (line 486) | def run_model_cfg(args, im, check_blobs):
  function _prepare_blobs (line 518) | def _prepare_blobs(im, pixel_means, target_size, max_size):
  function run_model_pb (line 545) | def run_model_pb(args, net, init_net, im, check_blobs):
  function verify_model (line 592) | def verify_model(args, model_pb, test_img_file):
  function _export_to_logfiledb (line 609) | def _export_to_logfiledb(args, net, init_net, inputs, out_file, extra_ou...
  function main (line 631) | def main():

FILE: tools/generate_testdev_from_test.py
  function parse_args (line 38) | def parse_args():
  function convert (line 55) | def convert(json_file, output_dir):

FILE: tools/infer.py
  function parse_args (line 66) | def parse_args():
  function get_rpn_box_proposals (line 104) | def get_rpn_box_proposals(im, args):
  function main (line 119) | def main(args):
  function check_args (line 173) | def check_args(args):

FILE: tools/infer_simple.py
  function parse_args (line 56) | def parse_args():
  function main (line 122) | def main(args):

FILE: tools/pickle_caffe_blobs.py
  function parse_args (line 41) | def parse_args():
  function normalize_resnet_name (line 75) | def normalize_resnet_name(name):
  function pickle_weights (line 91) | def pickle_weights(out_file_name, weights):
  function add_missing_biases (line 101) | def add_missing_biases(caffenet_weights):
  function remove_spatial_bn_layers (line 112) | def remove_spatial_bn_layers(caffenet, caffenet_weights):
  function remove_layers_without_parameters (line 159) | def remove_layers_without_parameters(caffenet, caffenet_weights):
  function normalize_shape (line 175) | def normalize_shape(caffenet_weights):
  function load_and_convert_caffe_model (line 191) | def load_and_convert_caffe_model(prototxt_file_name, caffemodel_file_name):

FILE: tools/reval.py
  function parse_args (line 45) | def parse_args():
  function do_reval (line 85) | def do_reval(dataset_name, output_dir, args):

FILE: tools/test_net.py
  function parse_args (line 49) | def parse_args():

FILE: tools/train_net.py
  function parse_args (line 51) | def parse_args():
  function main (line 86) | def main():
  function test_model (line 120) | def test_model(model_file, multi_gpu_testing, opts=None):

FILE: tools/visualize_results.py
  function parse_args (line 39) | def parse_args():
  function vis (line 83) | def vis(dataset, detections_pkl, thresh, output_dir, limit=0):
Condensed preview — 210 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,082K chars).
[
  {
    "path": ".github/issue_template.md",
    "chars": 982,
    "preview": "## PLEASE FOLLOW THESE INSTRUCTIONS BEFORE POSTING\n1. Please thoroughly read README.md, INSTALL.md, GETTING_STARTED.md, "
  },
  {
    "path": ".gitignore",
    "chars": 316,
    "preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# Shared objects\n*.so\n\n# Distribution / packa"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 2107,
    "preview": "cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)\n\n# Find the Caffe2 package.\n# Caffe2 exports the required targets, so"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3356,
    "preview": "# Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1449,
    "preview": "# Contributing to Detectron\nWe want to make contributing to this project as easy and transparent as\npossible.\n\n## Our De"
  },
  {
    "path": "FAQ.md",
    "chars": 3486,
    "preview": "# FAQ\n\nThis document covers frequently asked questions.\n\n- For general information about Detectron, please see [`README."
  },
  {
    "path": "GETTING_STARTED.md",
    "chars": 6200,
    "preview": "# Using Detectron\n\nThis document provides brief tutorials covering Detectron for inference and training on the COCO data"
  },
  {
    "path": "INSTALL.md",
    "chars": 8922,
    "preview": "# Installing Detectron\n\nThis document covers how to install Detectron, its dependencies (including Caffe2), and the COCO"
  },
  {
    "path": "LICENSE",
    "chars": 10255,
    "preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
  },
  {
    "path": "MODEL_ZOO.md",
    "chars": 119276,
    "preview": "# Detectron Model Zoo and Baselines\n\n## Introduction\n\nThis file documents a large collection of baselines trained with D"
  },
  {
    "path": "Makefile",
    "chars": 487,
    "preview": "# Don't use the --user flag for setup.py develop mode with virtualenv.\nDEV_USER_FLAG=$(shell python -c \"import sys; prin"
  },
  {
    "path": "NOTICE",
    "chars": 1344,
    "preview": "Portions of this software are derived from py-faster-rcnn.\n\n============================================================"
  },
  {
    "path": "README.md",
    "chars": 7031,
    "preview": "**Detectron is deprecated. Please see [detectron2](https://github.com/facebookresearch/detectron2), a ground-up rewrite "
  },
  {
    "path": "cmake/Summary.cmake",
    "chars": 1691,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "cmake/legacy/Cuda.cmake",
    "chars": 10202,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "cmake/legacy/Dependencies.cmake",
    "chars": 2012,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "cmake/legacy/Modules/FindCuDNN.cmake",
    "chars": 2771,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "cmake/legacy/Summary.cmake",
    "chars": 1611,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "cmake/legacy/Utils.cmake",
    "chars": 11395,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "cmake/legacy/legacymake.cmake",
    "chars": 2292,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "configs/04_2018_gn_baselines/e2e_mask_rcnn_R-101-FPN_2x_gn.yaml",
    "chars": 1689,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/04_2018_gn_baselines/e2e_mask_rcnn_R-101-FPN_3x_gn.yaml",
    "chars": 1689,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/04_2018_gn_baselines/e2e_mask_rcnn_R-50-FPN_2x_gn.yaml",
    "chars": 1687,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MAS"
  },
  {
    "path": "configs/04_2018_gn_baselines/e2e_mask_rcnn_R-50-FPN_3x_gn.yaml",
    "chars": 1687,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MAS"
  },
  {
    "path": "configs/04_2018_gn_baselines/mask_rcnn_R-50-FPN_1x_gn.yaml",
    "chars": 2242,
    "preview": "# WARNING: this script uses **pre-computed** BN-based proposals, and is for quick debugging only.\nMODEL:\n  TYPE: general"
  },
  {
    "path": "configs/04_2018_gn_baselines/scratch_e2e_mask_rcnn_R-101-FPN_3x_gn.yaml",
    "chars": 1596,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/04_2018_gn_baselines/scratch_e2e_mask_rcnn_R-50-FPN_3x_gn.yaml",
    "chars": 1595,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MAS"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_R-101-FPN_1x.yaml",
    "chars": 898,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_R-101-FPN_2x.yaml",
    "chars": 901,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_R-50-C4_1x.yaml",
    "chars": 817,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_GP"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_R-50-C4_2x.yaml",
    "chars": 817,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_GP"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_1x.yaml",
    "chars": 896,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_G"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_2x.yaml",
    "chars": 899,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_G"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_X-101-32x8d-FPN_1x.yaml",
    "chars": 1138,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_X-101-32x8d-FPN_2x.yaml",
    "chars": 1138,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_X-101-64x4d-FPN_1x.yaml",
    "chars": 1139,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/e2e_faster_rcnn_X-101-64x4d-FPN_2x.yaml",
    "chars": 1204,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_1x.yaml",
    "chars": 1371,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEY"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_s1x.yaml",
    "chars": 1374,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEY"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_1x.yaml",
    "chars": 1369,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEYP"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_R-50-FPN_s1x.yaml",
    "chars": 1372,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEYP"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_1x.yaml",
    "chars": 1543,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEY"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml",
    "chars": 1546,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEY"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_1x.yaml",
    "chars": 1609,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEY"
  },
  {
    "path": "configs/12_2017_baselines/e2e_keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml",
    "chars": 1612,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  FASTER_RCNN: True\n  KEY"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_1x.yaml",
    "chars": 1225,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml",
    "chars": 1228,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_R-50-C4_1x.yaml",
    "chars": 1049,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MASK"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_R-50-C4_2x.yaml",
    "chars": 1049,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MASK"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_1x.yaml",
    "chars": 1223,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MAS"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_R-50-FPN_2x.yaml",
    "chars": 1226,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MAS"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_1x.yaml",
    "chars": 1465,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_X-101-32x8d-FPN_2x.yaml",
    "chars": 1465,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_1x.yaml",
    "chars": 1531,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_X-101-64x4d-FPN_2x.yaml",
    "chars": 1531,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/e2e_mask_rcnn_X-152-32x8d-FPN-IN5k_1.44x.yaml",
    "chars": 2072,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet152_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MA"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_R-101-FPN_1x.yaml",
    "chars": 1361,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WE"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_R-101-FPN_2x.yaml",
    "chars": 1364,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WE"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_R-50-C4_1x.yaml",
    "chars": 1295,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIG"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_R-50-C4_2x.yaml",
    "chars": 1295,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIG"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_R-50-FPN_1x.yaml",
    "chars": 1356,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEI"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_R-50-FPN_2x.yaml",
    "chars": 1359,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEI"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_X-101-32x8d-FPN_1x.yaml",
    "chars": 1619,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WE"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_X-101-32x8d-FPN_2x.yaml",
    "chars": 1619,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WE"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_X-101-64x4d-FPN_1x.yaml",
    "chars": 1620,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WE"
  },
  {
    "path": "configs/12_2017_baselines/fast_rcnn_X-101-64x4d-FPN_2x.yaml",
    "chars": 1620,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WE"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_R-101-FPN_1x.yaml",
    "chars": 1900,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_R-101-FPN_s1x.yaml",
    "chars": 1903,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_R-50-FPN_1x.yaml",
    "chars": 1895,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_G"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_R-50-FPN_s1x.yaml",
    "chars": 1898,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_G"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_1x.yaml",
    "chars": 2090,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_X-101-32x8d-FPN_s1x.yaml",
    "chars": 2093,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_1x.yaml",
    "chars": 2156,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/keypoint_rcnn_X-101-64x4d-FPN_s1x.yaml",
    "chars": 2159,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_R-101-FPN_1x.yaml",
    "chars": 1688,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_R-101-FPN_2x.yaml",
    "chars": 1691,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_R-50-C4_1x.yaml",
    "chars": 1527,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS: "
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_R-50-C4_2x.yaml",
    "chars": 1527,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS: "
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_R-50-FPN_1x.yaml",
    "chars": 1683,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS:"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_R-50-FPN_2x.yaml",
    "chars": 1686,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS:"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_1x.yaml",
    "chars": 1946,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_X-101-32x8d-FPN_2x.yaml",
    "chars": 1946,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_1x.yaml",
    "chars": 2012,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/mask_rcnn_X-101-64x4d-FPN_2x.yaml",
    "chars": 2012,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  MASK_ON: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_R-101-FPN_1x.yaml",
    "chars": 918,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DE"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_R-101-FPN_2x.yaml",
    "chars": 921,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DE"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_R-50-FPN_1x.yaml",
    "chars": 916,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DEC"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_R-50-FPN_2x.yaml",
    "chars": 919,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DEC"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_X-101-32x8d-FPN_1x.yaml",
    "chars": 1090,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DE"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_X-101-32x8d-FPN_2x.yaml",
    "chars": 1093,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DE"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_X-101-64x4d-FPN_1x.yaml",
    "chars": 1091,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DE"
  },
  {
    "path": "configs/12_2017_baselines/retinanet_X-101-64x4d-FPN_2x.yaml",
    "chars": 1094,
    "preview": "MODEL:\n  TYPE: retinanet\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\nNUM_GPUS: 8\nSOLVER:\n  WEIGHT_DE"
  },
  {
    "path": "configs/12_2017_baselines/rpn_R-101-FPN_1x.yaml",
    "chars": 790,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  RPN_ONLY: True\nNUM_GPU"
  },
  {
    "path": "configs/12_2017_baselines/rpn_R-50-C4_1x.yaml",
    "chars": 616,
    "preview": "MODEL:\n  TYPE: rpn\n  CONV_BODY: ResNet.add_ResNet50_conv4_body\n  NUM_CLASSES: 81\n  RPN_ONLY: True\nNUM_GPUS: 8\nSOLVER:\n  "
  },
  {
    "path": "configs/12_2017_baselines/rpn_R-50-FPN_1x.yaml",
    "chars": 788,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  RPN_ONLY: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/rpn_X-101-32x8d-FPN_1x.yaml",
    "chars": 962,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  RPN_ONLY: True\nNUM_GPU"
  },
  {
    "path": "configs/12_2017_baselines/rpn_X-101-64x4d-FPN_1x.yaml",
    "chars": 963,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 81\n  RPN_ONLY: True\nNUM_GPU"
  },
  {
    "path": "configs/12_2017_baselines/rpn_person_only_R-101-FPN_1x.yaml",
    "chars": 869,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  RPN_ONLY: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml",
    "chars": 867,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 2\n  RPN_ONLY: True\nNUM_GPUS:"
  },
  {
    "path": "configs/12_2017_baselines/rpn_person_only_X-101-32x8d-FPN_1x.yaml",
    "chars": 1041,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  RPN_ONLY: True\nNUM_GPUS"
  },
  {
    "path": "configs/12_2017_baselines/rpn_person_only_X-101-64x4d-FPN_1x.yaml",
    "chars": 1042,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet101_conv5_body\n  NUM_CLASSES: 2\n  RPN_ONLY: True\nNUM_GPUS"
  },
  {
    "path": "configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml",
    "chars": 1239,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_G"
  },
  {
    "path": "configs/getting_started/tutorial_2gpu_e2e_faster_rcnn_R-50-FPN.yaml",
    "chars": 1238,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_G"
  },
  {
    "path": "configs/getting_started/tutorial_4gpu_e2e_faster_rcnn_R-50-FPN.yaml",
    "chars": 1236,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_G"
  },
  {
    "path": "configs/getting_started/tutorial_8gpu_e2e_faster_rcnn_R-50-FPN.yaml",
    "chars": 1234,
    "preview": "MODEL:\n  TYPE: generalized_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\nNUM_G"
  },
  {
    "path": "configs/test_time_aug/e2e_mask_rcnn_R-50-FPN_2x.yaml",
    "chars": 2271,
    "preview": "MODEL:\n  TYPE: mask_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 81\n  FASTER_RCNN: True\n  MASK_ON: T"
  },
  {
    "path": "configs/test_time_aug/keypoint_rcnn_R-50-FPN_1x.yaml",
    "chars": 2802,
    "preview": "MODEL:\n  TYPE: keypoint_rcnn\n  CONV_BODY: FPN.add_fpn_ResNet50_conv5_body\n  NUM_CLASSES: 2\n  KEYPOINTS_ON: True\nNUM_GPUS"
  },
  {
    "path": "demo/NOTICE",
    "chars": 917,
    "preview": "The demo images are licensed as United States government work:\nhttps://www.usa.gov/government-works\n\nThe image files wer"
  },
  {
    "path": "detectron/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "detectron/core/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "detectron/core/config.py",
    "chars": 47408,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/core/rpn_generator.py",
    "chars": 9673,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/core/test.py",
    "chars": 34439,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/core/test_engine.py",
    "chars": 14753,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/core/test_retinanet.py",
    "chars": 7825,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/VOCdevkit-matlab-wrapper/get_voc_opts.m",
    "chars": 231,
    "preview": "function VOCopts = get_voc_opts(path)\n\ntmp = pwd;\ncd(path);\ntry\n  addpath('VOCcode');\n  VOCinit;\ncatch\n  rmpath('VOCcode"
  },
  {
    "path": "detectron/datasets/VOCdevkit-matlab-wrapper/voc_eval.m",
    "chars": 1332,
    "preview": "function res = voc_eval(path, comp_id, test_set, output_dir)\n\nVOCopts = get_voc_opts(path);\nVOCopts.testset = test_set;\n"
  },
  {
    "path": "detectron/datasets/VOCdevkit-matlab-wrapper/xVOCap.m",
    "chars": 258,
    "preview": "function ap = xVOCap(rec,prec)\r\n% From the PASCAL VOC 2011 devkit\r\n\r\nmrec=[0 ; rec ; 1];\r\nmpre=[0 ; prec ; 0];\r\nfor i=nu"
  },
  {
    "path": "detectron/datasets/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "detectron/datasets/cityscapes_json_dataset_evaluator.py",
    "chars": 3355,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/coco_to_cityscapes_id.py",
    "chars": 2890,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/data/README.md",
    "chars": 3209,
    "preview": "# Setting Up Datasets\n\nThis directory contains symlinks to data locations.\n\n## Creating Symlinks for COCO\n\nSymlink the C"
  },
  {
    "path": "detectron/datasets/dataset_catalog.py",
    "chars": 7397,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/dummy_datasets.py",
    "chars": 2294,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/json_dataset.py",
    "chars": 19540,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/json_dataset_evaluator.py",
    "chars": 17096,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/roidb.py",
    "chars": 7726,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/task_evaluation.py",
    "chars": 14320,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/voc_dataset_evaluator.py",
    "chars": 7114,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/datasets/voc_eval.py",
    "chars": 7761,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/FPN.py",
    "chars": 20613,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/ResNet.py",
    "chars": 10909,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/VGG16.py",
    "chars": 3145,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/VGG_CNN_M_1024.py",
    "chars": 2444,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/__init__.py",
    "chars": 670,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/detector.py",
    "chars": 22526,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/fast_rcnn_heads.py",
    "chars": 6454,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/generate_anchors.py",
    "chars": 3994,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/keypoint_rcnn_heads.py",
    "chars": 7943,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/mask_rcnn_heads.py",
    "chars": 10094,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/model_builder.py",
    "chars": 23922,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/name_compat.py",
    "chars": 2634,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/optimizer.py",
    "chars": 5306,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/retinanet_heads.py",
    "chars": 12027,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/rfcn_heads.py",
    "chars": 3265,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/modeling/rpn_heads.py",
    "chars": 5368,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/ops/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "detectron/ops/collect_and_distribute_fpn_rpn_proposals.py",
    "chars": 4874,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/ops/generate_proposal_labels.py",
    "chars": 2277,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/ops/generate_proposals.py",
    "chars": 8723,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/ops/zero_even_op.cc",
    "chars": 1386,
    "preview": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "detectron/ops/zero_even_op.cu",
    "chars": 1685,
    "preview": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "detectron/ops/zero_even_op.h",
    "chars": 1395,
    "preview": "/**\n * Copyright (c) 2016-present, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "detectron/roi_data/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "detectron/roi_data/data_utils.py",
    "chars": 4246,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/fast_rcnn.py",
    "chars": 11030,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/keypoint_rcnn.py",
    "chars": 4791,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/loader.py",
    "chars": 11979,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/mask_rcnn.py",
    "chars": 5177,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/minibatch.py",
    "chars": 4360,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/retinanet.py",
    "chars": 13198,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/roi_data/rpn.py",
    "chars": 11665,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/data_loader_benchmark.py",
    "chars": 5914,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_batch_permutation_op.py",
    "chars": 4250,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_bbox_transform.py",
    "chars": 4370,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_cfg.py",
    "chars": 6896,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_loader.py",
    "chars": 4164,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_restore_checkpoint.py",
    "chars": 5006,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_smooth_l1_loss_op.py",
    "chars": 2711,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_spatial_narrow_as_op.py",
    "chars": 3410,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/tests/test_zero_even_op.py",
    "chars": 4670,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "detectron/utils/blob.py",
    "chars": 6531,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/boxes.py",
    "chars": 12897,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/c2.py",
    "chars": 5081,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/collections.py",
    "chars": 2301,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/colormap.py",
    "chars": 3734,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/coordinator.py",
    "chars": 2118,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/cython_bbox.pyx",
    "chars": 2575,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/cython_nms.pyx",
    "chars": 6789,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/env.py",
    "chars": 2770,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/image.py",
    "chars": 1514,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/io.py",
    "chars": 6996,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/keypoints.py",
    "chars": 9323,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/logging.py",
    "chars": 2541,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/lr_policy.py",
    "chars": 4332,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/model_convert_utils.py",
    "chars": 12632,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/net.py",
    "chars": 12580,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/segms.py",
    "chars": 9915,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/subprocess.py",
    "chars": 5146,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/timer.py",
    "chars": 1852,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/train.py",
    "chars": 7974,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "detectron/utils/training_stats.py",
    "chars": 3982,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "detectron/utils/vis.py",
    "chars": 14723,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "docker/Dockerfile",
    "chars": 742,
    "preview": "# Use Caffe2 image as parent image\nFROM caffe2/caffe2:snapshot-py2-cuda9.0-cudnn7-ubuntu16.04\n\nRUN mv /usr/local/caffe2 "
  },
  {
    "path": "projects/GN/README.md",
    "chars": 17087,
    "preview": "# Group Normalization for Mask R-CNN\n\n<div align=\"center\">\n  <img src=\"gn.jpg\" width=\"700px\" />\n</div>\n\n## Introduction\n"
  },
  {
    "path": "requirements.txt",
    "chars": 104,
    "preview": "numpy>=1.13\npyyaml==3.12\nmatplotlib\nopencv-python>=3.2\nsetuptools\nCython\nmock\nscipy\nsix\nfuture\nprotobuf\n"
  },
  {
    "path": "setup.py",
    "chars": 1603,
    "preview": "# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "tools/convert_cityscapes_to_coco.py",
    "chars": 8287,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "tools/convert_coco_model_to_cityscapes.py",
    "chars": 4289,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2017-present, Facebook, Inc.\n#\n# Licensed under the Apache License, Version 2.0 ("
  }
]

// ... and 10 more files (download for full content)

About this extraction

This page contains the full source code of the facebookresearch/Detectron GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 210 files (1008.7 KB), approximately 300.1k tokens, and a symbol index with 610 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!