YOLO-V5保姆级教程从环境搭建到模型训练小白也能轻松上手1. 认识YOLO-V5为什么选择它目标检测是计算机视觉中最基础也最重要的任务之一。想象一下当你看到一张照片时不仅能认出里面的物体还能准确指出它们的位置——这就是YOLO-V5要做的事情。YOLOYou Only Look Once系列模型自2015年问世以来凭借其只看一次的高效检测方式迅速成为工业界和学术界的宠儿。而YOLO-V5虽然不是官方版本却因其易用性和高性能获得了广泛认可极简代码结构相比其他深度学习项目YOLO-V5的代码库非常干净没有复杂的抽象层开箱即用预训练模型丰富从轻量级到高精度版本一应俱全活跃社区GitHub上超过10k星标问题解答和教程资源丰富多平台支持可轻松部署到服务器、移动端甚至嵌入式设备2. 环境准备10分钟搞定基础配置2.1 硬件要求开始之前先确认你的设备配置配置项最低要求推荐配置操作系统Windows 10/11, Linux, macOSUbuntu 20.04 LTSCPU4核处理器8核及以上内存8GB16GB及以上GPU集成显卡NVIDIA显卡(4GB显存)存储20GB可用空间SSD硬盘小贴士如果没有独立显卡也可以使用CPU进行训练只是速度会慢一些2.2 软件安装我们推荐使用Miniconda来管理Python环境避免依赖冲突下载并安装Miniconda官网链接打开终端Windows用户使用Anaconda Prompt创建新环境conda create -n yolov5 python3.8 conda activate yolov5安装PyTorch根据是否有GPU选择不同命令# 有NVIDIA GPU的情况推荐 conda install pytorch torchvision torchaudio cudatoolkit11.3 -c pytorch # 仅使用CPU的情况 conda install pytorch torchvision torchaudio cpuonly -c pytorch克隆YOLO-V5仓库并安装依赖git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt3. 快速体验用预训练模型检测图片在正式训练前我们先体验一下YOLO-V5的强大能力准备一张测试图片如test.jpg放在yolov5目录下运行检测命令python detect.py --weights yolov5s.pt --source test.jpg查看结果检测结果会保存在runs/detect/exp目录打开生成的图片你会看到物体被框出并标注了类别和置信度这个简单的demo展示了YOLO-V5的核心功能快速准确地识别图片中的物体。4. 准备训练数据标注与格式转换4.1 数据标注工具推荐要训练自己的检测模型首先需要标注数据。以下是常用标注工具对比工具名称优点缺点适用场景LabelImg开源免费支持YOLO格式功能较基础小型项目CVAT功能强大支持团队协作部署复杂企业级项目Roboflow在线服务自动标注收费快速原型开发这里我们以LabelImg为例演示标注流程安装LabelImgpip install labelImg labelImg打开图片文件夹选择YOLO标注格式绘制边界框并输入类别名称保存后会生成同名的.txt标注文件4.2 YOLO数据格式详解YOLO使用特定的文本格式存储标注信息。每个图片对应一个.txt文件每行表示一个物体class_id x_center y_center width heightclass_id类别编号从0开始x_center,y_center边界框中心坐标相对值0-1width,height边界框宽高相对值0-1例如对于一张800×600的图片如果有一个物体的中心在(400,300)宽高为(200,150)则标注为0 0.5 0.5 0.25 0.254.3 数据集目录结构规范的目录结构能让训练更顺利custom_dataset/ ├── images/ │ ├── train/ │ │ ├── image1.jpg │ │ └── ... │ └── val/ │ ├── image2.jpg │ └── ... └── labels/ ├── train/ │ ├── image1.txt │ └── ... └── val/ ├── image2.txt └── ...5. 模型训练从零开始到专业级5.1 配置文件准备YOLO-V5需要两个核心配置文件数据配置文件如data/custom.yamltrain: ../custom_dataset/images/train val: ../custom_dataset/images/val nc: 3 # 类别数量 names: [cat, dog, person] # 类别名称模型配置文件从models/yolov5s.yaml复制# 参数说明 depth_multiple: 0.33 # 控制网络深度 width_multiple: 0.50 # 控制网络宽度 # 锚点框配置一般不需要修改 anchors: - [10,13, 16,30, 33,23] - [30,61, 62,45, 59,119] - [116,90, 156,198, 373,326]5.2 启动训练基础训练命令python train.py --img 640 --batch 16 --epochs 100 --data data/custom.yaml --cfg models/yolov5s.yaml --weights --name my_first_train关键参数说明参数作用推荐值--img输入图片尺寸640--batch批次大小根据显存调整--epochs训练轮数100-300--data数据配置文件自定义路径--cfg模型配置文件yolov5s/m/l/x--weights预训练权重表示从零开始--name实验名称自定义5.3 训练监控与调优训练过程中YOLO-V5会自动记录以下信息损失曲线在runs/train/my_first_train目录下的results.png关注box_loss,obj_loss,cls_loss的下降趋势验证指标包括mAP0.5, precision, recall等数据增强效果在train_batch*.jpg中查看如果发现模型表现不佳可以尝试增加数据量或数据多样性调整学习率--lr0参数更换更大的模型如yolov5m或yolov5l使用预训练权重--weights yolov5s.pt6. 模型评估与部署6.1 评估模型性能训练完成后使用以下命令评估模型python val.py --weights runs/train/my_first_train/weights/best.pt --data data/custom.yaml --img 640关键输出指标mAP0.5IoU阈值为0.5时的平均精度mAP0.5:0.95IoU阈值从0.5到0.95的平均精度precision预测为正样本中真正正样本的比例recall真正正样本中被预测出来的比例6.2 模型导出与部署YOLO-V5支持导出多种格式python export.py --weights runs/train/my_first_train/weights/best.pt --include onnx engine常用导出格式格式适用场景特点ONNX跨平台部署通用性强TensorRTNVIDIA设备极致优化CoreMLiOS/macOS苹果生态TFLite移动设备轻量级7. 总结与进阶建议通过本教程你已经掌握了YOLO-V5的完整工作流程环境配置与安装数据准备与标注模型训练与调优评估与部署为了进一步提升模型效果建议数据层面增加数据多样性使用数据增强模型层面尝试更大的模型或修改网络结构训练技巧使用迁移学习调整学习率策略部署优化模型量化剪枝等压缩技术获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。