Diffusion 3D Features (Diff3F): Decorating Untextured Shapes with Distilled Semantic Features
Niladri Shekhar Dutt, Sanjeev Muralikrishnan, Niloy J. Mitra
TL;DR
Diff3F presents a zero-shot semantic descriptor for untextured 3D shapes by distilling diffusion-based image features from multi-view renders guided by depth and normal cues. The method textures silhouettes via ControlNet conditioning, extracts diffusion and DINO features, and unprojects them back to 3D to produce per-vertex semantic descriptors across many views. Correspondences are computed with cosine similarity or via a Functional Maps pipeline, enabling robust point-to-point and surface-to-surface mappings across isometric and non-isometric shape families. Across SHREC'19/20, FAUST, and TOSCA, Diff3F demonstrates competitive accuracy with strong generalization while requiring no training, making it a practical complement to geometric descriptors for semantic shape analysis.
Abstract
We present Diff3F as a simple, robust, and class-agnostic feature descriptor that can be computed for untextured input shapes (meshes or point clouds). Our method distills diffusion features from image foundational models onto input shapes. Specifically, we use the input shapes to produce depth and normal maps as guidance for conditional image synthesis. In the process, we produce (diffusion) features in 2D that we subsequently lift and aggregate on the original surface. Our key observation is that even if the conditional image generations obtained from multi-view rendering of the input shapes are inconsistent, the associated image features are robust and, hence, can be directly aggregated across views. This produces semantic features on the input shapes, without requiring additional data or training. We perform extensive experiments on multiple benchmarks (SHREC'19, SHREC'20, FAUST, and TOSCA) and demonstrate that our features, being semantic instead of geometric, produce reliable correspondence across both isometric and non-isometrically related shape families. Code is available via the project page at https://diff3f.github.io/
