code: def quokka_keypoints(size=None, extract=None):
      
      # TODO get rid of this deferred import
      from imgaug.augmentables.kps import Keypoint, KeypointsOnImage
  
      left, top = 0, 0
      if extract is not None:
          bb_extract = _quokka_normalize_extract(extract)
          left = bb_extract.x1
          top = bb_extract.y1
      with open(QUOKKA_ANNOTATIONS_FP, "r") as f:
          json_dict = json.load(f)
      keypoints = []
      for kp_dict in json_dict["keypoints"]:
          keypoints.append(Keypoint(x=kp_dict["x"] - left, y=kp_dict["y"] - top))
      if extract is not None:
          shape = (bb_extract.height, bb_extract.width, 3)
      else:
          shape = (643, 960, 3)
      kpsoi = KeypointsOnImage(keypoints, shape=shape)
      if size is not None:
          shape_resized = _compute_resized_shape(shape, size)
          kpsoi = kpsoi.on(shape_resized)
      return kpsoi
docs: Returns example keypoints on the standard example quokke image.
  
      The keypoints cover the eyes, ears, nose and paws.
  
      Parameters
      ----------
      size : None or float or tuple of int or tuple of float, optional
          Size of the output image on which the keypoints are placed. If None, then the keypoints
          are not projected to any new size (positions on the original image are used).
          Floats lead to relative size changes, ints to absolute sizes in pixels.
  
      extract : None or 'square' or tuple of number or imgaug.BoundingBox or imgaug.BoundingBoxesOnImage
          Subarea to extract from the image. See :func:`imgaug.quokka`.
  
      Returns
      -------
      kpsoi : imgaug.KeypointsOnImage
          Example keypoints on the quokka image.