You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GPU运行已训练的Yolov3模型以提升实时检测帧率

OpenCV DNN调用GPU运行YOLOv3提速方案

前置依赖检查

  • 确保你有NVIDIA显卡,且已经安装好与显卡驱动匹配的CUDA、cuDNN环境
  • OpenCV版本≥4.2,低于该版本没有内置CUDA后端支持
  • 你当前安装的OpenCV必须带CUDA支持:默认pip安装的opencv-python、opencv-contrib-python均不包含CUDA支持,你可以选择:
    • 自行编译对应CUDA版本的OpenCV
    • 通过conda安装带CUDA支持的OpenCV包,命令为conda install -c conda-forge opencv cudatoolkit
    • 使用第三方预编译的带CUDA支持的OpenCV pip包

核心代码修改

你只需要在读取模型的代码行之后,添加两行设置DNN后端和计算设备的代码即可,修改后的代码段如下:

net = cv2.dnn.readNet('yolov3_training_last.weights', 'yolov3_testing.cfg')
# 新增以下两行开启GPU加速
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)

如果你的显卡支持FP16半精度推理,还可以把第二行改为net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA_FP16),推理速度会进一步提升,精度损失极小。

额外提速建议

  • 可以将blobFromImage中的输入尺寸从(416,416)调整为(320,320),推理速度会明显提升,仅会损失少量检测精度
  • 调高置信度阈值,可以减少后处理的计算量
  • 如果不需要对检测框做模糊处理,去掉对应的后处理代码也能提升帧率

生效验证

运行代码后查看任务管理器(Windows)或者nvidia-smi命令(Linux)的GPU利用率,CUDA占用率如果达到30%以上即说明GPU加速已生效,正常情况下帧率可以提升到20FPS以上,具体数值取决于你的显卡性能。

内容的提问来源于stack exchange,提问作者Yapay Zeka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 00:09:03