先说结论
如果你赶时间,这是你需要知道的:
| 你的需求 | 选这个 | 原因 |
|---|---|---|
| 要精度,不赶时间 | VGGT | 精度最高,但每秒只能处理1帧 |
| 要实时,做AR/机器人 | CUT3R-224 | 每秒25帧,虽然精度差点 |
| 都想要一点 | CUT3R-512 | 中间路线,两边都凑合 |
这俩模型是干啥的?
想象一下你拍了一张照片,问AI:"图里这些东西离镜头有多远?"
这就是深度估计——让机器"看"出照片里物体的距离。
这事有什么用?太多了:
- 自动驾驶的车需要知道前面的障碍物有多远
- AR眼镜要把虚拟物品"放"在真实桌子上
- 扫地机器人要知道墙在哪里
- 把普通照片变成3D模型
今天对比的是两个2025年最强的模型:
VGGT(来自Meta和牛津大学)
- 今年CVPR最佳论文
- 设计理念:一张一张仔细算,算得准
CUT3R(来自UC Berkeley)
- 今年CVPR口头报告
- 设计理念:边看边算,有记忆力,能一直往下处理
测试条件
我用了一个标准数据集TUM RGB-D,里面有真实的深度数据(用深度相机拍的),可以检验模型猜得准不准。
- 场景:室内桌面
- 测试帧数:17帧
- 深度范围:半米到10米
比赛结果
第一场:谁更准?
我测了7个指标,VGGT赢了6个。
最关键的一个指标叫Abs Rel(绝对相对误差),通俗理解就是"平均猜错了百分之多少":
| 模型 | 猜错多少 | 举例说明 |
|---|---|---|
| VGGT | 17.8% | 真实3米,猜的在2.5~3.5米之间 |
| CUT3R-512 | 21.5% | 真实3米,猜的在2.4~3.6米之间 |
| CUT3R-224 | 23.2% | 真实3米,猜的在2.3~3.7米之间 |
另一个重要指标是RMSE(平均偏差多少厘米):
| 模型 | 平均偏多少 | 什么水平 |
|---|---|---|
| VGGT | 33厘米 | 能分清"桌子"和"墙" |
| CUT3R-512 | 49厘米 | 差不多能用 |
| CUT3R-224 | 51厘米 | 差不多能用 |
精度结论:VGGT完胜,领先约20%。
第二场:谁更快?
这场CUT3R反杀。
| 模型 | 每秒处理几帧(FPS) | 处理一帧要多久 |
|---|---|---|
| VGGT | 1.1帧 | 快1秒 |
| CUT3R-512 | 6.7帧 | 0.15秒 |
| CUT3R-224 | 25帧 | 0.04秒 |
翻译成人话:
- VGGT:看一秒视频要处理半分钟,别想实时了
- CUT3R-224:能跟上视频播放速度,可以做实时应用
- CUT3R-512:不够实时,但离线处理挺快
速度结论:CUT3R-224快得飞起,比VGGT快22倍。
为什么会有这种差异?
VGGT为什么准但慢?
VGGT的设计像一个认真的老教授——每次要看完所有照片,仔细分析每张图之间的关系,然后给出答案。
好处:考虑得全面,误差小 坏处:必须等所有照片到齐才能开始算,算得慢
技术上来说,它用了一种叫"交替注意力"的机制,让AI反复在"看单张图"和"看图与图之间的关系"之间切换。算得精确,但计算量大。
CUT3R为什么快但精度差点?
CUT3R的设计像一个有记忆力的速记员——看一张记一张,不用等后面的图也能开始工作。
好处:来一张处理一张,适合视频流和实时场景 坏处:没法看到"未来"的信息,精度差点
它有一个"持久状态"机制,就像一个笔记本,把之前看过的信息记下来,处理新图时可以参考。这让它能处理无限长的视频而不会内存爆炸。
CUT3R升级效果:从224到512值不值?
CUT3R有两个版本:
- 224版本:分辨率低,速度快
- 512版本:分辨率高,精度好
升级后的变化:
| 变化 | 数值 |
|---|---|
| 精度提升 | 约5% |
| 速度下降 | 从25帧/秒降到7帧/秒 |
| 还比VGGT快多少 | 6倍 |
我的建议:如果不需要极致实时,升级到512版本很值。
这些精度够用吗?
让我们看看不同应用需要多高的精度:
| 应用场景 | 需要多准 | VGGT够吗 | CUT3R够吗 |
|---|---|---|---|
| 机器人抓杯子 | 误差<5厘米 | ❌ | ❌ |
| 室内导航 | 误差<50厘米 | ✅ | 勉强✅ |
| AR家具预览 | 误差<30厘米 | ❌ | ❌ |
| 3D场景重建 | 误差<1米 | ✅ | ✅ |
现实是:这俩模型都适合"粗活",精密活还得靠专业深度相机。
选型指南
你是科研人员,要做高精度实验
→ 用VGGT,虽然慢但准
你在做AR/VR应用,需要实时
→ 用CUT3R-224,够快够流畅
你要处理视频,不用实时但也别太慢
→ 用CUT3R-512,平衡之选
你想要极致精度
→ 用VGGT + 微调,花时间调参能更准
两个模型的本质区别
VGGT:一次看完,统一作答
工作流程:
收集所有照片 → 放在一起对比分析 → 输出每张图的深度
内部结构:
想象一个有四个专家的团队:
- 📷 相机专家:判断每张照片是从什么角度拍的
- 📏 深度专家:估计每个像素离镜头多远
- 🎯 3D专家:把2D像素转成3D空间中的点
- 🔍 追踪专家:找出同一个物体在不同照片里的对应位置
这四个专家共用一个"大脑"(Transformer),轮流看每张图内部的细节(帧内注意力)和图与图之间的关系(全局注意力)。
关键设计:
- 用了DINOv2作为"眼睛",这是Meta训练的超强图像理解模型
- 内部处理分辨率约392×518(不是原图分辨率)
- 必须一次性拿到所有图片才能开始算
为什么分辨率这么低?
不管你输入的照片是4K还是800万像素,模型都会先把它缩放到固定大小(约400×500)再处理。原因是Transformer的计算量和像素数的平方成正比——分辨率翻倍,计算量翻4倍,显存也翻4倍。
这就像你看一张大海报时,不会逐个像素去数,而是退后几步看整体轮廓。
放大回原始分辨率靠的是DPT头(Dense Prediction Transformer),这是一种学习出来的上采样方法:
- Transformer在处理时,每一层都会产生不同"抽象程度"的特征——浅层看边缘纹理,深层看物体语义
- DPT把这些多层特征收集起来,像金字塔一样逐级融合
- 每一级融合时都用学习到的卷积核来"补细节",不是简单的双线性插值
所以虽然中间"思考"用的是缩小版,但放大时模型会根据学到的先验知识"脑补"细节,比单纯拉伸效果好很多。
适合: 照片集重建、精度优先的离线任务
CUT3R:边看边记,持续更新
工作流程:
看第1张 → 记到"笔记本" → 看第2张 → 参考笔记+更新 → ...
内部结构:
想象一个带着笔记本的观察员:
- 📓 持久状态:一个324格的"记忆网格",记录已经看过的场景信息
- 📚 本地记忆:256个"书签",可以快速查找之前见过的相似画面
- 🗺️ 射线图编码:不光看RGB颜色,还理解"这个像素对应的光线往哪个方向射出去"
每来一张新图,观察员会:
- 先看看图里有什么(图像编码器)
- 翻翻笔记本,看看之前有没有见过类似的(交叉注意力)
- 估计这张图的深度(预测头)
- 把新信息记到笔记本里(状态更新)
关键设计:
- 记忆不会随着视频变长而爆炸,永远是固定大小
- 支持"重置",切换到新场景时可以清空笔记本
- 有两个版本:224版本处理快但糙,512版本更精细
CUT3R的分辨率策略
CUT3R训练时用了10种不同的分辨率(从160×512到512×384),让模型学会处理各种长宽比的图片。
两个版本的上采样方式不同:
- 224版本用Linear头:简单的线性投影+双线性插值,快但粗糙,相当于"硬拉伸"
- 512版本用DPT头:和VGGT一样的学习式上采样,能"脑补"细节,精度更高
这也是为什么512版本精度比224高5%的重要原因之一——不光是输入分辨率高了,放大的方法也更聪明了。
适合: 视频流、机器人、AR眼镜等实时场景
架构对比一览
| 维度 | VGGT | CUT3R |
|---|---|---|
| 处理方式 | 批量处理,一次算完 | 流式处理,来一张算一张 |
| 有没有记忆 | 没有,每次从零开始 | 有,324个记忆格+256个书签 |
| 注意力机制 | 帧内↔全局交替 | 图像↔记忆交叉 |
| 输入编码 | 只看RGB | RGB + 射线方向 |
| 预测头 | 4个专用头各司其职 | 1-2个共享头 |
| 显存占用 | 随帧数线性增长 | 固定大小,不怕长视频 |
| 最大输入 | 200帧左右就到极限 | 理论上无限 |
一句话总结:
- VGGT像考试时把所有题目看完再统一作答的学霸——答得准,但要等
- CUT3R像边听课边记笔记的学生——能跟上直播,但偶尔会漏细节
未来展望
VGGT可能会:
- 出更小的版本,跑更快
- 针对视频优化
CUT3R可能会:
- 出网页摄像头demo
- 记忆机制更强,精度赶上VGGT
原始数据
如果你想自己分析,这是完整的测试数据:
VGGT
绝对相对误差: 0.178
平方相对误差: 0.072
均方根误差: 0.33米
δ<1.25准确率: 71.7%
每帧耗时: 0.88秒
CUT3R-512
绝对相对误差: 0.215
平方相对误差: 0.139
均方根误差: 0.49米
δ<1.25准确率: 69.0%
每帧耗时: 0.15秒
CUT3R-224
绝对相对误差: 0.232
平方相对误差: 0.159
均方根误差: 0.51米
δ<1.25准确率: 65.3%
每帧耗时: 0.04秒
总结
一句话:要准用VGGT,要快用CUT3R。
两个都是2025年CVPR的顶级工作,选哪个取决于你的场景:
- 不着急、要精确 → VGGT
- 要实时、能容忍误差 → CUT3R-224
- 两边都想要点 → CUT3R-512
最后提醒:这俩都是单目深度估计(只用普通相机),如果你的应用真的对精度要求很高,还是老老实实用深度相机吧。