'Load pre-computed proposals in the format provided by Jan Hosang:
http://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-
computing/research/object-recognition-and-scene-understanding/how-
good-are-detection-proposals-really/
For MCG, use boxes from http://www.eecs.berkeley.edu/Research/Projects/
CS/vision/grouping/mcg/ and convert the file layout using
lib/datasets/tools/mcg_munge.py.'

def _load_proposals(self, method, gt_roidb):

    box_list = []
    top_k = self.config['top_k']
    valid_methods = ['MCG', 'selective_search', 'edge_boxes_AR', 'edge_boxes_70']
    assert (method in valid_methods)
    print 'Loading    {}    boxes'.format(method)
    for (i, index) in enumerate(self._image_index):
        if ((i % 1000) == 0):
            print '{:d}    /    {:d}'.format((i + 1), len(self._image_index))
        box_file = osp.join(cfg.DATA_DIR, 'coco_proposals', method, 'mat', self._get_box_file(index))
        raw_data = sio.loadmat(box_file)['boxes']
        boxes = np.maximum((raw_data - 1), 0).astype(np.uint16)
        if (method == 'MCG'):
            boxes = boxes[:, (1, 0, 3, 2)]
        keep = ds_utils.unique_boxes(boxes)
        boxes = boxes[keep, :]
        keep = ds_utils.filter_small_boxes(boxes, self.config['min_size'])
        boxes = boxes[keep, :]
        boxes = boxes[:top_k, :]
        box_list.append(boxes)
        im_ann = self._COCO.loadImgs(index)[0]
        width = im_ann['width']
        height = im_ann['height']
        ds_utils.validate_boxes(boxes, width=width, height=height)
    return self.create_roidb_from_box_list(box_list, gt_roidb)
