【opencv GPU】测测你的opencv-GPU 版本每秒处理帧数 大概多少?

2024-04-22 02:20

本文主要是介绍【opencv GPU】测测你的opencv-GPU 版本每秒处理帧数 大概多少?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用OpenCV的cv2.dnn.Net类从ONNX模型文件创建网络时,如果你想要启用GPU加速,你需要确保OpenCV在安装时已经包含了GPU支持。这通常意味着你需要从源代码编译OpenCV,并确保在编译过程中启用了CUDA支持。

以下是如何在OpenCV中启用GPU加速的步骤:

1、确保OpenCV已正确安装并支持GPU:
如果你已经从源代码编译了OpenCV并启用了CUDA支持,那么你的OpenCV版本应该已经支持GPU加速。
你可以通过运行以下Python代码来检查OpenCV是否支持CUDA:

import cv2
print(cv2.cuda.getCudaEnabledDeviceCount())

如果输出是一个大于0的数字,那么OpenCV已经启用了CUDA支持。

2、加载ONNX模型并设置OpenCV以使用GPU:
使用cv2.dnn.readNetFromONNX加载ONNX模型。
将OpenCV的DNN后端设置为CUDA,以便在GPU上执行推理。

import cv2# 加载ONNX模型
model = cv2.dnn.readNetFromONNX('path/to/model.onnx')# 设置OpenCV DNN后端为CUDA
model.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
model.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)

3、例子
为了得到一个具体的数值,你需要测试你的特定模型和GPU配置。你可以使用OpenCV的DNN模块来加载模型并使用GPU进行推理,然后计算处理一定数量帧所需的时间,最后用这个时间来计算FPS。

以下是一个简单的例子,展示了如何使用OpenCV的DNN模块和GPU来计算FPS:

import cv2
import time# 初始化帧计数器和开始时间
frame_count = 0
start_time = time.time()# 加载模型(确保OpenCV已编译为支持CUDA)
net = cv2.dnn.readNet('path/to/your/model.onnx')
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)# 打开视频文件或摄像头
cap = cv2.VideoCapture('path/to/your/video.mp4')  # 或者使用摄像头: cv2.VideoCapture(0)# 检查视频是否成功打开
if not cap.isOpened():print("Error: Could not open video.")exit()# 循环读取视频帧
while True:ret, frame = cap.read()if not ret:break# 准备输入数据blob = cv2.dnn.blobFromImage(frame, size=(640, 640), swapRB=True, crop=False)# 执行推理net.setInput(blob)net.forward()# 更新帧计数器frame_count += 1# 每100帧打印一次FPSif frame_count % 100 == 0:elapsed_time = time.time() - start_timefps = frame_count / elapsed_timeprint(f"FPS: {fps:.2f}")# 释放视频流和窗口
cap.release()
cv2.destroyAllWindows()

这篇关于【opencv GPU】测测你的opencv-GPU 版本每秒处理帧数 大概多少?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924605

相关文章

ONLYOFFICE 8.1 版本桌面编辑器测评

在现代办公环境中,办公软件的重要性不言而喻。从文档处理到电子表格分析,再到演示文稿制作,强大且高效的办公软件工具能够极大提升工作效率。ONLYOFFICE 作为一个功能全面且开源的办公软件套件,一直以来都受到广大用户的关注与喜爱。而其最新发布的 ONLYOFFICE 8.1 版本桌面编辑器,更是带来了诸多改进和新特性。本文将详细评测 ONLYOFFICE 8.1 版本桌面编辑器,探讨其在功能、用户

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

Visual Studio中,MSBUild版本问题

假如项目规定了MSBUild版本,那么在安装完Visual Studio后,假如带的MSBUild版本与项目要求的版本不符合要求,那么可以把需要的MSBUild添加到系统中,然后即可使用。步骤如下:            假如项目需要使用V12的MSBUild,而安装的Visual Studio带的MSBUild版本为V14。 ①到MSDN下载V12 MSBUild包,把V12包解压到目录(

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

brew install opencv@2 时报错 Error: Can't create update lock in /usr/local/var/homebrew/locks!

解决方案,报错里已经说明了: 我的解决方案: sudo chown -R "$USER":admin /usr/local   stackoverflow上的答案 I was able to solve the problem by using chown on the folder: sudo chown -R "$USER":admin /usr/local Also you'

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

AI学习指南机器学习篇-朴素贝叶斯处理连续特征和离散特征

AI学习指南机器学习篇-朴素贝叶斯处理连续特征和离散特征 在机器学习领域,朴素贝叶斯是一种常用的分类算法,它的简单性和高效性使得它在实际应用中得到了广泛的应用。然而,在使用朴素贝叶斯算法进行分类时,我们通常会面临一个重要的问题,就是如何处理连续特征和离散特征。因为朴素贝叶斯算法基于特征的条件独立性假设,所以对于不同类型的特征,我们需要采取不同的处理方式。 在本篇博客中,我们将探讨如何有效地处理

神经网络第四篇:推理处理之手写数字识别

到目前为止,我们已经介绍完了神经网络的基本结构,现在用一个图像识别示例对前面的知识作整体的总结。本专题知识点如下: MNIST数据集图像数据转图像神经网络的推理处理批处理  MNIST数据集          mnist数据图像 MNIST数据集由0到9的数字图像构成。像素取值在0到255之间。每个图像数据都相应地标有“7”、“2”、“1”等数字标签。MNIST数据集中,