MNC用自己的数据运行得到如下错误:IndexError: index 4 is out of bounds for axis 1 with size 4

来源:互联网 发布:软件无线电开发 编辑:程序博客网 时间:2024/05/17 07:10

用自己的数据运行MNC的demo.py得到如下错误:

Demo for data/demo/000001.jpgforward time 0.193202Traceback (most recent call last):  File "demo.py", line 139, in <module>    100, im.shape[1], im.shape[0])  File "/home/zhuangni/code/idear2/MNC/tools/../lib/transform/mask_transform.py", line 237, in gpu_mask_voting    inds = nms(dets, cfg.TEST.MASK_MERGE_NMS_THRESH)  File "/home/zhuangni/code/idear2/MNC/tools/../lib/nms/nms_wrapper.py", line 19, in nms    return gpu_nms(dets, thresh, device_id=cfg.GPU_ID)  File "nms/gpu_nms.pyx", line 24, in nms.gpu_nms.gpu_nms (nms/gpu_nms.cpp:1548)IndexError: index 4 is out of bounds for axis 1 with size 4

原因:bouding box 的标注出错。 box的标注超出图像的大小。

在 _load_pascal_annotations()中:x1 = float(bbox.find('xmin').text) - 1y1 = float(bbox.find('ymin').text) - 1x2 = float(bbox.find('xmax').text) - 1y2 = float(bbox.find('ymax').text) - 1在 append_flipped_rois()中:boxes = self.roidb[i]['boxes'].copy()oldx1 = boxes[:, 0].copy()oldx2 = boxes[:, 2].copy()boxes[:, 0] = widths[i] - oldx2 - 1boxes[:, 2] = widths[i] - oldx1 - 1assert (boxes[:, 2] >= boxes[:, 0]).all()

解决方法:确保输入的box 的标注正确。

0 0
原创粉丝点击