论文精读笔记:CODERS
1. 核心判断
CODERS 的出发点是传感器取舍:
monocular RGB 缺 metric scale;
RGB-D 对 diffuse object 有效,但透明 / 镜面表面会产生 missing / distorted depth;
calibrated stereo 理论上可由 baseline 恢复 metric geometry,同时只依赖可见光。
它没有先做 stereo disparity,再把 noisy depth 喂给 pose network;而是让网络在 feature space 中共同看到 image appearance 与每个像素射线上候选 3D positions。这个“implicit stereo”结构使 detection、pose、size 和 shape reconstruction 可以由同一批 object queries 联合学习。
TOD 上 99.5–100 的 3D50 很亮眼,但基准小、类别少且宽松阈值接近饱和;更严格的 bottle 3D75 只有 31.5,系统速度也只有 3 Hz。因此核心贡献应放在 task unification 与 stereo representation,而不是只强调近 100 分。
2. 输入、输出与泛化边界
输入:
完整 left / right RGB;
两相机 intrinsics;
stereo extrinsics / interocular distance;
固定图像几何。
输出:
多对象 class / matching score;
continuous 6D rotation;
metric 3D center;
width / height / length;
64D category shape code 与 mesh。
测试不需要:
object mask / box;
target CAD;
depth map。
但模型 vocabulary 固定为 SS3D 的 16 categories。所谓 unseen / zero-shot 是 category-level unseen instances 。官方代码当前还明确提示:预训练模型针对固定 camera resolution 与 baseline,直接换双目相机未经验证,通常需要 custom fine-tuning。
3. Implicit Stereo Matching
原论文 Figure 3。左右图保持双分支 feature maps;coordinate transformer 将沿 ray 采样的 camera-grid points 变换到同一 3D frame,position encoder 与 appearance features 融合后交给 object queries。来源:ECVA 正式论文 ;图片版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
对 camera-frustum grid P c P_c P c :
P w = [ R , T ] K − 1 P c , P_w=[R,T]K^{-1}P_c, P w = [ R , T ] K − 1 P c ,
再由:
F 3 D = ψ ( F 2 D , P w ) F_{3D}=\psi(F_{2D},P_w) F 3 D = ψ ( F 2 D , P w )
得到 stereo-aware features。这里的 P w P_w P w 不是已经 triangulated 的 surface points,而是每条 ray 上离散 depth hypotheses 的 world-coordinate encoding。Transformer 可以通过左右外观和一致 3D coordinate hypotheses 找到隐式 correspondence。
优点:
不受 explicit disparity failure 的单点错误直接支配;
metric baseline 进入 feature geometry;
可在全图跨对象分配 evidence;
透明表面仍可利用轮廓、折射 pattern 与双目上下文。
风险:
计算量随 depth bins、resolution 和 decoder 增长;
calibration / baseline distribution shift 会改变整个 position code;
网络可能学习 synthetic-camera-specific shortcut;
没有显式 depth 输出可供几何 sanity check。
4. DETR queries 与多任务 heads
ConvNeXt-B + FPN 输出 stereo maps;六层 decoder 中,150 queries 依次 self-attention、cross-attention 与 FFN,最终 object embedding 同时进入:
focal-loss class head;
location / size L1 heads;
6D continuous rotation head;
shape-code L1 head。
Rotation 由 r 1 , r 2 r_1,r_2 r 1 , r 2 正交化:
R ⋅ 1 = ϕ ( r 1 ) , R ⋅ 3 = ϕ ( R ⋅ 1 × r 2 ) , R ⋅ 2 = R ⋅ 3 × R ⋅ 1 . R_{\cdot1}=\phi(r_1),\quad
R_{\cdot3}=\phi(R_{\cdot1}\times r_2),\quad
R_{\cdot2}=R_{\cdot3}\times R_{\cdot1}. R ⋅ 1 = ϕ ( r 1 ) , R ⋅ 3 = ϕ ( R ⋅ 1 × r 2 ) , R ⋅ 2 = R ⋅ 3 × R ⋅ 1 .
Hungarian matching 在 predicted queries 与 GT objects 间一对一分配,避免 NMS / two-stage crop。总损失:
L = λ c l s L c l s + λ p o s e L p o s e + λ s h a p e L s h a p e , \mathcal L=
\lambda_{\rm cls}\mathcal L_{\rm cls}
+\lambda_{\rm pose}\mathcal L_{\rm pose}
+\lambda_{\rm shape}\mathcal L_{\rm shape}, L = λ cls L cls + λ pose L pose + λ shape L shape ,
权重为 2、0.06、0.02。多任务消融显示 shape head 也改善 pose,说明 embedding 的 geometry supervision 有共享收益。
5. Category DeepSDF
先对每个 SS3D mesh 学 latent z i z_i z i 与 decoder:
SDF ( x ) = f ( z i , x ) . \operatorname{SDF}(x)=f(z_i,x). SDF ( x ) = f ( z i , x ) .
作者加入 category contrastive loss,使同类形状共享结构、异类 embeddings 分离。主网络只需从 stereo object embedding 回归 z z z ,再用 marching / SDF decoder 提取 mesh。
它不是从 stereo pair 在线逐像素重建全部可见 surface,而是检索 / 回归到 learned category shape manifold。薄结构或超出训练形状分布的对象会被 prior 平滑。
6. 数据与训练
SS3D:
来自 OmniObject3D scans;
16 个可抓取日用品类别;
427 instances;
363 train,64 test,每类 4 test;
合成不同 diffuse / specular / transparent / mixed materials。
类别包括 banana、book、bottle、bowl、carrot、corn、cucumber、cup、dish、fork、knife、large box、orange、small box、scissors、spoon。
训练:
24 epochs;
AdamW、weight decay 10 − 2 10^{-2} 1 0 − 2 ;
learning rate 2 × 10 − 4 2\times10^{-4} 2 × 1 0 − 4 ,cosine decay;
batch size 8;
论文用 8×RTX 3090;
inference 单张 RTX 3090,无 test-time augmentation。
TOD:
约 36K stereo pairs;
12 instances;
10 backgrounds;
bottle 3、mug 7、cup 2;
依 StereoPose 协议训练 bottle / mug category split,测试未见实例。
7. TOD pose:宽阈值饱和,严阈值更有辨识力
原论文 Table 2。3D25 / 50 / 75 是 3D box IoU precision;5°2cm 等要求 rotation 与 translation 同时达标。CODERS 是全图输入,而 StereoPose 等依赖 object segmentation,系统边界不同。来源:ECVA 正式论文 ;表格版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
类别 3D25 3D50 3D75 5°2cm 10°5cm Bottle 100 99.5 31.5 73.4 99.8 Mug 100 100 92.8 56.2 81.9
与 StereoPose:
bottle 3D50:22.2→99.5;
bottle 10°5cm:57.8→99.8;
mug 3D50:77.4→100;
mug 10°5cm:34.4→81.9。
超大提升可能来自 implicit metric stereo、联合 size / detection,也可能受训练数据、full-image context、baseline implementations 和 metric code 影响。论文将 SPD / SGPA 数字从 StereoPose 转引,并非所有 baseline 在同一代码与 detector 下重跑。更应关注 CODERS 自身严格 3D75 / 5°2cm,而不是饱和的 3D25 / 50。
8. Reconstruction:与 instance-finetuned baseline 的公平性
原论文 Table 3,Chamfer distance ×100,越低越好。Stereo2Point 在五个 test objects 上专门 fine-tune,而 CODERS、Zero123、TripoSR 不见该实例,因此表格同时混有 instance-specific 与 category-generalization setting。来源:ECVA 正式论文 ;表格版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
方法 Bottle Bowl Cup Knife Soup Stereo2Point,instance fine-tuned 0.700 0.509 0.563 0.140 0.695 CODERS no contrastive 1.411 0.516 0.612 0.272 0.482 CODERS 0.542 0.352 0.593 0.211 0.458
Contrastive shape space 对 bottle 改善最大(1.411→0.542),但 cup 改善只有 0.019。CODERS 在三类优于 per-instance Stereo2Point,是强结果;在 knife 仍有薄结构重建差距。
9. SS3D 与 stereo 消融
原论文 Table 4–5。16 类结果差异很大;Stereo-aware position encoding 与双目输入对 bottle 收益最大,六层 decoder 是作者采用的 speed / memory 折中。来源:ECVA 正式论文 ;表格版权归论文作者及 Springer Nature 所有,本站仅作论文解读展示。
SS3D 代表性类别:
book:3D50 90、3D75 51、5°5cm 65;
bottle:71 / 16 / 80;
cucumber:34 / 9 / 38;
dish:88 / 37 / 64;
large box:52 / 9 / 16;
orange:35 / 6 / 56。
类别方差说明系统并非“各种材质都同样稳定”;size outlier 和 shape imbalance 仍显著。
TOD ablation:
配置 Bottle 3D75 / 5°2cm Mug 3D75 / 5°2cm no position 25.8 / 53.5 88.4 / 52.5 2D position 28.6 / 70.8 91.7 / 55.3 stereo-aware 3D position 31.5 / 73.4 92.8 / 56.2 monocular 16.1 / 48.0 86.1 / 54.7 stereo 31.5 / 73.4 92.8 / 56.2
Bottle 尺寸变化大,对 metric stereo 最敏感;mug 本身更易由 shape prior 解释,双目增益较小。
10. 速度、开源与部署
论文在 RTX 3090 报告 3 Hz 。瓶颈来自:
双图 ConvNeXt-B;
dense 3D position hypotheses;
六层 query decoder;
shape-code / mesh decoding。
论文发表时写“未来发布”;当前官方项目已提供:
xingyoujun/coders 训练 / 推理代码;
pretrained CODERS / DeepSDF checkpoints;
SS3D Hugging Face dataset;
single-pair inference interface。
不过 README 说明模型只验证了固定 resolution / baseline;不同 stereo rig 很可能需要 fine-tuning。这是实际部署中比“无需 depth sensor”更重要的 calibration-domain 限制。
11. 局限
known 16-category vocabulary,不是 open-category;
TOD 只有 bottle / mug 主结果,实例与背景规模有限;
宽阈值接近饱和,严 3D75 的 bottle 仍仅 31.5;
synthetic material / camera 到真实 stereo rig 存在 domain gap;
对 calibration / baseline / synchronization error 敏感;
shape 输出来自 learned DeepSDF manifold,超分布薄结构易失败;
real-world robot experiment 主要为 qualitative images / demos,没有 grasp success rate;
baseline protocols 不完全一致;
training 需 8×3090,inference 3 Hz;
官方代码提示新 camera setup 未验证。
12. 复现检查表
固定 stereo resolution、intrinsics、extrinsics、baseline 与 synchronization;
使用 SS3D 363 / 64 instance-disjoint split;
单列 16 categories,避免只报 mean;
ConvNeXt-B + FPN、150 queries、6 decoder layers;
明确 depth hypotheses 数量与范围;
先训练 category DeepSDF / contrastive shape codes,再训练 multi-task heads;
TOD 与 StereoPose 使用相同 object split 和 metric code;
分开报告 full-image detection failures 与 matched-object pose;
对 baseline / calibration perturbation 做敏感性分析;
真实机器人报告 detection recall、pose success、mesh error 与 grasp success;
端到端计入 mesh extraction,报告 latency / memory。
13. 最终评价
CODERS 是 2024 年少见的“双目不是只做透明 pose,而是统一 detection–pose–shape”的完整系统。Implicit Stereo Matching 用 calibration-aware 3D coordinates 连接左右 appearance,避免显式 depth map;TOD 与 SS3D 消融证明它对 bottle 的 metric size / depth 尤其有价值,公开代码和数据也提升了长期参考价值。
它的成绩仍需放回协议:TOD 小且宽阈值饱和,real robot 没有 quantitative success,模型只覆盖 16 类并依赖固定 stereo rig,3 Hz 也不实时。最可靠的结论是:对于 RGB-D 易失效的透明 / 镜面对象,calibrated stereo + learned 3D position encoding 是一条有效的 metric category-pose / reconstruction 路线 。