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

我们这些 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)

猜你喜欢

转载自blog.csdn.net/iCloudEnd/article/details/127410947
今日推荐