【发布时间】:2019-02-26 10:28:51
【问题描述】:
我正在评估开放式 cv 视频帧上的 Tensorflow 模型。我需要将传入的 PIL 图像重塑为重塑的 numpy 数组,以便我可以对其进行推理。 但是我看到在我的笔记本电脑上,将 PIL 图像转换为 numpy 数组大约需要 900 多毫秒,它具有 16 GiB 内存和 2.6 GHz Intel Core i7 处理器。我需要把它降低到几毫秒,这样我就可以在我的相机上每秒处理多个帧。
谁能建议如何使下面的方法运行得更快?
def load_image_into_numpy_array(pil_image):
(im_width, im_height) = pil_image.size
data = pil_image.getdata()
data_array = np.array(data)
return data_array.reshape((im_height, im_width, 3)).astype(np.uint8)
在进一步的检测中,我意识到np.array(data) 占用了大部分时间......接近 900 多毫秒。所以将图像数据转换为 numpy 数组才是真正的罪魁祸首。
【问题讨论】:
-
您在哪一步获得了 PIL 图像?
-
我更早地获取了 PIL 图像并将其传递给此函数。
-
图片有多大?
-
(720, 1280, 3)
标签: python numpy opencv tensorflow computer-vision