rbgirshick / py-faster-rcnn

Faster R-CNN (Python implementation) -- see https://github.com/ShaoqingRen/faster_rcnn for the official MATLAB version
Other
8.11k stars 4.11k forks source link

Error: KeyError: 'seg_areas' somewhere between training #323

Open abhisheksgumadi opened 8 years ago

abhisheksgumadi commented 8 years ago

Hi,

I am training on two classes (background vs object) and I get this error somewhere in between during training. Any idea how to solve this?

Set proposal method: rpn Appending horizontally-flipped training examples... train gt roidb loaded from /.../train_gt_roidb.pkl loading /.../vgg16_rpn_stage1_iter_1000_proposals.pkl Process Process-3: Traceback (most recent call last): File "/home/cvuser/anaconda/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/home/cvuser/anaconda/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(_self._args, *_self._kwargs) File "./tools/train_faster_rcnn_alt_opt.py", line 190, in train_fast_rcnn roidb, imdb = get_roidb(imdb_name, rpn_file=rpn_file)
File "./tools/train_faster_rcnn_alt_opt.py", line 67, in get_roidb roidb = get_training_roidb(imdb) File "/.../../lib/fast_rcnn/train.py", line 118, in get_training_roidb imdb.append_flipped_images() File "/.../../lib/datasets/imdb.py", line 106, in append_flipped_images boxes = self.roidb[i]['boxes'].copy() File "/.../../lib/datasets/imdb.py", line 67, in roidb self._roidb = self.roidb_handler() File "/.../../lib/datasets/imagenet.py", line 132, in rpn_roidb roidb = imdb.merge_roidbs(gt_roidb, rpn_roidb) File "/.../../lib/datasets/imdb.py", line 252, in merge_roidbs a[i]['seg_areas'] = np.hstack((a[i]['seg_areas'], KeyError: 'seg_areas'

Can someone say how to solve this?

karaspd commented 8 years ago

When you load your dataset annotation do you have something like: seg_areas[ix] = (x2 - x1 + 1) * (y2 - y1 + 1) overlaps = scipy.sparse.csr_matrix(overlaps)

    return {'boxes' : boxes,
            'gt_classes': gt_classes,
            'gt_overlaps' : overlaps,
            'flipped' : False,
            'seg_areas' : seg_areas}

if you do not have seg_areas when you are loading annotations, comment the line 252 in imdb.py may solve your issue.

nnop commented 7 years ago

I didn't see anywhere using seg_areas.