code: def preprocess(self):
      input_datas = []
  
      # 数据预处理
      for i, img in enumerate(self.datas):
          img_height, img_width, _ = img.shape
          aspect_ratio = img_width / img_height
          inWidth = int(((aspect_ratio * self.inHeight) * 8) // 8)
          inpBlob = cv2.dnn.blobFromImage(
              img,
              1.0 / 255,
              (inWidth, self.inHeight),
              (0, 0, 0),
              swapRB=False,
              crop=False,
          )
          input_datas.append(inpBlob)
  
      # 数据按batch_size切分
      input_datas = np.concatenate(input_datas, 0)
      split_num = (
          len(self.datas) // self.batch_size + 1
          if len(self.datas) % self.batch_size != 0
          else len(self.datas) // self.batch_size
      )
      input_datas = np.array_split(input_datas, split_num)
  
      # 返回预处理完成的数据
      return input_datas
  
file_path: PaddleHub/modules/image/keypoint_detection/hand_pose_localization/processor.py
imports: import os
  import cv2
  import time
  import base64
  import numpy
label_desc: Use image node_id 3 for calling the Processor obj's underlying member method code with example usage: obj.preprocess() and returns: input_datas