RGBTrack: Fast, Robust Depth-Free 6D Pose Estimation and Tracking
RGBTrack replaces first-frame median depth with binary search matching rendered and observed mask areas using metric CAD. Later frames zero FoundationPose's point cloud channels and refine from RGB and the previous pose. XMem, Kalman filtering, and a state machine sample 20 recovery hypotheses when centers / areas become anomalous. Metric recovery for CAD of unknown scale still requires true first-frame depth.
With metric-scale CAD, an initial mask, and camera intrinsics, RGBTrack binary-searches initial depth using rendered versus observed mask areas. Later it zeroes FoundationPose’s point-cloud channels for RGB refinement, with XMem, Kalman filtering, and a state machine detecting failures and sampling 20 nearby hypotheses for re-registration.
3. Guide to figures and tables
Original Figure 2: mask area comparison binary-searches camera-object depth before FoundationPose RefineNet / ScoreNet on the left; later frames use RGB, previous poses, and zero depth on the right. This site notes that the diagram reverses the bound updates relative to the text and Algorithm 1; the explanation follows the algorithm, while the original image is retained. Source: authors' public manuscript. Image copyright belongs to the authors and IEEE; reproduced here for paper analysis.Original Table I: RGB-D FoundationPose is stronger overall with good YCBInEOAT depth. RGBTrack is the strongest RGB-only entry, outperforming Last Depth drift and FoundPose. Source: authors' public manuscript. Table copyright belongs to the authors and IEEE; reproduced here for paper analysis.
4. Problem setting
Task: initial registration and continuous 6D tracking for known / newly supplied CAD objects.
RGB-only priors: metric-scale CAD, first-frame object mask, intrinsics, and a camera-object depth search range.
Unknown CAD scale: metric poses still require true first-frame depth; otherwise results live in monocular depth’s relative scale.
No per-new-object retraining is required.
5. Method overview
Within [zmin,zmax], take midpoint zr, then recover xr,yr using the mask center and intrinsics.
Sample 252 initial rotations at this translation; FoundationPose RefineNet / ScoreNet select the best pose.
Render its CAD mask. A larger area than observed suggests excessive proximity, so raise the depth lower bound; otherwise lower the upper bound.
Stop when depth / interval changes fall below 10−2 and output the initial metric pose.
Zero point-cloud channels instead of reusing previous rendered depth, avoiding drift accumulation from incorrect depth.
XMem tracks masks; an RGB-only state machine detects loss from image-center deviations and observed / rendered area mismatch.
After loss, Kalman roughly predicts z and rotation; sample 20 nearby hypotheses, refine / score them, and resume normal tracking after recovery.
6. Experiments at a glance
YCBInEOAT: nine robot manipulation sequences evaluated with BOP AR, translation error, and rotation error.
On mustard_easy, RGBTrack gives Rec 0.883, T.Err 0.016 m, R.Err 3.45°; RGB-D FoundationPose gives 0.979 / 0.0038 m / 2.54°.
ClearPose set 8 scene 2: RGBTrack recall 0.4682 versus FoundationPose 0.0442; RGBTrack T.Err / R.Err is 0.062 m / 25.806°.
Depth-assisted recovery reaches recall 0.616 and T.Err 0.0129 m in that scene, but R.Err is 67.795°.
Speed: about 22 FPS on RTX 3090 at 640×480 versus FoundationPose about 45 FPS.
Scale recovery: artificially scaling CAD by 3× gives zero recall on all nine sequences without recovery; recovery succeeds substantially on six, while first-frame hand occlusion causes failure / severe degradation on three.
7. Quick assessment
Strength: practical reuse of FoundationPose’s learned RGB branch in a complete initialization, tracking, and recovery state machine.
Avoid misreading: RGB-only metric poses depend on correct CAD scale; unknown-scale metric recovery still needs first-frame metric depth.
Evidence: nine YCBInEOAT sequences support main results, but recovery is quantified on only one ClearPose scene; bad-depth advantages over RGB-D are mainly qualitative.
Limitations: area depends on occlusion, truncation, and segmentation as well as depth; recovery strongly depends on XMem and thresholds.
Open source: scripts, XMem / SAM2 interfaces, unknown-scale and ClearPose demos are public, with multiple FoundationPose-related dependencies.
Available src/paper-notes/rgbtrack-iros2025/deep.md
In-depth paper notes
Support reproduction, comparison, related-work writing, and identifying opportunities for further research.
Deep Reading Notes: RGBTrack
1. Key assessment
RGBTrack’s premise is that known physical CAD size lets projected image size constrain camera-object depth. This initializes metric translation, while later local FoundationPose updates can discard unreliable depth and use RGB alone.
XMem, Kalman filtering, and a state machine prevent continued refinement from incorrect previous poses after occlusion / fast motion. This is a low-training-cost system adaptation rather than a new backbone.
2. Conditions for depth-free operation
Original Figure 2: projected metric CAD area constrains initial depth; after registration, FoundationPose RefineNet point-cloud inputs are zeroed. This site notes that the diagram reverses the bound updates relative to the text and Algorithm 1; the explanation follows the algorithm, while the original image is retained. Source: authors' public manuscript. Image copyright belongs to the authors and IEEE; reproduced here for paper analysis.
RGB-only mode still requires:
Known object identity;
Accurate CAD geometry and metric scale;
First-frame mask;
Intrinsics;
A search interval [zmin,zmax] containing the true depth;
Pretrained FoundationPose RefineNet / ScoreNet;
A subsequent 2D mask tracker.
It is neither model-free nor arbitrary monocular scale recovery. No new-CAD retraining comes from FoundationPose’s object generalization; metric translation is constrained by known physical CAD dimensions.
3. Initial RGB registration
FoundationPose originally uses median depth within the mask to obtain
zc=median(depth[mask]),
then recovers translation from mask center (uc,vc) and intrinsics:
xc=fxz(uc−cx),yc=fyz(vc−cy).
RGBTrack searches unknown z within a preset interval. Each iteration:
zr=(zmin+zmax)/2;
Recover xr,yr from the mask center;
Sample rotation hypotheses at that translation;
Update poses with FoundationPose RefineNet;
Select the best with ScoreNet;
Render its CAD mask;
Compare rendered and observed areas.
A larger rendered mask suggests the CAD hypothesis is too near, so set zmin←zr; otherwise set zmax←zr. Stop when consecutive refiner depth changes are below 10−2 or interval width falls below 10−2.
This is not strictly one-dimensional geometric bisection: each iteration’s neural refiner changes rotation and translation, so area need not remain monotonic in the midpoint. Occlusion, truncation, mask errors, and incorrect CAD geometry violate an area-difference-from-depth-only assumption.
4. Why not reuse previous rendered depth?
Rendering CAD depth from the previous pose for the current FoundationPose input seems natural, but experiments show accumulated drift: pose errors produce incorrect depth that biases later refinement.
Instead, the last three point-cloud channels are zeroed. RefineNet separately encodes RGB and depth-derived point clouds before weighted fusion; zeroing leaves RGB features and previous poses to drive relative updates.
This simple change reveals substantial local correction capacity in FoundationPose’s RGB branch, with costs:
No independent metric depth correction per frame;
Translation drift depends on RGB, mask geometry, and recovery;
Large inter-frame motion can exceed the refiner’s basin.
5. Tracking-loss state machine
Original Figure 3: CheckStatus switches between TrackOne and Recover; XMem / SAM2 masks supply regions and loss signals. Source: authors' public manuscript. Image copyright belongs to the authors and IEEE; reproduced here for paper analysis.
5.1 With depth
Either condition triggers loss:
Tracker mask pixel count below threshold;
Euclidean separation between mask-depth coarse 3D center and FoundationPose pose center above θ.
Kalman predicts translation and rotation; instead of full 252-hypothesis registration, sample 20 rotations near the prediction and refine / score them. Resume tracking when the pose agrees with predicted / coarse estimates.
5.2 Without depth
Two image-space heuristics replace 3D center comparison:
(u−up)2+(v−vp)2>θ1,
The projected pose center deviates from the 2D tracker center; and
∣Area(Mobs)−Area(Mrender)∣>θ2.
After loss, Kalman roughly predicts z and rotation and samples 20 nearby candidates. Sensitivity to θ,θ1,θ2, mask-size thresholds, Kalman noise, and switching hysteresis is not fully analyzed, creating reproduction / transfer risks.
6. CAD scale recovery
With incorrect CAD scale, projected area cannot identify size and distance simultaneously. RGBTrack adds true first-frame depth and binary render-and-compare search for a scale factor.
Metric first-frame depth recovers metric CAD scale, followed by RGB-only tracking;
ZoeDepth / Metric3D alone align within their predicted relative / offset scales, without guaranteed metric accuracy;
No scale signal leaves monocular RGB and unknown CAD scale unidentifiable from mask area alone.
Unknown-scale CAD with RGB-only metric tracking is therefore not fully solved physically; metric scale information is concentrated into initial depth.
7. Metrics and evaluation
The authors use the BOP 2019 error families:
VSD: visible surface discrepancy;
MSSD: maximum symmetry-aware surface distance;
MSPD: maximum symmetry-aware projection distance;
Recall averaged over thresholds for each, then averaged across errors, yields AR / table Rec.
Per-sequence mean translation errors in m and rotation errors in degrees include frames after complete loss, reflecting recovery but without separate initialization / steady-tracking errors.
8. Main YCBInEOAT results
Original Table I: RGB-D FoundationPose is an upper-reference baseline with good depth; Last Depth tests drift from incorrect renders; FoundPose is framewise RGB template matching. Source: authors' public manuscript. Table copyright belongs to the authors and IEEE; reproduced here for paper analysis.
Representative sequences:
Sequence
Method
Rec ↑
T.Err m ↓
R.Err ° ↓
mustard0
FoundationPose RGB-D
0.998
0.0031
3.20
mustard0
RGBTrack RGB
0.875
0.020
3.64
mustard_easy
FoundationPose RGB-D
0.979
0.0038
2.54
mustard_easy
RGBTrack RGB
0.883
0.016
3.45
cracker_box_reorient
FoundationPose RGB-D
0.984
0.0038
2.73
cracker_box_reorient
RGBTrack RGB
0.861
0.022
3.34
With good depth, RGBTrack translation clearly trails RGB-D FoundationPose while rotation is closer. Both severely fail on sugar_box_yalehand0: FoundationPose R.Err 176.85° versus RGBTrack 73.97°. RGB-only recovery cannot eliminate strong hand occlusion / symmetry ambiguity.
Last Depth translation errors are mostly 0.49–0.82 m and rotation errors 8–150°, supporting accumulated-depth drift. FoundPose recall stays below 0.01, but framewise initialization is not a matched temporal tracking system; coarse templates cannot simply replace tracking.
Qualitative bad / distant-depth examples favor RGBTrack, but no depth-noise / range-binned benchmark quantifies its sensor-failure advantage.
9. Recovery and speed
Original Figure 6: mustard bottle in ClearPose set 8 scene 2. Blue FoundationPose translation error accumulates after loss; recovery-enabled RGB-D / RGB versions reacquire in several intervals but remain unstable later. Source: authors' public manuscript. Image copyright belongs to the authors and IEEE; reproduced here for paper analysis.
ClearPose set 8 scene 2, over all opaque objects and frames:
Method
Recall ↑
T.Err m ↓
R.Err ° ↓
FoundationPose
0.0442
0.598
130.36
RGBTrack + depth recovery
0.616
0.0129
67.795
RGBTrack RGB
0.4682
0.0620
25.806
RGB-only has the lowest rotation error, while depth-assisted recovery improves recall / translation; no variant wins all metrics. Recovery is quantified in only one ClearPose scene, with scarce public sequences combining CAD, full pose GT, and occlusion. This demonstrates recoverability rather than average cross-object success.
RTX 3090, 640×480, default refinement iterations:
RGBTrack + XMem / Kalman / recovery: about 22 FPS;
Original FoundationPose: about 45 FPS.
The roughly 2× speed cost comes from 2D tracking, status checks, and recovery candidates. Initial binary-search registration latency and worst-case recovery-frame latency are not reported.
10. Scale recovery results
Artificially enlarging each YCBInEOAT CAD by 3× yields zero Rec on all nine sequences without recovery. With first-frame depth + scale search:
cracker_box_reorient: Rec 0.894, T.Err 0.0179 m, R.Err 3.353°;
bleach_hard_00_03: 0.853 / 0.0169 m / 4.18°;
mustard0: 0.726 / 0.0389 m / 3.60°.
Hand-occluded first frames still give sugar_box_yalehand0 Rec 0, cracker_box_yalehand0 only 0.003, and tomato_soup_can_yalehand0 0.299. Occluded area is mistaken for smaller / more distant objects during scale and depth search.
11. Open source and reproduction
The official repository is accessible and contains:
run_demo_without_depth.py;
run_demo_unkown_scale.py;
run_demo_clearpose.py;
XMem and SAM2 submodules / wrappers;
FoundationPose-derived code and custom demo data.
README still marks parts of SAM2 / TensorRT as ToDo. Dependencies include FoundationPose, nvdiffrast, XMem, possible ZoeDepth / Metric3D, and several weight sets. Check:
zmin,zmax and units;
Sampling of 252 initial rotations;
Bisection stopping versus post-RefineNet depth updates;
θ,θ1,θ2 and mask-area thresholds;
Kalman states, noise, and 20-candidate distributions;
Recovery depends on the 2D tracker; wrong-object masks mislead the state machine;
Recovery is quantified on only one ClearPose scene;
Speed is about half FoundationPose’s;
Overall accuracy still trails RGB-D FoundationPose with good depth.
13. Overall assessment
RGBTrack pragmatically reuses FoundationPose’s RGB branch with zero point-cloud input, initializes depth from metric CAD projected area, and adds recovery after occlusion. Public code, 22 FPS, and YCBInEOAT / ClearPose results make it an informative engineering reference.
Its scope is a depth-free, recovery-enabled FoundationPose tracker constrained by known-scale CAD and masks, not arbitrary RGB-only metric 6D pose. Unknown CAD scale retains first-frame depth dependence; unstable masks / trackers jointly undermine scale estimation and recovery.