YOLOv9模型调用GPU加速推理以提升摄像头测试FPS问题求助
YOLOv9模型调用GPU加速推理以提升摄像头测试FPS问题求助
你好!看了你的问题,核心就是YOLOv9没法调用GPU导致摄像头推理FPS低到没法用,咱们一步步来解决这个问题:
1. 先解决PyTorch和CUDA的匹配问题
你当前的PyTorch是torch-2.3.1+cpu版本,这说明你装的是纯CPU版的PyTorch——哪怕你单独装了CUDA,PyTorch没和CUDA关联上也白搭。
- 第一步,先卸载当前的CPU版PyTorch:
pip uninstall torch torchvision torchaudio -y - 然后查你的CUDA版本:打开命令行输入
nvcc --version,看输出里的Release版本(比如12.1、11.8这类)。 - 接着安装对应CUDA版本的PyTorch,举个例子:
- 如果你的CUDA是12.1,就执行:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 - 如果是CUDA 11.8,就用:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- 如果你的CUDA是12.1,就执行:
- 安装完后重新运行你的GPU检测代码,确认
torch.cuda.is_available()返回True,并且能显示你的GPU名称,这一步是关键!
2. 让YOLOv9明确调用GPU
就算PyTorch能识别GPU了,有时候YOLO默认还是会用CPU,所以加载模型和推理时要手动指定设备:
- 加载模型时移到GPU:
from ultralytics import YOLO # 加载你训练好的模型 model = YOLO('path/to/your/trained_yolov9c.pt') # 强制把模型移到GPU上 model.to('cuda') - 或者在推理摄像头时直接指定device参数:
# source=0代表默认摄像头,device='cuda'指定用GPU results = model(source=0, device='cuda')
3. 额外的FPS优化小技巧
如果做完上面两步还是觉得不够快,可以试试这些:
- 换用更小的YOLOv9模型,比如YOLOv9s(small版),参数比v9c少很多,推理速度会提升不少
- 推理时开启流式模式:
results = model(source=0, device='cuda', stream=True),适合实时摄像头处理 - 降低推理时的图像尺寸,比如设置
imgsz=640(或者更小的480),减少计算量:results = model(source=0, device='cuda', imgsz=640)
备注:内容来源于stack exchange,提问作者Bartosz Ogórek
相关产品推荐
相关产品推荐

