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

YOLOv5 COCO数据集 实战训练全流程解析 | 【从零到一】

1. 环境准备从零搭建YOLOv5训练环境第一次接触YOLOv5时我最头疼的就是环境配置。记得当时为了一个CUDA版本问题折腾了整整两天现在回想起来其实只要按步骤来就能避免90%的坑。下面是我总结的最稳环境搭建方案首先确保你的机器有NVIDIA显卡GTX 1060以上推荐然后安装最新版Anaconda。这里有个小技巧创建虚拟环境时建议用Python 3.8实测这个版本与PyTorch的兼容性最好conda create -n yolov5 python3.8 conda activate yolov5接下来安装PyTorch时要注意CUDA版本匹配。到[NVIDIA控制面板]查看你的驱动版本然后对照PyTorch官网的兼容表选择安装命令。比如我的RTX 3090用的是pip install torch1.10.0cu113 torchvision0.11.1cu113 -f https://download.pytorch.org/whl/torch_stable.html最后克隆YOLOv5官方仓库并安装依赖git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt常见问题排查遇到matplotlib弹窗报错试试在代码开头添加import matplotlib; matplotlib.use(Agg)CUDA out of memory调小batch_size或者换更小的模型版本如yolov5s安装超时换成国内镜像源我常用清华源pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt2. 数据准备COCO数据集处理技巧COCO数据集有超过33万张图片但直接使用原始数据集会遇到几个坑。我第一次训练时没做预处理结果光是加载数据就花了20分钟。后来发现这几个优化点能显著提升效率数据集下载与解压官方提供的coco2017数据集压缩包有18GB建议用axel多线程下载axel -n 10 http://images.cocodataset.org/zips/train2017.zip unzip train2017.zip -d ../datasets/coco关键目录结构应该这样组织datasets/ └── coco/ ├── images/ │ ├── train2017/ # 训练集图片 │ └── val2017/ # 验证集图片 └── labels/ ├── train2017/ # 训练集标注 └── val2017/ # 验证集标注标注格式转换是新手最容易出错的地方。COCO提供的标注是JSON格式需要转换成YOLO格式的txt文件。用这个Python脚本可以一键转换from pycocotools.coco import COCO import os coco COCO(annotations/instances_train2017.json) cat_ids coco.getCatIds() for img_id in coco.getImgIds(): img_info coco.loadImgs(img_id)[0] ann_ids coco.getAnnIds(imgIdsimg_id) anns coco.loadAnns(ann_ids) with open(flabels/train2017/{img_info[file_name].replace(.jpg, .txt)}, w) as f: for ann in anns: cat_id ann[category_id] bbox ann[bbox] # 转换bbox为YOLO格式...3. 模型配置YOLOv5的调参艺术YOLOv5的配置文件就像汽车的操控面板每个参数都影响着训练效果。这是我调试过上百次后总结的黄金配置模型选择yolov5s手机端部署首选7.2M参数yolov5m平衡型21.2M参数yolov5l高精度场景46.5M参数data.yaml配置示例train: ../datasets/coco/images/train2017 val: ../datasets/coco/images/val2017 nc: 80 # COCO类别数 names: [person, bicycle, car, ..., toothbrush]hyp.scratch-low.yaml调参技巧lr0: 0.01 # 初始学习率大batch可调高 lrf: 0.2 # 最终学习率lr0*lrf momentum: 0.937 # SGD动量 weight_decay: 0.0005 # 权重衰减系数 fl_gamma: 0.0 # focal loss gamma类别不平衡时调为1.5 hsv_h: 0.015 # 图像HSV-Hue增强幅度 hsv_s: 0.7 # 饱和度增强 hsv_v: 0.4 # 明度增强关键参数经验值参数小模型建议值大模型建议值作用说明batch_size16-328-16显存不足时减小epochs100-30050-200简单数据集可减少image_size6401280分辨率越高越耗时optimizerSGDAdamW小数据AdamW更优4. 训练与监控实战中的避坑指南启动训练命令看似简单但里面的门道很多。这是我常用的训练命令模板python train.py \ --img 640 \ --batch 32 \ --epochs 300 \ --data data/coco.yaml \ --cfg models/yolov5s.yaml \ --weights \ --name coco_yolov5s \ --cache ram # 使用内存缓存加速训练过程监控有三大神器TensorBoard实时查看指标变化tensorboard --logdir runs/train权重文件分析用utils/loggers.py中的plot_results可视化显存监控nvidia-smi -l 1每秒刷新显存使用常见报错解决方案CUDA out of memory# 尝试减小batch_size或image_size --batch 16 --img 512标签文件找不到# 检查data.yaml中的路径是否正确 --data ./data/coco.yaml训练速度慢# 启用--cache参数 --cache disk/ram中途调整技巧发现过拟合添加--patience 20早停效果不佳尝试--rect矩形训练模式恢复训练--weights runs/train/exp/weights/last.pt5. 模型评估与优化训练完成后别急着用先做全面体检。这是我常用的评估组合拳标准COCO评估python val.py \ --data data/coco.yaml \ --weights runs/train/coco_yolov5s/weights/best.pt \ --batch 32 \ --task test \ --save-json关键指标解读mAP0.5IoU阈值0.5时的平均精度mAP0.5:0.95不同IoU阈值下的综合精度speed包括前处理、推理、后处理时间模型剪枝实战 如果想部署到移动端可以用这个通道剪枝脚本import torch from models.yolo import Model model Model(models/yolov5s.yaml) model.load_state_dict(torch.load(weights/best.pt)) # 计算通道重要性 importance compute_channel_importance(model) # 剪掉重要性0.1的通道 pruned_model prune_model(model, threshold0.1) torch.save(pruned_model.state_dict(), pruned.pt)部署优化技巧转ONNX时添加动态轴torch.onnx.export(..., dynamic_axes{input: {0: batch}, output: {0: batch}})TensorRT加速trtexec --onnxyolov5s.onnx --saveEngineyolov5s.engine安卓部署建议用NCNN框架6. 进阶技巧与实战经验经过几十次COCO数据集训练我总结出这些提升效果的关键点数据增强组合拳# hyp.yaml中调整这些参数 mosaic: 1.0 # 马赛克增强概率 mixup: 0.2 # mixup增强概率 copy_paste: 0.3 # 目标复制粘贴增强类别不平衡解决方案过采样少数类修改data.py中的load_image_and_labels使用Focal Loss设置hyp.yaml中的fl_gamma2.0自定义损失权重# 在loss.py中修改class权重 self.class_weights torch.tensor([1.0, 2.0, ..., 0.5])模型融合技巧# 加权融合多个模型 model1 torch.load(weights/best1.pt) model2 torch.load(weights/best2.pt) for p1, p2 in zip(model1.parameters(), model2.parameters()): p1.data 0.7*p1.data 0.3*p2.data实际项目中的经验遇到小目标检测效果差试试增加image_size到1280推理速度不够快用--half开启FP16推理想试试最新技术可以切换YOLOv5的--evolve超参数进化模式

