Skip to content
Zhengyi's Blog
Go back

AGPlace 论文精读:用 Neural ODE 融合航拍与地面多模态地点表征

Edit page
论文信息

Multi-Modal Aerial-Ground Cross-View Place Recognition with Neural ODEs,Sijie Wang、Rui She、Qiyu Kang、Siqi Li、Disheng Li、Tianyu Geng、Shangshu Yu、Wee Peng Tay,CVPR 2025。原文:CVF Open Access PDF

AGPlace 研究的是一个比常规视觉地点识别更困难、也更贴近机器人部署的问题:

普通 ground-ground place recognition 至少共享视角;常见 aerial-ground 方法又大多只匹配地面图像与航拍图像。AGPlace 首次把地面相机和点云联合起来,再与航拍数据库对齐。

困难不只是“把 2D 和 3D 拼起来”。图像擅长纹理与语义,点云擅长几何;两个传感器可能受光照、遮挡、稀疏性和故障影响。过早强耦合会把一个模态的扰动直接传播到另一个模态,简单 late fusion 又难以学习跨模态互补关系。

论文因此设计了两阶段融合:

先在代理流形中用 Neural ODE 从高层到低层演化一个融合状态,再把这个状态映射回 2D/3D 空间,指导各模态形成最终地点描述子。

KITTI360-AG 的查询与数据库形式

图 1:地面查询由图像与点云组成,航拍数据库可以是卫星图,也可以是道路图

Table of contents

Open Table of contents

1. 问题设定:三重差异同时存在

设航拍数据库描述子为:

DA={eAi}i=1M,\mathcal D_A = \left\{ \mathbf e_{A_i} \right\}_{i=1}^{M},

地面查询描述子为:

DG={eGj}j=1N.\mathcal D_G = \left\{ \mathbf e_{G_j} \right\}_{j=1}^{N}.

检索时计算地面查询与所有航拍候选之间的距离,并返回最近位置。论文在主要航拍-地面实验中使用 25 米作为正确检索阈值。

这个任务同时包含三种 domain gap:

  1. 视角差异:俯视卫星图与前视地面观测几乎没有直接像素对应;
  2. 模态差异:RGB、LiDAR、卫星图和道路图的数据统计完全不同;
  3. 信息尺度差异:地面视图关注局部街景,航拍图覆盖更大的道路与建筑布局。

AGPlace 的目标不是把所有特征强行拉到同一欧氏空间,而是引入一个 surrogate manifold,作为 2D 与 3D 特征交换信息的中介。

2. 总体架构:两个方向相反的融合阶段

AGPlace 两阶段总体架构

图 2:左侧在代理流形中构造融合 embedding,右侧把融合信息映射回各模态空间

2.1 模态专属 backbone

地面图像和点云分别经过 2D、3D backbone。在第 ll 个 block 得到特征图:

F2Dl,F3Dl.\mathbf F_{\text{2D}}^l, \qquad \mathbf F_{\text{3D}}^l.

全局池化后:

f2Dl=Pool(F2Dl),f3Dl=Pool(F3Dl).\mathbf f_{\text{2D}}^l = \operatorname{Pool} \left( \mathbf F_{\text{2D}}^l \right), \qquad \mathbf f_{\text{3D}}^l = \operatorname{Pool} \left( \mathbf F_{\text{3D}}^l \right).

作者有意使用 pooled vector 来构造融合状态,因为 place recognition 需要全局场景摘要,而不是像分割或深度估计那样依赖密集局部预测。

2.2 Stage 1:从各模态进入融合流形

两个可学习 chart function 把 2D/3D 特征映射到 CC 维流形 MC\mathcal M^C

ml=ϕ2Dl(f2Dl)+ϕ3Dl(f3Dl).\mathbf m^l = \phi_{\text{2D}}^l \left( \mathbf f_{\text{2D}}^l \right) + \phi_{\text{3D}}^l \left( \mathbf f_{\text{3D}}^l \right).

ml\mathbf m^l 被论文称为 fusion state momentum。它不是最终描述子,而是第 ll 层提供给融合动态系统的新观测。

2.3 Stage 2:从融合流形返回各模态

