def METHOD_NAME(self, raw_data_info: dict) -> Optional[dict]:
    """Parse raw COCO annotation of an instance.
    Args:
        raw_data_info (dict): Raw data information loaded from
            ``ann_file``. It should have following contents:
            - ``'raw_ann_info'``: Raw annotation of an instance
            - ``'raw_img_info'``: Raw information of the image that
                contains the instance
    Returns:
        dict: Parsed instance annotation
    """
    ann = raw_data_info['raw_ann_info']
    img = raw_data_info['raw_img_info']
    img_path = osp.join(self.data_prefix['img'], img['file_name'])
    img_w, img_h = img['width'], img['height']
    # get bbox in shape [1, 4], formatted as xywh
    x, y, w, h = ann['bbox']
    x1 = np.clip(x, 0, img_w - 1)
    y1 = np.clip(y, 0, img_h - 1)
    x2 = np.clip(x + w, 0, img_w - 1)
    y2 = np.clip(y + h, 0, img_h - 1)
    bbox = np.array([x1, y1, x2, y2], dtype=np.float32).reshape(1, 4)
    # keypoints in shape [1, K, 2] and keypoints_visible in [1, K]
    _keypoints = np.array(
        ann['keypoints'], dtype=np.float32).reshape(1, -1, 3)
    keypoints = _keypoints[..., :2]
    keypoints_visible = np.minimum(1, _keypoints[..., 2])
    num_keypoints = np.count_nonzero(keypoints.max(axis=2))
    data_info = {
        'img_id': ann['image_id'],
        'img_path': img_path,
        'bbox': bbox,
        'bbox_score': np.ones(1, dtype=np.float32),
        'num_keypoints': num_keypoints,
        'keypoints': keypoints,
        'keypoints_visible': keypoints_visible,
        'iscrowd': ann['iscrowd'],
        'segmentation': ann['segmentation'],
        'head_size': ann['head_size'],
        'id': ann['id'],
    }
    return data_info