'get selective search roidb and ground truth roidb
:param gt_roidb: ground truth roidb
:param append_gt: append ground truth
:return: roidb of selective search'

def selective_search_roidb(self, gt_roidb, append_gt=False):

    cache_file = os.path.join(self.cache_path, (self.name + '_ss_roidb.pkl'))
    if os.path.exists(cache_file):
        with open(cache_file, 'rb') as fid:
            roidb = cPickle.load(fid)
        logger.info(('%s    ss    roidb    loaded    from    %s' % (self.name, cache_file)))
        return roidb
    if append_gt:
        logger.info(('%s    appending    ground    truth    annotations' % self.name))
        ss_roidb = self.load_selective_search_roidb(gt_roidb)
        roidb = IMDB.merge_roidbs(gt_roidb, ss_roidb)
    else:
        roidb = self.load_selective_search_roidb(gt_roidb)
    with open(cache_file, 'wb') as fid:
        cPickle.dump(roidb, fid, cPickle.HIGHEST_PROTOCOL)
    logger.info(('%s    wrote    ss    roidb    to    %s' % (self.name, cache_file)))
    return roidb
