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. """ if self.ann_file_backend == 'disk': self.coco = COCO(ann_file) else: mmcv_version = digit_version(mmcv.__version__) if mmcv_version < digit_version('1.3.16'): raise Exception('Please update mmcv to 1.3.16 or higher ' 'to enable "get_local_path" of "FileClient".') file_client = mmcv.FileClient(backend=self.ann_file_backend) with file_client.get_local_path(ann_file) as local_path: self.coco = COCO(local_path) 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 = [] count = 0 for i in self.img_ids: info = self.coco.load_imgs([i])[0] info['filename'] = info['file_name'] data_infos.append(info) count = count + 1 if count > self.select_first_k and self.select_first_k > 0: break return data_infos
def load_lvis_anns(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'] if info['file_name'].startswith('COCO'): # Convert form the COCO 2014 file naming convention of # COCO_[train/val/test]2014_000000000000.jpg to the 2017 # naming convention of 000000000000.jpg # (LVIS v1 will fix this naming issue) info['filename'] = info['file_name'][-16:] else: info['filename'] = info['file_name'] data_infos.append(info) return data_infos
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 = [] count = 0 for i in self.img_ids: info = self.coco.load_imgs([i])[0] info['filename'] = info['file_name'] data_infos.append(info) count = count + 1 if count > self.select_first_k and self.select_first_k > 0: break return data_infos
def load_image_anns(self, ann_file): """Load annotations from COCO style annotation file. Args: ann_file (str): Path of annotation file. Returns: list[dict]: Annotation information 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)} all_img_ids = self.coco.get_img_ids() self.img_ids = [] data_infos = [] for img_id in all_img_ids: info = self.coco.load_imgs([img_id])[0] info['filename'] = info['file_name'] if info['is_vid_train_frame']: self.img_ids.append(img_id) data_infos.append(info) return data_infos