Python pycocotools.coco.COCO Examples
The following are 30
code examples of pycocotools.coco.COCO().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pycocotools.coco
, or try the search function
.
Example #1
Source File: coco2017.py From easy-faster-rcnn.pytorch with MIT License | 10 votes |
def evaluate(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]) -> Tuple[float, str]: self._write_results(path_to_results_dir, image_ids, bboxes, classes, probs) annType = 'bbox' path_to_coco_dir = os.path.join(self._path_to_data_dir, 'COCO') path_to_annotations_dir = os.path.join(path_to_coco_dir, 'annotations') path_to_annotation = os.path.join(path_to_annotations_dir, 'instances_val2017.json') cocoGt = COCO(path_to_annotation) cocoDt = cocoGt.loadRes(os.path.join(path_to_results_dir, 'results.json')) cocoEval = COCOeval(cocoGt, cocoDt, annType) cocoEval.evaluate() cocoEval.accumulate() original_stdout = sys.stdout string_stdout = StringIO() sys.stdout = string_stdout cocoEval.summarize() sys.stdout = original_stdout mean_ap = cocoEval.stats[0].item() # stats[0] records AP@[0.5:0.95] detail = string_stdout.getvalue() return mean_ap, detail
Example #2
Source File: coco.py From dataiku-contrib with Apache License 2.0 | 7 votes |
def build_coco_results(dataset, image_ids, rois, class_ids, scores, masks): """Arrange resutls to match COCO specs in http://cocodataset.org/#format """ # If no results, return an empty list if rois is None: return [] results = [] for image_id in image_ids: # Loop through detections for i in range(rois.shape[0]): class_id = class_ids[i] score = scores[i] bbox = np.around(rois[i], 1) mask = masks[:, :, i] result = { "image_id": image_id, "category_id": dataset.get_source_class_id(class_id, "coco"), "bbox": [bbox[1], bbox[0], bbox[3] - bbox[1], bbox[2] - bbox[0]], "score": score, "segmentation": maskUtils.encode(np.asfortranarray(mask)) } results.append(result) return results
Example #3
Source File: coco.py From mmdetection with Apache License 2.0 | 7 votes |
def load_annotations(self, ann_file): """Load annotation from COCO style annotation file. Args: ann_file (str): Path of annotation file. Returns: list[dict]: Annotation info from COCO api. """ self.coco = COCO(ann_file) self.cat_ids = self.coco.get_cat_ids(cat_names=self.CLASSES) self.cat2label = {cat_id: i for i, cat_id in enumerate(self.cat_ids)} self.img_ids = self.coco.get_img_ids() data_infos = [] for i in self.img_ids: info = self.coco.load_imgs([i])[0] info['filename'] = info['file_name'] data_infos.append(info) return data_infos
Example #4
Source File: coco2017_animal.py From easy-faster-rcnn.pytorch with MIT License | 7 votes |
def _write_results(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]): results = [] for image_id, bbox, cls, prob in zip(image_ids, bboxes, classes, probs): results.append( { 'image_id': int(image_id), # COCO evaluation requires `image_id` to be type `int` 'category_id': COCO2017.CATEGORY_TO_LABEL_DICT[COCO2017Animal.LABEL_TO_CATEGORY_DICT[cls]], # mapping to original `COCO2017` dataset 'bbox': [ # format [left, top, width, height] is expected bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1] ], 'score': prob } ) with open(os.path.join(path_to_results_dir, 'results.json'), 'w') as f: json.dump(results, f)
Example #5
Source File: coco.py From mmdetection with Apache License 2.0 | 7 votes |
def xyxy2xywh(self, bbox): """Convert ``xyxy`` style bounding boxes to ``xywh`` style for COCO evaluation. Args: bbox (numpy.ndarray): The bounding boxes, shape (4, ), in ``xyxy`` order. Returns: list[float]: The converted bounding boxes, in ``xywh`` order. """ _bbox = bbox.tolist() return [ _bbox[0], _bbox[1], _bbox[2] - _bbox[0], _bbox[3] - _bbox[1], ]
Example #6
Source File: coco2017_car.py From easy-faster-rcnn.pytorch with MIT License | 6 votes |
def _write_results(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]): results = [] for image_id, bbox, cls, prob in zip(image_ids, bboxes, classes, probs): results.append( { 'image_id': int(image_id), # COCO evaluation requires `image_id` to be type `int` 'category_id': COCO2017.CATEGORY_TO_LABEL_DICT[COCO2017Car.LABEL_TO_CATEGORY_DICT[cls]], # mapping to original `COCO2017` dataset 'bbox': [ # format [left, top, width, height] is expected bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1] ], 'score': prob } ) with open(os.path.join(path_to_results_dir, 'results.json'), 'w') as f: json.dump(results, f)
Example #7
Source File: coco2017_person.py From easy-faster-rcnn.pytorch with MIT License | 6 votes |
def _write_results(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]): results = [] for image_id, bbox, cls, prob in zip(image_ids, bboxes, classes, probs): results.append( { 'image_id': int(image_id), # COCO evaluation requires `image_id` to be type `int` 'category_id': COCO2017.CATEGORY_TO_LABEL_DICT[COCO2017Person.LABEL_TO_CATEGORY_DICT[cls]], # mapping to original `COCO2017` dataset 'bbox': [ # format [left, top, width, height] is expected bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1] ], 'score': prob } ) with open(os.path.join(path_to_results_dir, 'results.json'), 'w') as f: json.dump(results, f)
Example #8
Source File: coco2017_animal.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def _write_results(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]): results = [] for image_id, bbox, cls, prob in zip(image_ids, bboxes, classes, probs): results.append( { 'image_id': int(image_id), # COCO evaluation requires `image_id` to be type `int` 'category_id': COCO2017.CATEGORY_TO_LABEL_DICT[COCO2017Animal.LABEL_TO_CATEGORY_DICT[cls]], # mapping to original `COCO2017` dataset 'bbox': [ # format [left, top, width, height] is expected bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1] ], 'score': prob } ) with open(os.path.join(path_to_results_dir, 'results.json'), 'w') as f: json.dump(results, f)
Example #9
Source File: coco2017_person.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def _write_results(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]): results = [] for image_id, bbox, cls, prob in zip(image_ids, bboxes, classes, probs): results.append( { 'image_id': int(image_id), # COCO evaluation requires `image_id` to be type `int` 'category_id': COCO2017.CATEGORY_TO_LABEL_DICT[COCO2017Person.LABEL_TO_CATEGORY_DICT[cls]], # mapping to original `COCO2017` dataset 'bbox': [ # format [left, top, width, height] is expected bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1] ], 'score': prob } ) with open(os.path.join(path_to_results_dir, 'results.json'), 'w') as f: json.dump(results, f)
Example #10
Source File: coco2017.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def evaluate(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]) -> Tuple[float, str]: self._write_results(path_to_results_dir, image_ids, bboxes, classes, probs) annType = 'bbox' path_to_coco_dir = os.path.join(self._path_to_data_dir, 'COCO') path_to_annotations_dir = os.path.join(path_to_coco_dir, 'annotations') path_to_annotation = os.path.join(path_to_annotations_dir, 'instances_val2017.json') cocoGt = COCO(path_to_annotation) cocoDt = cocoGt.loadRes(os.path.join(path_to_results_dir, 'results.json')) cocoEval = COCOeval(cocoGt, cocoDt, annType) cocoEval.evaluate() cocoEval.accumulate() original_stdout = sys.stdout string_stdout = StringIO() sys.stdout = string_stdout cocoEval.summarize() sys.stdout = original_stdout mean_ap = cocoEval.stats[0].item() # stats[0] records AP@[0.5:0.95] detail = string_stdout.getvalue() return mean_ap, detail
Example #11
Source File: coco.py From CSD-SSD with MIT License | 6 votes |
def __call__(self, target, width, height): """ Args: target (dict): COCO target json annotation as a python dict height (int): height width (int): width Returns: a list containing lists of bounding boxes [bbox coords, class idx] """ scale = np.array([width, height, width, height]) res = [] for obj in target: if 'bbox' in obj: bbox = obj['bbox'] bbox[2] += bbox[0] bbox[3] += bbox[1] label_idx = self.label_map[obj['category_id']] - 1 final_box = list(np.array(bbox)/scale) final_box.append(label_idx) res += [final_box] # [xmin, ymin, xmax, ymax, label_idx] else: print("no bbox problem!") return res # [[xmin, ymin, xmax, ymax, label_idx], ... ]
Example #12
Source File: coco2017_car.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def _write_results(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]): results = [] for image_id, bbox, cls, prob in zip(image_ids, bboxes, classes, probs): results.append( { 'image_id': int(image_id), # COCO evaluation requires `image_id` to be type `int` 'category_id': COCO2017.CATEGORY_TO_LABEL_DICT[COCO2017Car.LABEL_TO_CATEGORY_DICT[cls]], # mapping to original `COCO2017` dataset 'bbox': [ # format [left, top, width, height] is expected bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1] ], 'score': prob } ) with open(os.path.join(path_to_results_dir, 'results.json'), 'w') as f: json.dump(results, f)
Example #13
Source File: eval_mscoco.py From lambda-deep-learning-demo with Apache License 2.0 | 6 votes |
def after_run(self, sess): print("Detection Finished ...") # for item in self.detection: # print(item) if len(self.detection) > 0: annotation_file = os.path.join( DATASET_DIR, "annotations", "instances_" + DATASET_META + ".json") coco = COCO(annotation_file) coco_results = coco.loadRes(self.detection) # DETECTION_FILE = "/home/ubuntu/data/mscoco/results/SSD_512x512_score/detections_minival_ssd512_results.json" # coco_results = coco.loadRes(DETECTION_FILE) cocoEval = COCOeval(coco, coco_results, "bbox") cocoEval.params.imgIds = self.image_ids cocoEval.evaluate() cocoEval.accumulate() cocoEval.summarize() else: print("Found no valid detection. Consider re-train your model.")
Example #14
Source File: data.py From VSE-C with MIT License | 6 votes |
def get_loader_single(data_name, split, root, json, vocab, transform, batch_size=100, shuffle=True, num_workers=2, ids=None, collate_fn=collate_fn): """Returns torch.utils.data.DataLoader for custom coco dataset.""" if 'coco' in data_name: # COCO custom dataset dataset = CocoDataset(root=root, json=json, vocab=vocab, transform=transform, ids=ids) elif 'f8k' in data_name or 'f30k' in data_name: dataset = FlickrDataset(root=root, split=split, json=json, vocab=vocab, transform=transform) # Data loader data_loader = torch.utils.data.DataLoader(dataset=dataset, batch_size=batch_size, shuffle=shuffle, pin_memory=True, num_workers=num_workers, collate_fn=collate_fn) return data_loader
Example #15
Source File: coco_eval.py From Res2Net-maskrcnn with MIT License | 6 votes |
def evaluate_predictions_on_coco( coco_gt, coco_results, json_result_file, iou_type="bbox" ): import json with open(json_result_file, "w") as f: json.dump(coco_results, f) from pycocotools.coco import COCO from pycocotools.cocoeval import COCOeval coco_dt = coco_gt.loadRes(str(json_result_file)) if coco_results else COCO() # coco_dt = coco_gt.loadRes(coco_results) coco_eval = COCOeval(coco_gt, coco_dt, iou_type) coco_eval.evaluate() coco_eval.accumulate() coco_eval.summarize() return coco_eval
Example #16
Source File: mscoco.py From SegmenTron with Apache License 2.0 | 6 votes |
def __init__(self, root='datasets/coco', split='train', mode=None, transform=None, **kwargs): super(COCOSegmentation, self).__init__(root, split, mode, transform, **kwargs) # lazy import pycocotools from pycocotools.coco import COCO from pycocotools import mask if split == 'train': print('train set') ann_file = os.path.join(root, 'annotations/instances_train2017.json') ids_file = os.path.join(root, 'annotations/train_ids.pkl') self.root = os.path.join(root, 'train2017') else: print('val set') ann_file = os.path.join(root, 'annotations/instances_val2017.json') ids_file = os.path.join(root, 'annotations/val_ids.pkl') self.root = os.path.join(root, 'val2017') self.coco = COCO(ann_file) self.coco_mask = mask if os.path.exists(ids_file): with open(ids_file, 'rb') as f: self.ids = pickle.load(f) else: ids = list(self.coco.imgs.keys()) self.ids = self._preprocess(ids, ids_file) self.transform = transform
Example #17
Source File: coco.py From tensornets with MIT License | 6 votes |
def get_annotations(data_dir, data_name, ids): assert COCO is not None, '`datasets.coco` requires `pycocotools`.' if data_name not in metas: metas[data_name] = COCO("%s/annotations/instances_%s.json" % (data_dir, data_name)) cmap = dict([(b, a) for (a, b) in enumerate(metas[data_name].getCatIds())]) annotations = {} for i in ids: annids = metas[data_name].getAnnIds(imgIds=i, iscrowd=None) objs = metas[data_name].loadAnns(annids) annotations[i] = [[] for _ in range(80)] width = metas[data_name].imgs[i]['width'] height = metas[data_name].imgs[i]['height'] valid_objs = [] for obj in objs: x1 = np.max((0, obj['bbox'][0])) y1 = np.max((0, obj['bbox'][1])) x2 = np.min((width - 1, x1 + np.max((0, obj['bbox'][2] - 1)))) y2 = np.min((height - 1, y1 + np.max((0, obj['bbox'][3] - 1)))) if obj['area'] > 0 and x2 >= x1 and y2 >= y1: obj_struct = {'bbox': [x1, y1, x2, y2]} cidx = cmap[obj['category_id']] annotations[i][cidx].append(obj_struct) return annotations
Example #18
Source File: coco.py From overhaul-distillation with MIT License | 6 votes |
def __init__(self, args, base_dir=Path.db_root_dir('coco'), split='train', year='2017'): super().__init__() ann_file = os.path.join(base_dir, 'annotations/instances_{}{}.json'.format(split, year)) ids_file = os.path.join(base_dir, 'annotations/{}_ids_{}.pth'.format(split, year)) self.img_dir = os.path.join(base_dir, 'images/{}{}'.format(split, year)) self.split = split self.coco = COCO(ann_file) self.coco_mask = mask if os.path.exists(ids_file): self.ids = torch.load(ids_file) else: ids = list(self.coco.imgs.keys()) self.ids = self._preprocess(ids, ids_file) self.args = args
Example #19
Source File: coco_tools.py From vehicle_counting_tensorflow with MIT License | 6 votes |
def __init__(self, dataset, detection_type='bbox'): """COCOWrapper constructor. See http://mscoco.org/dataset/#format for a description of the format. By default, the coco.COCO class constructor reads from a JSON file. This function duplicates the same behavior but loads from a dictionary, allowing us to perform evaluation without writing to external storage. Args: dataset: a dictionary holding bounding box annotations in the COCO format. detection_type: type of detections being wrapped. Can be one of ['bbox', 'segmentation'] Raises: ValueError: if detection_type is unsupported. """ supported_detection_types = ['bbox', 'segmentation'] if detection_type not in supported_detection_types: raise ValueError('Unsupported detection type: {}. ' 'Supported values are: {}'.format( detection_type, supported_detection_types)) self._detection_type = detection_type coco.COCO.__init__(self) self.dataset = dataset self.createIndex()
Example #20
Source File: coco_eval.py From R2CNN.pytorch with MIT License | 6 votes |
def evaluate_predictions_on_coco( coco_gt, coco_results, json_result_file, iou_type="bbox" ): import json with open(json_result_file, "w") as f: json.dump(coco_results, f) from pycocotools.coco import COCO from pycocotools.cocoeval import COCOeval coco_dt = coco_gt.loadRes(str(json_result_file)) if coco_results else COCO() # coco_dt = coco_gt.loadRes(coco_results) coco_eval = COCOeval(coco_gt, coco_dt, iou_type) coco_eval.evaluate() coco_eval.accumulate() coco_eval.summarize() return coco_eval
Example #21
Source File: coco_tools.py From vehicle_counting_tensorflow with MIT License | 6 votes |
def __init__(self, groundtruth=None, detections=None, agnostic_mode=False, iou_type='bbox'): """COCOEvalWrapper constructor. Note that for the area-based metrics to be meaningful, detection and groundtruth boxes must be in image coordinates measured in pixels. Args: groundtruth: a coco.COCO (or coco_tools.COCOWrapper) object holding groundtruth annotations detections: a coco.COCO (or coco_tools.COCOWrapper) object holding detections agnostic_mode: boolean (default: False). If True, evaluation ignores class labels, treating all detections as proposals. iou_type: IOU type to use for evaluation. Supports `bbox` or `segm`. """ cocoeval.COCOeval.__init__(self, groundtruth, detections, iouType=iou_type) if agnostic_mode: self.params.useCats = 0
Example #22
Source File: evaluation.py From Parsing-R-CNN with MIT License | 6 votes |
def evaluate_predictions_on_coco(coco_gt, coco_results, json_result_file, iou_type="bbox"): if iou_type != "uv": with open(json_result_file, "w") as f: json.dump(coco_results, f) coco_dt = coco_gt.loadRes(str(json_result_file)) if coco_results else COCO() # coco_dt = coco_gt.loadRes(coco_results) coco_eval = COCOeval(coco_gt, coco_dt, iou_type) coco_eval.evaluate() else: calc_mode = 'GPSm' if cfg.UVRCNN.GPSM_ON else 'GPS' pkl_result_file = json_result_file.replace('.json', '.pkl') with open(pkl_result_file, 'wb') as f: pickle.dump(coco_results, f, 2) if cfg.TEST.DATASETS[0].find('test') > -1: return eval_data_dir = cfg.DATA_DIR + '/DensePoseData/eval_data/' coco_dt = coco_gt.loadRes(coco_results) test_sigma = 0.255 coco_eval = denseposeCOCOeval(eval_data_dir, coco_gt, coco_dt, iou_type, test_sigma) coco_eval.evaluate(calc_mode=calc_mode) coco_eval.accumulate() if iou_type == "bbox": _print_detection_eval_metrics(coco_gt, coco_eval) coco_eval.summarize() return coco_eval
Example #23
Source File: parsing_eval.py From Parsing-R-CNN with MIT License | 6 votes |
def get_gt(im_dir, ann_fn): parsing_directory = im_dir.replace('img', 'parsing') class_recs = [] npos = 0 parsing_COCO = COCO(ann_fn) image_ids = parsing_COCO.getImgIds() image_ids.sort() for image_id in image_ids: # imagename = parsing_COCO.loadImgs(image_id)[0]['file_name'] ann_ids = parsing_COCO.getAnnIds(imgIds=image_id, iscrowd=None) objs = parsing_COCO.loadAnns(ann_ids) # gt_box = [] anno_adds = [] for obj in objs: # gt_box.append(obj['bbox']) parsing_path = os.path.join(parsing_directory, obj['parsing']) anno_adds.append(parsing_path) npos = npos + 1 det = [False] * len(anno_adds) class_recs.append({'anno_adds': anno_adds, 'det': det}) return class_recs, npos
Example #24
Source File: json_dataset.py From models with Apache License 2.0 | 5 votes |
def get_roidb(self): coco = self.COCO image_ids = self.COCO.getImgIds() image_ids.sort() roidb = copy.deepcopy(coco.loadImgs(image_ids)) for entry in roidb: self._prep_roidb_entry(entry) return roidb
Example #25
Source File: coco2017_person.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def evaluate(self, path_to_results_dir: str, image_ids: List[str], bboxes: List[List[float]], classes: List[int], probs: List[float]) -> Tuple[float, str]: self._write_results(path_to_results_dir, image_ids, bboxes, classes, probs) annType = 'bbox' path_to_coco_dir = os.path.join(self._path_to_data_dir, 'COCO') path_to_annotations_dir = os.path.join(path_to_coco_dir, 'annotations') path_to_annotation = os.path.join(path_to_annotations_dir, 'instances_val2017.json') cocoGt = COCO(path_to_annotation) cocoDt = cocoGt.loadRes(os.path.join(path_to_results_dir, 'results.json')) cocoEval = COCOeval(cocoGt, cocoDt, annType) cocoEval.params.catIds = COCO2017.CATEGORY_TO_LABEL_DICT['person'] # filtering label should refer to original `COCO2017` dataset cocoEval.evaluate() cocoEval.accumulate() original_stdout = sys.stdout string_stdout = StringIO() sys.stdout = string_stdout cocoEval.summarize() sys.stdout = original_stdout mean_ap = cocoEval.stats[0].item() # stats[0] records AP@[0.5:0.95] detail = string_stdout.getvalue() return mean_ap, detail
Example #26
Source File: coco_metric.py From benchmarks with Apache License 2.0 | 5 votes |
def compute_map(predictions, val_json_file): """Use model predictions to compute mAP. Args: predictions: a list of tuples returned by decoded_predictions function, each containing the following elements: image source_id, box coordinates in XYWH order, probability score, label val_json_file: path to COCO annotation file Returns: A dictionary that maps all COCO metrics (keys) to their values """ if val_json_file.startswith("gs://"): _, local_val_json = tempfile.mkstemp(suffix=".json") tf.gfile.Remove(local_val_json) tf.gfile.Copy(val_json_file, local_val_json) atexit.register(tf.gfile.Remove, local_val_json) else: local_val_json = val_json_file cocoGt = COCO(local_val_json) cocoDt = cocoGt.loadRes(np.array(predictions)) E = COCOeval(cocoGt, cocoDt, iouType='bbox') E.evaluate() E.accumulate() E.summarize() print("Current AP: {:.5f}".format(E.stats[0])) metric_names = ['AP', 'AP50', 'AP75', 'APs', 'APm', 'APl', 'ARmax1', 'ARmax10', 'ARmax100', 'ARs', 'ARm', 'ARl'] # Prefix with "COCO" to group in TensorBoard. return {"COCO/" + key: value for key, value in zip(metric_names, E.stats)}
Example #27
Source File: coco_metric.py From benchmarks with Apache License 2.0 | 5 votes |
def async_eval_runner(queue_predictions, queue_results, val_json_file): """Load intermediate eval results and get COCO metrics.""" while True: message = queue_predictions.get() if message == 'STOP': # poison pill break step, predictions = message results = compute_map(predictions, val_json_file) queue_results.put((step, results))
Example #28
Source File: cocodataset.py From ASFF with GNU General Public License v3.0 | 5 votes |
def __init__(self, data_dir='data/COCO', json_file='instances_train2017.json', name='train2017', img_size=(416,416), preproc=None, debug=False, voc=False): """ COCO dataset initialization. Annotation data are read into memory by COCO API. Args: data_dir (str): dataset root directory json_file (str): COCO json file name name (str): COCO data name (e.g. 'train2017' or 'val2017') img_size (int): target image size after pre-processing preproc: data augmentation strategy debug (bool): if True, only one data id is selected from the dataset """ super().__init__(img_size) self.data_dir = data_dir self.json_file = json_file self.voc = voc if voc: self.coco = COCO(self.data_dir+'VOC2007/Annotations/'+self.json_file) else: self.coco = COCO(self.data_dir+'annotations/'+self.json_file) self.ids = self.coco.getImgIds() if debug: self.ids = self.ids[1:2] print("debug mode...", self.ids) self.class_ids = sorted(self.coco.getCatIds()) cats = self.coco.loadCats(self.coco.getCatIds()) self._classes = tuple([c['name'] for c in cats]) self.name = name self.max_labels = 50 self.img_size = img_size self.preproc = preproc
Example #29
Source File: coco.py From tensornets with MIT License | 5 votes |
def get_files(data_dir, data_name, total_num=None): assert COCO is not None, '`datasets.coco` requires `pycocotools`.' if data_name not in metas: metas[data_name] = COCO("%s/annotations/instances_%s.json" % (data_dir, data_name)) images = metas[data_name].imgs fileids = images.keys() if total_num is not None: fileids = fileids[:total_num] files = [images[i]['file_name'] for i in fileids] return fileids, files
Example #30
Source File: coco.py From dataiku-contrib with Apache License 2.0 | 5 votes |
def annToMask(self, ann, height, width): """ Convert annotation which can be polygons, uncompressed RLE, or RLE to binary mask. :return: binary mask (numpy 2D array) """ rle = self.annToRLE(ann, height, width) m = maskUtils.decode(rle) return m ############################################################ # COCO Evaluation ############################################################