Windows下YOLOv5环境搭建与目标检测实战指南 1. Windows 下 YOLO 环境搭建与使用完整指南YOLOYou Only Look Once作为当前最流行的实时目标检测算法之一在工业质检、安防监控、自动驾驶等领域有着广泛应用。但在Windows平台搭建YOLO开发环境时新手常会遇到CUDA版本冲突、PyTorch安装失败、OpenCV兼容性等问题。本文将基于Windows 10/11系统手把手带你完成从零开始的完整环境配置并演示如何使用自定义数据集进行训练和推理。1.1 环境准备清单在开始前需要准备以下组件Windows 10/11 64位系统建议版本1903以上NVIDIA显卡GTX 1060及以上需支持CUDAPython 3.8-3.10不推荐3.11因部分依赖尚未适配CUDA 11.3 cuDNN 8.2.1经测试最稳定的组合PyTorch 1.12.1 torchvision 0.13.1注意务必确保显卡驱动为最新版可通过NVIDIA控制面板检查。笔者曾因驱动版本过旧导致CUDA无法识别显卡浪费半天排查时间。1.2 安装流程概览整个搭建过程分为五个关键阶段基础开发环境配置Python/VS Build ToolsCUDA和cuDNN安装验证PyTorch环境部署YOLOv5源码获取与依赖安装测试Demo运行2. 详细环境配置步骤2.1 Python与VS Build Tools安装首先从Python官网下载3.9.13版本较新的3.10也可# 验证安装成功 python --version pip --version接着安装Visual Studio Build Tools下载VS 2019生成工具勾选使用C的桌面开发和Windows 10 SDK安装后添加cl.exe到系统PATH# 典型路径示例 set PATH%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x642.2 CUDA与cuDNN配置从NVIDIA官网下载CUDA Toolkit 11.3.0cuDNN v8.2.1 for CUDA 11.3安装后需要验证nvcc --version # 应显示11.3版本 nvidia-smi # 查看GPU状态将cuDNN解压后文件复制到CUDA安装目录cudnn-11.3-windows-x64-v8.2.1.32\bin → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin cudnn-11.3-windows-x64-v8.2.1.32\include → ...\CUDA\v11.3\include cudnn-11.3-windows-x64-v8.2.1.32\lib → ...\CUDA\v11.3\lib2.3 PyTorch环境安装使用pip安装指定版本PyTorchpip install torch1.12.1cu113 torchvision0.13.1cu113 --extra-index-url https://download.pytorch.org/whl/cu113验证GPU是否可用import torch print(torch.cuda.is_available()) # 应输出True print(torch.rand(2,3).cuda()) # 测试张量计算3. YOLOv5部署与测试3.1 获取源码与安装依赖git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt常见问题解决如果出现pycocotools安装失败尝试pip install pycocotools-windowsOpenCV报错可指定版本pip install opencv-python4.5.5.643.2 测试预训练模型下载yolov5s.pt权重文件后运行python detect.py --weights yolov5s.pt --source data/images/预期看到输出detect: weightsyolov5s.pt, sourcedata/images/, datadata\coco128.yaml, imgsz[640, 640] YOLOv5 v6.0-224-g4c40933 torch 1.12.1 CUDA:0 (NVIDIA GeForce RTX 3060, 12054.5MB)4. 自定义数据集训练4.1 数据准备推荐使用LabelImg进行标注安装LabelImgpip install labelImg labelImg标注后生成YOLO格式的txt文件按以下结构组织数据集dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/4.2 训练配置创建data/custom.yamltrain: ../dataset/images/train val: ../dataset/images/val nc: 3 # 类别数 names: [person, car, dog]启动训练python train.py --img 640 --batch 16 --epochs 100 --data custom.yaml --weights yolov5s.pt4.3 训练参数调优建议参数推荐值说明--img640输入图像尺寸--batch8-32根据显存调整--epochs50-300简单数据集可减少--weightsyolov5s.pt预训练模型--datacustom.yaml数据集配置文件5. 常见问题排查5.1 CUDA相关错误报错CUDA out of memory解决方案减小batch size检查是否有其他程序占用显存报错No CUDA runtime is found检查CUDA与PyTorch版本是否匹配运行set CUDA_VISIBLE_DEVICES0指定显卡5.2 训练过程问题Loss不下降检查标注是否正确可视化验证适当增大学习率--lr 0.01增加数据增强--augment True显存溢出减小输入尺寸--img 416使用更小模型如yolov5n.pt启用梯度累积--accumulate 25.3 部署优化技巧导出ONNX模型便于部署python export.py --weights runs/train/exp/weights/best.pt --include onnx使用TensorRT加速python export.py --weights best.pt --include engine --device 0对于嵌入式设备建议使用YOLOv5s或更小的模型变体6. 进阶使用建议6.1 模型微调策略冻结骨干网络freeze前20层# 在train.py中添加 for k, v in model.named_parameters(): if model.0 in k or model.1 in k: # 示例冻结前两层 v.requires_grad False使用余弦退火学习率# data/hyps/hyp.scratch-low.yaml lr0: 0.01 # 初始学习率 lrf: 0.2 # 最终学习率lr0*lrf6.2 性能监控工具推荐使用WBWeights Biasespip install wandb wandb login在train.py运行时自动记录Epoch gpu_mem box obj cls labels img_size 0/299 5.12G 0.0711 0.0356 0.01632 32 640 1/299 5.12G 0.0703 0.0349 0.01589 32 6406.3 生产环境部署对于Windows服务化部署建议使用FastAPI封装模型接口from fastapi import FastAPI, File app FastAPI() app.post(/detect) async def detect(file: bytes File(...)): results model(file) return {objects: results.pandas().xyxy[0].to_dict()}使用Docker容器化FROM nvidia/cuda:11.3.0-runtime COPY yolov5 /app WORKDIR /app RUN pip install -r requirements.txt CMD [python, detect.py, --weights, best.pt]我在实际部署中发现Windows平台下使用YOLO的最佳实践是优先使用WSL2进行开发可获得接近Linux的性能对于工业场景建议转换为TensorRT引擎监控GPU温度长期高负载可能导致降频定期清理runs/detect/exp*目录防止存储空间耗尽