class_docstr: Randomly rotate the input by 90 degrees zero or more times.
  
  Args:
      p (float): probability of applying the transform. Default: 0.5.
  
  Targets:
      image, mask, bboxes, keypoints
  
  Image types:
      uint8, float32
code: def apply_to_keypoint(self, keypoint, factor=0, **params):
      return F.keypoint_rot90(keypoint, factor, **params)
  
imports: import math
  import random
  from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
  import cv2
  import numpy
  from ...core.transforms_interface import BoxInternalType, DualTransform, FillValueType, KeypointInternalType, to_tuple
  from ..crops import functional
  from .None import functional
label_desc: Use image node_id 4 for calling the RandomRotate90 obj's underlying member method code with example usage: obj.apply_to_keypoint(keypoint, factor) and returns: F