Windows10+YOLOv5实战:从零构建自定义目标检测模型

📅 2026/6/19 15:18:09
Windows10+YOLOv5实战:从零构建自定义目标检测模型
1. Windows10下YOLOv5环境配置指南第一次在Windows10上配置YOLOv5环境时我遇到了不少坑。显卡驱动崩溃、CUDA版本不兼容、环境冲突等问题接踵而至。经过多次实践我总结出这套稳定可靠的配置方案特别适合刚入门的新手。核心组件版本选择很关键。我推荐使用以下组合Python 3.8兼容性最佳PyTorch 1.8cu111稳定版CUDA 11.1适配多数显卡cuDNN 8.0.5需与CUDA版本匹配安装Anaconda时有个细节要注意务必勾选Add to PATH选项。很多教程说不要勾选但在Windows10最新版中这是让conda命令全局可用的最简方法。创建虚拟环境时建议使用命令conda create -n yolov5 python3.8PyTorch安装最容易出错。官网提供的conda安装命令在Windows下经常失败改用pip安装更可靠pip install torch1.8.0cu111 torchvision0.9.0cu111 -f https://download.pytorch.org/whl/torch_stable.html验证安装时除了检查torch.cuda.is_available()还要测试实际计算能力import torch print(torch.rand(3,3).cuda()) # 应输出GPU上的随机矩阵2. 数据集制作实战技巧制作自定义数据集是训练成功的关键。我曾用200张工业零件图片训练出准确率95%的模型关键就在于数据处理的技巧。标注工具选择LabelImg仍是最好用的工具但要注意两点保存格式选YOLO格式生成.txt文件类别名称用英文且不含空格文件目录结构要严格规范建议采用这种形式dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/数据增强配置很有讲究。在data.yaml中建议这样设置train: ../dataset/images/train val: ../dataset/images/val nc: 3 # 类别数 names: [cat, dog, person] # 按实际修改遇到样本不足时可以用这些方法增强使用imgaug库进行颜色抖动添加随机噪声高斯/椒盐噪声应用仿射变换旋转10度内3. 模型训练参数调优第一次训练时我的loss值居高不下后来发现是学习率设置不当。经过多次实验总结出这些黄金参数基础训练配置python train.py --img 640 --batch 16 --epochs 300 --data data.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --device 0关键参数解析batch大小显存8G建议8-1616G可用32学习率0.01太大易震荡太小收敛慢图像尺寸640x640平衡速度与精度训练过程监控特别重要。启动TensorBoard的命令是tensorboard --logdirruns/train常见问题解决方案出现NaN loss减小学习率或增大batch验证mAP不升检查标注质量显存不足减小batch或图像尺寸4. 模型部署与性能优化训练好的模型需要优化才能实用。我测试过多种部署方案发现这些技巧最有效模型导出为ONNX格式python export.py --weights runs/train/exp/weights/best.pt --include onnx推理速度优化使用half-precisionFP16推理设置conf-thres0.4iou-thres0.5启用TensorRT加速可提速3-5倍实际测试对比RTX 2060模型精度(mAP)速度(FPS)显存占用FP320.89452.1GBFP160.88681.4GBTensorRT0.871201.2GB部署到生产环境时建议用Flask构建API接口from flask import Flask, request import torch app Flask(__name__) model torch.hub.load(ultralytics/yolov5, custom, pathbest.pt) app.route(/predict, methods[POST]) def predict(): file request.files[image] results model(file) return results.pandas().xyxy[0].to_json()5. 常见问题解决方案在Windows平台使用YOLOv5会遇到一些特有问题这里分享我的解决经验CUDA内存不足的终极解决方案降低batch size到4-8添加--workers 0参数在任务管理器中结束无关GPU进程路径问题的预防措施所有路径使用正斜杠/避免中文和空格路径使用相对路径而非绝对路径性能瓶颈分析方法使用nvtop查看GPU利用率检查CPU是否达到100%监控内存交换情况有个特别隐蔽的坑Windows默认的PowerShell会限制GPU性能建议使用CMD而非PowerShell在NVIDIA控制面板设置首选最高性能禁用Windows游戏模式