python视频事物分析

ops/2024/11/15 1:06:37/

使用 OpenCV 和 Hugging Face 的transformers库中的预视视觉模型来分析视频内容

依赖库

python">pip install opencv-python transformers torch

代码

python">import cv2
import torch
from transformers import pipeline# 加载预训练的目标检测模型
detector = pipeline("object-detection", model="facebook/detr-resnet-50")def analyze_video(video_path):# 打开视频文件cap = cv2.VideoCapture(video_path)frame_count = 0while cap.isOpened():ret, frame = cap.read()if not ret:break  # 视频读取完成# 每隔一定帧数分析一次if frame_count % 30 == 0:  # 每 30 帧分析一次,可以根据需要调整# 将帧转换为RGB格式rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)# 使用模型进行目标检测results = detector(rgb_frame)# 输出检测结果print(f"Frame {frame_count}:")for obj in results:label = obj['label']score = obj['score']box = obj['box']print(f"Detected: {label}, Confidence: {score:.2f}")# 在帧上绘制检测结果x1, y1, x2, y2 = int(box['xmin']), int(box['ymin']), int(box['xmax']), int(box['ymax'])cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)cv2.putText(frame, f"{label} ({score:.2f})", (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 显示带有检测结果的帧cv2.imshow("Video Analysis", frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakframe_count += 1# 释放视频捕获对象并关闭窗口cap.release()cv2.destroyAllWindows()# 示例用法
video_path = 'path_to_your_video.mp4'  # 替换为实际视频路径
analyze_video(video_path)
  • 使用OpenCV逐帧读取视频,把每第30帧作为分析帧。
  • 通过拥抱人脸的detr-resnet-50模型检测视频帧中的物体,模型会输出每个物体的类别、置信度和位置。
  • 将检测结果以校正框和标签形态差在视频帧上,然后查看识别效果。
  • 每个分析帧的检测结果都会在控制台输出,同时在窗口中显示。

http://www.ppmy.cn/ops/133729.html

相关文章

GDSC、CTRP数据库学习

GDSC 写在前面下载数据疑问1.GDSC、CTRP数据里有TCGA配套的数据?数据类型?CTRP原始数据如何处理 写在前面 开此贴做GDSC的数据分析记录 下载数据 GDSC官网:http://www.cancerrxgene.org/ 由于在官网下载数据过于麻烦,于是我使用…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品,是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要,专门加工配置而成的配方食品,包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…

现代无线通信接收机架构:超外差、零中频与低中频的比较分析

写在前面:本博客是对三种接收机架构的学习笔记,仅供个人学习记录使用。内容主要是上网查阅的资料,以及个人的一些理解。如有错误的地方请指出! 文章目录 一、通信机基本架构1、射频发射级的基本组成及完成功能2、射频接收级的基本…

社交媒体的隐私新标准:Facebook的数据保护策略

在社交媒体日益渗透人们日常生活的今天,隐私保护已成为用户关注的核心问题。作为全球最大的社交平台之一,Facebook面临着巨大的数据保护压力。为了应对隐私挑战,Facebook在多个方面采取了创新措施,以确保用户数据的安全性和隐私性…

扫雷游戏代码分享(c基础)

hi , I am 36. 代码来之不易👍👍👍 创建两个.c 一个.h 1:test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…

Spring学习笔记_35——@RestController

1. 介绍 SpringMVC基于Controller注解和ResponseBody注解扩展了RestController注解,使得RestController注解同时具备于Controller注解和ResponseBody注解的功能。 当一个类被标记为RestController,意味着其处理的所有方法都将自动添加ResponseBody效果…

Ue5 umg学习(二)图像控件,锚点

视频资料4、图像控件_哔哩哔哩_bilibili 选择通用下的图像 将其拉入画布中,会拉出一个小白块的东西 点击小白块,会发现右侧的属性。 左上角像花一样的是锚点。 首先选择图片 这里需要一张ui图片,我截图了一张图片作为例子,其他图…

现代化汽车共享:SpringBoot管理系统开发

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…