做工业视觉的团队常遇到一种尴尬:产线上某些缺陷几个月才出现一次,真实图片凑不满训练集。于是有人把希望寄托在生成式工具上,用渲染、仿真或扩散模型造出一批“看起来像”的样本。合成数据这个词,也就在这类场景里被频繁提起。
它并不是简单的“假数据”。更准确地说,合成数据是按已知规则、物理约束或生成模型构造出来的样本,用来覆盖真实采集难以触达的角落。对稀缺类别、极端光照、遮挡组合,这种做法有现实吸引力:成本可控,标注边界清晰,还能反复调整参数。
问题也在这里。生成器只懂你写进去的假设。若缺陷的成因没被建模,造出来的图片可能只学到表面纹理;模型在训练集上表现漂亮,换到产线却认不出真正的异常。更隐蔽的风险是评估污染:训练和验证都用了同一套生成逻辑,指标会显得稳定,但这种稳定并不等于现场可靠。
先问清楚:它补的是哪一段缺口
我的判断是,合成数据适合承担“覆盖长尾”和“预训练热身”的角色,而不是无条件替代真实采集。团队在引入前,至少要回答三个问题:目标类别在真实世界里长什么样?生成过程引入了哪些偏差?用什么真实样本做最终校验?
- 把生成参数、随机种子和筛选规则记录下来,方便回溯,而不是只保留一批图片。
- 保留一组只在真实场景采集的验证集,不参与任何生成式增强,用来观察泛化表现。
- 关注失败样本的分布,别只看整体指标;合成数据放大的往往是标注者没意识到的假设。
还有一层边界常被忽略:合成数据会改变团队的工作节奏。过去采集数据要等产线、等工况,现在可以在工位上批量生成,速度很快,也容易让人误以为数据问题已经解决。实际上,生成只是把难题前移到假设设计:你得先知道要模拟什么,才知道该生成什么。
所以,面对合成数据,不妨少问“能造多少”,多问“造出来的东西替我们回答了哪个具体问题”。如果答案只是让训练集变大,它可能只是让错误更晚被发现;如果答案是补上了某类真实样本的空白,并且有独立验证兜底,它才值得进入流程。