得到最终融合 embedding 后,模型再用反向 chart function 映射回 2D 与 3D 空间,注入原始高层特征,分别解码并聚合。这一阶段让共享的全局信息重新指导各模态的局部表示。

这种“先汇总、再反哺”的结构比一次性 concat 更有针对性:

3. Neural ODE 如何构造融合状态

AGPlace 并不是从浅层到深层累积融合,而是从最后一个 backbone block LL 反向走到第一个 block:

LL11.L\rightarrow L-1\rightarrow\cdots\rightarrow1.

在最深层:

γL(0)=mL.\boldsymbol\gamma^L(0)=\mathbf m^L.

在其余层:

γl(0)=ml+γl+1(T).\boldsymbol\gamma^l(0) = \mathbf m^l + \boldsymbol\gamma^{l+1}(T).

也就是说,上一段 ODE 的终点会与当前层特征相加,成为下一段动态系统的初值。

每个 block 中的状态由 Neural ODE 更新:

dγl(t)dt=fθl(γl(t)).\frac{ \mathrm d\boldsymbol\gamma^l(t) }{ \mathrm dt } = f_{\theta_l} \left( \boldsymbol\gamma^l(t) \right).

求解到时间 TT 后得到 γl(T)\boldsymbol\gamma^l(T)。最终融合 embedding 为:

efuse=γ1(T).\mathbf e_{\text{fuse}} = \boldsymbol\gamma^1(T).

Neural ODE 的多层融合状态演化

图 3:不同场景从不同初始状态出发,依次经过 L1L\rightarrow1 的 ODE blocks

3.1 为什么方向是高层到低层

深层特征先提供场景级语义与大尺度结构,随后浅层特征补充纹理和几何细节。消融实验中:

融合方向KITTI360-AG Satellite R@1/5/10
block 1L1\rightarrow L31.7 / 46.8 / 54.0
block L1L\rightarrow132.0 / 47.6 / 54.9

差距不大,但支持论文的设计直觉:先建立全局地点状态,再用低层信息逐步细化。

3.2 “轨迹不相交”到底保证了什么

论文引用 ODE 解的唯一性:当向量场对状态满足适当的 Lipschitz 条件时,两个不同初值产生的解轨迹不会相交。因此,如果两个场景在某个 block 的初始融合状态不同,经过同一 ODE 后仍会得到不同输出。

这个性质提供了“不同场景不被动态系统直接压成同一点”的理论动机,但需要避免过度解读:

因此 Neural ODE 更准确的角色是 带有唯一流先验的连续残差更新器,而不是自动产生判别性表示的理论保证。

4. Stage 2:把共享状态重新注入 2D 与 3D

融合 embedding 分别映射回两个模态:

e2D=ψfuse,2D(efuse),e3D=ψfuse,3D(efuse).\begin{aligned} \mathbf e_{\text{2D}} &= \psi_{\text{fuse,2D}} \left( \mathbf e_{\text{fuse}} \right),\\ \mathbf e_{\text{3D}} &= \psi_{\text{fuse,3D}} \left( \mathbf e_{\text{fuse}} \right). \end{aligned}

随后广播加到最后一层特征图,并经过 decoder:

e2D=Pool[g2D(e2DF2DL)],\mathbf e'_{\text{2D}} = \operatorname{Pool} \left[ g_{\text{2D}} \left( \mathbf e_{\text{2D}} \oplus \mathbf F_{\text{2D}}^L \right) \right], e3D=Pool[g3D(e3DF3DL)].\mathbf e'_{\text{3D}} = \operatorname{Pool} \left[ g_{\text{3D}} \left( \mathbf e_{\text{3D}} \oplus \mathbf F_{\text{3D}}^L \right) \right].

最终地面描述子是三部分的加权和:

eG=λ(e2D+e3D)+λfuseefuse.\mathbf e_G = \lambda' \left( \mathbf e'_{\text{2D}} + \mathbf e'_{\text{3D}} \right) + \lambda_{\text{fuse}} \mathbf e_{\text{fuse}}.

