YOLOv5从零到一:手把手教你构建与训练专属数据集
1. 环境准备与数据收集第一次接触YOLOv5时最让人头疼的就是如何把一堆原始图片变成模型能吃的数据。这就像要给挑食的孩子准备便当得先了解他的口味。YOLOv5支持的数据格式主要有三种VOC、COCO和YOLO格式我们这次重点讲最常用的YOLO格式。我建议先创建一个专门的项目目录比如yolov5_project里面再建两个子文件夹raw_images存放原始图片建议用JPG或PNG格式raw_labels准备存放标注文件注意图片命名不要用中文或特殊字符最好用连续数字或字母编号比如img_001.jpg实测中发现图片尺寸差异过大会影响训练效果。可以用这个Python脚本批量调整大小from PIL import Image import os input_dir raw_images output_dir resized_images target_size (640, 640) # YOLOv5默认输入尺寸 if not os.path.exists(output_dir): os.makedirs(output_dir) for filename in os.listdir(input_dir): img Image.open(f{input_dir}/{filename}) img img.resize(target_size, Image.BILINEAR) img.save(f{output_dir}/{filename})2. 数据标注实战技巧2.1 标注工具选型推荐三款主流标注工具LabelImg新手友好支持VOC和YOLO格式导出CVAT功能强大适合团队协作Roboflow在线工具带自动标注功能以LabelImg为例安装命令很简单pip install labelImg labelImg # 启动图形界面标注时容易踩的坑标注框要完全包裹目标物体但不要留太多空隙不同类别的物体要用不同标签如cat、dog遇到遮挡物体时按可见部分标注2.2 标注文件格式转换YOLOv5需要的标注格式是每张图片对应一个.txt文件内容类似0 0.5 0.5 0.3 0.4 # 类别ID x_center y_center width height这个转换脚本可以把LabelImg的XML转成YOLO格式import xml.etree.ElementTree as ET import os classes [cat, dog] # 你的类别列表 def convert(size, box): dw 1./size[0] dh 1./size[1] x (box[0] box[1])/2.0 y (box[2] box[3])/2.0 w box[1] - box[0] h box[3] - box[2] x x*dw w w*dw y y*dh h h*dh return (x,y,w,h) for xml_file in os.listdir(Annotations): tree ET.parse(fAnnotations/{xml_file}) root tree.getroot() with open(flabels/{xml_file[:-4]}.txt, w) as f: size root.find(size) w int(size.find(width).text) h int(size.find(height).text) for obj in root.iter(object): cls obj.find(name).text if cls not in classes: continue cls_id classes.index(cls) xmlbox obj.find(bndbox) b (float(xmlbox.find(xmin).text), float(xmlbox.find(xmax).text), float(xmlbox.find(ymin).text), float(xmlbox.find(ymax).text)) bb convert((w,h), b) f.write(f{cls_id} { .join([str(a) for a in bb])}\n)3. 数据集划分与配置3.1 划分训练集/验证集建议按8:2的比例拆分这个脚本可以自动划分import os import random image_files [f for f in os.listdir(images) if f.endswith(.jpg)] random.shuffle(image_files) split int(0.8 * len(image_files)) train image_files[:split] val image_files[split:] with open(train.txt, w) as f: for img in train: f.write(fdata/custom/images/{img}\n) with open(val.txt, w) as f: for img in val: f.write(fdata/custom/images/{img}\n)3.2 创建数据集配置文件在yolov5/data/下新建custom.yaml内容示例train: ../train.txt val: ../val.txt nc: 2 # 类别数量 names: [cat, dog] # 类别名称4. 模型训练与调优4.1 选择预训练模型YOLOv5提供四种规格的模型yolov5s速度最快精度最低yolov5m平衡型yolov5l高精度yolov5x极致精度新手建议从yolov5s开始python train.py --img 640 --batch 16 --epochs 100 --data data/custom.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt4.2 关键参数解析--img 640输入图像尺寸--batch 16根据GPU显存调整显存不足时减小--epochs 100训练轮次建议50-300--weights yolov5s.pt加载预训练权重训练过程中可以用TensorBoard监控tensorboard --logdirruns5. 常见问题解决方案5.1 CUDA内存不足报错CUDA out of memory时减小--batch-size比如从16降到8减小--img-size比如从640降到512使用--adam优化器比默认SGD省内存5.2 标注文件不匹配确保每个图片都有对应的.txt标注文件标注文件中的类别ID从0开始连续编号坐标值在0-1范围内5.3 训练指标不理想可以尝试增加数据量至少每类100张以上调整学习率--lr 0.01启用数据增强--augment True最后提醒训练完成后别忘了测试模型效果python detect.py --weights runs/exp/weights/best.pt --source test_images/

