196、YOLOv8改进实战:多尺度训练与测试增强(MST+Test-Time Augmentation)提升泛化能力去年年底接了个工业质检项目,检测手机中框上的微米级划痕。训练集里划痕大小分布还算均匀,一到现场就翻车——产线上来的样本,有的划痕细得像头发丝,有的宽到能塞进指甲盖。单尺度模型直接跪了,小目标漏检率飙到30%。当时第一反应是加小目标检测头,但改完发现大目标又飘了。后来翻出老项目里用过的多尺度训练(MST)和测试时增强(TTA),组合拳打下去,mAP直接涨了7个点。今天就把这套方案拆开揉碎了讲。多尺度训练:别让模型只认识一种分辨率YOLOv8默认的输入尺寸是640x640,但真实场景哪有这么规矩。多尺度训练的核心思路很简单:每个epoch随机从预设的尺度列表里抽一个,把训练图片resize过去。这样模型被迫学会在不同分辨率下提取特征,相当于白嫖了数据增强。实现时有个坑——尺度列表不是随便选的。我见过有人直接写[320, 480, 640, 800, 960],结果小尺度下小目标直接缩成像素点,大尺度下显存爆了。经验值是围绕基准尺寸±30%浮动,步长32的倍数(因为YOLOv8的下采样倍数是32)。比如基准640,可以取[480, 512, 576, 640, 704, 768, 832]。注意别加960,除非你用的是A100。代码实现上,YOLOv8的train.py里有个load_mosaic函数,改起来比较方便。直接在数据加载阶段