Skip to content
EC-Net: an Edge-aware Point set Consolidation Network, ECCV, 2018
Branch: master
Clone or download
yulequan Add files via upload
The virtual scan program
Latest commit 5d3af2c Jan 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
code remove readme in code Jul 17, 2018
eval_input add point cloud sample Jul 17, 2018
model/pretrain first init Jul 16, 2018
.gitignore update .gitignore Jul 16, 2018 Update Nov 20, 2018 Add files via upload Jan 15, 2019

EC-Net: an Edge-aware Point set Consolidation Network

by Lequan Yu, Xianzhi Li, Chi-Wing Fu, Daniel Cohen-Or, Pheng-Ann Heng. Details are in project page.


This repository is for our ECCV 2018 paper 'EC-Net: an Edge-aware Point set Consolidation Network'. This project is based on our previous project PU-Net.


This repository is based on Tensorflow and the TF operators from PointNet++. Therefore, you need to install tensorflow and compile the TF operators.

For installing tensorflow, please follow the official instructions in here. The code is tested under TF1.3 (higher version should also work) and Python 2.7 on Ubuntu 16.04.

For compiling TF operators, please check under each op subfolder in code/tf_ops folder. Note that you need to update nvcc, python and tensoflow include library if necessary. You also need to remove -D_GLIBCXX_USE_CXX11_ABI=0 flag in g++ command in order to compile correctly if necessary.

To compile the operators in TF version >=1.4, you need to modify the compile scripts slightly.

First, find Tensorflow include and library paths.

    TF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
    TF_LIB=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')

Then, add flags of -I$TF_INC/external/nsync/public -L$TF_LIB -ltensorflow_framework to the g++ commands.

We adopt the Dijkstra algorithm implemented in python-graph library, you can follow the instruction in here to install it.


  1. Clone the repository:

    git clone
    cd EC-Net
  2. Compile the TF operators:

    Follow the above information to compile the TF operators.

  3. Train the model:

    cd code
    python --phase train --gpu 0 --log_dir ../model/myownmodel
  4. Evaluate the model:

    We provide the pretrained model in folder model/pretrain. To evaluate the model, you need to put the test point clouds (in .xyz format) in the folder eval_input.

    Then run:

    cd code
    python --phase test --log_dir ../model/pretrain

    You will see the input point cloud, output point cloud, and the identified edge points in the folder eval_result.


If EC-Net is useful for your research, please consider citing:

     title={EC-Net: an Edge-aware Point set Consolidation Network},
     author={Yu, Lequan and Li, Xianzhi and Fu, Chi-Wing and Cohen-Or, Daniel and Heng, Pheng-Ann},
     booktitle = {ECCV},
     year = {2018}


Related project

  1. PU-Net
  2. PointNet++


Please contact ''

You can’t perform that action at this time.