尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
深度学习实战第二篇:模型训练 80% 的时间在搞数据,你准备好了吗?
从标注到裁图到增强AOI 项目的数据流水线全拆解开头模型不准90% 是数据问题你有没有过这种经历花了一周训练模型精度只有 70%。你调了半天超参数换了更大的模型精度还是上不去。然后你仔细看了一眼数据集——发现标注文件里有一半的框标错了。模型不准90% 是数据问题不是模型问题。深度学习有一句名言「Garbage in, garbage out。」你喂给模型什么数据模型就学到什么特征。数据质量差模型再好也没用。AOI 项目的数据流水线花了三个月才跑通。中间踩了无数坑标注格式不对、裁图角度算错、训练集和验证集有重叠……不是因为数据准备有多难——而是因为没人告诉你数据准备的「标准流程」。一、数据集的三大要素1. 图片┌─────────────────────────────────────────┐ │ 图片质量要求 │ ├─────────────────────────────────────────┤ │ 分辨率足够大目标清晰可见 │ │ 格式PNG / JPG推荐 PNG无损 │ │ 色彩空间RGB不要 BGR │ │ 曝光均匀不要过曝/欠曝 │ │ 噪声尽量少必要时做降噪 │ └─────────────────────────────────────────┘2. 标注标注格式对照表 ┌──────────────┬──────────────────────────────────┐ │ 任务类型 │ 标注格式 │ ├──────────────┼──────────────────────────────────┤ │ 目标检测 │ class x_center y_center w h │ │ 旋转检测 │ class x_center y_center w h angle│ │ 图像分类 │ 目录结构train/class1/ │ │ 实例分割 │ class x1 y1 x2 y2 ... xn yn │ └──────────────┴──────────────────────────────────┘3. 划分数据集划分 ┌─────────────────────────────────────────────────┐ │ 全部数据 │ │ ├── 训练集70-80%→ 模型学习用 │ │ ├── 验证集10-15%→ 训练时评估用 │ │ └── 测试集10-15%→ 最终评估用 │ │ │ │ ⚠️ 训练集和验证集不能有重叠 │ └─────────────────────────────────────────────────┘二、YOLO 数据集格式详解检测任务格式# data.yamltrain:/path/to/train/imagesval:/path/to/val/imagesnc:3# 类别数names:[class1,class2,class3]# 类别名# 标注文件格式每行一个目标# class x_center y_center width height归一化到 0-10 0.5 0.5 0.2 0.3 1 0.3 0.7 0.1 0.2分类任务格式dataset/ ├── train/ │ ├── class1/ │ │ ├── img001.jpg │ │ └── img002.jpg │ ├── class2/ │ │ ├── img003.jpg │ │ └── img004.jpg │ └── class3/ │ ├── img005.jpg │ └── img006.jpg └── val/ ├── class1/ ├── class2/ └── class3/OBB 旋转检测格式# 标注文件格式每行一个目标# class x_center y_center width height angle角度为弧度0 0.5 0.5 0.2 0.1 0.785 1 0.3 0.7 0.15 0.08 1.234三、AOI 项目的数据流水线完整流水线整板图像4000x3000 ↓ ① group_detect 标注X-AnyLabeling ↓ ② train group_detect灯组检测模型 ↓ ③ rotate_crop旋转裁剪灯组 ROI ↓ ④ chip_detect 标注OBB 标注芯片 ↓ ⑤ train chip_detect芯片检测模型 ↓ ⑥ cpp_crop按 C 对齐方式裁芯片图 ↓ ⑦ polar_classify 标注极性分类标签 ↓ ⑧ train polar_classify极性分类模型裁图策略# AOI 项目的裁图策略# 正方形裁图max(w, h) 4 → 224defcrop_chip(image,bbox,angle): 裁出芯片图正方形224x224 x,y,w,hbbox sizemax(w,h)4# 留 4 像素边距# 裁剪cropimage[y:ysize,x:xsize]# 缩放到 224x224cropcv2.resize(crop,(224,224))returncrop标签约定芯片颜色OK 极性180° 极性红色 Rr-polar-r-polar绿色 Gg-polar-crescent-g-polar-crescent蓝色 Bb-polar-crescent-b-polar-crescent四、数据增强实战YOLO 内置增强# YOLO 训练时自动应用的增强model.train(datadataset/,# 增强参数flipud0.0,# 上下翻转概率0禁用fliplr0.0,# 左右翻转概率0禁用degrees0.0,# 旋转角度0禁用translate0.0,# 平移0禁用scale0.0,# 缩放0禁用shear0.0,# 剪切0禁用perspective0.0,# 透视0禁用mosaic0.0,# Mosaic 增强0禁用)什么时候禁用增强# ❌ 错误极性分类用了翻转model.train(fliplr0.5)# 翻转后极性变反# ✅ 正确极性分类禁用所有增强model.train(flipud0.0,fliplr0.0,degrees0.0,scale0.0,shear0.0,perspective0.0,bgr0.0,erasing0.0,)原因极性是语义敏感任务翻转后极性变反模型学到的是错误特征。五、避坑指南坑1训练集和验证集有重叠现象训练集上 99%产线上 80%。原因同一张图既在训练集又在验证集模型「背答案」了。解法严格划分训练集和验证集不能有重叠。# ❌ 错误随机划分时没有去重train_imgsall_imgs[:800]val_imgsall_imgs[800:]# 可能有重叠# ✅ 正确按文件名去重后划分train_imgsset(all_imgs[:800])val_imgsset(all_imgs[800:])-train_imgs# 确保无重叠坑2类别不平衡现象某些类别的样本很少模型完全不检。原因训练数据中类别分布不均匀。解法过采样少数类或使用加权采样。# 查看类别分布fromcollectionsimportCounter labelsCounter()forlabel_fileinglob(labels/*.txt):withopen(label_file)asf:forlineinf:clsint(line.split()[0])labels[cls]1print(labels)# {0: 1000, 1: 50, 2: 20} ← 类别2太少坑3标注质量差现象模型学不到正确特征精度很低。原因标注框不准、类别标错、漏标。解法人工抽查标注质量修正错误标注。坑4数据增强不当现象增强后模型反而变差。原因增强强度太大引入了噪声。解法从弱增强开始逐步增强观察验证集精度。坑5数据路径写错现象训练时报错File not found。原因data.yaml里的路径写错了。解法用绝对路径或确保相对路径正确。AOI 项目优秀实践完整的数据流水线脚本从裁图到标注到合并一键执行版本化数据集管理v4、v5、cpp224_v2每个版本有独立目录废弃数据归档错误产物放在_bad_rot90_20260718/不会误用AOI 项目可改进之处缺少数据质量检查工具没有自动化的标注质量验证缺少标注一致性验证不同人标注的标准可能不一致缺少数据统计报告不知道各类别样本数量分布结尾说回那个「模型不准」的故事。后来我发现与其花时间调模型不如花时间清理数据。数据质量提升 10%模型精度可能提升 20%。不是因为数据准备有多难——而是因为「数据质量」决定了模型的上限。翻翻你的项目你的数据集有多少张图超过 1000 张才值得训练。你的标注质量怎么样抽查 100 张看看。你的训练集和验证集有重叠吗评论区说说你在数据准备上踩过最深的坑。觉得有用收藏这篇下次数据准备时翻出来对照。转发给你团队里那个天天被数据折磨的同事。下期预告YOLO 版本太多不知道选哪个nano/small/medium/large 到底差多少检测、分类、OBB 到底用哪个任务类型下一篇我们聊模型选择——YOLO 家族的「选型指南」。本文是《深度学习基础知识与实战技术栈》系列第二篇。
RELATED

