Beispiel #1
0
def gt(path: str) -> List[dict]:
    max_dets = [1, 10, 100, 1000]

    from spiders.coco_ssm_spider import COCOSSMDemoSpider
    spider = COCOSSMDemoSpider()
    cocoGt = spider.dataset

    cocoDt = cocoGt.loadRes(path)  # path to results
    cocoEval = COCOeval(cocoGt, cocoDt)

    cocoEval.params.imgIds = sorted(cocoGt.getImgIds())
    cocoEval.params.maxDets = max_dets
    cocoEval.params.useSegm = True
    cocoEval.params.useCats = False
    cocoEval.params.iouThrs = [0.5]
    cocoEval.evaluate()

    counter = 0
    resultID_2_iou = {}
    for imgId, foo in cocoEval.ious.keys():
        counter += 1
        if cocoEval.ious[(imgId, foo)] != []:
            cocoEval.ious[(imgId, foo)] = cocoEval.ious[(imgId, foo)][:, :]
            for resultID in range(cocoEval.ious[(imgId, foo)].shape[0]):
                iou = np.max(cocoEval.ious[(imgId, foo)][resultID, :])
                detID = cocoEval._dtIDs[(imgId, -1)][resultID]  # ["resultID"]
                resultID_2_iou[detID] = iou

    print("resultID_2_io = {}".format(resultID_2_iou))
    proposals = load_proposals(path)
    for prop in proposals:
        prop['objn'] = resultID_2_iou[prop['resultID']]
        prop['score'] = resultID_2_iou[prop['resultID']]
    return proposals
Beispiel #2
0
    interp_layers = [layer for layer in net.params.keys() if 'up' in layer]
    utils.interp(net, interp_layers)

    if os.path.exists("configs/%s.json" % args.model):
        load_config("configs/%s.json" % args.model)
    else:
        print "Specified config does not exists, use the default config..."

    time.sleep(2)

    timer = Timer()

    config.ANNOTATION_TYPE = args.dataset
    config.IMAGE_SET = "val2014"
    from spiders.coco_ssm_spider import COCOSSMDemoSpider
    spider = COCOSSMDemoSpider()
    spider.dataset.sort(key=lambda item: int(item.image_path[-10:-4]))
    ds = spider.dataset[:args.end]

    timer.tic()
    results = []
    for i in range(len(ds)):

        spider.fetch()
        img = spider.img_blob
        image_id = int(ds[i].image_path[-10:-4])

        # gen mask
        ret = gen_masks(net,
                        img,
                        config,
Beispiel #3
0
                        keep[i] = False

            for i in reversed(np.where(keep == False)[0]):
                del sub_results[i]
            sub_results = sub_results[:args.max_proposal]

            for result in sub_results:
                results.append(result)

    with open("results/%s_temp.json" % args.model, 'wb') as f:
        f.write(cjson.encode(results))

    config.ANNOTATION_TYPE = args.dataset
    config.IMAGE_SET = args.dataset
    from spiders.coco_ssm_spider import COCOSSMDemoSpider
    spider = COCOSSMDemoSpider()
    ds = spider.dataset

    cocoGt = ds
    cocoDt = cocoGt.loadRes("results/%s_temp.json" % args.model)
    cocoEval = COCOeval(cocoGt, cocoDt)

    if args.debug:
        embed()

    cocoEval.params.imgIds = sorted(cocoGt.getImgIds())[:args.end]
    cocoEval.params.maxDets = max_dets
    cocoEval.params.useSegm = args.useSegm
    cocoEval.params.useCats = args.useCats
    cocoEval.evaluate()
    cocoEval.accumulate()
Beispiel #4
0
    caffe.set_mode_gpu()
    caffe.set_device(int(args.gpu_id))
    setproctitle.setproctitle(args.model_prototxt)

    net = caffe.Net('models/' + args.model_prototxt + ".test.prototxt",
                    'params/' + args.init_weights, caffe.TEST)

    if os.path.exists("configs/%s.json" % args.model_prototxt):
        load_config("configs/%s.json" % args.model_prototxt)
    else:
        print "Specified config does not exists, use the default config..."

    config.ANNOTATION_TYPE = "val2014"
    config.IMAGE_SET = "val2014"
    from spiders.coco_ssm_spider import COCOSSMDemoSpider
    spider = COCOSSMDemoSpider()
    ds = spider.dataset

    i = 0
    while i < args.start_from:
        spider.next_idx()
        i += 1

    timer = Timer()

    for i in range(i, len(ds)):
        if len(ds[i].imgToAnns) == 0:
            continue
        else:
            image_id = ds[i].imgToAnns[0]['image_id']
        spider.fetch()