Skip to content

nini-lxz/Unsupervised-Shape-Distinction-Detection

Repository files navigation

Unsupervised Detection of Distinctive Regions on 3D Shapes

by Xianzhi Li, Lequan Yu, Chi-Wing Fu, Daniel Cohen-Or and Pheng-Ann Heng.

Distinctive regions detected by our method unsupervisedly on various 3D models

Introduction

This repository is for our ACM Transactions on Graphics (TOG) 2020 paper 'Unsupervised Detection of Distinctive Regions on 3D Shapes'. In this paper, we present a novel approach to learn and detect distinctive regions on 3D shapes. Unlike previous works, which require labeled data, our method is unsupervised. We conduct the analysis on point sets sampled from 3D shapes, then formulate and train a deep neural network for an unsupervised shape clustering task to learn local and global features for distinguishing shapes with respect to a given shape set. To drive the network to learn in an unsupervised manner, we design a clustering-based nonparametric softmax classifier with an iterative re-clustering of shapes, and an adapted contrastive loss for enhancing the feature embedding quality and stabilizing the learning process. By then, we encourage the network to learn the point distinctiveness on the input shapes. We extensively evaluate various aspects of our approach and present its applications for distinctiveness-guided shape retrieval, sampling, and view selection in 3D scenes.

Usage

The code is tested under TF1.11.0, Python 3.6, and CUDA10.0 on Ubuntu 16.04.

For the tf_ops, you may need to re-compile using 'sh compile_ops.sh'

(1) You can directly test your sampled point clouds using our previously-trained network:
The testing code (test.py) is provided inside the code folder, and our trained network based on the ModelNet40 inter-class dataset is provided inside the trained_model folder. After running, the network will output per-point distinctiveness value for each input point.

(2) You can also re-train our network either using your own training samples or our provided training dataset. The training code (train.py) is provided inside the code folder.

(3) Visualization:
After obtaining the per-point distinctiveness, please use the provided Matlab code (inside the visualization folder) for shape distinction visualization.

Questions

Please contact 'lixianzhi123@gmail.com'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published