相关推荐

【亲测有效】VS Code 已安装中文语言包却仍是英文的解决办法

【亲测有效】VS Code 已安装中文语言包却仍是英文的解决办法

VS Code 已安装中文语言包却仍是英文:一次由语言包文件损坏引发的排查记录 文章目录VS Code 已安装中文语言包却仍是英文:一次由语言包文件损坏引发的排查记录一、问题现象描述二、排查过程1. 确认显示语言配置2. 确认语言包是否已安装3. 检查日志与翻译…

📅 2026/10/15 22:04:54
正点原子精英板ST-linkV2无法烧录

正点原子精英板ST-linkV2无法烧录

故障现象:精英板硬件连接正常,能够识别到 ST-Link V2(具备设备名称),程序正常编译但是无法烧录。解决办法:01:更换电脑的供电 USB 和 ST-Link V2 的 USB 接口;02:使用正点…

📅 2026/9/8 5:38:40
《代码随想录》刷题打卡day34:动态规划-part07

《代码随想录》刷题打卡day34:动态规划-part07

文章目录【198.打家劫舍】【213.打家劫舍II】【337.打家劫舍III】总结【198.打家劫舍】 思路: 当前房屋偷与不偷取决于 前一个房屋和前两个房屋是否被偷了。 所以这里就更感觉到,当前状态和前面状态会有一种依赖关系,那么这种依赖关系都是…

📅 2026/9/23 7:26:19
MORE NEWS

更多资讯

📰

万江低压电工证报名怕被坑?通过率揭秘告诉你真相

万江低压电工证报名怕被坑?通过率揭秘告诉你真相 你是不是也在为万江低压电工证报名发愁?不知道哪家靠谱,怕被中介坑,还担心通过率低?别急,这篇文章就带你搞清楚万江低压电工证的报名流程、考试难度和真实通过率,帮你少走弯路。…

📰

考电工证好还是二建好?郑州报考避坑指南,学历不高怕报不上名怎么办

考电工证好还是二建好?郑州报考避坑指南,学历不高怕报不上名怎么办 你是不是也这样,想着考个证,但又怕自己学历不够,连报名资格都达不到?别急,我来给你说说【考电工证好还是二建好】这事儿,尤其在郑州,如果你是新乡房建工程从业者,那这个选择就更关…

📰

浦东新区祝桥电工证怎么考才能不白花钱?全国通用的电工证考试全攻略

浦东新区祝桥电工证怎么考才能不白花钱?全国通用的电工证考试全攻略 怕考不过白交培训费?别急,我来给你划重点。浦东新区祝桥电工证考试虽然门槛不低,但如果你准备得当,完全有可能一次通过,拿到全国通用的电工证。本文从你最关心的问题切入,帮你理清考…

📰

河南汝州考电工证官方报名入口在哪?工地太忙根本没时间复习考试

河南汝州考电工证官方报名入口在哪?工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是无数在河南汝州从事建筑工人的真实写照。尤其是在电工证报考过程中,很多人因为时间紧张、复习不到位而屡屡失败,甚至耽误了工期和薪资发放。如果你也在寻找…

📰

陇南考取安装电工证怎么报名?学历不高也能报上名!

陇南考取安装电工证怎么报名?学历不高也能报上名! 你是不是也担心, 学历不高怕报不上名 ?别慌, 陇南考取安装电工证 的报名门槛其实没有你想象的那么高。今天我们就来聊一聊, 怎么报名…

📰

高压电工证用途广泛么多久拿证全流程避坑指南

高压电工证用途广泛么多久拿证全流程避坑指南 怕考不过白交培训费?高压电工证用途广泛么?别再被培训机构忽悠了!现在很多人以为考个证就一定能找好工作,但实际情况是,考前不了解政策、考后不会查询证书,最后只能白白浪费钱。这篇文章就从信阳浉河区转岗…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