相关文章:

YOLOv5 COCO数据集 实战训练全流程解析 | 【从零到一】

1. 环境准备:从零搭建YOLOv5训练环境 第一次接触YOLOv5时,我最头疼的就是环境配置。记得当时为了一个CUDA版本问题折腾了整整两天,现在回想起来其实只要按步骤来就能避免90%的坑。下面是我总结的最稳环境搭建方案: 首先确保你的机…...

别再硬算公式了!用Excel搞定STM32 NTC测温的ADC查表法(附完整表格)

用Excel玩转STM32 NTC测温:查表法实战指南 嵌入式开发中,温度测量是个永恒的话题。NTC热敏电阻因其成本低廉、响应迅速,成为工程师们的首选传感器。但每次项目都要重新推导温度计算公式,不仅耗时费力,还容易在数学转换…...

从 AI 电影到小说:《凰标》延续《第一大道》的东方梦@凤凰标志

科技为翼,文脉为魂; 大道开路,凰标定局。一、时代之问:当AI沦为流量收割机,谁来守护东方文脉? AI 正以惊人的速度渗透文娱产业,却多数被资本用作「快餐内容」的流水线。 海棠山铁哥反其道而行—…...

从一张‘正常’图片到服务器沦陷:文件包含漏洞如何让图片马‘活’过来?

从一张“正常”图片到服务器沦陷:揭秘文件包含漏洞的致命组合攻击 当你深夜检查服务器日志时,发现有人上传了一张普通的风景图。文件头校验通过,MIME类型正确,甚至预览也显示正常。但三天后,这张“图片”却成为攻击者控…...

如何突破百度网盘下载限速?这款开源工具让你重获高速下载自由

