YOLO-V5保姆级教程:从环境搭建到自定义数据训练全流程

YOLO-V5保姆级教程:从环境搭建到自定义数据训练全流程 YOLO-V5保姆级教程从环境搭建到自定义数据训练全流程1. 环境搭建快速启动开发环境1.1 镜像优势与准备工作CSDN星图镜像广场提供的YOLO-V5镜像已经预装了所有必要的开发环境包括PyTorch 1.12深度学习框架CUDA 11.6和cuDNN 8.4GPU加速支持OpenCV 4.6图像处理库YOLO-V5官方代码库v7.0版本相比从零搭建环境使用镜像可以节省90%以上的配置时间。启动镜像后您将直接获得一个开箱即用的开发环境。1.2 三种使用方式详解1.2.1 Jupyter Notebook交互开发启动镜像后访问提供的Jupyter Lab链接新建Python 3笔记本验证环境是否正常import torch print(torch.__version__) # 应显示1.12 print(torch.cuda.is_available()) # 应返回TrueGPU可用1.2.2 SSH终端操作通过SSH客户端连接镜像进入项目目录cd /root/yolov5查看目录结构ls -l1.2.3 快速验证模型运行内置demo测试预训练模型import torch model torch.hub.load(ultralytics/yolov5, yolov5s) results model(https://ultralytics.com/images/zidane.jpg) results.show() # 显示检测结果2. 数据准备构建高质量训练集2.1 数据集目录结构规范YOLO-V5要求特定的数据组织格式custom_dataset/ ├── images/ │ ├── train/ # 训练图片 │ └── val/ # 验证图片 ├── labels/ │ ├── train/ # 训练标注 │ └── val/ # 验证标注 └── data.yaml # 数据集配置文件2.2 标注文件格式详解每个图片对应一个.txt标注文件格式为class_id x_center y_center width height示例标注0 0.45 0.67 0.20 0.30 # 类别0的对象 1 0.80 0.25 0.15 0.20 # 类别1的对象2.3 数据增强配置在data.yaml中可配置增强参数train: ./images/train val: ./images/val nc: 2 # 类别数 names: [person, car] # 类别名称 # 数据增强参数 augment: True hsv_h: 0.015 # 色调增强 hsv_s: 0.7 # 饱和度增强 hsv_v: 0.4 # 明度增强 flipud: 0.5 # 垂直翻转概率3. 模型训练从零开始到迁移学习3.1 基础训练命令启动训练的最简命令python train.py --img 640 --batch 16 --epochs 50 --data data.yaml --weights yolov5s.pt3.2 关键参数解析参数作用推荐值--img输入图像尺寸640/1280--batch批次大小8-32根据显存--epochs训练轮数50-100--data数据配置文件data.yaml--weights预训练权重yolov5s.pt--cache数据缓存ram/disk3.3 训练监控与调优实时监控训练过程tensorboard --logdir runs/train关键指标解读mAP0.5主要精度指标box_loss边界框回归损失obj_loss目标检测损失常见调优技巧学习率调整--lr 0.01早停机制--patience 10冻结层数--freeze 104. 模型评估与推理应用4.1 性能评估方法验证模型在测试集上的表现python val.py --weights runs/train/exp/weights/best.pt --data data.yaml --img 6404.2 多种推理方式4.2.1 单张图片检测model torch.hub.load(ultralytics/yolov5, custom, pathbest.pt) results model(test.jpg) results.show()4.2.2 视频流处理python detect.py --source 0 --weights best.pt # 摄像头 python detect.py --source video.mp4 --weights best.pt # 视频文件4.2.3 批量图片处理python detect.py --source test_images/ --weights best.pt --save-txt4.3 结果后处理获取检测结果的多种方式# 获取Pandas格式结果 df results.pandas().xyxy[0] # 获取JSON格式 json_results results.pandas().xyxy[0].to_json() # 获取原始张量 tensor_results results.xyxy[0]5. 模型导出与部署5.1 支持导出的格式YOLO-V5支持多种导出格式python export.py --weights best.pt --include torchscript onnx coreml tflite5.2 生产环境部署建议服务器部署使用ONNX Runtime或TorchScript结合Flask/FastAPI构建Web服务边缘设备部署Jetson系列使用TensorRT加速树莓派使用TFLite格式移动端部署iOSCoreML格式AndroidTFLite格式5.3 性能优化技巧量化压缩python export.py --weights best.pt --include onnx --halfTensorRT优化python export.py --weights best.pt --include engine --device 06. 总结与进阶建议6.1 关键步骤回顾使用预装镜像快速搭建环境准备符合规范的数据集选择合适的预训练模型进行迁移学习监控训练过程并适当调参评估模型性能并优化推理速度导出适合目标平台的模型格式6.2 常见问题解决方案CUDA内存不足减小batch size使用--cache ram减少数据加载时间检测效果不佳检查数据标注质量增加数据增强参数尝试更大的模型如yolov5m推理速度慢导出为TensorRT格式使用--half进行FP16量化6.3 进阶学习路径尝试自定义网络结构修改models/yolov5s.yaml实验不同的数据增强组合学习模型剪枝和量化技术探索多任务学习检测分类获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。