architecture: CascadeRCNNClsAware
train_feed: FasterRCNNTrainFeed
eval_feed: FasterRCNNEvalFeed
test_feed: FasterRCNNTestFeed
max_iters: 1500000
snapshot_iter: 10000
use_gpu: true
log_smooth_window: 20
save_dir: output
pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet200_vd_pretrained.tar
weights: output/cascade_rcnn_cls_aware_r200_vd_fpn_dcnv2_nonlocal_softnms/model_final
metric: OID
num_classes: 501

CascadeRCNNClsAware:
  backbone: ResNet
  fpn: FPN
  rpn_head: FPNRPNHead
  roi_extractor: FPNRoIAlign
  bbox_head: CascadeBBoxHead
  bbox_assigner: CascadeBBoxAssigner

ResNet:
  norm_type: bn
  depth: 200
  feature_maps: [2, 3, 4, 5]
  freeze_at: 2
  variant: d
  dcn_v2_stages: [3, 4, 5]
  nonlocal_stages: [4]

FPN:
  min_level: 2
  max_level: 6
  num_chan: 256
  spatial_scale: [0.03125, 0.0625, 0.125, 0.25]

FPNRPNHead:
  anchor_generator:
    anchor_sizes: [32, 64, 128, 256, 512]
    aspect_ratios: [0.5, 1.0, 2.0]
    stride: [16.0, 16.0]
    variance: [1.0, 1.0, 1.0, 1.0]
  anchor_start_size: 32
  min_level: 2
  max_level: 6
  num_chan: 256
  rpn_target_assign:
    rpn_batch_size_per_im: 256
    rpn_fg_fraction: 0.5
    rpn_positive_overlap: 0.7
    rpn_negative_overlap: 0.3
    rpn_straddle_thresh: 0.0
  train_proposal:
    min_size: 0.0
    nms_thresh: 0.7
    pre_nms_top_n: 2000
    post_nms_top_n: 2000
  test_proposal:
    min_size: 0.0
    nms_thresh: 0.7
    pre_nms_top_n: 1000
    post_nms_top_n: 1000

FPNRoIAlign:
  canconical_level: 4
  canonical_size: 224
  min_level: 2
  max_level: 5
  box_resolution: 14
  sampling_ratio: 2

CascadeBBoxAssigner:
  batch_size_per_im: 512
  bbox_reg_weights: [10, 20, 30]
  bg_thresh_lo: [0.0, 0.0, 0.0]
  bg_thresh_hi: [0.5, 0.6, 0.7]
  fg_thresh: [0.5, 0.6, 0.7]
  fg_fraction: 0.25
  class_aware: True

CascadeBBoxHead:
  head: CascadeTwoFCHead
  nms: MultiClassSoftNMS

CascadeTwoFCHead:
  mlp_dim: 1024

MultiClassSoftNMS:
  score_threshold: 0.001
  keep_top_k: 300
  softnms_sigma: 0.15

LearningRate:
  base_lr: 0.01
  schedulers:
  - !PiecewiseDecay
    gamma: 0.1
    milestones: [1000000, 1400000]
  - !LinearWarmup
    start_factor: 0.1
    steps: 1000

OptimizerBuilder:
  optimizer:
    momentum: 0.9
    type: Momentum
  regularizer:
    factor: 0.0001
    type: L2

FasterRCNNTrainFeed:
  batch_size: 1
  dataset:
    dataset_dir: dataset/oid
    annotation: train.json
    image_dir: train
  sample_transforms: 
  - !DecodeImage
    to_rgb: True
    with_mixup: False
  - !RandomFlipImage
    prob: 0.5
  - !NormalizeImage
    is_channel_first: false
    is_scale: True
    mean:
    - 0.485
    - 0.456
    - 0.406
    std:
    - 0.229
    - 0.224
    - 0.225 
  - !ResizeImage
    interp: 1
    target_size: [416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 896, 928, 960, 992, 1024, 1056, 1088, 1120, 1152, 1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408]
    max_size: 1800
    use_cv2: true
  - !Permute
    to_bgr: false
  batch_transforms:
  - !PadBatch
    pad_to_stride: 32
  drop_last: false
  num_workers: 2

FasterRCNNEvalFeed:
  batch_size: 1
  dataset:
    dataset_dir: dataset/oidv5
    annotation: val.json
    image_dir: val
  sample_transforms: 
  - !DecodeImage
    to_rgb: True
    with_mixup: False
  - !NormalizeImage
    is_channel_first: false
    is_scale: True
    mean:
    - 0.485
    - 0.456
    - 0.406
    std:
    - 0.229
    - 0.224
    - 0.225 
  - !ResizeImage
    interp: 1
    target_size:
    - 1200
    max_size: 2000
    use_cv2: true
  - !Permute
    to_bgr: false
  batch_transforms:
  - !PadBatch
    pad_to_stride: 32

FasterRCNNTestFeed:
  batch_size: 1
  dataset:
    annotation: dataset/oidv5/val.json
  batch_transforms:
  - !PadBatch
    pad_to_stride: 32
  drop_last: false
  num_workers: 2