如何突破百度网盘下载限速?这款开源工具让你重获高速下载自由 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在为百度网盘那令人绝望的下载速度而苦恼吗?当你看着进度条缓慢爬行,大文件…...

避开这些坑!用Vivado FIFO IP核做跨时钟域处理的5个实战细节

避开这些坑!用Vivado FIFO IP核做跨时钟域处理的5个实战细节 在FPGA设计中,跨时钟域(CDC)数据传输一直是工程师们面临的棘手问题。Xilinx Vivado提供的FIFO IP核因其稳定性和易用性,成为处理CDC问题的首选方案。然而&a…...

背包九讲(C++)

目录 背包问题 1.0/1背包 2.完全背包 3.多重背包 4.分组背包 5.混合背包问题 6.背包问题求具体方案 7.背包问题求方案数 8.二维费用的背包问题 9.有依赖的背包问题 背包问题 任何背包问题都有01背包的影子,甚至均可以化为01背包的问题(特殊性)&#xff0…...

2026年电力电缆品牌梳理多维度适配项目选型需求

随着双碳目标落地与电力基础设施完善,电力电缆作为电力传输的重要载体,市场需求持续释放,产品向高安全、长寿命、广适配方向发展。本文基于市场应用与企业实力,整理电力电缆品牌信息,助力项目合理选型。一、2026年电力…...

如何学习java?

目录 一. 初识Java 1. Java语⾔概述 1.1 Java是什么 1.2 什么是JavaSE?什么是JavaEE? JavaSE(JavaStandardEdition): JavaEE(JavaEnterprise Edition): 主要区别: 1.3 Java语⾔重要性 1.4 Java语⾔发展简史 1.5 Java语⾔特性 1.6 Java开发环境安装 1. …...

英雄联盟Akari助手:你的智能游戏伴侣完整指南,轻松提升游戏体验 [特殊字符]

英雄联盟Akari助手:你的智能游戏伴侣完整指南,轻松提升游戏体验 🚀 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolk…...

新加坡高校 Canvas 攻击事件影响评估与安全治理研究

摘要 2026 年 5 月发生的 Canvas 学习平台全球供应链攻击事件,对新加坡国立大学、新加坡社科大学、新加坡管理学院等高校造成服务中断与数据泄露风险,成为教育数字化场景下第三方平台安全风险的典型案例。本次攻击由 Shiny Hunters 组织实施,…...

基于ARP欺骗的中间人攻击的Python实现

摘要:本文在模拟网络攻击实验环境中,使用Python的scapy模块构造ARP数据包发送给目标机进行ARP欺骗,成功实施了中间人攻击,然后嗅探局域网内部网络流量,截取HTTP协议数据包进行解析,初步实现了在被攻击者浏览…...

Python face_recognition 库实战:从环境搭建到人脸特征点检测

1. 环境准备:搭建人脸识别的开发环境 第一次接触人脸识别开发时,最让人头疼的就是环境配置。记得我刚开始用face_recognition库时,光是安装依赖就折腾了大半天。后来才发现,其实只要掌握几个关键步骤,整个过程可以非常…...

审核员能力模型——冰山模型说人话版

📋 审核概论系列 第9篇/共10篇知识和技能不等于能力。认证审核员到底需要什么能力?麦克利兰冰山模型告诉你📊 真实场景:CCAA注册审核员考试通过率大约只有30%-40%。很多人专业知识学了不少,ISO 9001标准背得滚瓜烂熟&…...

Ajax技术和Axois工具库

前端如何才能动态展示数据?如何动态获取后端的数据呢? 目录 文章目录 一、什么是Ajax? 二、什么是Axios? 核心用途 三、如何在Vue项目中使用Axios? 1、安装Axios 2、引入Axios 3、基础使用 4、拦截器 5、async/await是什么? 总…...

Zotero Duplicates Merger终极指南:3分钟彻底告别文献库重复烦恼

Zotero Duplicates Merger终极指南:3分钟彻底告别文献库重复烦恼 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为Zotero文献…...

清华PPT模板终极指南:告别PPT设计烦恼,轻松制作专业演示

清华PPT模板终极指南:告别PPT设计烦恼,轻松制作专业演示 【免费下载链接】THU-PPT-Theme 清华主题PPT模板 项目地址: https://gitcode.com/gh_mirrors/th/THU-PPT-Theme 还在为学术答辩、项目汇报的PPT设计而头疼吗?每次打开PowerPoin…...

