从零配置 YOLOv8 GPU 加速环境(RTX 2080 + Windows)完整教程

发布时间:2026/7/2 3:14:00
从零配置 YOLOv8 GPU 加速环境(RTX 2080 + Windows)完整教程 一、环境准备1.1 确认显卡和驱动打开 PowerShell 或 CMD运行powershellnvidia-smi正常输出类似highlighter------------------------------------------------------------------------------------------ | NVIDIA-SMI 591.86 Driver Version: 591.86 CUDA Version: 13.1 | --------------------------------------------------------------------------------------- | GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | | 0 NVIDIA GeForce RTX 2080 WDDM | 00000000:01:00.0 On | N/A | | | | MIG | ---------------------------------------------------------------------------------------关键信息Driver Version你的显卡驱动版本591.86 够新CUDA Version驱动支持的最高 CUDA 版本这里是 13.1你实际安装的 CUDA Toolkit 版本可以低于这个数如果nvidia-smi报错说明没装 NVIDIA 驱动 → 去 NVIDIA 官网 下载安装驱动太旧 → 更新到最新版1.2 确认 Python确保已安装Python 3.8 ~ 3.11推荐 3.10powershellpython --version本教程使用路径C:\ZCY\WK\wkpy\Python310\python.exe没有 Python去 python.org 下载安装时勾选Add Python to PATH。二、创建虚拟环境为什么要用虚拟环境避免深度学习依赖PyTorch、CUDA 库污染你的全局 Python 环境。powershell# 创建目录 mkdir C:\ZCY\WK\wkpy\YOLO mkdir C:\ZCY\WK\wkpy\YOLO\env mkdir C:\ZCY\WK\wkpy\YOLO\test # 创建虚拟环境 C:\ZCY\WK\wkpy\Python310\python.exe -m venv C:\ZCY\WK\wkpy\YOLO\env创建完成后目录结构highlighter- BashC:\ZCY\WK\wkpy\YOLO\ ├── env\ ← 虚拟环境 └── test\ ← 测试文件模型、脚本、视频激活虚拟环境以后每次用 YOLO 都要先激活powershellC:\ZCY\WK\wkpy\YOLO\env\Scripts\activate激活后命令行前面会多一个(env)标识highlighter-(env) PS C:\退出虚拟环境输入deactivate三、安装 CUDA 版 PyTorch这是最关键的一步。必须安装带 CUDA 支持的 PyTorch否则只能用 CPU速度慢几十倍。3.1 选择 CUDA 版本你的显卡推荐 CUDA 版本安装命令后缀RTX 20 系列CUDA 12.1cu121RTX 30 系列CUDA 12.1cu121RTX 40 系列CUDA 12.1 或 12.4cu121/cu1243.2 执行安装powershell# 确保已激活虚拟环境 C:\ZCY\WK\wkpy\YOLO\env\Scripts\activate # 安装 PyTorch torchvision torchaudioCUDA 12.1 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121⏱ 下载约 2~3 GB取决于网速可能需要 5~15 分钟。3.3 国内镜像加速可选如果官方源下载太慢使用清华镜像powershellpip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple⚠️ 国内镜像可能不是最新版本建议先试官方源。四、安装 Ultralytics (YOLOv8)powershellpip install ultralyticsUltralytics 是 YOLOv8 的官方包安装后自带yolo命令行工具。五、验证 GPU 可用pythonimport torch print(PyTorch 版本:, torch.__version__) print(CUDA 是否可用:, torch.cuda.is_available()) # 应输出 True print(CUDA 版本:, torch.version.cuda) # 应输出 12.1 print(GPU 名称:, torch.cuda.get_device_name(0)) # 应输出你的显卡型号 print(显存大小:, round(torch.cuda.get_device_properties(0).total_mem / 1024**3), GB)预期输出highlighter- PythonPyTorch 版本: 2.5.1cu121 CUDA 是否可用: True CUDA 版本: 12.1 GPU 名称: NVIDIA GeForce RTX 2080 显存大小: 8 GB如果CUDA 是否可用输出False说明安装的是 CPU 版 PyTorch需要回到第三步重新安装cu121版本。六、视频检测实战6.1 命令行方式最简单的用法一行命令搞定powershell# 激活环境 C:\ZCY\WK\wkpy\YOLO\env\Scripts\activate # 基础用法 yolo detect predict modelyolov8n.pt source你的视频.mp4 device0 # 指定输出目录 yolo detect predict modelyolov8n.pt source你的视频.mp4 device0 projectC:\ZCY\WK\wkpy\YOLO\test # 更多参数 yolo detect predict modelyolov8n.pt source你的视频.mp4 device0 conf0.5 imgsz1280 saveTrue结果保存在project/predict/目录下。6.2 Python 脚本方式创建run_detect.py所有参数集中管理方便复用python YOLOv8 视频目标检测脚本 用法C:\ZCY\WK\wkpy\YOLO\env\Scripts\python.exe run_detect.py from ultralytics import YOLO # 核心参数配置只需改这里 # 输入源视频文件 / 图片 / 文件夹 / 摄像头(0) / RTSP流 source rC:\ZCY\WK\wkpy\YOLO\test\DJI_20260129175226_0065_W.MP4 # 模型yolov8n / yolov8s / yolov8m / yolov8l / yolov8x model_file yolov8n.pt # 设备0GPU, cpuCPU device 0 # 置信度阈值0~1越高越严格建议 0.25~0.5 conf 0.25 # IoU 阈值同一物体重叠框合并建议 0.45 iou 0.45 # 推理尺寸640默认/ 1280高精度 imgsz 640 # 是否保存结果 save True # 输出目录 project rC:\ZCY\WK\wkpy\YOLO\test # 跳帧1每帧都检测2隔1帧检测速度翻倍 vid_stride 1 # 只检测指定类别None全部[0,2]只检测人和车 classes None # 以下不用改 def main(): import torch model YOLO(model_file) # GPU 状态 if torch.cuda.is_available(): print(fGPU: {torch.cuda.get_device_name(0)}) else: print(未检测到 GPU使用 CPU) # 推理 results model.predict( sourcesource, devicedevice, confconf, iouiou, imgszimgsz, savesave, projectproject, vid_stridevid_stride, classesclasses, streamTrue, verboseTrue, ) # 统计 det_classes {} total 0 for r in results: for box in r.boxes: cls_id int(box.cls[0]) name model.names[cls_id] det_classes[name] det_classes.get(name, 0) 1 total 1 print(f\n检测完成共 {total} 个目标) for k, v in sorted(det_classes.items(), keylambda x: -x[1]): print(f {k}: {v}) if __name__ __main__: main()运行powershellC:\ZCY\WK\wkpy\YOLO\env\Scripts\python.exe C:\ZCY\WK\wkpy\YOLO\test\run_detect.py6.3 实测效果用一段 DJI 无人机视频393 MB3181 帧384×640测试highlighter- ArduinoGPU: NVIDIA GeForce RTX 2080 video 1/1 (frame 1/3181): 384x640 1 broccoli, 44.6ms video 1/1 (frame 2/3181): 384x640 1 broccoli, 9.1ms video 1/1 (frame 3/3181): 384x640 1 broccoli, 9.4ms ... Speed: 2.8ms preprocess, 9.7ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)指标数值推理速度9.7 ms/帧~103 FPS预处理2.8 ms后处理1.9 ms总耗时约 30 秒3181 帧七、核心参数详解7.1 推理参数参数类型默认值说明sourcestr-输入源文件路径、文件夹、URL、摄像头(0)、RTSP流modelstryolov8n.pt模型文件路径deviceint/str00第一块GPUcpuCPUconffloat0.25置信度阈值低于此值的结果被丢弃ioufloat0.45NMS IoU 阈值重叠框合并阈值imgszint640推理图像尺寸像素支持 320/640/1280vid_strideint1视频跳帧2每2帧检测1次max_detint300每帧最大检测数量classeslistNone只检测指定类别如[0,2,7]saveboolTrue是否保存结果projectstrruns/detect输出目录streamboolFalse流式推理长视频必须开否则爆内存7.2 参数调优建议highlighter-场景 conf imgsz model vid_stride ──────────────────────────────────────────────────────────── 快速预览看大概 0.1 320 n 3 日常使用平衡 0.25 640 n/s 1 精细检测要准 0.5 1280 m/l 1 小目标检测 0.25 1280 m 1 实时摄像头 0.3 640 n 1八、模型选择指南YOLOv8 提供 5 个尺寸的模型命名规则yolov8尺寸.pt模型参数量mAP速度 (RTX 2080)适用场景yolov8n3.2M37.3~100 FPS实时检测、快速预览yolov8s11.2M44.9~80 FPS平衡速度与精度yolov8m25.9M50.2~50 FPS通用场景推荐yolov8l43.7M52.9~30 FPS高精度需求yolov8x68.2M53.9~20 FPS最高精度怎么选不确定 → 先用yolov8n试效果不够再换s或m显存不够 8GB → 用n或s配合imgsz640追求精度 → 用m或l配合imgsz1280九、COCO 80 类别对照表预训练模型基于 COCO 数据集训练支持以下 80 类目标检测编号英文中文编号英文中文0person人40wine glass酒杯1bicycle自行车41cup杯子2car汽车42fork叉子3motorcycle摩托车43knife刀4airplane飞机44spoon勺子5bus公交车45bowl碗6train火车46banana香蕉7truck卡车47apple苹果8boat船48sandwich三明治9traffic light红绿灯49orange橙子10fire hydrant消防栓50broccoli西兰花11stop sign停止标志51carrot胡萝卜12parking meter停车计费器52hot dog热狗13bench长椅53pizza披萨14bird鸟54donut甜甜圈15cat猫55cake蛋糕16dog狗56chair椅子17horse马57couch沙发18sheep羊58potted plant盆栽19cow牛59bed床20elephant大象60dining table餐桌21bear熊61toilet马桶22zebra斑马62tv电视23giraffe长颈鹿63laptop笔记本24backpack背包64mouse鼠标25umbrella雨伞65remote遥控器26handbag手提包66keyboard键盘27tie领带67cell phone手机28suitcase行李箱68microwave微波炉29frisbee飞盘69oven烤箱30skis双板滑雪70toaster烤面包机31snowboard单板滑雪71sink水槽32sports ball球72refrigerator冰箱33kite风筝73book书34baseball bat棒球棒74clock时钟35baseball glove棒球手套75vase花瓶36skateboard滑板76scissors剪刀37surfboard冲浪板77teddy bear泰迪熊38tennis racket网球拍78hair drier吹风机39bottle瓶子79toothbrush牙刷十、常见问题Q1:torch.cuda.is_available()返回 False原因安装了 CPU 版 PyTorch。解决卸载后重新安装 CUDA 版powershellpip uninstall torch torchvision torchaudio pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121Q2: 显存不足CUDA Out of Memory解决python# 1. 减小推理尺寸 imgsz 320 # 从 640 降到 320 # 2. 用更小的模型 model YOLO(yolov8n.pt) # n s m l x # 3. 减小 batch size如果做批量推理 # 4. 限制每帧检测数量 max_det 100Q3: 长视频处理时内存爆满解决开启流式推理streamTruepythonresults model.predict(sourcelong_video.mp4, streamTrue) for r in results: # 逐帧处理不会把所有结果存内存 boxes r.boxes⚠️streamFalse默认会把每一帧的结果都存在内存里视频越长内存占用越大。Q4: 预训练模型检测效果不好原因COCO 预训练模型是通用模型不针对特定场景。解决用自己的数据集微调Fine-tunepowershell# 1. 准备数据集YOLO 格式 # 2. 训练 yolo detect train data你的数据集.yaml modelyolov8n.pt device0 epochs100 imgsz640 # 3. 用训练好的模型推理 yolo detect predict modelruns/detect/train/weights/best.pt source视频.mp4 device0Q5: 检测结果中有很多误检解决python# 提高置信度阈值 conf 0.5 # 从 0.25 提高到 0.5 # 降低 IoU 阈值减少重复框 iou 0.3 # 从 0.45 降到 0.3 # 只检测你关心的类别 classes [0] # 只检测人总结步骤命令耗时创建虚拟环境python -m venv env几秒安装 PyTorch (CUDA)pip install torch --index-url ...cu1215~15 分钟安装 Ultralyticspip install ultralytics