facebookresearch / Detectron

FAIR's research platform for object detection research, implementing popular algorithms like Mask R-CNN and RetinaNet.
Apache License 2.0
26.21k stars 5.45k forks source link

roidb key error [Mask RCNN] #947

Closed mamunir closed 4 years ago

mamunir commented 4 years ago

Hi, I have made roidb perfectly fine using JsonDataset with modification in my dataset. I inserted new key in annotation along with the gt_classes of classification for my specific problem. But "collect_and_distribute_fpn_rpn_proposals.py" takes inputs do not contain that new key in my data that has been made using "def get_roidb" function. I do not know where that input is looking for instead of roidb made in "def get_roidb" function.

Following error is given:

INFO detector.py: 509: Changing learning rate 0.000000 -> 0.000067 at iter 0 [I net_async_base.h:205] Using specified CPU pool size: 4; device id: -1 [I net_async_base.h:210] Created new CPU pool, size: 4; device id: -1 [E pybind_state.h:424] Exception encountered running PythonOp function: KeyError: (u'sec_classes',)

At: /home/akhtar/detectron/detectron/datasets/json_dataset.py(404): _merge_proposal_boxes_into_roidb /home/akhtar/detectron/detectron/datasets/json_dataset.py(373): add_proposals /home/akhtar/detectron/detectron/ops/collect_and_distribute_fpn_rpn_proposals.py(58): forward

[E net_async_base.cc:377] [enforce fail at pybind_state.h:425] . Exception encountered running PythonOp function: KeyError: (u'sec_classes',)

At: /home/akhtar/detectron/detectron/datasets/json_dataset.py(404): _merge_proposal_boxes_into_roidb /home/akhtar/detectron/detectron/datasets/json_dataset.py(373): add_proposals /home/akhtar/detectron/detectron/ops/collect_and_distribute_fpn_rpn_proposals.py(58): forward