相关新闻

多输入单输出回归预测:ELMAN、ELM与CNN的Matlab实现

多输入单输出回归预测:ELMAN、ELM与CNN的Matlab实现

1. 项目概述:多输入单输出回归预测的神经网络实现 在时间序列预测和复杂非线性系统建模领域,多输入单输出(MISO)回归问题一直是个经典挑战。这个项目展示了如何利用三种不同类型的神经网络——ELMAN循环网络、极限学习机&#xff…

2026/7/5 11:17:05阅读更多 →
Python多平台商品比价系统开发实战

Python多平台商品比价系统开发实战

1. 项目概述:多平台商品比价系统的技术实现 最近帮学弟完成了一个Python多平台商品比价系统的毕业设计,这个项目整合了Flask框架、Selenium爬虫、数据可视化、大模型应用等多个技术模块。作为一个完整的电商数据分析系统,它能够自动抓取多个电…

2026/7/5 11:17:05阅读更多 →
从零实现Transformer模型:掌握自注意力机制与架构设计

从零实现Transformer模型:掌握自注意力机制与架构设计

1. 从零搭建Transformer模型的必要性 在深度学习领域,Transformer架构已经彻底改变了我们处理序列数据的方式。2017年那篇著名的《Attention Is All You Need》论文提出这个架构时,可能连作者都没想到它会成为当今AI领域的基石。但为什么我们需要"手…

2026/7/5 11:12:05阅读更多 →
EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案

EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案

EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …

2026/7/5 12:27:11阅读更多 →
模特ai图片生成怎么选,作图鸟专业生图体验+4款对比

模特ai图片生成怎么选,作图鸟专业生图体验+4款对比

对于电商行业人员来说,提升模特ai图的制作效率与展示质量已成刚需。本文结合个人实操,横向对比四大平台,详述如何高效生成专业且可用的模特ai图片。 通过实测各类工具全面体验模特图制作全流程,帮助大家找到既节省预算又能满足多…

2026/7/5 12:27:11阅读更多 →
30天高效掌握AI大模型:学习框架与实践指南

30天高效掌握AI大模型:学习框架与实践指南

1. 30天高效掌握AI大模型的学习框架设计 作为一名长期从事AI技术落地的从业者,我深知系统性学习对掌握大模型技术的重要性。这个30天计划的核心在于建立"理论-工具-实践"的三维学习闭环,不同于市面上碎片化的教程,我们采用项目驱动…

2026/7/5 12:27:11阅读更多 →
AI写了90%代码,大厂程序员正在经历煎熬时刻

AI写了90%代码,大厂程序员正在经历煎熬时刻

1. 从「全栈」到「Vibe Coding」:一个时代的转向如果你在 2022 年问一个大厂程序员「什么才是护城河」,答案大概率是系统设计能力、抽象能力、踩坑经验。但在 2025 年之后,这个问题开始不断被 Al Agent 重新定义。当 Claude Code、Cursor、Co…

2026/7/5 12:27:11阅读更多 →
ML.NET中K均值聚类实战避坑指南

ML.NET中K均值聚类实战避坑指南

1. 项目概述:K均值聚类在ML.NET中的实战陷阱K均值聚类作为无监督学习的经典算法,在客户分群、图像分割等领域应用广泛。ML.NET作为微软推出的机器学习框架,其KMeansTrainer实现却暗藏诸多"坑点"。我在电商用户行为分析项目中&#…

2026/7/5 12:27:11阅读更多 →
免费获取NVIDIA算力运行大模型的完整指南

免费获取NVIDIA算力运行大模型的完整指南

1. 项目概述 "如何免费使用NVIDIA算力大模型全攻略"这个标题背后,隐藏着当前AI领域最热门的需求——如何零成本获取高性能计算资源来运行大语言模型。作为一名在GPU加速计算领域摸爬滚打多年的工程师,我亲历过从早期CUDA开发到如今大模型爆发…

2026/7/5 12:22:11阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →