def from_json(cls, data, project_meta, key_id_map: KeyIdMap=None): ''' The function from_json convert videoannotation from json format to VideoAnnotation class object. :param data: input videoannotation in json format :param project_meta: ProjectMeta class object :param key_id_map: KeyIdMap class object :return: VideoAnnotation class object ''' #video_name = data[VIDEO_NAME] video_key = uuid.UUID(data[KEY]) if KEY in data else uuid.uuid4() if key_id_map is not None: key_id_map.add_video(video_key, data.get(VIDEO_ID, None)) img_size_dict = data[IMG_SIZE] img_height = img_size_dict[IMG_SIZE_HEIGHT] img_width = img_size_dict[IMG_SIZE_WIDTH] img_size = (img_height, img_width) description = data.get(DESCRIPTION, "") frames_count = data[FRAMES_COUNT] tags = VideoTagCollection.from_json(data[TAGS], project_meta.tag_metas, key_id_map) objects = VideoObjectCollection.from_json(data[OBJECTS], project_meta, key_id_map) frames = FrameCollection.from_json(data[FRAMES], objects, frames_count, key_id_map) return cls(img_size=img_size, frames_count=frames_count, objects=objects, frames=frames, tags=tags, description=description, key=video_key)
def from_json(cls, data, project_meta, key_id_map: KeyIdMap = None): ''' :param data: input PointcloudAnnotation in json format :param project_meta: ProjectMeta class object :param key_id_map: KeyIdMap class object :return: PointcloudAnnotation class object ''' item_key = uuid.UUID(data[KEY]) if KEY in data else uuid.uuid4() if key_id_map is not None: key_id_map.add_video(item_key, data.get(POINTCLOUD_ID, None)) description = data.get(DESCRIPTION, "") tags = VideoTagCollection.from_json(data[TAGS], project_meta.tag_metas, key_id_map) objects = PointcloudObjectCollection.from_json(data[OBJECTS], project_meta, key_id_map) figures = [] for figure_json in data.get(FIGURES, []): figure = PointcloudFigure.from_json(figure_json, objects, None, key_id_map) figures.append(figure) return cls(objects=objects, figures=figures, tags=tags, description=description, key=item_key)
def from_json(cls, data, project_meta, key_id_map: KeyIdMap = None): item_key = uuid.UUID(data[KEY]) if KEY in data else uuid.uuid4() if key_id_map is not None: key_id_map.add_video(item_key, data.get(ApiField.DATASET_ID, None)) description = data.get(DESCRIPTION, "") frames_count = data.get(FRAMES_COUNT, 0) tags = VideoTagCollection.from_json(data[TAGS], project_meta.tag_metas, key_id_map) objects = PointcloudObjectCollection.from_json(data[OBJECTS], project_meta, key_id_map) frames = FrameCollection.from_json(data[FRAMES], objects, key_id_map=key_id_map) return cls(frames_count, objects, frames, tags, description, item_key)