4. 数据预处理与增强策略
农业目标检测模型的效果,往往在数据进入网络之前就已经被决定了一大半。田间采集的图像与通用数据集存在显著差异:清晨与正午的光照强度可能相差数倍,逆光下叶片近乎全黑;果实、病斑常被枝叶遮挡,目标可见面积不足一半;背景中土壤、杂草、地膜、支架相互交织,纹理杂乱且与目标颜色接近。如果直接把原始图像送入网络,模型很容易学到“背景捷径”——例如把某块地膜的颜色当作识别依据,换一块田就失效。因此,本节围绕一条可落地的预处理与增强流水线展开:先做确定性的预处理,把图像整理成网络可稳定消费的规格;再做随机性增强,主动制造光照、遮挡与背景扰动,迫使模型学习目标本身的判别特征。
一、预处理:把输入规格统一,同时保住小目标
预处理是确定性的、训练与推理必须一致的操作,核心是三件事:裁剪、缩放、色彩校正。农业图像常见的原始分辨率为 1920×1080 或更高,而检测网络输入通常为 640×640 或 1280×1280。直接整图缩放会把一个直径 30 像素的小果实压到 10 像素以下,特征几乎消失。更合理的做法是“先裁后缩”:以标注框为中心,按目标尺度的 2~3 倍裁剪局部区域,再缩放到网络输入尺寸。例如对番茄果实检测,标注框平均边长约 60 像素,则可裁剪 180×180 的局部块,缩放后目标仍占约 200 像素,细节得以保留。裁剪时需同步变换标注框坐标,并丢弃裁剪后可见面积低于原框 30% 的样本,避免引入残缺标签。
缩放推荐使用保持长宽比的 letterbox 方式:将图像等比缩放至目标边长,短边不足处用灰色(114,114,114)填充,而不是直接拉伸变形。拉伸会改变果实的圆度、叶片的形状比例,而形状恰恰是农业目标的重要线索。色彩校正则针对采集设备的偏差:不同相机白平衡不一致,同一片叶子可能偏黄或偏蓝。工程上常用灰度世界假设做简单白平衡,即分别计算 R、G、B 三通道均值,以三者均值为目标对每通道做增益缩放。示例参数下,若某图像三通道均值为 (120, 135, 110),则增益约为 (1.10, 0.98, 1.20),校正后整体色调趋于中性。这一步只做温和校正,不做剧烈拉伸,以免破坏病斑与健康组织的真实色差。
二、增强:针对农业三大痛点分别设计
增强是随机性的,只在训练时启用。针对光照变化,采用色彩抖动:在 HSV 空间对亮度 V 乘以 0.6~1.4 的随机因子,对饱和度 S 乘以 0.7~1.3,对色调 H 做 ±10° 的小幅偏移。亮度下限压到 0.6 可模拟树冠阴影与阴天,上限 1.4 可模拟正午强光与反光。针对遮挡,采用随机擦除与 Cutout:在图像上随机放置 1~3 个矩形块,面积占全图 5%~20%,填充为随机噪声或邻域均值,模拟枝叶、果实相互遮挡。针对背景复杂,采用随机缩放、平移、水平翻转与 Mosaic 拼接:Mosaic 将 4 张图拼成 1 张,天然引入多种土壤、杂草与光照组合,同时让模型在一张图里见到更多小目标,对农业场景尤为有效。
MixUp 则从样本层面做线性混合:取两张图像及其标签,按 λ∈[0.2,0.8] 加权叠加为 I = λ·I₁ + (1−λ)·I₂,标签同步按权重合并。对检测任务,MixUp 需谨慎使用,因为两个场景的目标框会重叠、语义边界模糊。实践中更稳妥的变体是只对背景区域做混合,或把 MixUp 概率控制在 0.1~0.2,并与 Mosaic 交替启用,避免训练早期标签噪声过大导致收敛困难。
三、增强强度的控制与泛化评估
增强不是越强越好。过强的色彩抖动会让病斑与健康组织的色差被抹平,过大的遮挡比例会让正样本几乎不可见,模型反而学到“猜”。工程上建议按训练轮次调度增强强度:前 10 个 epoch 使用较弱增强(亮度 0.8~1.2、遮挡面积 5%~10%),让模型先建立基本判别能力;中期逐步加强到完整强度;最后 10 个 epoch 关闭 Mosaic 与 MixUp,只用轻量几何变换收尾,使模型适应真实推理时的干净输入。这一“先易后难、末尾收敛”的调度,通常比全程固定强度更稳定。
评估增强是否真正提升泛化,关键在验证集的构造。不能只在同分布验证集上看 mAP,因为增强带来的收益往往体现在分布偏移场景。建议至少准备三个验证子集:常规集(与训练同田块、同光照)、光照偏移集(逆光、阴天、夜间补光)、遮挡集(目标被枝叶遮挡 30%~60%)。分别记录 mAP@0.5 与 mAP@0.5:0.95,并观察小目标(面积小于 32×32 像素)的召回率。若常规集提升有限而偏移集提升明显,说明增强确实在教模型学目标特征而非记忆背景;若常规集反而下降超过 2 个点,则需回退增强强度或检查标签在裁剪、拼接后是否错位。上图为一条完整流水线与示例对比结果,其中数值为教学假设,实际应以本地验证集复现为准。
把上述策略固化为配置,是保证可复现的前提。下面是一份可直接参考的增强配置片段,字段对应常见检测框架的增强参数命名习惯,实际使用时按所用框架调整键名即可。
preprocess:
crop_scale: 2.5 # 以标注框边长倍数裁剪
min_visible_ratio: 0.3 # 裁剪后可见面积下限
input_size: 640
pad_value: [114,114,114]
white_balance: gray_world
augment:
hsv_h: 0.015 # 色调 ±10° 约 0.015
hsv_s: [0.7, 1.3]
hsv_v: [0.6, 1.4]
flip_lr: 0.5
translate: 0.1
scale: [0.5, 1.5]
erase_prob: 0.4
erase_area: [0.05, 0.20]
mosaic: 1.0 # 前中期启用
mixup: 0.15 # 与 mosaic 交替
close_last_epochs: 10 # 末尾关闭 mosaic/mixup
最后需要强调,预处理与增强的设计必须回到农业场景本身:光照变化用色彩抖动覆盖,遮挡用随机擦除模拟,背景复杂用 Mosaic 引入多样性,小目标用“先裁后缩”保住分辨率。四类手段各司其职,再配合分阶段强度调度与多子集验证,才能把增强从“碰运气”变成可度量、可复现的泛化提升手段。