Error from operator: input: "gpu_0/rpn_rois_fpn2" input: "gpu_0/rpn_rois_fpn3" input: "gpu_0/rpn_rois_fpn4" input: "gpu_0/rpn_rois_fpn5" input: "gpu_0/rpn_rois_fpn6" input: "gpu_0/rpn_roi_probs_fpn2" input: "gpu_0/rpn_roi_probs_fpn3" input: "gpu_0/rpn_roi_probs_fpn4" input: "gpu_0/rpn_roi_probs_fpn5" input: "gpu_0/rpn_roi_probs_fpn6" input: "gpu_0/roidb" input: "gpu_0/im_info" output: "gpu_0/rois" output: "gpu_0/labels_int32" output: "gpu_0/labels_o_int32" output: "gpu_0/bbox_targets" output: "gpu_0/bbox_inside_weights" output: "gpu_0/bbox_outside_weights" output: "gpu_0/mask_rois" output: "gpu_0/roi_has_mask_int32" output: "gpu_0/masks_int32" output: "gpu_0/rois_fpn2" output: "gpu_0/rois_fpn3" output: "gpu_0/rois_fpn4" output: "gpu_0/rois_fpn5" output: "gpu_0/rois_idx_restore_int32" output: "gpu_0/mask_rois_fpn2" output: "gpu_0/mask_rois_fpn3" output: "gpu_0/mask_rois_fpn4" output: "gpu_0/mask_rois_fpn5" output: "gpu_0/mask_rois_idx_restore_int32" name: "CollectAndDistributeFpnRpnProposalsOp:gpu_0/rpn_rois_fpn2,gpu_0/rpn_rois_fpn3,gpu_0/rpn_rois_fpn4,gpu_0/rpn_rois_fpn5,gpu_0/rpn_rois_fpn6,gpu_0/rpn_roi_probs_fpn2,gpu_0/rpn_roi_probs_fpn3,gpu_0/rpn_roi_probs_fpn4,gpu_0/rpn_roi_probs_fpn5,gpu_0/rpn_roi_probs_fpn6,gpu_0/roidb,gpu_0/im_info" type: "Python" arg { name: "grad_input_indices" } arg { name: "token" s: "forward:5" } arg { name: "grad_output_indices" } device_option { device_type: 0 }Error from operator: input: "gpu_0/rpn_rois_fpn2" input: "gpu_0/rpn_rois_fpn3" input: "gpu_0/rpn_rois_fpn4" input: "gpu_0/rpn_rois_fpn5" input: "gpu_0/rpn_rois_fpn6" input: "gpu_0/rpn_roi_probs_fpn2" input: "gpu_0/rpn_roi_probs_fpn3" input: "gpu_0/rpn_roi_probs_fpn4" input: "gpu_0/rpn_roi_probs_fpn5" input: "gpu_0/rpn_roi_probs_fpn6" input: "gpu_0/roidb" input: "gpu_0/im_info" output: "gpu_0/rois" output: "gpu_0/labels_int32" output: "gpu_0/labels_o_int32" output: "gpu_0/bbox_targets" output: "gpu_0/bbox_inside_weights" output: "gpu_0/bbox_outside_weights" output: "gpu_0/mask_rois" output: "gpu_0/roi_has_mask_int32" output: "gpu_0/masks_int32" output: "gpu_0/rois_fpn2" output: "gpu_0/rois_fpn3" output: "gpu_0/rois_fpn4" output: "gpu_0/rois_fpn5" output: "gpu_0/rois_idx_restore_int32" output: "gpu_0/mask_rois_fpn2" output: "gpu_0/mask_rois_fpn3" output: "gpu_0/mask_rois_fpn4" output: "gpu_0/mask_rois_fpn5" output: "gpu_0/mask_rois_idx_restore_int32" name: "CollectAndDistributeFpnRpnProposalsOp:gpu_0/rpn_rois_fpn2,gpu_0/rpn_rois_fpn3,gpu_0/rpn_rois_fpn4,gpu_0/rpn_rois_fpn5,gpu_0/rpn_rois_fpn6,gpu_0/rpn_roi_probs_fpn2,gpu_0/rpn_roi_probs_fpn3,gpu_0/rpn_roi_probs_fpn4,gpu_0/rpn_roi_probs_fpn5,gpu_0/rpn_roi_probs_fpn6,gpu_0/roidb,gpu_0/im_info" type: "Python" arg { name: "grad_input_indices" } arg { name: "token" s: "forward:5" } arg { name: "grad_output_indices" } device_option { device_type: 1 device_id: 0 }frame #0: std::function<std::string ()>::operator()() const + 0x11 (0x7ff09289f441 in /usr/local/lib/python2.7/dist-packages/caffe2/python/../../torch/lib/libc10.so) frame #1: c10::ThrowEnforceNotMet(char const, int, char const, std::string const&, void const) + 0x49 (0x7ff09289f259 in /usr/local/lib/python2.7/dist-packages/caffe2/python/../../torch/lib/libc10.so) frame #2: + 0xa9505 (0x7ff092d87505 in /usr/local/lib/python2.7/dist-packages/caffe2/python/caffe2_pybind11_state_gpu.so) frame #3: + 0xa78c7 (0x7ff092d858c7 in /usr/local/lib/python2.7/dist-packages/caffe2/python/caffe2_pybind11_state_gpu.so) frame #4: + 0xefd5a (0x7ff092dcdd5a in /usr/local/lib/python2.7/dist-packages/caffe2/python/caffe2_pybind11_state_gpu.so) frame #5: + 0xee631 (0x7ff092dcc631 in /usr/local/lib/python2.7/dist-packages/caffe2/python/caffe2_pybind11_state_gpu.so) frame #6: caffe2::AsyncNetBase::run(int, int) + 0x144 (0x7ff0765fe1f4 in /usr/local/lib/python2.7/dist-packages/caffe2/python/../../torch/lib/libcaffe2.so) frame #7: + 0x18e7669 (0x7ff076604669 in /usr/local/lib/python2.7/dist-packages/caffe2/python/../../torch/lib/libcaffe2.so) frame #8: c10::ThreadPool::main_loop(unsigned long) + 0x253 (0x7ff092899723 in /usr/local/lib/python2.7/dist-packages/caffe2/python/../../torch/lib/libc10.so) frame #9: + 0xb8c80 (0x7ff0982b1c80 in /usr/lib/x86_64-linux-gnu/libstdc++.so.6) frame #10: + 0x76ba (0x7ff09fc606ba in /lib/x86_64-linux-gnu/libpthread.so.0) frame #11: clone + 0x6d (0x7ff09f99641d in /lib/x86_64-linux-gnu/libc.so.6) , op Python [E net_async_base.cc:129] Rethrowing exception from the run of 'generalized_rcnn' WARNING workspace.py: 218: Original python traceback for operator 219 in network generalized_rcnn in exception above (most recent call last): WARNING workspace.py: 223: File "tools/train_net.py", line 144, in WARNING workspace.py: 223: File "tools/train_net.py", line 116, in main WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/utils/train.py", line 53, in train_model WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/utils/train.py", line 145, in create_model WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/model_builder.py", line 124, in create WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/model_builder.py", line 89, in generalized_rcnn WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/model_builder.py", line 229, in build_generic_detection_model WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/optimizer.py", line 40, in build_data_parallel_model WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/optimizer.py", line 63, in _build_forward_graph WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/model_builder.py", line 189, in _single_gpu_build_func WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/rpn_heads.py", line 46, in add_generic_rpn_outputs WARNING workspace.py: 223: File "/home/akhtar/detectron/detectron/modeling/FPN.py", line 449, in add_fpn_rpn_losses Traceback (most recent call last): File "tools/train_net.py", line 144, in main() File "tools/train_net.py", line 116, in main checkpoints = detectron.utils.train.train_model() File "/home/akhtar/detectron/detectron/utils/train.py", line 67, in train_model workspace.RunNet(model.net.Proto().name) File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 250, in RunNet StringifyNetName(name), num_iter, allow_fail, File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 211, in CallWithExceptionIntercept return func(args, **kwargs)

mamunir commented 4 years ago

@ir413 @rbgirshick

vasevarad commented 4 years ago

Hello, Could anyone resolve this? @ir413 @rbgirshick