zl程序教程

您现在的位置是:首页 >  后端

当前栏目

如何通过优化 Python 中的 GPU 使用率将视频处理速度提高 5 倍(教程含源码)

Python源码教程 如何 优化 通过 视频 提高
2023-09-11 14:18:29 时间

我们这些 ML 领域的人都熟悉采用很酷的算法并使其做好生产准备的困难。在 Lightricks 研究基础架构团队,我们的工作是推动 Lightricks 研究部门完成的开创性工作并使其运行得更快,以便我们的用户能够享受到最佳的用户体验。

我们的一些用例涉及处理视频,因此能够有效地解码和预处理它们成为一项重要任务。在这篇博文中,我将展示我们如何将视频的解码和预处理速度提高 5 倍,同时利用 GPU 惊人的并行处理能力,同时保持代码简单且易于维护。

我开始与一支优秀的研究人员团队合作,研究在云中处理的视频功能,并发现现有的加载和预处理视频的方式运行良好。代码接收到文件的路径,在循环中逐帧读取它,根据一些预定义的配置调整帧的大小,并返回下采样帧的列表。

它看起来像这样:

import imageio as io
 
VIDEO_PATH = "vid_10sec_3584x2240.mp4"
IMAGE_SIZE_LOW =(96, 192)
 
def preprocess_video(video_path, image_size_low):
   frames_low = []
   for image in io.imiter(video_path):
       # Resize in a few iterations using cv2
       image_low = resize_frame(image, image_size_low)
       frames_low.append(image_low)
 
   return frames_low
 
print("Preprocessing on CPU...")
s = time.time()
frames = preprocess_video(video_path=VIDEO_PATH, image_size_low=IMAGE_SIZE_LOW)