080.领域自适应:当你的YOLO在新车间“水土不服”时
上周产线出了件怪事:在A车间调得服服帖帖的YOLOv5缺陷检测模型,搬到新建的B车间后,漏检率直接飙升到30%。两个车间检测同款零件,光照条件不同(A车间是暖黄光,B车间是冷白光),摄像头型号也换了。更头疼的是,B车间刚投产,根本没时间标注新数据。产线经理盯着我问:“模型不是通用的吗?”
这就是典型的领域偏移问题——你的模型在源领域(A车间)表现良好,到了目标领域(B车间)就“水土不服”。今天要聊的领域自适应(Domain Adaptation),就是解决这类“无标签新场景”迁移的实战技术。
问题本质:特征分布不匹配
拆开两个车间的推理结果可视化一看就明白了。A车间的特征分布集中在特征空间的某个区域,B车间的特征却漂移到了另一侧。模型在训练时学的是A车间的“视觉习惯”,遇到B车间的新光照、新摄像头,底层特征提取器就懵了。这不是模型能力问题,是数据分布问题。
传统思路是“在B车间重新标注数据再训练”,但现实场景往往等不起。领域自适应的核心思想是:在无目标领域标签的情况下,让模型自己学会对齐两个领域的特征分布。
实战路径:从简单到复杂的三种打法
方案一:伪标签自训练(快速启动)
当领域差异不太大时,伪标签是最快的启动方案。但这里有个关键细节:
# 伪标签生成策略(别直接全信模型输出)def