当前位置: 首页 > news >正文

YOLO-V5从安装到运行:完整流程详解,避免踩坑指南

YOLO-V5从安装到运行:完整流程详解,避免踩坑指南

1. 环境准备与快速部署

1.1 系统要求

在开始之前,请确保你的系统满足以下最低要求:

  • 操作系统:Ubuntu 18.04/20.04 或 Windows 10/11(建议使用Linux环境)
  • Python版本:3.7-3.9(不推荐3.10及以上版本)
  • CUDA:11.1+(如果使用GPU)
  • 显存:至少4GB(运行yolov5s模型)

1.2 一键安装方法

最简单的方式是使用我们提供的预装镜像,已经配置好所有依赖:

# 拉取镜像(假设你已经配置好Docker环境) docker pull csdn-mirror/yolo-v5:latest # 运行容器 docker run -it --gpus all -p 8888:8888 csdn-mirror/yolo-v5

如果你希望从源码安装,可以按照以下步骤:

git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt

常见安装问题解决

  1. PyTorch安装失败

    • 先确认CUDA版本:nvidia-smi
    • 到PyTorch官网获取对应安装命令
  2. OpenCV导入错误

    • 尝试:pip uninstall opencv-python opencv-python-headless
    • 然后:pip install opencv-python-headless
  3. 权限问题

    • 在命令前加sudo
    • 或使用虚拟环境:python -m venv yolov5_env && source yolov5_env/bin/activate

2. 基础概念快速入门

2.1 YOLO-V5核心特点

YOLO-V5之所以广受欢迎,主要因为:

  • 速度快:在同样精度下比前代快2-3倍
  • 易部署:支持导出为ONNX、TensorRT等多种格式
  • 模块化设计:清晰的结构便于二次开发
  • 预训练模型丰富:提供s/m/l/x四种尺寸模型

2.2 关键术语解释

术语解释示例
Bounding Box物体检测框[x_center, y_center, width, height]
mAP平均精度0.85表示85%的检测准确率
Anchor预设检测框尺寸用于匹配不同大小的物体
NMS非极大值抑制去除重复检测框的算法

3. 分步实践操作

3.1 快速测试预训练模型

让我们先用官方提供的预训练模型测试一张图片:

import torch # 加载模型(自动下载yolov5s.pt) model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # 检测图片 img = 'https://ultralytics.com/images/zidane.jpg' results = model(img) # 显示结果 results.show()

运行后会弹出窗口显示检测结果,你会在图片上看到各种物体的边界框和类别标签。

3.2 使用自己的图片/视频

要检测本地文件,只需修改输入路径:

# 检测本地图片 results = model('path/to/your/image.jpg') # 检测视频 results = model('path/to/your/video.mp4') # 保存结果 results.save() # 保存到runs/detect/exp目录

3.3 常用参数调整

通过修改参数可以获得不同效果:

# 调整置信度阈值(默认0.25) model.conf = 0.5 # 只显示置信度>50%的检测 # 调整IOU阈值(默认0.45) model.iou = 0.3 # 更宽松的重叠检测过滤 # 只检测特定类别 model.classes = [0, 14] # 0=人, 14=鸟

4. 训练自定义模型

4.1 准备数据集

YOLO-V5需要特定格式的数据集:

dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/

每个图片对应一个.txt标签文件,格式为:

<class_id> <x_center> <y_center> <width> <height>

4.2 创建数据配置文件

data/目录下新建mydata.yaml

# 训练和验证图片路径 train: ../dataset/images/train/ val: ../dataset/images/val/ # 类别数 nc: 3 # 类别名称 names: ['cat', 'dog', 'person']

4.3 开始训练

运行训练命令:

python train.py --img 640 --batch 16 --epochs 100 --data data/mydata.yaml --weights yolov5s.pt

关键参数说明

  • --img 640:输入图像尺寸
  • --batch 16:批次大小(根据显存调整)
  • --epochs 100:训练轮次
  • --weights yolov5s.pt:预训练模型

4.4 监控训练过程

训练时会自动生成以下内容:

  • 日志:在终端输出各项指标
  • 曲线图:在runs/train/exp目录下
  • 模型检查点:每轮保存到runs/train/exp/weights

5. 模型导出与部署

5.1 导出为ONNX格式

python export.py --weights runs/train/exp/weights/best.pt --include onnx

5.2 导出为TensorRT

python export.py --weights runs/train/exp/weights/best.pt --include engine --device 0

5.3 部署到生产环境

导出的模型可以通过以下方式使用:

