Exemplo n.º 1
0
def main():
    parser = make_parser()
    args = parser.parse_args()
    # loading the mscoco validation set .

    dataType = args.dataType
    dataDir = args.dataDir
    annFile = '{}/annotations/instances_{}.json'.format(dataDir, dataType)
    coco = COCO(annFile)
    cats = coco.loadCats(coco.getCatIds())
    #nms=[cat['name'] for cat in cats]
    imgDir = '{}/images/{}'.format(dataDir, dataType)
    #print('COCO categories: \n{}\n'.format(' '.join(nms)))
    #nms = set([cat['supercategory'] for cat in cats])
    #print('COCO supercategories: \n{}'.format(' '.join(nms)))

    coco_demo = COCODemo(cfg, min_image_size=800, confidence_threshold=0.5)

    coco_dataset = COCODataset(annFile, dataDir + '/images/' + args.dataType,
                               True)
    initial_detection(coco_dataset,
                      coco_demo,
                      args,
                      max_images=args.max_images,
                      savedir=args.save_dir)
    print(args)
    #masked_detection( coco_dataset, coco_demo, args)
    masked_detection_2(coco_dataset, coco_demo, args)

    print('all_at_once:', args.all_at_once)
Exemplo n.º 2
0
def do_coco_evaluation(
    dataset,
    predictions,
    box_only,
    output_folder,
    iou_types,
    expected_results,
    expected_results_sigma_tol,
    test_result_filename,
):

    logger = logging.getLogger("maskrcnn_benchmark.inference")
    logger.info("Converting annotations to COCO format...")
    coco_annotation_dict = convert_abstract_to_coco(dataset)

    dataset_name = dataset.__class__.__name__
    coco_annotation_path = os.path.join(output_folder, dataset_name + ".json")
    logger.info("Saving annotations to %s" % coco_annotation_path)
    with open(coco_annotation_path, "w") as f:
        json.dump(coco_annotation_dict, f, indent=2)

    logger.info("Loading annotations as COCODataset")
    coco_dataset = COCODataset(
        ann_file=coco_annotation_path,
        root="",
        remove_images_without_annotations=False,
        transforms=None,  # transformations should be already saved to the json
    )

    return orig_evaluation(
        dataset=coco_dataset,
        predictions=predictions,
        box_only=box_only,
        output_folder=output_folder,
        iou_types=iou_types,
        expected_results=expected_results,
        expected_results_sigma_tol=expected_results_sigma_tol,
        test_result_filename=test_result_filename,
    )
Exemplo n.º 3
0
import os
from maskrcnn_benchmark.data.datasets.coco import COCODataset

dataset = COCODataset(
    "./my_dataset/train/instances_post_train2018.json",
    "./my_dataset/train/images",
    True,
)

# boxlist = dataset[0]
# print(boxlist.bbox)

# boxlist = dataset[1][1]
# print(boxlist.bbox)
Exemplo n.º 4
0
            continue
        cutsize = max(x2 - x1, y2 - y1) * 8 / 7 / 2 
        midx = (x1 + x2) / 2
        midy = (y1 + y2) / 2
        crop_img = image.crop((int(midx - cutsize), int(midy - cutsize), int(midx + cutsize), int(midy + cutsize)))
        closeup.append(crop_img)
    return closeup, closeup_target


imgdirs = ['datasets/coco/train2014', 'datasets/coco/val2014']
annofiles = ["datasets/coco/annotations/instances_train2014_base.json", "datasets/coco/annotations/instances_valminusminival2014_base.json"]
if not os.path.exists('datasets/coco/Crops'):
    os.mkdir('datasets/coco/Crops')
else:
    shutil.rmtree('datasets/coco/Crops')
    os.mkdir('datasets/coco/Crops')
for cls in CloseupDataset.CLASSES_COCO_BASE:
    os.mkdir('datasets/coco/Crops/' + cls)
cls_count = {cls: 0 for cls in CloseupDataset.CLASSES_COCO_BASE}
for s in range(2):
    dataset = COCODataset(annofiles[s], imgdirs[s], True)
    for index in range(len(dataset)):
        img, annos, _ = dataset.__getitem__(index)
        crops, crop_labels = get_closeup(img, annos)
        for crop, label in list(zip(crops, crop_labels)):
            label = CloseupDataset.CLASSES_COCO_BASE[label]
            cls_count[label] += 1
            crop.save('datasets/coco/Crops/%s/%d.jpg'%(label, cls_count[label]))
    print(cls_count)
    print('crop amount:%d'%sum(list(cls_count.values())))