VidTAG: Temporally Aligned Video to GPS Geolocalization¶
会议: CVPR 2026
arXiv: 2604.12159
代码: https://parthpk.github.io/vidtag_webpage
领域: 视频理解 / 地理定位
关键词: 视频地理定位, 帧到GPS检索, 时间一致性, 轨迹预测, 去噪
一句话总结¶
提出 VidTAG,一个双编码器(CLIP+DINOv2)帧到GPS检索框架,通过 TempGeo 模块实现帧间时间对齐,GeoRefiner 编码器-解码器模块精炼GPS预测,在全球尺度下实现时间一致的逐帧视频地理定位。
研究背景与动机¶
领域现状:图像地理定位主要有分类(划分地球区域预测标签)和检索(匹配地理参考图库)两种范式,GeoCLIP 将图像和GPS嵌入共享空间实现直接GPS检索。
现有痛点:现有分类方法只能提供粗粒度的城市级定位;图像检索方法需要庞大的图片库,在全球尺度不可行。对于视频,逐帧应用图像方法会产生"抖动"轨迹,最坏情况下预测路径会跨越大洲。唯一的全球视频方法 CityGuessr 在整个视频级别推理,不支持逐帧定位。
核心矛盾:如何在全球尺度下获得精确且时间一致的逐帧轨迹。
本文目标:(1) 提出帧到GPS检索的新范式;(2) 解决视频预测的时间不一致性问题。
切入角度:构建GPS坐标库(而非图像库)是简单且廉价的,帧到GPS检索在全球尺度下可行。
核心 idea:用 TempGeo 进行帧间时间对齐 + GeoRefiner 去噪式精炼,实现时间一致的逐帧GPS预测。
方法详解¶
整体框架¶
VidTAG 把视频地理定位重构成「逐帧到 GPS 坐标的检索」:不再维护一个全球图片库去匹配,而是把每一帧编码后直接在一个 GPS 坐标嵌入空间里检索最近邻,输出该帧的经纬度。整个流程分两阶段训练。Phase I 训练前端的特征通路——双帧编码器(CLIP+DINOv2)把每帧编成嵌入,TempGeo 在帧之间做时间对齐,再与位置编码器(沿用 GeoCLIP,把 GPS 坐标编成嵌入,属脚手架)输出的 GPS 嵌入在共享空间里对比对齐,得到一个能逐帧检索 GPS 的基础模型。Phase II 冻结 Phase I,单独训练 GeoRefiner,把第一阶段还带噪声的逐帧 GPS 序列当作"脏输入"做一次去噪精炼。推理时一段视频走完「双帧编码器 → TempGeo → 初始检索 → GeoRefiner → 二次检索」就得到一条时间一致的逐帧轨迹。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["视频帧序列"] --> B["双帧编码器<br/>CLIP 语义 ∥ DINOv2 视觉,拼接 CLS"]
B --> C["TempGeo<br/>全帧自注意力做时间对齐"]
G["GPS 坐标库 → 位置编码器<br/>(GeoCLIP,脚手架)"] --> D
C --> D["帧到 GPS 对比检索<br/>得到带噪声的逐帧 GPS 序列"]
D --> E["GeoRefiner<br/>编码器-解码器交叉注意力去噪"]
E --> F["GPS-to-GPS 二次检索<br/>时间一致的逐帧轨迹"]
关键设计¶
1. 双帧编码器:用语义和视觉两套特征互补描述每一帧
单一编码器难以同时抓住"这是什么地方"和"这里长什么样"。CLIP 强在语言对齐的语义,能消歧地标、识别标牌和场景类型,告诉你画面里是埃菲尔铁塔还是某条商业街;DINOv2 强在自监督的视觉特征,描述全局外观纹理且对域偏移更鲁棒。VidTAG 把两者的 CLS token 直接拼接成帧表示 \(\mathbf{z}_t = [\mathbf{f}_{clip} \| \mathbf{f}_{dino}]\),让语义线索和视觉线索同时进入后续的检索通路。消融里单 CLIP 和单 DINOv2 各有短板,拼接后 @1km 才追上来,印证了两套特征是互补而非冗余。
2. TempGeo:在检索之前就让相邻帧互相纠偏,而不是事后平滑
逐帧独立定位会产生"抖动"轨迹——某一帧画面模糊或场景普通,单独看可能被检索到错误大洲,使整条路径乱跳。TempGeo 用一个轻量 Transformer 编码器对一段视频的所有帧做全自注意力,并加上时间位置编码,让每一帧都能借用相邻帧乃至远处帧的上下文:一个不确定的帧会被周围确定的帧拉回共识,孤立的异常预测被压下去。关键区别在于它作用在检索之前——跨帧上下文直接塑造用于对比学习的帧嵌入,而不是等检索出一串坐标后再做后处理平滑,因此时间一致性是"学进表示里"的,而非外部硬贴的。
3. GeoRefiner:把第一阶段的噪声预测当脏数据,在 GPS 域做同域去噪
即便有了 TempGeo,Phase I 输出的逐帧 GPS 序列仍残留典型失败模式:整段序列偏移、坍塌到一点、或随机抖动。GeoRefiner 用编码器-解码器结构补这一刀:编码器吃 TempGeo 输出的帧嵌入,解码器把 GPS 嵌入当查询,通过交叉注意力让 GPS 序列对齐到对应的视觉 token。训练上的巧思是不直接拿 Phase I 的预测当输入,而是对真值 GPS 坐标人工注入仿真噪声(专门模拟上面那几种失败模式),让解码器学会借视觉上下文把脏坐标拉回正确位置。这样做避开了"训练用预测、推理也用预测"导致的分布漂移,让精炼在 GPS 域内同域完成。
损失函数 / 训练策略¶
Phase I 用对比损失:把帧嵌入与 GPS 嵌入的相似度矩阵对齐到单位矩阵,本质是逐帧的交叉熵检索目标。Phase II 用加权 Hinge 损失,同时约束帧级和视频级的对齐质量。
实验关键数据¶
主实验¶
| 模型 | 帧@1km↑ | 帧@5km↑ | 帧中位误差↓ | 视频@1km↑ | DFD↓ | MRD↓ |
|---|---|---|---|---|---|---|
| GeoCLIP-ZS | 2.7% | 22.9% | 11.54km | 3.8% | 24.94 | 2.83 |
| GeoCLIP-FT | 22.5% | 63.0% | 2.97km | 18.6% | 22.52 | 2.82 |
| DINOv2-Cls | 18.1% | 58.2% | 3.86km | 18.4% | 4.28 | 1.60 |
| VidTAG | 41.0% | 76.7% | 1.35km | 39.8% | 3.87 | 1.07 |
消融实验¶
| 配置 | @1km | 中位误差 | DFD |
|---|---|---|---|
| 仅 CLIP | 32.5% | 1.85km | 8.42 |
| 仅 DINOv2 | 28.3% | 2.15km | 5.12 |
| 双编码器 | 35.2% | 1.62km | 6.78 |
| + TempGeo | 38.1% | 1.48km | 4.25 |
| + GeoRefiner (完整) | 41.0% | 1.35km | 3.87 |
关键发现¶
- VidTAG 在 MSLS 上 @1km 超过 GeoCLIP 20 个百分点,在 CityGuessr68k 上超过 SOTA 25%
- TempGeo 和 GeoRefiner 对轨迹质量(DFD、MRD)的改善最为显著
- 双编码器的互补性通过消融得到验证
亮点与洞察¶
- 帧到GPS检索是一个优雅的问题重构:GPS库构建简单廉价,使全球尺度逐帧定位成为可能
- GeoRefiner 的去噪训练策略很巧妙:注入仿真噪声而非直接用 Phase I 预测,避免了训练-推理分布不匹配
局限与展望¶
- 依赖均匀网格GPS库,库分辨率直接影响精度上限
- 在地理覆盖稀疏的区域效果可能下降
- 未利用 OCR 等额外信息(路牌、文字)
- 可结合多模态大语言模型进一步推理地理线索
相关工作与启发¶
- vs GeoCLIP: GeoCLIP 仅做图像级,VidTAG 扩展到视频帧级并解决时间一致性
- vs CityGuessr: CityGuessr 只做视频级城市预测,VidTAG 实现逐帧定位和轨迹映射
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个全球尺度帧级视频地理定位方法
- 实验充分度: ⭐⭐⭐⭐⭐ 多数据集、多指标、多基线对比
- 写作质量: ⭐⭐⭐⭐ 问题定义和方法描述清晰
- 价值: ⭐⭐⭐⭐ 在取证、社交媒体等领域有实际应用