Open limengfei3675 opened 4 years ago
Hi,TSD project has not been adapted to MMdetV2.0 and the code is wrote under v1.x version (The old v1.x branch works with PyTorch 1.1 to 1.4). You can use v1.x MMdet and the corresponding MMCV to run this code.
I have also encountered this problem recently. Has this problem been well solved?
Has anyone ported the code to mmdet2.0?
refer to my environment:
PyTorch: 1.3.1 TorchVision: 0.4.2 OpenCV: 4.4.0 MMCV: 0.4.3 MMDetection: 1.1.0+144fc96 MMDetection Compiler: GCC 5.4 MMDetection CUDA Compiler: 10.2
@zhaoxin111 how to install mmdetection1.1.0 . i just can install mmdet2.6? can give me some details? THANKS!!
Hello, we use the command: python train.py ../configs/faster_rcnn_r152_fpn_TSD_1x.py --work_dir exp/TSD_r152/ --validate to train the network, throwing TypeError: init() got an unexpected keyword argument'bbox_roi_extractor'
python train.py ../configs/faster_rcnn_r152_fpn_TSD_1x.py --work_dir exp/TSD_r152/ --validate 2020-07-15 13:31:48,830 - mmdet - INFO - Environment info:
sys.platform: linux Python: 3.7.5 (default, Oct 25 2019, 15:51:11) [GCC 7.3.0] CUDA available: True CUDA_HOME: /usr/local/cuda-10.1 NVCC: Cuda compilation tools, release 10.1, V10.1.243 GPU 0: GeForce RTX 2080 Ti GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 PyTorch: 1.5.0 PyTorch compiling details: PyTorch built with:
TorchVision: 0.6.0 OpenCV: 4.2.0 MMCV: 1.0.2 MMDetection: 2.3.0rc0+unknown MMDetection Compiler: GCC 7.3 MMDetection CUDA Compiler: 10.1
2020-07-15 13:31:48,831 - mmdet - INFO - Distributed training: False 2020-07-15 13:31:48,831 - mmdet - INFO - Config: /home/along/lmf_workspace/mmdetection/TSD-master/configs/faster_rcnn_r152_fpn_TSD_1x.py
model settings
model = dict( type='FasterRCNN', pretrained='torchvision://resnet152', backbone=dict( type='ResNet', depth=152, num_stages=4, out_indices=(0, 1, 2, 3), frozen_stages=1, norm_cfg=dict(type='BN', requires_grad=True), style='pytorch'), neck=dict( type='FPN', in_channels=[256, 512, 1024, 2048], out_channels=256, num_outs=5), rpn_head=dict( type='RPNHead', in_channels=256, feat_channels=256, anchor_scales=[8], anchor_ratios=[0.5, 1.0, 2.0], anchor_strides=[4, 8, 16, 32, 64], target_means=[.0, .0, .0, .0], target_stds=[1.0, 1.0, 1.0, 1.0], loss_cls=dict( type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0), loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0)), bbox_roi_extractor=dict( type='SingleRoIExtractor', roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), out_channels=256, featmap_strides=[4, 8, 16, 32]), bbox_head=dict( type='TSDSharedFCBBoxHead', featmap_strides=[4, 8, 16, 32], num_fcs=2, in_channels=256, fc_out_channels=1024, roi_feat_size=7, num_classes=81, cls_pc_margin=0.3, loc_pc_margin=0.3, target_means=[0., 0., 0., 0.], target_stds=[0.1, 0.1, 0.2, 0.2], reg_class_agnostic=False, loss_cls=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
model training and testing settings
train_cfg = dict( rpn=dict( assigner=dict( type='MaxIoUAssigner', pos_iou_thr=0.7, neg_iou_thr=0.3, min_pos_iou=0.3, 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=0, pos_weight=-1, debug=False), rpn_proposal=dict( nms_across_levels=False, nms_pre=2000, nms_post=2000, max_num=2000, nms_thr=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, 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)) test_cfg = dict( rpn=dict( nms_across_levels=False, nms_pre=1000, nms_post=1000, max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( score_thr=0.00, nms=dict(type='nms', iou_thr=0.5), max_per_img=100)
soft-nms is also supported for rcnn testing
)
dataset settings
dataset_type = 'CocoDataset' data_root = 'data/coco/' 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='LoadImageFromFile'), dict(type='LoadAnnotations', with_bbox=True), dict(type='Resize', img_scale=(1333, 800), keep_ratio=True), dict(type='RandomFlip', flip_ratio=0.5), dict(type='Normalize', img_norm_cfg), dict(type='Pad', size_divisor=32), dict(type='DefaultFormatBundle'), dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), ] test_pipeline = [ dict(type='LoadImageFromFile'), dict( type='MultiScaleFlipAug', img_scale=(1333, 800), flip=False, transforms=[ dict(type='Resize', keep_ratio=True), dict(type='RandomFlip'), dict(type='Normalize', img_norm_cfg), dict(type='Pad', size_divisor=32), dict(type='ImageToTensor', keys=['img']), dict(type='Collect', keys=['img']), ]) ] data = dict( imgs_per_gpu=2, workers_per_gpu=2, train=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_train2017.json', img_prefix=data_root + 'train2017/', pipeline=train_pipeline), val=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_val2017.json', img_prefix=data_root + 'val2017/', pipeline=test_pipeline), test=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_val2017.json', img_prefix=data_root + 'val2017/', pipeline=test_pipeline)) evaluation = dict(interval=1, metric='bbox')
optimizer
optimizer = dict(type='SGD', lr=0.04, momentum=0.9, weight_decay=0.0001) optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
learning policy
lr_config = dict( policy='step', warmup='linear', warmup_iters=3600, warmup_ratio=1.0 / 32, step=[9, 12]) checkpoint_config = dict(interval=1)
yapf:disable
log_config = dict( interval=50, hooks=[ dict(type='TextLoggerHook'),
dict(type='TensorboardLoggerHook')
yapf:enable
runtime settings
total_epochs = 14 dist_params = dict(backend='nccl') log_level = 'INFO' work_dir = './work_dirs/faster_rcnn_r50_fpn_1x' load_from = None resume_from = None workflow = [('train', 1)]
Traceback (most recent call last): File "train.py", line 151, in
main()
File "train.py", line 124, in main
cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)
File "/home/along/lmf_workspace/mmdetection/mmdetection-master/mmdet/models/builder.py", line 67, in build_detector
return build(cfg, DETECTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg))
File "/home/along/lmf_workspace/mmdetection/mmdetection-master/mmdet/models/builder.py", line 32, in build
return build_from_cfg(cfg, registry, default_args)
File "/home/along/anaconda3/envs/lmf/lib/python3.7/site-packages/mmcv/utils/registry.py", line 167, in build_from_cfg
return obj_cls(**args)
TypeError: init() got an unexpected keyword argument 'bbox_roi_extractor'