# 加载ONNX模型 import onnxruntime session = onnxruntime.InferenceSession("best.onnx") # 准备输入 inputs = {session.get_inputs()[0].name: processed_img} # 推理 outputs = session.run(None, inputs)

6. 常见问题解答

6.1 模型加载失败

问题RuntimeError: Unable to load model

解决

  1. 检查模型路径是否正确
  2. 确保PyTorch版本匹配
  3. 尝试重新下载模型:torch.hub._download_url_to_file(url, dst)

6.2 训练时显存不足

问题CUDA out of memory

解决

  1. 减小--batch-size(如从16降到8)
  2. 减小--img-size(如从640降到320)
  3. 使用更小的模型(如yolov5n)

6.3 检测结果不准确

问题:漏检或误检多

解决

  1. 调整--conf-thres(如从0.25提高到0.5)
  2. 增加训练数据量
  3. 检查标签是否正确

7. 总结与下一步

7.1 关键要点回顾

通过本教程,你应该已经掌握:

  1. YOLO-V5环境搭建与安装
  2. 使用预训练模型进行目标检测
  3. 训练自定义数据集
  4. 模型导出与部署
  5. 常见问题解决方法

7.2 进阶学习建议

想要更深入掌握YOLO-V5,建议:

  1. 阅读源码models/yolo.py理解网络结构
  2. 尝试修改数据增强策略
  3. 学习TensorRT加速部署
  4. 参与官方GitHub社区的讨论

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

http://www.jsqmd.com/news/563481/

相关文章:

  • GPU加速秘籍:PyTorch-examples教你如何充分利用硬件性能
  • 基于模拟退火算法优化的最小二乘支持向量机(SA-LSSVM)数据分类预测及Matlab代码实现...
  • ZYNQ私有定时器中断实战:用Vitis 2020.2让PS端LED精准1秒闪烁
  • DBNet++的ASF模块真的只是空间注意力吗?深入对比论文与官方代码的三种实现
  • s2-pro企业落地实践:用s2-pro替代商用TTS,年降本超5万元实录
  • SSH3协议安全性深度解析:TLS 1.3与QUIC如何构建下一代安全通信
  • 如何构建可插拔的缓存生态系统:golang-lru 扩展接口设计指南
  • 3个必备技巧:快速掌握Cyber Engine Tweaks游戏增强框架
  • 如何生成USearch API文档的PDF手册:快速创建可打印版本指南
  • AI大模型进化地图:小白也能看懂的技术架构与未来趋势(收藏版)
  • 从纳米医疗到行星吞噬:解析《黑苹果》中的技术奇点与文明危机
  • OpenLara最佳实践:开发高质量游戏引擎的10个关键原则
  • 用JL6107SC替代BCM53134的5个成本优化技巧(附BOM对比表)
  • 乙巳马年春联生成终端参数详解:长文本生成稳定性保障机制
  • Apache Dubbo-go与Java Dubbo互操作:跨语言微服务通信完全指南
  • 为什么选择Practical Modern JavaScript:探索ES6未来发展方向
  • AI绘画工作流自动化:OpenClaw+百川2-13B量化模型联动方案
  • Jimeng AI Studio效果展示:Z-Image Turbo生成动态海报与短视频封面图
  • 别再手动画点阵了!用PCtoLCD2002搞定LCD/OLED汉字显示,附STM32移植代码
  • 开源项目 `gusmanb/logicanalyzer` 使用教程
  • LVGL 8.2图片转换工具避坑指南:如何正确选择颜色格式和透明度处理
  • DeEAR语音情感三维建模:如何用DeEAR输出可量化的Arousal-Nature-Prosody指标
  • SenseVoice语音识别模型在Windows/Linux双平台部署全攻略(附SpringBoot API封装技巧)
  • **AI仿真人剧供应商推荐,2025年影视制作新选择**随着科技的飞速发展,AI技术在影视制作领域的应用日益广泛。AI仿真人剧作为一种新兴的影视形式,凭借其逼真的特效和高效的生产效率,受到了越来越
  • 从实验室到生产线:拉曼光谱在锂电池质检、制药过程监控中的实战避坑指南
  • 3步实现Zotero SciPDF插件:科研文献PDF自动下载的终极解决方案
  • USearch开源社区会议:如何参与向量搜索引擎的定期讨论与决策
  • Nunchaku FLUX.1 CustomV3镜像免配置:预装ComfyUI+Custom Workflow+LoRA权重一体化方案
  • Neo4j桌面版一键安装GDS插件教程(含企业版许可证配置)
  • 告别Cityscapes:DDRNet迁移到自定义数据集的完整配置清单与常见报错解决