Stage 2 的意义是软化 2D 与 3D 的直接耦合。每个模态仍经过自己的 decoder,但都能看到跨模态全局状态;融合表示也单独保留在最终描述子中。

5. MVMM Loss:同时对齐视角、模态与模态内部结构

论文把 positive pair 标为 yij=0y_{ij}=0,negative pair 标为 yij=1y_{ij}=1。对两个 domain 的 embedding 集合 D1,D2\mathcal D_1,\mathcal D_2,令:

dij=e1ie2j2.d_{ij} = \left\| \mathbf e_{1i}-\mathbf e_{2j} \right\|_2.

σ(dij)\sigma(d_{ij}) 解释为 negative probability,则标准二元交叉熵可以写为:

L(D1,D2)=1N1N2i,jij,ij=yijlogσ(dij)+(1yij)log(1σ(dij)).\begin{aligned} \mathcal L(\mathcal D_1,\mathcal D_2) &= - \frac{1}{N_1N_2} \sum_{i,j}\ell_{ij},\\ \ell_{ij} &= y_{ij}\log\sigma(d_{ij})\\ &\quad+ (1-y_{ij}) \log\left(1-\sigma(d_{ij})\right). \end{aligned}

这里有一个值得注意的排版问题:论文式 (13) 展示了括号内的 log-likelihood,但没有在整体前写负号。如果训练目标按常规方式最小化,那么需要整体取负,或者等价地最大化原式。没有公开实现时,不能从正文判断这是符号省略还是实际实现约定。

定义四组描述子:

MVMM Loss 为:

MVMM=L(DA,DA)+L(DG,DADG)+L(DG2D,DADG2D)+L(DG3D,DADG3D).\begin{aligned} \ell_{\text{MVMM}} ={}& \mathcal L(\mathcal D_A,\mathcal D_A)\\ &+ \mathcal L(\mathcal D_G,\mathcal D_A\cup\mathcal D_G)\\ &+ \mathcal L( \mathcal D_{\text{G2D}}, \mathcal D_A\cup\mathcal D_{\text{G2D}} )\\ &+ \mathcal L( \mathcal D_{\text{G3D}}, \mathcal D_A\cup\mathcal D_{\text{G3D}} ). \end{aligned}

它不只拉近最终 ground-aerial pair,还同时约束:

作者再加入带 hard negative mining 的 triplet loss。先记正负航拍匹配距离为:

dip=eGieAip2,din=eGieAin2.\begin{aligned} d_i^p &= \left\| \mathbf e_{G_i}-\mathbf e_{A_i}^{p} \right\|_2,\\ d_i^n &= \left\| \mathbf e_{G_i}-\mathbf e_{A_i}^{n} \right\|_2. \end{aligned}

则:

tri=1Ni[dipdin+m]+.\ell_{\text{tri}} = \frac{1}{N} \sum_i \left[ d_i^p-d_i^n+m \right]_+.

最终目标:

=αMVMM+tri.\ell = \alpha\ell_{\text{MVMM}} + \ell_{\text{tri}}.

MVMM 提供绝对距离的多域约束,triplet 提供正负样本的相对排序约束,两者职责互补。

6. 实验结果与消融应该怎样读

6.1 KITTI360-AG:卫星图与道路图都能作为数据库

方法Satellite R@1/5/10Road Map R@1/5/10
Lip-Loc29.9 / 42.2 / 49.024.5 / 35.6 / 42.4
MinkLoc++28.9 / 39.3 / 44.926.5 / 40.8 / 48.8
UMF27.1 / 42.6 / 49.225.6 / 40.4 / 49.7
AGPlace32.0 / 47.6 / 54.928.2 / 43.3 / 52.0

道路图没有纹理和真实外观,仍取得 28.2 R@1。这说明跨视角地点识别可以主要依赖道路拓扑与建筑布局等结构信息,也降低了航拍影像采集成本。

同时融合 satellite 与 road map 后,R@1 进一步达到 34.7,表明航拍侧本身也存在值得研究的多模态互补。

6.2 两阶段和 MVMM 都有独立贡献

模型R@1R@5R@10
Full32.047.654.9
w/o Stage 128.543.951.0
w/o Stage 230.645.353.0
w/o MVMM30.945.251.7

