返回列表

A Dual-Stream DINOv3 + Gated Depthwise Convolutions + Auxiliary Metadata

687. CSIRO - Image2Biomass Prediction | csiro-biomass

开始: 2025-10-28 结束: 2026-01-28 作物智能识别 数据算法赛
第 30 名解决方案:双流 DINOv3 + 门控深度卷积 + 辅助元数据

第 30 名解决方案:双流 DINOv3 + 门控深度卷积 + 辅助元数据

作者: Ayush Thakur 及团队成员 (Suman Sharma, Diva Bhattacharya, Raj Raman83, Rishi Raman)

竞赛排名: 第 30 名

发布时间: 2026-01-29

首先,非常感谢组织者和 CSIRO 举办这场具有挑战性的竞赛。这是一个处理该问题的绝佳机会。以下是我们方法的总结,再次感谢大家。

1. 概述

我们的最终解决方案是基于 DualGatedEncoderTwinStreamMetaNet 架构的三个模型的集成。核心理念是不将输入图像视为单一的静态帧,而是将其视为宽全景数据,并通过“双流”方法进行分割和处理受益。

骨干网络: vit_huge_plus_patch16_dinov3.lvd1689m

架构: 带有门控深度卷积融合的双流处理。

元学习: 一个辅助头,用于在推理期间从图像特征预测元数据(NDVI, Height)。

物理约束: 一个可学习的一致性门(Consistency Gate)和硬后处理约束,以确保质量平衡。这帮助我们在公共榜单上超过了 0.73 分。

损失函数: 带有类别平衡的加权 Huber 损失。

2. 数据处理与输入

数据集图像具有宽宽高比(2:1)。将它们调整为正方形会扭曲植被特征。

双流分割: 我们将每张图像分成两半(左和右)。这些作为一对输入到骨干网络中。

元数据集成: 我们还基于 meta_dropout 参数将归一化的元数据(NDVI, Height)和循环日期编码(一年中的第几天的 Sin/Cos)注入到模型中。

数据增强: 我们使用了相当重的增强管道,包括:

  • 几何增强: 水平/垂直翻转,仿射变换(缩放、旋转、剪切)。
  • 鲁棒增强: CoarseDropout(迫使全局上下文学习)、ISO 噪声和运动模糊。

元数据 Dropout: 在训练期间,我们随机将元数据向量清零,迫使模型学习纯粹的视觉特征,而不过度依赖 NDVI 和 Height。

3. 我们的模型架构

从交叉注意力到门控深度卷积

我们最初使用基于 heavy attention 的机制,但转而使用轻量级的门控卷积混合器以提高效率并获得更好的收敛性。

最初,我们将左半部分和右半部分图像视为需要全局“注意”彼此的 distinct 序列。我们实现了一个 CrossAttention 模块(标准 O(N2) 多头注意力),其中左 token 作为 Right keys/values 的查询,反之亦然。我们还使用了 SpatialContextAttention 模块进行池化。

我们转向了统一的“双流”方法。我们不使用复杂的注意力图,而是简单地连接来自两个流的 token,并使用自定义的门控深度卷积块(Gated Depthwise Convolution Block)进行融合。该块使用深度卷积(kernel size 5)在局部混合信息,并使用门控机制(Sigmoid)来控制信息流。

最终架构

DualGatedEncoder - 左和右特征被连接 (B,2N,C) 并通过两个堆叠的 GatedDWConvBlock 层,一个专用的子网络从视觉特征预测元数据(NDVI, Height)。

TwinStreamMetaNet - 它的训练方式能够有效地处理推理,主要依赖辅助头仅从图像纹理预测环境条件(NDVI, Height)。

注:两种架构都使用一致性门。我们观察到 Dead 组件由于高方差最难直接预测。然而,物理关系 Total=GDM+Dead 成立。解决方案:一致性门输出一个 gate_val(通过 Sigmoid)。

如果 gate_val 高:信任推导逻辑 (Total−GDM)。
如果 gate_val 低:信任原始学习预测。

4. 推理与集成

4 路测试时增强 (TTA)

由于我们的模型是使用重度几何增强训练的,我们在推理期间应用了全面的 4 路 TTA。

目标特定权重优化

我们没有使用简单的均值或为整个模型寻找单一权重,而是为每个目标变量优化了集成权重。

我们在保留验证集上使用 Nelder-Mead 标量最小化来找到每个生物量成分的最佳混合比例 α。为了最大化特定目标的 R2 分数:

  • 方法:对于两个模型 A 和 B,以及每个目标 t:
    P_final^t = α_t · P_A^t + (1 - α_t) · P_B^t

最终集成提交

模型架构 权重 角色
DualGatedEncoder 0.50 最佳单模型 (榜单 0.75)。使用严格的一致性门。
TwinStreamMetaNet 0.30 不同的架构,训练时 meta_dropout=1 (榜单 0.74)。
TwinStreamMetaNet (Var) 0.20 不同的架构 (榜单 0.74)。

致谢

由于这是我们的第一次 Kaggle 竞赛,特别感谢 Kaggle 社区提供信息丰富的讨论。也感谢所有团队成员的辛勤工作。

同比赛其他方案