Mirror co_dino_5scale_lsj_swin_large_16e_o365tolvis (SHA-256 0dd664cb2373...): weights, config, config.json, per-model demo banner
77ad388 verified | dataset_type = 'LVISV1Dataset' | |
| data_root = 'data/lvis_v1/' | |
| img_norm_cfg = dict( | |
| mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) | |
| train_pipeline = [ | |
| dict(type='CopyPaste', max_num_pasted=100), | |
| dict( | |
| type='Normalize', | |
| mean=[123.675, 116.28, 103.53], | |
| std=[58.395, 57.12, 57.375], | |
| to_rgb=True), | |
| dict(type='DefaultFormatBundle'), | |
| dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks']) | |
| ] | |
| test_pipeline = [ | |
| dict(type='LoadImageFromFile'), | |
| dict( | |
| type='MultiScaleFlipAug', | |
| img_scale=(1536, 1536), | |
| flip=False, | |
| transforms=[ | |
| dict(type='Resize', keep_ratio=True), | |
| dict(type='RandomFlip'), | |
| dict( | |
| type='Pad', | |
| size=(1536, 1536), | |
| pad_val=dict(img=(114, 114, 114))), | |
| dict( | |
| type='Normalize', | |
| mean=[123.675, 116.28, 103.53], | |
| std=[58.395, 57.12, 57.375], | |
| to_rgb=True), | |
| dict(type='ImageToTensor', keys=['img']), | |
| dict(type='Collect', keys=['img']) | |
| ]) | |
| ] | |
| data = dict( | |
| samples_per_gpu=1, | |
| workers_per_gpu=1, | |
| train=dict( | |
| type='MultiImageMixDataset', | |
| oversample_thr=0.001, | |
| dataset=dict( | |
| type='LVISV1Dataset', | |
| ann_file='data/lvis_v1/annotations/lvis_v1_train.json', | |
| img_prefix='data/coco/', | |
| filter_empty_gt=False, | |
| pipeline=[ | |
| dict(type='LoadImageFromFile'), | |
| dict(type='LoadAnnotations', with_bbox=True, with_mask=True), | |
| dict( | |
| type='Resize', | |
| img_scale=(1536, 1536), | |
| ratio_range=(0.1, 2.0), | |
| multiscale_mode='range', | |
| keep_ratio=True), | |
| dict( | |
| type='RandomCrop', | |
| crop_type='absolute_range', | |
| crop_size=(1536, 1536), | |
| recompute_bbox=True, | |
| allow_negative_crop=True), | |
| dict(type='FilterAnnotations', min_gt_bbox_wh=(0.01, 0.01)), | |
| dict(type='RandomFlip', flip_ratio=0.5), | |
| dict( | |
| type='Pad', | |
| size=(1536, 1536), | |
| pad_val=dict(img=(114, 114, 114))) | |
| ]), | |
| filter_empty_gt=False, | |
| pipeline=[ | |
| dict(type='CopyPaste', max_num_pasted=100), | |
| dict( | |
| type='Normalize', | |
| mean=[123.675, 116.28, 103.53], | |
| std=[58.395, 57.12, 57.375], | |
| to_rgb=True), | |
| dict(type='DefaultFormatBundle'), | |
| dict( | |
| type='Collect', | |
| keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks']) | |
| ]), | |
| val=dict( | |
| type='LVISV1Dataset', | |
| ann_file='data/lvis_v1/annotations/lvis_v1_val.json', | |
| img_prefix='data/lvis_v1/', | |
| pipeline=[ | |
| dict(type='LoadImageFromFile'), | |
| dict( | |
| type='MultiScaleFlipAug', | |
| img_scale=(1536, 1536), | |
| flip=False, | |
| transforms=[ | |
| dict(type='Resize', keep_ratio=True), | |
| dict(type='RandomFlip'), | |
| dict( | |
| type='Pad', | |
| size=(1536, 1536), | |
| pad_val=dict(img=(114, 114, 114))), | |
| dict( | |
| type='Normalize', | |
| mean=[123.675, 116.28, 103.53], | |
| std=[58.395, 57.12, 57.375], | |
| to_rgb=True), | |
| dict(type='ImageToTensor', keys=['img']), | |
| dict(type='Collect', keys=['img']) | |
| ]) | |
| ]), | |
| test=dict( | |
| type='LVISV1Dataset', | |
| ann_file='data/lvis_v1/annotations/lvis_v1_val.json', | |
| img_prefix='data/lvis_v1/', | |
| pipeline=[ | |
| dict(type='LoadImageFromFile'), | |
| dict( | |
| type='MultiScaleFlipAug', | |
| img_scale=(1536, 1536), | |
| flip=False, | |
| transforms=[ | |
| dict(type='Resize', keep_ratio=True), | |
| dict(type='RandomFlip'), | |
| dict( | |
| type='Pad', | |
| size=(1536, 1536), | |
| pad_val=dict(img=(114, 114, 114))), | |
| dict( | |
| type='Normalize', | |
| mean=[123.675, 116.28, 103.53], | |
| std=[58.395, 57.12, 57.375], | |
| to_rgb=True), | |
| dict(type='ImageToTensor', keys=['img']), | |
| dict(type='Collect', keys=['img']) | |
| ]) | |
| ])) | |
| evaluation = dict(metric=['bbox', 'segm']) | |
| checkpoint_config = dict(interval=1) | |
| log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')]) | |
| custom_hooks = [dict(type='NumClassCheckHook')] | |
| dist_params = dict(backend='nccl') | |
| log_level = 'INFO' | |
| load_from = 'models/co_dino_5scale_swin_large_22e_o365.pth' | |
| resume_from = None | |
| workflow = [('train', 1)] | |
| opencv_num_threads = 0 | |
| mp_start_method = 'fork' | |
| auto_scale_lr = dict(enable=False, base_batch_size=16) | |
| num_dec_layer = 6 | |
| lambda_2 = 2.0 | |
| model = dict( | |
| type='CoDETR', | |
| backbone=dict( | |
| type='SwinTransformerV1', | |
| embed_dim=192, | |
| depths=[2, 2, 18, 2], | |
| num_heads=[6, 12, 24, 48], | |
| out_indices=(0, 1, 2, 3), | |
| window_size=12, | |
| ape=False, | |
| drop_path_rate=0.3, | |
| patch_norm=True, | |
| use_checkpoint=False, | |
| pretrained='models/co_dino_5scale_lsj_swin_large_3x_lvis.pth'), | |
| neck=dict( | |
| type='ChannelMapper', | |
| in_channels=[192, 384, 768, 1536], | |
| kernel_size=1, | |
| out_channels=256, | |
| act_cfg=None, | |
| norm_cfg=dict(type='GN', num_groups=32), | |
| num_outs=5), | |
| rpn_head=dict( | |
| type='RPNHead', | |
| in_channels=256, | |
| feat_channels=256, | |
| anchor_generator=dict( | |
| type='AnchorGenerator', | |
| octave_base_scale=4, | |
| scales_per_octave=3, | |
| ratios=[0.5, 1.0, 2.0], | |
| strides=[4, 8, 16, 32, 64, 128]), | |
| bbox_coder=dict( | |
| type='DeltaXYWHBBoxCoder', | |
| target_means=[0.0, 0.0, 0.0, 0.0], | |
| target_stds=[1.0, 1.0, 1.0, 1.0]), | |
| loss_cls=dict( | |
| type='CrossEntropyLoss', use_sigmoid=True, loss_weight=12.0), | |
| loss_bbox=dict(type='L1Loss', loss_weight=12.0)), | |
| query_head=dict( | |
| type='CoDINOHead', | |
| num_query=900, | |
| num_classes=1203, | |
| num_feature_levels=5, | |
| in_channels=2048, | |
| sync_cls_avg_factor=True, | |
| as_two_stage=True, | |
| with_box_refine=True, | |
| mixed_selection=True, | |
| dn_cfg=dict( | |
| type='CdnQueryGenerator', | |
| noise_scale=dict(label=0.5, box=0.4), | |
| group_cfg=dict(dynamic=True, num_groups=None, num_dn_queries=500)), | |
| transformer=dict( | |
| type='CoDinoTransformer', | |
| with_pos_coord=True, | |
| with_coord_feat=False, | |
| num_co_heads=2, | |
| num_feature_levels=5, | |
| encoder=dict( | |
| type='DetrTransformerEncoder', | |
| num_layers=6, | |
| with_cp=6, | |
| transformerlayers=dict( | |
| type='BaseTransformerLayer', | |
| attn_cfgs=dict( | |
| type='MultiScaleDeformableAttention', | |
| embed_dims=256, | |
| num_levels=5, | |
| dropout=0.0), | |
| feedforward_channels=2048, | |
| ffn_dropout=0.0, | |
| operation_order=('self_attn', 'norm', 'ffn', 'norm'))), | |
| decoder=dict( | |
| type='DinoTransformerDecoder', | |
| num_layers=6, | |
| return_intermediate=True, | |
| transformerlayers=dict( | |
| type='DetrTransformerDecoderLayer', | |
| attn_cfgs=[ | |
| dict( | |
| type='MultiheadAttention', | |
| embed_dims=256, | |
| num_heads=8, | |
| dropout=0.0), | |
| dict( | |
| type='MultiScaleDeformableAttention', | |
| embed_dims=256, | |
| num_levels=5, | |
| dropout=0.0) | |
| ], | |
| feedforward_channels=2048, | |
| ffn_dropout=0.0, | |
| operation_order=('self_attn', 'norm', 'cross_attn', 'norm', | |
| 'ffn', 'norm')))), | |
| positional_encoding=dict( | |
| type='SinePositionalEncoding', | |
| num_feats=128, | |
| temperature=20, | |
| normalize=True), | |
| loss_cls=dict( | |
| type='QualityFocalLoss', | |
| use_sigmoid=True, | |
| beta=2.0, | |
| loss_weight=1.0), | |
| loss_bbox=dict(type='L1Loss', loss_weight=5.0), | |
| loss_iou=dict(type='GIoULoss', loss_weight=2.0)), | |
| roi_head=[ | |
| dict( | |
| type='CoStandardRoIHead', | |
| bbox_roi_extractor=dict( | |
| type='SingleRoIExtractor', | |
| roi_layer=dict( | |
| type='RoIAlign', output_size=7, sampling_ratio=0), | |
| out_channels=256, | |
| featmap_strides=[4, 8, 16, 32, 64], | |
| finest_scale=56), | |
| bbox_head=dict( | |
| type='Shared2FCBBoxHead', | |
| in_channels=256, | |
| fc_out_channels=1024, | |
| roi_feat_size=7, | |
| num_classes=1203, | |
| bbox_coder=dict( | |
| type='DeltaXYWHBBoxCoder', | |
| target_means=[0.0, 0.0, 0.0, 0.0], | |
| target_stds=[0.1, 0.1, 0.2, 0.2]), | |
| reg_class_agnostic=False, | |
| reg_decoded_bbox=True, | |
| loss_cls=dict( | |
| type='CrossEntropyLoss', | |
| use_sigmoid=False, | |
| loss_weight=12.0), | |
| loss_bbox=dict(type='GIoULoss', loss_weight=120.0))) | |
| ], | |
| bbox_head=[ | |
| dict( | |
| type='CoATSSHead', | |
| num_classes=1203, | |
| in_channels=256, | |
| stacked_convs=1, | |
| feat_channels=256, | |
| anchor_generator=dict( | |
| type='AnchorGenerator', | |
| ratios=[1.0], | |
| octave_base_scale=8, | |
| scales_per_octave=1, | |
| strides=[4, 8, 16, 32, 64, 128]), | |
| bbox_coder=dict( | |
| type='DeltaXYWHBBoxCoder', | |
| target_means=[0.0, 0.0, 0.0, 0.0], | |
| target_stds=[0.1, 0.1, 0.2, 0.2]), | |
| loss_cls=dict( | |
| type='FocalLoss', | |
| use_sigmoid=True, | |
| gamma=2.0, | |
| alpha=0.25, | |
| loss_weight=12.0), | |
| loss_bbox=dict(type='GIoULoss', loss_weight=24.0), | |
| loss_centerness=dict( | |
| type='CrossEntropyLoss', use_sigmoid=True, loss_weight=12.0)) | |
| ], | |
| train_cfg=[ | |
| dict( | |
| assigner=dict( | |
| type='HungarianAssigner', | |
| cls_cost=dict(type='FocalLossCost', weight=2.0), | |
| reg_cost=dict( | |
| type='BBoxL1Cost', weight=5.0, box_format='xywh'), | |
| iou_cost=dict(type='IoUCost', iou_mode='giou', weight=2.0))), | |
| dict( | |
| rpn=dict( | |
| assigner=dict( | |
| type='MaxIoUAssigner', | |
| pos_iou_thr=0.7, | |
| neg_iou_thr=0.3, | |
| min_pos_iou=0.3, | |
| match_low_quality=True, | |
| ignore_iof_thr=-1), | |
| sampler=dict( | |
| type='RandomSampler', | |
| num=256, | |
| pos_fraction=0.5, | |
| neg_pos_ub=-1, | |
| add_gt_as_proposals=False), | |
| allowed_border=-1, | |
| pos_weight=-1, | |
| debug=False), | |
| rpn_proposal=dict( | |
| nms_pre=4000, | |
| max_per_img=1000, | |
| nms=dict(type='nms', iou_threshold=0.7), | |
| min_bbox_size=0), | |
| rcnn=dict( | |
| assigner=dict( | |
| type='MaxIoUAssigner', | |
| pos_iou_thr=0.5, | |
| neg_iou_thr=0.5, | |
| min_pos_iou=0.5, | |
| match_low_quality=False, | |
| ignore_iof_thr=-1), | |
| sampler=dict( | |
| type='RandomSampler', | |
| num=512, | |
| pos_fraction=0.25, | |
| neg_pos_ub=-1, | |
| add_gt_as_proposals=True), | |
| pos_weight=-1, | |
| debug=False)), | |
| dict( | |
| assigner=dict(type='ATSSAssigner', topk=9), | |
| allowed_border=-1, | |
| pos_weight=-1, | |
| debug=False) | |
| ], | |
| test_cfg=[ | |
| dict(max_per_img=1000, nms=dict(type='soft_nms', iou_threshold=0.8)), | |
| dict( | |
| rpn=dict( | |
| nms_pre=1000, | |
| max_per_img=1000, | |
| nms=dict(type='nms', iou_threshold=0.7), | |
| min_bbox_size=0), | |
| rcnn=dict( | |
| score_thr=0.0, | |
| nms=dict(type='nms', iou_threshold=0.5), | |
| max_per_img=1000)), | |
| dict( | |
| nms_pre=1000, | |
| min_bbox_size=0, | |
| score_thr=0.0, | |
| nms=dict(type='nms', iou_threshold=0.6), | |
| max_per_img=1000) | |
| ], | |
| with_attn_mask=False) | |
| optimizer = dict( | |
| type='AdamW', | |
| lr=0.0001, | |
| weight_decay=0.0001, | |
| paramwise_cfg=dict(custom_keys=dict(backbone=dict(lr_mult=0.1)))) | |
| optimizer_config = dict(grad_clip=dict(max_norm=0.1, norm_type=2)) | |
| lr_config = dict(policy='step', step=[8]) | |
| runner = dict(type='EpochBasedRunner', max_epochs=16) | |
| image_size = (1536, 1536) | |
| load_pipeline = [ | |
| dict(type='LoadImageFromFile'), | |
| dict(type='LoadAnnotations', with_bbox=True, with_mask=True), | |
| dict( | |
| type='Resize', | |
| img_scale=(1536, 1536), | |
| ratio_range=(0.1, 2.0), | |
| multiscale_mode='range', | |
| keep_ratio=True), | |
| dict( | |
| type='RandomCrop', | |
| crop_type='absolute_range', | |
| crop_size=(1536, 1536), | |
| recompute_bbox=True, | |
| allow_negative_crop=True), | |
| dict(type='FilterAnnotations', min_gt_bbox_wh=(0.01, 0.01)), | |
| dict(type='RandomFlip', flip_ratio=0.5), | |
| dict(type='Pad', size=(1536, 1536), pad_val=dict(img=(114, 114, 114))) | |
| ] | |
| img_data_root = 'data/coco/' | |
| pretrained = None | |