# SemanticFusion > McCormac 2016 · [Paper](https://arxiv.org/abs/1609.05130) **One-line summary** — The first real-time dense semantic SLAM system, fusing per-frame CNN segmentation predictions into an ElasticFusion surfel map via recursive Bayesian updates to produce a coherent 3D semantic map. ## Problem Dense geometric SLAM produces accurate 3D reconstructions, but the map does not know *what* anything is — for the next level of robot intelligence and intuitive user interaction, maps need to extend beyond geometry and appearance to contain semantics. Single-frame CNN semantic segmentation, meanwhile, is noisy and view-dependent: the same surface can be labeled differently from different viewpoints. The missing piece was a mechanism to accumulate many per-frame 2D predictions into one persistent, consistent 3D labeling. ## Method & architecture The pipeline has three units running together, plus an optional regularizer: - **SLAM backbone (ElasticFusion)**: for each frame $k$, ElasticFusion tracks the camera by combined ICP + RGB alignment, yielding pose $T_{WC}$, and fuses depth into a surfel map. Its deformation graph lets probability distributions be "carried along" with surfels through small and large loop closures, so surfels stay persistently associated with real-world entities — exactly the long-term correspondence semantic fusion needs. (Default parameters, except depth cutoff extended from 3 m to 8 m.) - **CNN front-end**: a Deconvolutional Semantic Segmentation network (Noh et al., VGG-16 based, in Caffe) is run on every 10th frame, returning per-pixel class probabilities $P(O_{u} = l_i \mid I_k)$ over 13 NYUv2 classes. A fourth *depth* channel is added by initializing depth filters from the average intensity of the pretrained RGB filters, rescaled ($\approx 32\times$) from the 0–255 color range to the 0–8 m depth range. Inputs are rescaled to 224×224; outputs upsampled to 640×480. - **Bayesian label fusion**: each surfel $s$ stores a discrete distribution $P(L_s = l_i)$ over labels, initialized uniform. Using the tracked pose, each visible surfel at 3D position $x(s)$ is associated with pixel $u(s,k) = \pi\big(T_{CW}(k)\, x(s)\big)$ and updated recursively: $$P(l_i \mid I_{1,\dots,k}) = \frac{1}{Z}\, P(l_i \mid I_{1,\dots,k-1})\; P\big(O_{u(s,k)} = l_i \mid I_k\big)$$ with $Z$ a normalizing constant. The SLAM correspondences are what allow label hypotheses from many viewpoints to be combined in a Bayesian way. - **Optional CRF regularization**: a fully-connected CRF with Gaussian edge potentials treats each surfel as a node and incrementally updates the distributions by approximately minimizing $E(\mathbf{x}) = \sum_s \psi_u(x_s) + \sum_{s