League Akari:3步打造你的英雄联盟智能游戏助手,告别繁琐操作

League Akari:3步打造你的英雄联盟智能游戏助手,告别繁琐操作 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League A…...

基于SSM框架的童装购买平台微信小程序(30286)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

从图文对到通用视觉:CLIP如何用对比学习重塑多模态预训练范式

1. 从图文匹配到通用视觉:CLIP的颠覆性思路 第一次看到CLIP模型时,我正为一个老问题头疼:训练好的图像分类器遇到新类别就直接"罢工"。比如用猫狗数据集训练的模型,突然给它看一只考拉,结果只会输出"猫…...

青岛银行员工才艺大赛|iPad评委打分系统案例

在青岛银行首届员工才艺大赛现场,熹乐互动的iPad评委打分系统为这场精彩赛事注入了高效、透明的科技体验。评委们只需通过iPad端操作,即可快速为节目打分,系统实时同步数据至大屏,自动完成分数统计、加权计算与排名更新。无需人工…...

Zutilo:为Zotero研究者量身打造的高效文献管理增强插件

Zutilo:为Zotero研究者量身打造的高效文献管理增强插件 【免费下载链接】Zutilo Zotero plugin providing some additional editing features 项目地址: https://gitcode.com/gh_mirrors/zu/Zutilo 作为一名Zotero用户,你是否曾为批量管理标签而烦…...

从仿真到调试:FSDB与VPD波形文件的生成与高效查看指南

1. 数字IC验证中的波形文件:为什么它们如此重要? 在数字IC验证的世界里,波形文件就像是工程师的"显微镜"。想象一下,你正在调试一个复杂的RTL设计,代码运行了,但结果不对。这时候,如果…...

2026十大建议考的经济学专业证书有哪些

2026年十大经济学专业证书推荐经济学专业证书能够提升职业竞争力,尤其在数据分析、金融和经济预测领域。以下是2026年值得考取的十大经济学专业证书,包括CDA数据分析师证书等热门选择。1. CDA数据分析师证书CDA数据分析师证书是数据分析领域的权威认证&a…...

带fp8激活量化的RMSNorm算子手撕

rms_norm_fp8_noweight_fp16:计算流程与优化 完整代码 void rms_norm_fp8_noweight_fp16(const __half *x, __nv_fp8_e4m3 *out,int seq_len, int dim, const float *d_scale,cudaStream_t stream) {rms_norm_fp8_noweight_kernel<<<seq_len, 256, 0, stream>&g…...

我的第一个CNN项目翻车实录:从过拟合到数据清洗,TensorFlow 2.1猫狗分类避坑指南

我的第一个CNN项目翻车实录&#xff1a;从过拟合到数据清洗&#xff0c;TensorFlow 2.1猫狗分类避坑指南 第一次接触深度学习时&#xff0c;我天真地以为只要按照教程搭建一个卷积神经网络(CNN)&#xff0c;就能轻松实现猫狗图片分类。然而现实给了我一记响亮的耳光——模型要么…...

ExplorerPatcher架构解析:深度剖析Windows界面定制引擎

ExplorerPatcher架构解析&#xff1a;深度剖析Windows界面定制引擎 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher ExplorerPatcher作为Window…...

【机器学习】集成学习(Boosting)——XGBoost算法(原理+推导+实战)

1. XGBoost为什么能成为竞赛冠军的标配&#xff1f; 第一次参加Kaggle比赛时&#xff0c;我完全被排行榜惊呆了——前50名的解决方案清一色都在用XGBoost。当时很不理解&#xff1a;明明有更"高级"的神经网络&#xff0c;为什么大家偏爱这个看似传统的算法&#xff1…...

八大网盘直链获取开源工具全面指南:如何高效管理你的云端文件下载

八大网盘直链获取开源工具全面指南&#xff1a;如何高效管理你的云端文件下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动…...

从零上手泰凌微TLSR8269:SIG Mesh SDK文件架构与编译环境搭建保姆级指南

泰凌微TLSR8269 SIG Mesh开发实战&#xff1a;从SDK解析到环境搭建全攻略 第一次打开泰凌微TLSR8269的SIG Mesh SDK时&#xff0c;面对密密麻麻的文件夹和文件&#xff0c;不少开发者都会感到无从下手。proj、proj_lib、vendor这些目录到底存放着什么&#xff1f;如何快速搭建起…...