要对给定视频的每一帧应用对象检测器,您需要执行以下步骤:
以下是一个使用YOLOv5的简单示例:
import cv2
import torch
from yolov5 import YOLOv5
# 加载预训练的YOLOv5模型
model = YOLOv5("yolov5s.pt")
# 打开视频文件
video = cv2.VideoCapture("input_video.mp4")
# 获取视频的宽度和高度
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建一个VideoWriter对象以保存输出视频
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter("output_video.mp4", fourcc, 30.0, (width, height))
while True:
# 读取视频的下一帧
ret, frame = video.read()
if not ret:
break
# 将帧传递给YOLOv5模型进行对象检测
results = model.predict(frame)
# 在原始帧上绘制检测结果
results.render(frame)
# 显示处理后的帧
cv2.imshow("Object Detection", frame)
# 将处理后的帧保存到输出视频文件
out.write(frame)
# 按'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
video.release()
out.release()
cv2.destroyAllWindows()
TVP技术夜未眠
T-Day
云+社区技术沙龙第33期
云+社区技术沙龙[第14期]
云+社区技术沙龙[第10期]
云+社区技术沙龙[第15期]
新知
Techo Youth X HiFlow场景连接器
领取专属 10元无门槛券
手把手带您无忧上云