msracver / Relation-Networks-for-Object-Detection

Relation Networks for Object Detection
MIT License
1.09k stars 190 forks source link

how to use own COCO-like data? And I get an error about num_classes? #25

Open talengu opened 5 years ago

talengu commented 5 years ago

I set the YAML as NUM_CLASSES: 189.

And I use tool https://raw.githubusercontent.com/withyou1771/Detectron_FocalLoss/master/tools/xml_to_json.py to get COCO-like data from VOC-like data.

then run

python experiments/relation_rcnn/rcnn_end2end_train_test.py --cfg experiments/relation_rcnn/cfgs/epoch8.yaml

HERE the error info.

('lr', 0.0005, 'lr_epoch_diff', [5.33], 'lr_iters', [79950])
Epoch[0] Batch [100]    Speed: 3.82 samples/sec Train-RPNAcc=0.964979,  RPNLogLoss=0.105434,    RPNL1Loss=0.111539,     RCNNAcc=0.837523,       RCNNLogLoss=1.683923,   RCNNL1Loss=0.280678,    NMSLoss_pos=0.052915,      NMSLoss_neg=0.014347,   NMSAcc_pos=0.000000,    NMSAcc_neg=1.000000,    
Epoch[0] Batch [200]    Speed: 3.83 samples/sec Train-RPNAcc=0.971723,  RPNLogLoss=0.088618,    RPNL1Loss=0.084358,     RCNNAcc=0.865341,       RCNNLogLoss=1.241336,   RCNNL1Loss=0.223327,    NMSLoss_pos=0.056996,      NMSLoss_neg=0.010787,   NMSAcc_pos=0.000000,    NMSAcc_neg=1.000000,    
Error in CustomOp.forward: Traceback (most recent call last):
  File "/home/hri/anaconda3/envs/relations/lib/python2.7/site-packages/mxnet/operator.py", line 987, in forward_entry
    aux=tensors[4])
  File "experiments/relation_rcnn/../../relation_rcnn/operator_py/box_annotator_ohem.py", line 36, in forward
    per_roi_loss_cls = per_roi_loss_cls[np.arange(per_roi_loss_cls.shape[0], dtype='int'), labels.astype('int')]
IndexError: index 189 is out of bounds for axis 1 with size 189

terminate called after throwing an instance of 'dmlc::Error'
  what():  [21:01:01] src/operator/custom/custom.cc:347: Check failed: reinterpret_cast<CustomOpFBFunc>( params.info->callbacks[kCustomOpForward])( ptrs.size(), const_cast<void**>(ptrs.data()), const_cast<int*>(tags.data()), reinterpret_cast<const int*>(req.data()), static_cast<int>(ctx.is_train), params.info->contexts[kCustomOpForward]) 

Stack trace returned 7 entries:
[bt] (0) /home/hri/anaconda3/envs/relations/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x30756a) [0x7f50471e156a]
[bt] (1) /home/hri/anaconda3/envs/relations/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x307b91) [0x7f50471e1b91]
[bt] (2) /home/hri/anaconda3/envs/relations/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x4853f7) [0x7f504735f3f7]
[bt] (3) /home/hri/anaconda3/envs/relations/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x46b128) [0x7f5047345128]
[bt] (4) /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb8c80) [0x7f50b2816c80]
[bt] (5) /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f50b903e6ba]
[bt] (6) /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f50b866441d]

Any help? Thanks

talengu commented 5 years ago

I found just NUM_CLASSES: 190 . And it will run ok. I am trying figure out the reason.

chengdazhi commented 5 years ago

Maybe you forgot the background class.

okluckychen commented 3 years ago

@talengu 您好,我也想把自己的voc数据集转换成coco数据集,然后在这个代码上跑,请问您最后实现了吗?万分感谢!!!!!

talengu commented 3 years ago

@talengu 您好,我也想把自己的voc数据集转换成coco数据集,然后在这个代码上跑,请问您最后实现了吗?万分感谢!!!!!

你好,不好意思,我已很久没关注这个代码了。 加油!我记得有个脚本可以转的,你百度一下。