CubeSLAM

Yang 2019 · Paper

One-line summary — Introduced 3D cuboid object landmarks into monocular SLAM, providing long-range geometric and scale constraints that reduce drift, while modelling dynamic objects rather than rejecting them.

Problem

Monocular SLAM suffers from scale ambiguity and accumulating drift over long trajectories, and most systems assume static scenes, treating dynamic-region features as outliers. Meanwhile monocular 3D object detection is hard because a single view under-constrains object pose, and most methods need prior CAD/shape models. CubeSLAM’s observation is that the two problems solve each other: objects carry scale and long-range constraints that points do not, SLAM’s multi-view consistency improves single-view detection, and moving objects can be modelled instead of discarded — the paper demonstrates “that the two parts can improve each other.”

Method & architecture

Built on ORB-SLAM2 (tracking and keyframe creation unchanged); each new keyframe gets cuboid detection, object association, then a BA over cameras, objects, and points.

Single-image cuboid detection. A cuboid has 9 DoF: position t\mathbf{t}, rotation RR, dimensions d=[dx,dy,dz]\mathbf{d}=[d_x,d_y,d_z]. Since a 2D bounding box gives only four constraints, proposals are generated by sampling vanishing points — VPi=KRcol(i), i{1,2,3}\text{VP}_i=KR_{col(i)},\ i\in\{1,2,3\} — plus one top corner; the remaining seven corners follow by line intersections. For ground objects, a ground corner pixel p5p_5 back-projects onto the ground plane [n,m][\mathbf{n},m] analytically:

P5=mn(K1p5)K1p5\mathbf{P}_{5}=\frac{-m}{\mathbf{n}^{\top}(K^{-1}p_{5})}K^{-1}p_{5}

with scale fixed by camera height. Proposals are scored by E(OI)=ϕdist(O,I)+w1ϕangle(O,I)+w2ϕshape(O)E(O|I)=\phi_{dist}(O,I)+w_{1}\phi_{angle}(O,I)+w_{2}\phi_{shape}(O) — Chamfer distance of cuboid edges to Canny edges, alignment of long line segments with VPs, and a skew-ratio penalty (w1=0.8w_1=0.8, w2=1.5w_2=1.5).

Object BA. With cameras CC, cuboids OO, points PP, BA minimises

C,O,P=argmin{C,O,P}e(ci,oj)Σij2+e(ci,pk)Σik2+e(oj,pk)Σjk2C^{*},O^{*},P^{*}=\underset{\{C,O,P\}}{\arg\min}\sum\parallel\mathbf{e}(c_{i},o_{j})\parallel_{\Sigma_{ij}}^{2}+\parallel\mathbf{e}(c_{i},p_{k})\parallel_{\Sigma_{ik}}^{2}+\parallel\mathbf{e}(o_{j},p_{k})\parallel_{\Sigma_{jk}}^{2}

Association matches objects across frames via shared feature points (≥10 shared points, points within 1 m of the cuboid center) — robust to occlusion and repeated objects. Cuboids also initialise depth for hard-to-triangulate points.

Dynamic objects. Rigid moving objects keep their points anchored in the object frame; a nonholonomic wheel model predicts [tx,ty,θ]=[tx,ty,θ]+vΔt[cosθ, sinθ, tanϕ/L][t_x^{\prime},t_y^{\prime},\theta^{\prime}]=[t_x,t_y,\theta]+v\Delta t\,[\cos\theta,\ \sin\theta,\ \tan\phi/L], giving a motion-model error emoe_{mo}, and dynamic points add reprojection factors edp=π(jToiiPk,Tcj)zkje_{dp}=\pi({}^{j}T_{o}^{i}\,{}^{i}P^{k},T^{j}_{c})-z_{kj}, so moving cars constrain the camera. Dynamic points are tracked by KLT and triangulated with motion-compensated projection matrices.

Results

Why it matters for SLAM

CubeSLAM pioneered object-level monocular SLAM without prior object models, showing that semantic object detection and geometric SLAM are mutually beneficial: SLAM’s multi-view consistency improves 3D object detection, and objects reduce SLAM drift and scale error. Its treatment of dynamic objects as first-class citizens foreshadowed later dynamic-SLAM systems such as DynaSLAM II and VDO-SLAM, and its cuboid representation, together with QuadricSLAM’s ellipsoids, defined the object-as-landmark research direction.