code: def detect(self, video_frames, detector):
      landmarks = []
      for frame in video_frames:
          results = detector.process(frame)
          if not results.detections:
              landmarks.append(None)
              continue
          face_points = []
          for idx, detected_faces in enumerate(results.detections):
              max_id, max_size = 0, 0
              bboxC = detected_faces.location_data.relative_bounding_box
              ih, iw, ic = frame.shape
              bbox = (
                  int(bboxC.xmin * iw),
                  int(bboxC.ymin * ih),
                  int(bboxC.width * iw),
                  int(bboxC.height * ih),
              )
              bbox_size = (bbox[2] - bbox[0]) + (bbox[3] - bbox[1])
              if bbox_size > max_size:
                  max_id, max_size = idx, bbox_size
              lmx = [
                  [int(bboxC.xmin * iw), int(bboxC.ymin * ih)],
                  [int(bboxC.width * iw), int(bboxC.height * ih)],
              ]
              face_points.append(lmx)
          landmarks.append(
              np.reshape(np.array(face_points[max_id]), (2, 2))
          )
      return landmarks
  
imports: import warnings
  import mediapipe
  import numpy
label_desc: Use image node_id 3 for calling the LandmarksDetector obj's underlying member method code with example usage: obj.detect(video_frames, detector) and returns: landmarks