Stage 1 的影响最大,说明代理流形中的融合状态不是普通辅助分支。Stage 2 和 MVMM 的提升较小但稳定,分别负责模态回注与多域几何约束。

6.3 ODE 比 MLP 与 attention 更有效,但增益有限

状态更新R@1R@5R@10
MLP30.045.251.9
Attention30.445.452.8
Neural ODE32.047.654.9

ODE 带来约 1.6 至 2.0 个百分点的 R@1 增益。它证明连续状态演化是有效设计,但整体性能并非只由 ODE 决定,backbone、多域监督和两阶段融合仍是共同条件。

6.4 传感器故障实验说明 Stage 2 的价值

在 nuScenes-AG 上,所有模型都用相机和 LiDAR 训练,再在测试时丢弃一个模态:

模型双模态 R@1相机缺失 R@1LiDAR 缺失 R@1
AGPlace w/o Stage 273.919.26.9
AGPlace75.622.812.9

Stage 2 对 LiDAR 缺失尤其明显,R@1 从 6.9 提升到 12.9。不过绝对性能仍远低于完整输入的 75.6,所以“robust to sensor failure”应理解为 退化更缓和,而不是模态缺失几乎无影响。

6.5 实时性

论文在 Tesla A100 上报告 62 FPS、0.61 GB GPU memory。显存与其他多模态方法接近,但速度低于部分简单基线,说明 ODE 求解与两阶段融合并非零成本;62 FPS 仍满足实时检索描述子提取的量级需求。

7. 局限、可迁移思路与我的结论

7.1 数据集仍偏城市道路

论文明确指出,当前 ground queries 主要来自城市环境。森林、乡村、山地、室内或非道路机器人场景能否泛化,尚未验证。道路图在城市中很有信息量,在无结构地形中可能迅速失效。

7.2 新任务中的 baseline 适配影响比较公平性

许多对比方法原本为 ground-ground 或单模态检索设计,需要作者接入统一航拍网络与维度对齐头。AGPlace 对新任务天然定制,性能差异既来自融合方法,也可能受 baseline 适配质量影响。

7.3 ODE 理论与检索目标之间仍有距离

轨迹不相交只排除了完全状态碰撞,并没有直接优化 Recall。更强的理论分析应连接 ODE flow 的 Lipschitz 性、类内紧致度、类间 margin 与传感器扰动,而论文目前主要依靠消融证明有效。

7.4 MVMM 的全 pair 关系成本较高

多个 domain 两两计算距离会随 batch size 平方增长。更大 batch 有利于 hard negative mining,却增加显存与计算。实际扩展到更多地面或航拍模态时,可能需要 memory bank、分块相似度或更有针对性的 pair sampling。

7.5 值得迁移的不是“所有融合都用 ODE”

AGPlace 更普适的设计思想是:

  1. 为异构模态保留独立 backbone;
  2. 在中介空间中构造共享全局状态;
  3. 让共享状态按层级逐步更新,而不是一次 concat;
  4. 再把共享状态投回各模态,形成残缺输入下的冗余路径;
  5. 用跨域和域内损失共同约束表征几何。

这个模式可以迁移到相机-雷达、图像-文本-地图或多传感器时序融合。Neural ODE 是其中一种状态更新器,它的优势在连续动态与唯一流先验,而不是方法成立的唯一条件。

一句话总结:

AGPlace 把航拍-地面地点识别建模为一个多域状态演化问题:高层语义先在代理流形中形成共享地点状态,再反向吸收低层细节并回注各模态,最终与航拍描述子对齐。

它最有价值的地方,是把跨视角、跨模态和传感器缺失放进同一架构中系统处理;而它下一步真正需要回答的,是这种流形与 ODE 设计能否在更多地形、更多传感器和更严格定位尺度下继续成立。

参考资料

  1. CVPR 2025 论文原文
  2. CVF Open Access 页面

Edit page

Previous Post
从 ONNX 到 HBM:RDK WebToolChain 的设计与实现
Next Post
BoQ 论文精读:用一袋可学习 Query 聚合地点特征