赞
踩
本笔记本演示了如何使用GPT的视觉能力处理视频。GPT-4不能直接将视频作为输入,但我们可以使用视觉和新的128K上下文窗口一次性描述整个视频的静态帧。我们将演示两个示例:
# 导入需要的库
from IPython.display import display, Image, Audio # IPython.display库用于在Jupyter Notebook中显示图像、音频等
import cv2 # OpenCV库用于读取视频
import base64 # base64库用于将二进制数据编码为ASCII字符
import time # time库用于计时
from openai import OpenAI # OpenAI库用于调用OpenAI API
import os # os库用于与操作系统交互
import requests # requests库用于向API发送HTTP请求
client = OpenAI() # 创建OpenAI客户端对象
首先,我们使用OpenCV从一个包含野牛和狼的自然视频中提取帧:
# 导入OpenCV库 import cv2 # 导入base64库 import base64 # 打开视频文件 video = cv2.VideoCapture("data/bison.mp4") # 创建一个空列表,用于存储每一帧图像的base64编码 base64Frames = [] # 循环读取视频帧 while video.isOpened(): # 读取一帧图像 success, frame = video.read() # 如果读取失败,则退出循环 if not success: break # 将图像编码为jpg格式 _, buffer = cv2.imencode(".jpg", frame) # 将编码后的图像转换为base64编码,并添加到列表中 base64Frames.append(base64.b64encode(buffer).decode("utf-8")) # 释放视频文件 video.release() # 打印读取的帧数 print(len(base64Frames), "frames read.")
618 frames read.
显示帧以确保我们正确读取了它们:
# 创建一个display对象,用于显示图像
display_handle = display(None, display_id=True)
# 遍历base64Frames中的每个图像
for img in base64Frames:
# 将base64编码的图像数据解码为二进制数据,并创建一个Image对象
image_data = base64.b64decode(img.encode("utf-8"))
image = Image(data=image_data)
# 更新display对象,显示当前图像
display_handle.update(image)
# 暂停一段时间,以便观察图像
time.sleep(0.025)
一旦我们获得了视频帧,我们会制作提示并向GPT发送请求(请注意,我们不需要发送每个帧以让GPT理解发生了什么):
# 代码注释 # 定义一个包含对话信息的列表,每个对话信息包含角色和内容 PROMPT_MESSAGES = [ { "role": "user", "content": [ "These are frames from a video that I want to upload. Generate a compelling description that I can upload along with the video.", *map(lambda x: {"image": x, "resize": 768}, base64Frames[0::50]), ], }, ] # 定义参数字典,包含模型、对话信息和生成的最大令牌数 params = { "model": "gpt-4-vision-preview", "messages": PROMPT_MESSAGES, "max_tokens": 200, } # 调用API创建聊天完成请求,并传入参数 result = client.chat.completions.create(**params) # 打印生成的描述内容 print(result.choices[0].message.content)
"声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/278333
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。