通过Python运行手检测模型tensorflow-lite

时间:2019-09-10 08:10:12

标签: python tensorflow tensorflow-lite

当我通过Python运行用于确定手 mediapipe solutions的模型时,在确定手的过程中遇到了缓慢的工作!更确切地说是 interpreter.invoke() 帧速率从40急剧下降到4! 如何将帧频提高到20或25?

    # ...

    # Called before the loop
    def start(self):
        self._interpreter = tf.lite.Interpreter(model_path = path_to_model)

        self._interpreter.allocate_tensors()
        self._input_details = self._interpreter.get_input_details()
        self._output_details = self._interpreter.get_output_details()

    # ...

    # Called in a loop
    def generate(self, img):
        if img.size == 0:
            return False

        img_resize = cv2.resize(img, (256, 256))

        img_resize_expanded = np.expand_dims(img_resize, axis = 0)
        image_np_expanded = (np.float32(img_resize_expanded) - 0) / 255

        self._interpreter.set_tensor(self._input_details[0]['index'], image_np_expanded)

        self._interpreter.invoke()  # Slow !!!!!!!!!!!!!!!!!!!!!!

        output_data = self._interpreter.get_tensor(self._output_details[0]['index'])

        return output_data

1 个答案:

答案 0 :(得分:0)

其他信息将使其更易于响应:

1)您是在台式机还是手机上运行它? TFLite已针对移动设备进行了优化(例如,针对手臂进行了优化),并且仍在不断完善支持在台式机(例如x86)上快速运行

2)MediaPipe在Android上运行时可能会使用GPU委托API。看一下与GPU一起运行的tensorflow.org/lite文档。在上述文档中查看他们利用了哪些加速器,并找到如何启用它。如果它们确实在CPU上运行并使用量化,那就值得研究。