The experiment in our Adaptive O-CNN is based on Caffe. Before starting the
experiment please add the relavent executive files of caffe and octree to
the system path, since the following command will invoke them directly.
-
Download points with normals and rendered views from this link. Unzip them to the folder
caffe/dataset. -
Run the following command to generate the lmdbs:
cd caffe/experiments python prepare_dataset.py --run=shapenet_lmdb_ae -
Run the following command to train the network:
caffe train --solver=aocnn_ae_7_4.solver.prototxt --gpu=0
-
After training, run the following command to generate the results and calculate the chamder distances. The trained weights, log and chamder distances can be download from this link:
mkdir dataset/ShapeNetV1.ae_output caffe test --model=aocnn_ae_7_4.test.prototxt \ --weights=models/aocnn_ae_7_4_iter_350000.caffemodel \ --blob_prefix=dataset/ShapeNetV1.ae_output/ae_test \ --gpu=0 --blob_header=false --iterations=7943 python prepare_dataset.py --run=aocnn_ae_compute_chamfer
We implement an autoencoder on TensorFlow using the dataset for shape completion. Following the instructions below to conduct the experiment.
-
Generate the datasets for training. The data is originally provided by [Dai et al. 2017] and we convert the data to point clouds in the format of
ply, which can be visualized via viewers likemeshlab. Run the following command to download the point clouds used for training and testing.python data/completion.py --run generate_dataset
-
Change the working directory to
tensorflow/script, and run the following command to train the autoencoder. The dimension of the hidden code is 2048.python run_ae.py --config configs/ae_resnet.yaml
-
To generate the shape in testing stage, run the following command.
python run_ae.py --config configs/ae_resnet_decode.yaml