038、标注数据质量差、类别不均衡?数据清洗、重采样与合成数据补充方案去年秋天,我在一个工业质检项目上栽了个大跟头。客户给了一万张PCB板缺陷图像,标注文件里“焊点虚焊”类目下只有87个框,“划痕”类目下却有四千多个。模型训练完,虚焊检测的召回率只有可怜的12%,现场误报率却飙到40%以上。我盯着混淆矩阵看了半天,发现模型压根没学会“虚焊”长什么样——它只是学会了把所有“看起来像缺陷”的东西都判成划痕。后来我花了整整两周做数据清洗和重采样,才把召回率拉到78%。今天这篇笔记,就把那两周踩过的坑和总结出的套路,原原本本写下来。一、标注数据质量差:那些让你怀疑人生的“脏数据”先别急着谈算法,数据清洗是第一步,也是最容易被忽视的一步。我见过太多人拿到数据集直接开训,结果模型在验证集上表现不错,一到现场就崩。原因很简单:标注数据里藏着大量“毒药”。标注错误是最常见的毒药。比如一张图像里明明有三个目标,标注框只框了两个;或者框的位置偏了半个身位;更离谱的是类别标错——把“正常”标成“缺陷”,把“A类缺陷”标成“B类缺陷”。这些错误会让模型学到错误的映射关系。我的做法是:先写一个简单的可视化脚本,把标注框画在原图上,随机抽500张人工过一遍。别嫌麻烦,这一步能筛掉至少30%的明显错误。代码里我习惯这样写:# 这里踩过坑:直接读json标注,没检查坐标是否越界# 别这样写:for an