O-CNN: Octree-based Convolutional Neural Networks for 3D Shape Analysis

Overview

O-CNN

This repository contains the implementation of our papers related with O-CNN.
The code is released under the MIT license.

If you use our code or models, please cite our paper.

Contents

What's New?

  • 2021.08.24: Update the code for pythorch-based O-CNN, including a UNet and some other major components. Our vanilla implementation without any tricks on ScanNet dataset achieves 76.2 mIoU on the ScanNet benchmark, even surpassing the recent state-of-art approaches published in CVPR 2021 and ICCV 2021.
  • 2021.03.01: Update the code for pytorch-based O-CNN, including a ResNet and some important modules.
  • 2021.02.08: Release the code for ShapeNet segmentation with HRNet.
  • 2021.02.03: Release the code for ModelNet40 classification with HRNet.
  • 2020.10.12: Release the initial version of our O-CNN under PyTorch. The code has been tested with the classification task.
  • 2020.08.16: We released our code for 3D unsupervised learning. We provided a unified network architecture for generic shape analysis tasks and an unsupervised method to pretrain the network. Our method achieved state-of-the-art performance on several benchmarks.
  • 2020.08.12: We released our code for Partnet segmentation. We achieved an average IoU of 58.4, significantly better than PointNet (IoU: 35.6), PointNet++ (IoU: 42.5), SpiderCNN (IoU: 37.0), and PointCNN(IoU: 46.5).
  • 2020.08.05: We released our code for shape completion. We proposed a simple yet efficient network and output-guided skip connections for 3D completion, which achieved state-of-the-art performances on several benchmarks.

Please contact us (Peng-Shuai Wang [email protected], Yang Liu [email protected] ) if you have any problems about our implementation.

Comments
  • tf branch questions

    tf branch questions

    Hi Peng-Shuai,

    I encountered two problems during using O-CNN tensorflow branch:

    • there is a points_database = _tf_ocnn_module.points_database # todo: delete this operator in /tensorflow/libs/__init__.py, is that ok to delete this line? otherwise I cannot compile the lib.
    • in /tensorflow/script/cls.py, it uses points_dataset in train_network function while the dataset is octree_dataset in test_network, is that correct or a typo?

    Thanks!

    opened by chenming-wu 11
  • imag2shape

    imag2shape

    Hi, I tried running your AO-CNN instructions (windows 2012), and everything worked great.

    But when I look at the .obj results in meshlab, all the patches seem to be either horizontal or 45 degrees almost no variation between those.

    it seems to get the general overall shape, but the patches are all either horizontal or the same 45 degree angle. So it looks like their are only 2 orientation for the patches.

    Is there a reason why this might be? I was expecting the results would look similar to those in the paper. I thought maybe it is because of low resolution in the provided dataset, but I think it is the same resolution as in the paper.

    I tried using a different mesh viewer for .obj but the meshes were the same.

    opened by FredFloopie 9
  •  Visualizing output file about segmentation

    Visualizing output file about segmentation

    Hello, thanks for your suggestions about how to get the .dat file yesterday. I want to visualize this segmentation task result, so I use octree2ply convert the .dat files to point cloud, and this is my command:Octree2Ply.exe test_label_groundtruth.dat 1. But when I run this command, I only get this: default I don't know how to solve it. Can you give me some suggestions again? Thank you!

    opened by xiankun1995 8
  • libocnn.so: cannot open shared object file: No such file or directory

    libocnn.so: cannot open shared object file: No such file or directory

    Hi, I followed the instalation instructions provided in https://github.com/microsoft/O-CNN/blob/master/docs/installation.md ,

    • install octree
    • insatll tensorflow with conda

    I fixed a problem with the math_functions.h file following your suggestion in #113 ,but i meet similar problem of https://github.com/microsoft/O-CNN/issues/129#issue-954664455.

    then follow the installation steps for tensorflow:

    conda create -n tf-1.14.0 tensorflow-gpu==1.14.0
    conda install -c conda-forge yacs tqdm
    conda activate tf-1.14.0
    cd tensorflow/libs
    python build.py
    

    but i got an error :

    tensorflow.python.framework.errors_impl.NotFoundError: /home/zstuxinxi/wy/O-CNN-master/tensorflow/libs/libocnn.so: cannot open shared object file: No such file or directory
    

    here is build log

    (tf-1.14.0) [email protected]:~/wy/O-CNN-master/tensorflow/libs$ python build.py
    echo using g++ && cmake .. -DABI=ON -DKEY64=OFF && make -j all
    using g++
    -- octree: USE_CUDA
    -- The CUDA compiler identification is NVIDIA 10.1.105
    -- The CXX compiler identification is GNU 7.5.0
    -- The C compiler identification is GNU 7.5.0
    -- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc
    -- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc -- works
    -- Detecting CUDA compiler ABI info
    -- Detecting CUDA compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- octree: -D_GLIBCXX_USE_CXX11_ABI=0
    -- octree: USE_MINIBALL
    -- Found PythonInterp: /home/zstuxinxi/miniconda3/envs/tf-1.14.0/bin/python (found version "3.6.2")
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Looking for pthread_create
    -- Looking for pthread_create - not found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/zstuxinxi/wy/O-CNN-master/octree/build
    Scanning dependencies of target rply
    Scanning dependencies of target gtest
    Scanning dependencies of target octree_lib
    [  1%] Building C object CMakeFiles/rply.dir/external/octree-ext/rply-1.1.4/rply.c.o
    [  4%] Building CXX object CMakeFiles/octree_lib.dir/octree/contour.cpp.o
    [  4%] Building CXX object CMakeFiles/octree_lib.dir/octree/marching_cube.cpp.o
    [  4%] Building CXX object CMakeFiles/octree_lib.dir/octree/filenames.cpp.o
    [  4%] Building CXX object CMakeFiles/octree_lib.dir/octree/marching_cube_table.cpp.o
    [  5%] Building CXX object external/octree-ext/googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
    [  6%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_info.cpp.o
    [  7%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree.cpp.o
    [  8%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_parser.cpp.o
    [ 10%] Building CXX object CMakeFiles/octree_lib.dir/octree/math_functions.cpp.o
    [ 10%] Building CXX object CMakeFiles/octree_lib.dir/octree/merge_octrees.cpp.o
    [ 10%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_nn.cpp.o
    [ 11%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_samples.cpp.o
    [ 12%] Building CXX object CMakeFiles/octree_lib.dir/octree/mesh.cpp.o
    [ 13%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_value.cpp.o
    [ 17%] Building CXX object CMakeFiles/octree_lib.dir/octree/simplify_points.cpp.o
    [ 14%] Building CUDA object CMakeFiles/octree_lib.dir/octree/octree_parser.cu.o
    [ 14%] Building CXX object CMakeFiles/octree_lib.dir/octree/transform_points.cpp.o
    [ 15%] Building CXX object CMakeFiles/octree_lib.dir/octree/points_info.cpp.o
    [ 16%] Building CXX object CMakeFiles/octree_lib.dir/octree/transform_octree.cpp.o
    [ 18%] Building CUDA object CMakeFiles/octree_lib.dir/octree/octree_nn.cu.o
    [ 19%] Building CXX object CMakeFiles/octree_lib.dir/octree/points.cpp.o
    [ 20%] Building CXX object CMakeFiles/octree_lib.dir/octree/points_parser.cpp.o
    [ 21%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_conv.cpp.o
    [ 22%] Linking C static library librply.a
    [ 22%] Built target rply
    [ 23%] Linking CXX static library ../../../../lib/libgtest.a
    [ 23%] Built target gtest
    Scanning dependencies of target gtest_main
    [ 25%] Building CXX object external/octree-ext/googletest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
    [ 26%] Linking CXX static library ../../../../lib/libgtest_main.a
    [ 26%] Built target gtest_main
    [ 27%] Linking CXX static library liboctree_lib.a
    [ 27%] Built target octree_lib
    Scanning dependencies of target points_noise
    Scanning dependencies of target upgrade_octree
    Scanning dependencies of target octree_zbuffer
    Scanning dependencies of target octree_prune
    Scanning dependencies of target ply2points
    Scanning dependencies of target chamfer_distance
    Scanning dependencies of target octree2pts_suncg
    Scanning dependencies of target custom_data
    Scanning dependencies of target octree_test
    Scanning dependencies of target transform_points
    Scanning dependencies of target points2ply
    Scanning dependencies of target clip_points
    Scanning dependencies of target check_octree
    Scanning dependencies of target octree_bbox
    Scanning dependencies of target octree
    Scanning dependencies of target adaptive_octree
    Scanning dependencies of target bbox
    Scanning dependencies of target octree_dropout
    [ 28%] Building CXX object CMakeFiles/points2ply.dir/tools/points2ply.cpp.o
    [ 31%] Building CXX object CMakeFiles/octree_bbox.dir/tools/octree_bbox.cpp.o
    [ 32%] Building CXX object CMakeFiles/octree_zbuffer.dir/tools/octree_zbuffer.cpp.o
    Scanning dependencies of target mesh2points
    Scanning dependencies of target octree_samples
    [ 33%] Building CXX object CMakeFiles/custom_data.dir/tools/custom_data.cpp.o
    [ 34%] Building CXX object CMakeFiles/points_noise.dir/tools/points_noise.cpp.o
    Scanning dependencies of target merge_octree
    [ 34%] Building CXX object CMakeFiles/transform_points.dir/tools/transform_points.cpp.o
    Scanning dependencies of target octree2points
    [ 35%] Building CXX object CMakeFiles/bbox.dir/tools/bbox.cpp.o
    [ 36%] Building CXX object CMakeFiles/clip_points.dir/tools/clip_points.cpp.o
    Scanning dependencies of target upgrade_points
    [ 29%] Building CXX object CMakeFiles/octree2pts_suncg.dir/tools/octree2pts_suncg.cpp.o
    Scanning dependencies of target play_ground
    [ 30%] Building CXX object CMakeFiles/upgrade_octree.dir/tools/upgrade_octree.cpp.o
    Scanning dependencies of target octree2mesh
    [ 37%] Building CXX object CMakeFiles/octree.dir/tools/build_octree.cpp.o
    [ 38%] Building CXX object CMakeFiles/octree_prune.dir/tools/octree_prune.cpp.o
    [ 39%] Building CXX object CMakeFiles/check_octree.dir/tools/check_octree.cpp.o
    [ 40%] Building CXX object CMakeFiles/chamfer_distance.dir/tools/chamfer_distance.cpp.o
    [ 41%] Building CXX object CMakeFiles/octree_test.dir/test/test_octree_nn.cpp.o
    [ 42%] Building CXX object CMakeFiles/octree2points.dir/tools/octree2points.cpp.o
    [ 39%] Building CXX object CMakeFiles/adaptive_octree.dir/tools/adaptive_octree.cpp.o
    Scanning dependencies of target simplify_points
    [ 43%] Building CXX object CMakeFiles/octree_samples.dir/tools/octree_samples.cpp.o
    [ 44%] Building CXX object CMakeFiles/mesh2points.dir/tools/mesh2points.cpp.o
    [ 44%] Building CXX object CMakeFiles/merge_octree.dir/tools/merge_octree.cpp.o
    [ 45%] Building CXX object CMakeFiles/octree_test.dir/test/test_octree.cpp.o
    [ 46%] Building CXX object CMakeFiles/ply2points.dir/tools/ply2points.cpp.o
    [ 47%] Building CXX object CMakeFiles/octree_test.dir/test/test_util.cpp.o
    [ 48%] Building CXX object CMakeFiles/play_ground.dir/tools/play_ground.cpp.o
    [ 50%] Building CXX object CMakeFiles/octree2mesh.dir/tools/octree2mesh.cpp.o
    [ 51%] Building CXX object CMakeFiles/octree_dropout.dir/tools/octree_dropout.cpp.o
    [ 52%] Building CXX object CMakeFiles/upgrade_points.dir/tools/upgrade_points.cpp.o
    [ 53%] Building CXX object CMakeFiles/simplify_points.dir/tools/simplify_points.cpp.o
    [ 54%] Linking CUDA device code CMakeFiles/octree_zbuffer.dir/cmake_device_link.o
    [ 55%] Linking CUDA device code CMakeFiles/points_noise.dir/cmake_device_link.o
    [ 56%] Linking CUDA device code CMakeFiles/check_octree.dir/cmake_device_link.o
    [ 57%] Linking CUDA device code CMakeFiles/custom_data.dir/cmake_device_link.o
    [ 58%] Linking CUDA device code CMakeFiles/transform_points.dir/cmake_device_link.o
    [ 59%] Linking CUDA device code CMakeFiles/points2ply.dir/cmake_device_link.o
    [ 60%] Linking CUDA device code CMakeFiles/clip_points.dir/cmake_device_link.o
    [ 61%] Linking CUDA device code CMakeFiles/octree_bbox.dir/cmake_device_link.o
    [ 62%] Linking CUDA device code CMakeFiles/octree_samples.dir/cmake_device_link.o
    [ 63%] Linking CUDA device code CMakeFiles/mesh2points.dir/cmake_device_link.o
    [ 64%] Linking CXX executable points_noise
    [ 65%] Linking CUDA device code CMakeFiles/octree2mesh.dir/cmake_device_link.o
    [ 66%] Linking CUDA device code CMakeFiles/bbox.dir/cmake_device_link.o
    [ 66%] Linking CXX executable custom_data
    [ 67%] Linking CXX executable check_octree
    [ 67%] Linking CXX executable octree_zbuffer
    [ 68%] Linking CUDA device code CMakeFiles/merge_octree.dir/cmake_device_link.o
    [ 69%] Linking CXX executable octree_bbox
    [ 70%] Linking CUDA device code CMakeFiles/chamfer_distance.dir/cmake_device_link.o
    [ 70%] Linking CXX executable points2ply
    [ 71%] Linking CXX executable transform_points
    [ 72%] Linking CUDA device code CMakeFiles/simplify_points.dir/cmake_device_link.o
    [ 73%] Linking CXX executable clip_points
    [ 75%] Linking CUDA device code CMakeFiles/octree2points.dir/cmake_device_link.o
    [ 75%] Linking CXX executable octree_samples
    [ 76%] Linking CUDA device code CMakeFiles/octree2pts_suncg.dir/cmake_device_link.o
    [ 77%] Linking CUDA device code CMakeFiles/octree_test.dir/cmake_device_link.o
    [ 78%] Linking CUDA device code CMakeFiles/upgrade_points.dir/cmake_device_link.o
    [ 79%] Linking CUDA device code CMakeFiles/octree.dir/cmake_device_link.o
    [ 80%] Linking CUDA device code CMakeFiles/octree_prune.dir/cmake_device_link.o
    [ 81%] Linking CXX executable mesh2points
    [ 81%] Built target points_noise
    [ 82%] Linking CUDA device code CMakeFiles/play_ground.dir/cmake_device_link.o
    [ 83%] Linking CUDA device code CMakeFiles/adaptive_octree.dir/cmake_device_link.o
    [ 84%] Linking CUDA device code CMakeFiles/octree_dropout.dir/cmake_device_link.o
    [ 86%] Linking CUDA device code CMakeFiles/upgrade_octree.dir/cmake_device_link.o
    [ 85%] Linking CXX executable simplify_points
    [ 86%] Built target custom_data
    [ 87%] Linking CXX executable merge_octree
    [ 88%] Linking CXX executable octree2mesh
    [ 88%] Built target octree_samples
    [ 88%] Built target octree_zbuffer
    [ 88%] Built target clip_points
    [ 88%] Built target octree_bbox
    [ 88%] Built target check_octree
    [ 88%] Linking CXX executable chamfer_distance
    [ 89%] Linking CXX executable bbox
    [ 89%] Built target points2ply
    [ 89%] Built target transform_points
    [ 90%] Linking CXX executable octree2points
    [ 91%] Linking CXX executable octree_prune
    [ 92%] Linking CXX executable octree_test
    [ 93%] Linking CXX executable upgrade_points
    [ 93%] Linking CXX executable octree
    [ 93%] Linking CXX executable octree2pts_suncg
    [ 94%] Linking CXX executable adaptive_octree
    [ 94%] Built target merge_octree
    [ 95%] Linking CXX executable play_ground
    [ 96%] Linking CXX executable upgrade_octree
    [ 97%] Built target mesh2points
    [ 97%] Linking CXX executable octree_dropout
    [ 97%] Built target simplify_points
    [ 97%] Built target octree2mesh
    [ 97%] Built target octree2points
    [ 97%] Built target bbox
    [ 97%] Built target chamfer_distance
    [ 97%] Built target octree_prune
    [ 97%] Built target adaptive_octree
    [ 97%] Built target upgrade_points
    [ 97%] Built target octree2pts_suncg
    [ 97%] Built target octree
    [ 97%] Built target upgrade_octree
    [ 97%] Built target play_ground
    [ 97%] Built target octree_dropout
    [ 97%] Built target octree_test
    [ 98%] Linking CUDA device code CMakeFiles/ply2points.dir/cmake_device_link.o
    [100%] Linking CXX executable ply2points
    [100%] Built target ply2points
    Running main() from /home/zstuxinxi/wy/O-CNN-master/octree/external/octree-ext/googletest/googletest/src/gtest_main.cc
    [==========] Running 12 tests from 7 test suites.
    [----------] Global test environment set-up.
    [----------] 2 tests from OctreeTest
    [ RUN      ] OctreeTest.TestOctreeBuild
    [       OK ] OctreeTest.TestOctreeBuild (0 ms)
    [ RUN      ] OctreeTest.TestOctreeTrim
    [       OK ] OctreeTest.TestOctreeTrim (0 ms)
    [----------] 2 tests from OctreeTest (0 ms total)
    
    [----------] 1 test from VecResizeTest
    [ RUN      ] VecResizeTest.TestVecResize
    [       OK ] VecResizeTest.TestVecResize (0 ms)
    [----------] 1 test from VecResizeTest (0 ms total)
    
    [----------] 1 test from BiliearNeigh
    [ RUN      ] BiliearNeigh.TestBiliearNeigh
    [       OK ] BiliearNeigh.TestBiliearNeigh (0 ms)
    [----------] 1 test from BiliearNeigh (0 ms total)
    
    [----------] 1 test from Coord2xyzTest
    [ RUN      ] Coord2xyzTest.TestCoord2xyz
    [       OK ] Coord2xyzTest.TestCoord2xyz (0 ms)
    [----------] 1 test from Coord2xyzTest (0 ms total)
    
    [----------] 3 tests from UtilTest
    [ RUN      ] UtilTest.TestExtractPath
    [       OK ] UtilTest.TestExtractPath (0 ms)
    [ RUN      ] UtilTest.TestExtractFilename
    [       OK ] UtilTest.TestExtractFilename (0 ms)
    [ RUN      ] UtilTest.TestExtractSuffix
    [       OK ] UtilTest.TestExtractSuffix (0 ms)
    [----------] 3 tests from UtilTest (0 ms total)
    
    [----------] 2 tests from MeshTest
    [ RUN      ] MeshTest.TestFaceCenter
    [       OK ] MeshTest.TestFaceCenter (0 ms)
    [ RUN      ] MeshTest.TestFaceNormal
    [       OK ] MeshTest.TestFaceNormal (0 ms)
    [----------] 2 tests from MeshTest (0 ms total)
    
    [----------] 2 tests from MathTest
    [ RUN      ] MathTest.TestRotMatrix1
    [       OK ] MathTest.TestRotMatrix1 (0 ms)
    [ RUN      ] MathTest.TestRotMatrix2
    [       OK ] MathTest.TestRotMatrix2 (0 ms)
    [----------] 2 tests from MathTest (0 ms total)
    
    [----------] Global test environment tear-down
    [==========] 12 tests from 7 test suites ran. (0 ms total)
    [  PASSED  ] 12 tests.
    g++ -std=c++11 -O2 -c octree2col_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree2col_op.cc.o
    g++ -std=c++11 -O2 -c octree_align_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_align_op.cc.o
    g++ -std=c++11 -O2 -c octree_batch_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_batch_op.cc.o
    g++ -std=c++11 -O2 -c octree_bilinear_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_bilinear_op.cc.o
    g++ -std=c++11 -O2 -c octree_conv_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_conv_op.cc.o
    g++ -std=c++11 -O2 -c octree_gather_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_gather_op.cc.o
    g++ -std=c++11 -O2 -c octree_grow_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_grow_op.cc.o
    g++ -std=c++11 -O2 -c octree_key_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_key_op.cc.o
    g++ -std=c++11 -O2 -c octree_mask_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_mask_op.cc.o
    g++ -std=c++11 -O2 -c octree_max_pool_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_max_pool_op.cc.o
    g++ -std=c++11 -O2 -c octree_new_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_new_op.cc.o
    g++ -std=c++11 -O2 -c octree_pad_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_pad_op.cc.o
    g++ -std=c++11 -O2 -c octree_property_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_property_op.cc.o
    g++ -std=c++11 -O2 -c octree_samples.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_samples.cc.o
    g++ -std=c++11 -O2 -c octree_search_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_search_op.cc.o
    g++ -std=c++11 -O2 -c octree_set_property_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_set_property_op.cc.o
    g++ -std=c++11 -O2 -c octree_update_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/octree_update_op.cc.o
    g++ -std=c++11 -O2 -c points2octree_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/points2octree_op.cc.o
    g++ -std=c++11 -O2 -c points_property_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/points_property_op.cc.o
    g++ -std=c++11 -O2 -c points_set_property_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/points_set_property_op.cc.o
    g++ -std=c++11 -O2 -c transform_octree_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/transform_octree_op.cc.o
    g++ -std=c++11 -O2 -c transform_points_op.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include   -L /usr/local/cuda-10.1/lib64 -D GOOGLE_CUDA=1 -L/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so.1 -L../../octree/build -loctree_lib -fPIC -lcudart  -o object/transform_points_op.cc.o
    /usr/local/cuda-10.1/bin/nvcc -std=c++11 -O2 -c tensorflow_gpu_gemm.cu.cc -I/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -I../../octree/octree -I /usr/local/cuda-10.1/include -x cu -Xcompiler -fPIC -D GOOGLE_CUDA=1 -I /usr/local   -expt-relaxed-constexpr -DNDEBUG  -o object/tensorflow_gpu_gemm.cu.cc.o
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/absl/strings/string_view.h(495): warning: expression has no effect
    
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/absl/strings/string_view.h(495): warning: expression has no effect
    
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h: In instantiation of ‘void google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::SearchFrom(google::protobuf::Map<Key, T>::size_type) [with KeyValueType = google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::KeyValuePair; Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::size_type = long unsigned int]’:
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:400:11:   required from ‘google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::iterator_base(const google::protobuf::Map<Key, T>::InnerMap*) [with KeyValueType = google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::KeyValuePair; Key = std::basic_string<char>; T = tensorflow::AttrValue]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:516:28:   required from ‘google::protobuf::Map<Key, T>::InnerMap::iterator google::protobuf::Map<Key, T>::InnerMap::begin() [with Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::InnerMap::iterator = google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::InnerMap::iterator_base<google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::KeyValuePair>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1040:25:   required from ‘google::protobuf::Map<Key, T>::const_iterator google::protobuf::Map<Key, T>::begin() const [with Key = std::basic_string<char>; T = tensorflow::AttrValue]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/framework/node_def_util.h:173:168:   required from here
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:428:29: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsNonEmptyList(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
               if (m_->TableEntryIsNonEmptyList(bucket_index_)) {
               ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:431:30: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsTree(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
               } else if (m_->TableEntryIsTree(bucket_index_)) {
                  ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h: In instantiation of ‘bool google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::revalidate_if_necessary(google::protobuf::Map<Key, T>::InnerMap::TreeIterator*) [with KeyValueType = google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::KeyValuePair; Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::InnerMap::TreeIterator = std::_Rb_tree_const_iterator<std::basic_string<char>*>]’:
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:610:12:   required from ‘void google::protobuf::Map<Key, T>::InnerMap::erase(google::protobuf::Map<Key, T>::InnerMap::iterator) [with Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::InnerMap::iterator = google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::InnerMap::iterator_base<google::protobuf::Map<std::basic_string<char>, tensorflow::AttrValue>::KeyValuePair>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1139:1:   required from ‘google::protobuf::Map<Key, T>::iterator google::protobuf::Map<Key, T>::erase(google::protobuf::Map<Key, T>::iterator) [with Key = std::basic_string<char>; T = tensorflow::AttrValue]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1144:14:   required from ‘void google::protobuf::Map<Key, T>::erase(google::protobuf::Map<Key, T>::iterator, google::protobuf::Map<Key, T>::iterator) [with Key = std::basic_string<char>; T = tensorflow::AttrValue]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1147:21:   required from ‘void google::protobuf::Map<Key, T>::clear() [with Key = std::basic_string<char>; T = tensorflow::AttrValue]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map_field_inl.h:188:1:   required from ‘void google::protobuf::internal::MapField<Derived, Key, T, key_wire_type, value_wire_type, default_enum_value>::Clear() [with Derived = tensorflow::NameAttrList_AttrEntry_DoNotUse; Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::internal::WireFormatLite::FieldType kKeyFieldType = (google::protobuf::internal::WireFormatLite::FieldType)9; google::protobuf::internal::WireFormatLite::FieldType kValueFieldType = (google::protobuf::internal::WireFormatLite::FieldType)11; int default_enum_value = 0]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/framework/attr_value.pb.h:1790:15:   required from here
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:490:29: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsNonEmptyList(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
             if (m_->TableEntryIsNonEmptyList(bucket_index_)) {
             ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:504:24: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsList(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = tensorflow::AttrValue; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
             return m_->TableEntryIsList(bucket_index_);
             ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h: In instantiation of ‘void google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::SearchFrom(google::protobuf::Map<Key, T>::size_type) [with KeyValueType = google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::KeyValuePair; Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::size_type = long unsigned int]’:
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:400:11:   required from ‘google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::iterator_base(const google::protobuf::Map<Key, T>::InnerMap*) [with KeyValueType = google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::KeyValuePair; Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:516:28:   required from ‘google::protobuf::Map<Key, T>::InnerMap::iterator google::protobuf::Map<Key, T>::InnerMap::begin() [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::InnerMap::iterator = google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::InnerMap::iterator_base<google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::KeyValuePair>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1037:27:   required from ‘google::protobuf::Map<Key, T>::iterator google::protobuf::Map<Key, T>::begin() [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1147:27:   required from ‘void google::protobuf::Map<Key, T>::clear() [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map_field_inl.h:188:1:   required from ‘void google::protobuf::internal::MapField<Derived, Key, T, key_wire_type, value_wire_type, default_enum_value>::Clear() [with Derived = tensorflow::FunctionDef_ArgAttrEntry_DoNotUse; Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::internal::WireFormatLite::FieldType kKeyFieldType = (google::protobuf::internal::WireFormatLite::FieldType)13; google::protobuf::internal::WireFormatLite::FieldType kValueFieldType = (google::protobuf::internal::WireFormatLite::FieldType)11; int default_enum_value = 0]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/framework/function.pb.h:1059:19:   required from here
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:428:29: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsNonEmptyList(google::protobuf::Map<Key, T>::size_type) const [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
               if (m_->TableEntryIsNonEmptyList(bucket_index_)) {
               ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:431:30: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsTree(google::protobuf::Map<Key, T>::size_type) const [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
               } else if (m_->TableEntryIsTree(bucket_index_)) {
                  ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h: In instantiation of ‘bool google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::revalidate_if_necessary(google::protobuf::Map<Key, T>::InnerMap::TreeIterator*) [with KeyValueType = google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::KeyValuePair; Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::InnerMap::TreeIterator = std::_Rb_tree_const_iterator<unsigned int*>]’:
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:610:12:   required from ‘void google::protobuf::Map<Key, T>::InnerMap::erase(google::protobuf::Map<Key, T>::InnerMap::iterator) [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::InnerMap::iterator = google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::InnerMap::iterator_base<google::protobuf::Map<unsigned int, tensorflow::FunctionDef_ArgAttrs>::KeyValuePair>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1139:1:   required from ‘google::protobuf::Map<Key, T>::iterator google::protobuf::Map<Key, T>::erase(google::protobuf::Map<Key, T>::iterator) [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1144:14:   required from ‘void google::protobuf::Map<Key, T>::erase(google::protobuf::Map<Key, T>::iterator, google::protobuf::Map<Key, T>::iterator) [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1147:21:   required from ‘void google::protobuf::Map<Key, T>::clear() [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map_field_inl.h:188:1:   required from ‘void google::protobuf::internal::MapField<Derived, Key, T, key_wire_type, value_wire_type, default_enum_value>::Clear() [with Derived = tensorflow::FunctionDef_ArgAttrEntry_DoNotUse; Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::internal::WireFormatLite::FieldType kKeyFieldType = (google::protobuf::internal::WireFormatLite::FieldType)13; google::protobuf::internal::WireFormatLite::FieldType kValueFieldType = (google::protobuf::internal::WireFormatLite::FieldType)11; int default_enum_value = 0]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/framework/function.pb.h:1059:19:   required from here
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:490:29: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsNonEmptyList(google::protobuf::Map<Key, T>::size_type) const [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
             if (m_->TableEntryIsNonEmptyList(bucket_index_)) {
             ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:504:24: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsList(google::protobuf::Map<Key, T>::size_type) const [with Key = unsigned int; T = tensorflow::FunctionDef_ArgAttrs; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
             return m_->TableEntryIsList(bucket_index_);
             ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h: In instantiation of ‘void google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::SearchFrom(google::protobuf::Map<Key, T>::size_type) [with KeyValueType = google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::KeyValuePair; Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::size_type = long unsigned int]’:
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:400:11:   required from ‘google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::iterator_base(const google::protobuf::Map<Key, T>::InnerMap*) [with KeyValueType = google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::KeyValuePair; Key = std::basic_string<char>; T = std::basic_string<char>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:516:28:   required from ‘google::protobuf::Map<Key, T>::InnerMap::iterator google::protobuf::Map<Key, T>::InnerMap::begin() [with Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::InnerMap::iterator = google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::InnerMap::iterator_base<google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::KeyValuePair>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1037:27:   required from ‘google::protobuf::Map<Key, T>::iterator google::protobuf::Map<Key, T>::begin() [with Key = std::basic_string<char>; T = std::basic_string<char>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1147:27:   required from ‘void google::protobuf::Map<Key, T>::clear() [with Key = std::basic_string<char>; T = std::basic_string<char>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map_field_inl.h:188:1:   required from ‘void google::protobuf::internal::MapField<Derived, Key, T, key_wire_type, value_wire_type, default_enum_value>::Clear() [with Derived = tensorflow::FunctionDef_RetEntry_DoNotUse; Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::internal::WireFormatLite::FieldType kKeyFieldType = (google::protobuf::internal::WireFormatLite::FieldType)9; google::protobuf::internal::WireFormatLite::FieldType kValueFieldType = (google::protobuf::internal::WireFormatLite::FieldType)9; int default_enum_value = 0]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/framework/function.pb.h:1104:14:   required from here
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:428:29: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsNonEmptyList(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
               if (m_->TableEntryIsNonEmptyList(bucket_index_)) {
               ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:431:30: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsTree(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
               } else if (m_->TableEntryIsTree(bucket_index_)) {
                  ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h: In instantiation of ‘bool google::protobuf::Map<Key, T>::InnerMap::iterator_base<KeyValueType>::revalidate_if_necessary(google::protobuf::Map<Key, T>::InnerMap::TreeIterator*) [with KeyValueType = google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::KeyValuePair; Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::InnerMap::TreeIterator = std::_Rb_tree_const_iterator<std::basic_string<char>*>]’:
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:610:12:   required from ‘void google::protobuf::Map<Key, T>::InnerMap::erase(google::protobuf::Map<Key, T>::InnerMap::iterator) [with Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::InnerMap::iterator = google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::InnerMap::iterator_base<google::protobuf::Map<std::basic_string<char>, std::basic_string<char> >::KeyValuePair>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1139:1:   required from ‘google::protobuf::Map<Key, T>::iterator google::protobuf::Map<Key, T>::erase(google::protobuf::Map<Key, T>::iterator) [with Key = std::basic_string<char>; T = std::basic_string<char>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1144:14:   required from ‘void google::protobuf::Map<Key, T>::erase(google::protobuf::Map<Key, T>::iterator, google::protobuf::Map<Key, T>::iterator) [with Key = std::basic_string<char>; T = std::basic_string<char>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:1147:21:   required from ‘void google::protobuf::Map<Key, T>::clear() [with Key = std::basic_string<char>; T = std::basic_string<char>]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map_field_inl.h:188:1:   required from ‘void google::protobuf::internal::MapField<Derived, Key, T, key_wire_type, value_wire_type, default_enum_value>::Clear() [with Derived = tensorflow::FunctionDef_RetEntry_DoNotUse; Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::internal::WireFormatLite::FieldType kKeyFieldType = (google::protobuf::internal::WireFormatLite::FieldType)9; google::protobuf::internal::WireFormatLite::FieldType kValueFieldType = (google::protobuf::internal::WireFormatLite::FieldType)9; int default_enum_value = 0]’
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/tensorflow/core/framework/function.pb.h:1104:14:   required from here
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:490:29: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsNonEmptyList(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
             if (m_->TableEntryIsNonEmptyList(bucket_index_)) {
             ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    /home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/include/google/protobuf/map.h:504:24: error: cannot call member function ‘bool google::protobuf::Map<Key, T>::InnerMap::TableEntryIsList(google::protobuf::Map<Key, T>::size_type) const [with Key = std::basic_string<char>; T = std::basic_string<char>; google::protobuf::Map<Key, T>::size_type = long unsigned int]’ without object
             return m_->TableEntryIsList(bucket_index_);
             ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    Makefile:91: recipe for target 'object/tensorflow_gpu_gemm.cu.cc.o' failed
    make: *** [object/tensorflow_gpu_gemm.cu.cc.o] Error 1
    INFO from ocnn: The octree key is 32 bits, the octree depth should be smaller than 8.
    Traceback (most recent call last):
      File "test_all.py", line 5, in <module>
        from test_octree2col import Octree2ColTest
      File "/home/zstuxinxi/wy/O-CNN-master/tensorflow/test/test_octree2col.py", line 8, in <module>
        from libs import *
      File "../libs/__init__.py", line 20, in <module>
        _tf_ocnn_module = tf.load_op_library(os.path.join(_current_path, 'libocnn.so'))
      File "/home/zstuxinxi/miniconda3/envs/tf-1.14.0/lib/python3.6/site-packages/tensorflow/python/framework/load_library.py", line 61, in load_op_library
        lib_handle = py_tf.TF_LoadLibrary(library_filename)
    tensorflow.python.framework.errors_impl.NotFoundError: /home/zstuxinxi/wy/O-CNN-master/tensorflow/libs/libocnn.so: cannot open shared object file: No such file or directory
    
    

    my ubuntu version is 18.04 and the cuda version is 10.1 , i also check the CUDA environment, but have no idea

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
    export PATH=/usr/local/cuda/bin:$PATH
    export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
    export CPATH=/usr/local/cuda/targets/x86_64-linux/include:$CPATH
    

    Any help would be greatly appreciated.

    opened by flyKite1998 7
  • How to build a GAN with O-CNN ?

    How to build a GAN with O-CNN ?

    Hi, I am trying to build a GAN network with your O-CNN code. Here are some problems I want to ask:

    1. During the forward process of convolution, does the input octree changes? or it is just for index.
    2. How can I constract a decoder as the generator of GAN? Should I create a original octree as one of the inputs? And how?
    3. Is there anything else I need to know for constracting a decoder?
    opened by TrepangCat 7
  • Question about data

    Question about data

    Hello. I can run the train mode and test mode with the lmdb files you gave in segmentation task. But the program will stop running when I use my files. My files is obj format, and I convert it to lmdb format. Then I start train mode but program stop running. If the data have special requirements in segmentation task? Please give me some suggestion. Thank you!

    opened by xiankun1995 7
  • Compile error: O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/transform_points.o: No such file or directory

    Compile error: O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/transform_points.o: No such file or directory

    I follow the guidance in https://github.com/microsoft/O-CNN/blob/master/docs/installation.md to compile the octree. However, after I run the code

    cd octree/external && git clone --recursive https://github.com/wang-ps/octree-ext.git
    cd .. && mkdir build && cd build
    cmake ..  && cmake --build . --config Release
    

    I have a slight modification here: change the following code in anaconda's cpp_extension.py

    def _run_ninja_build(build_directory: str, verbose: bool, error_prefix: str) -> None:
        command = ['ninja', '-v']
    

    to

    def _run_ninja_build(build_directory: str, verbose: bool, error_prefix: str) -> None:
        # command = ['ninja', '-v']
        command = ['ninja', '--version']
    

    Here is the running result:

    (base) -bash-4.2$ cmake ..  && cmake --build . --config Release
    -- octree: USE_CUDA
    -- octree: -D_GLIBCXX_USE_CXX11_ABI=1
    -- octree: USE_MINIBALL
    CMake Deprecation Warning at external/octree-ext/googletest/CMakeLists.txt:4 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    CMake Deprecation Warning at external/octree-ext/googletest/googlemock/CMakeLists.txt:45 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    CMake Deprecation Warning at external/octree-ext/googletest/googletest/CMakeLists.txt:56 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    -- Configuring done
    CMake Warning (dev) in CMakeLists.txt:
      Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC,
      empty CUDA_ARCHITECTURES not allowed.  Run "cmake --help-policy CMP0104"
      for policy details.  Use the cmake_policy command to set the policy and
      suppress this warning.
    
      CUDA_ARCHITECTURES is empty for target "octree_lib".
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Generating done
    -- Build files have been written to: /export/data/lwangcg/Vis-MVSNet/O-CNN/octree/build
    [ 27%] Built target octree_lib
    [ 30%] Built target upgrade_points
    [ 32%] Built target gtest
    [ 34%] Built target gtest_main
    [ 39%] Built target octree_test
    [ 42%] Built target upgrade_octree
    [ 44%] Built target transform_points
    [ 46%] Built target simplify_points
    [ 49%] Built target points_noise
    [ 51%] Built target check_octree
    [ 54%] Built target chamfer_distance
    [ 56%] Built target ply2points
    [ 59%] Built target octree
    [ 61%] Built target clip_points
    [ 63%] Built target adaptive_octree
    [ 66%] Built target rply
    [ 68%] Built target octree2mesh
    [ 71%] Built target merge_octree
    [ 73%] Built target custom_data
    [ 75%] Built target octree2pts_suncg
    [ 78%] Built target octree_samples
    [ 80%] Built target octree_zbuffer
    [ 83%] Built target bbox
    [ 85%] Built target mesh2points
    [ 87%] Built target octree2points
    [ 90%] Built target octree_bbox
    [ 92%] Built target octree_prune
    [ 95%] Built target octree_dropout
    [ 97%] Built target points2ply
    [100%] Built target play_ground
    

    I find the directory O-CNN/octree/build/bin is empty. Then, I set the PATH to O-CNN/octree/build/:$PATH. Later, I build O-CNN with the code:

    cd pytorch
    python setup.py install --build_octree
    

    Here is the error:

    (base) -bash-4.2$ python setup.py install --build_octree
    mkdir /export/data/lwangcg/Vis-MVSNet/O-CNN/octree/build && cd /export/data/lwangcg/Vis-MVSNet/O-CNN/octree/build && cmake .. -DABI=ON -DKEY64=ON  && cmake --build . --config Release && ./octree_test
    -- octree: USE_CUDA
    -- The CUDA compiler identification is NVIDIA 10.2.89
    -- The CXX compiler identification is GNU 8.3.0
    -- The C compiler identification is GNU 8.3.0
    -- Detecting CUDA compiler ABI info
    -- Detecting CUDA compiler ABI info - done
    -- Check for working CUDA compiler: /export/data/lwangcg/cuda-10.2/bin/nvcc - skipped
    -- Detecting CUDA compile features
    -- Detecting CUDA compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/local/GNU/gcc-8.3.0/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/local/GNU/gcc-8.3.0/bin/gcc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- octree: -D_GLIBCXX_USE_CXX11_ABI=0
    -- octree: USE_MINIBALL
    -- octree: KEY64
    CMake Deprecation Warning at external/octree-ext/googletest/CMakeLists.txt:4 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    CMake Deprecation Warning at external/octree-ext/googletest/googlemock/CMakeLists.txt:45 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    CMake Deprecation Warning at external/octree-ext/googletest/googletest/CMakeLists.txt:56 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    -- Found PythonInterp: /export/data/lwangcg/anaconda3/bin/python (found version "3.7.4")
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    -- Configuring done
    CMake Warning (dev) in CMakeLists.txt:
      Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC,
      empty CUDA_ARCHITECTURES not allowed.  Run "cmake --help-policy CMP0104"
      for policy details.  Use the cmake_policy command to set the policy and
      suppress this warning.
    
      CUDA_ARCHITECTURES is empty for target "octree_lib".
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Generating done
    -- Build files have been written to: /export/data/lwangcg/Vis-MVSNet/O-CNN/octree/build
    Scanning dependencies of target octree_lib
    [  1%] Building CXX object CMakeFiles/octree_lib.dir/octree/contour.cpp.o
    [  2%] Building CXX object CMakeFiles/octree_lib.dir/octree/filenames.cpp.o
    [  3%] Building CXX object CMakeFiles/octree_lib.dir/octree/marching_cube.cpp.o
    [  4%] Building CXX object CMakeFiles/octree_lib.dir/octree/marching_cube_table.cpp.o
    [  6%] Building CXX object CMakeFiles/octree_lib.dir/octree/math_functions.cpp.o
    [  7%] Building CXX object CMakeFiles/octree_lib.dir/octree/merge_octrees.cpp.o
    [  8%] Building CXX object CMakeFiles/octree_lib.dir/octree/mesh.cpp.o
    [  9%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree.cpp.o
    [ 10%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_conv.cpp.o
    [ 12%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_info.cpp.o
    [ 13%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_nn.cpp.o
    [ 14%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_parser.cpp.o
    [ 15%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_samples.cpp.o
    [ 16%] Building CXX object CMakeFiles/octree_lib.dir/octree/octree_value.cpp.o
    [ 18%] Building CXX object CMakeFiles/octree_lib.dir/octree/points.cpp.o
    [ 19%] Building CXX object CMakeFiles/octree_lib.dir/octree/points_info.cpp.o
    [ 20%] Building CXX object CMakeFiles/octree_lib.dir/octree/points_parser.cpp.o
    [ 21%] Building CXX object CMakeFiles/octree_lib.dir/octree/simplify_points.cpp.o
    [ 22%] Building CXX object CMakeFiles/octree_lib.dir/octree/transform_octree.cpp.o
    [ 24%] Building CXX object CMakeFiles/octree_lib.dir/octree/transform_points.cpp.o
    [ 25%] Building CUDA object CMakeFiles/octree_lib.dir/octree/octree_nn.cu.o
    [ 26%] Building CUDA object CMakeFiles/octree_lib.dir/octree/octree_parser.cu.o
    [ 27%] Linking CXX static library liboctree_lib.a
    [ 27%] Built target octree_lib
    Scanning dependencies of target upgrade_points
    [ 28%] Building CXX object CMakeFiles/upgrade_points.dir/tools/upgrade_points.cpp.o
    [ 30%] Linking CXX executable upgrade_points
    [ 30%] Built target upgrade_points
    Scanning dependencies of target gtest
    [ 31%] Building CXX object external/octree-ext/googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
    [ 32%] Linking CXX static library ../../../../lib/libgtest.a
    [ 32%] Built target gtest
    Scanning dependencies of target gtest_main
    [ 33%] Building CXX object external/octree-ext/googletest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
    [ 34%] Linking CXX static library ../../../../lib/libgtest_main.a
    [ 34%] Built target gtest_main
    Scanning dependencies of target octree_test
    [ 36%] Building CXX object CMakeFiles/octree_test.dir/test/test_octree.cpp.o
    [ 37%] Building CXX object CMakeFiles/octree_test.dir/test/test_octree_nn.cpp.o
    [ 38%] Building CXX object CMakeFiles/octree_test.dir/test/test_util.cpp.o
    [ 39%] Linking CXX executable octree_test
    [ 39%] Built target octree_test
    Scanning dependencies of target upgrade_octree
    [ 40%] Building CXX object CMakeFiles/upgrade_octree.dir/tools/upgrade_octree.cpp.o
    [ 42%] Linking CXX executable upgrade_octree
    [ 42%] Built target upgrade_octree
    Scanning dependencies of target transform_points
    [ 43%] Building CXX object CMakeFiles/transform_points.dir/tools/transform_points.cpp.o
    [ 44%] Linking CXX executable transform_points
    [ 44%] Built target transform_points
    Scanning dependencies of target simplify_points
    [ 45%] Building CXX object CMakeFiles/simplify_points.dir/tools/simplify_points.cpp.o
    [ 46%] Linking CXX executable simplify_points
    [ 46%] Built target simplify_points
    Scanning dependencies of target points_noise
    [ 48%] Building CXX object CMakeFiles/points_noise.dir/tools/points_noise.cpp.o
    [ 49%] Linking CXX executable points_noise
    [ 49%] Built target points_noise
    Scanning dependencies of target check_octree
    [ 50%] Building CXX object CMakeFiles/check_octree.dir/tools/check_octree.cpp.o
    [ 51%] Linking CXX executable check_octree
    [ 51%] Built target check_octree
    Scanning dependencies of target chamfer_distance
    [ 53%] Building CXX object CMakeFiles/chamfer_distance.dir/tools/chamfer_distance.cpp.o
    [ 54%] Linking CXX executable chamfer_distance
    [ 54%] Built target chamfer_distance
    Scanning dependencies of target ply2points
    [ 55%] Building CXX object CMakeFiles/ply2points.dir/tools/ply2points.cpp.o
    [ 56%] Linking CXX executable ply2points
    [ 56%] Built target ply2points
    Scanning dependencies of target octree
    [ 57%] Building CXX object CMakeFiles/octree.dir/tools/build_octree.cpp.o
    [ 59%] Linking CXX executable octree
    [ 59%] Built target octree
    Scanning dependencies of target clip_points
    [ 60%] Building CXX object CMakeFiles/clip_points.dir/tools/clip_points.cpp.o
    [ 61%] Linking CXX executable clip_points
    [ 61%] Built target clip_points
    Scanning dependencies of target adaptive_octree
    [ 62%] Building CXX object CMakeFiles/adaptive_octree.dir/tools/adaptive_octree.cpp.o
    [ 63%] Linking CXX executable adaptive_octree
    [ 63%] Built target adaptive_octree
    Scanning dependencies of target rply
    [ 65%] Building C object CMakeFiles/rply.dir/external/octree-ext/rply-1.1.4/rply.c.o
    [ 66%] Linking C static library librply.a
    [ 66%] Built target rply
    Scanning dependencies of target octree2mesh
    [ 67%] Building CXX object CMakeFiles/octree2mesh.dir/tools/octree2mesh.cpp.o
    [ 68%] Linking CXX executable octree2mesh
    [ 68%] Built target octree2mesh
    Scanning dependencies of target merge_octree
    [ 69%] Building CXX object CMakeFiles/merge_octree.dir/tools/merge_octree.cpp.o
    [ 71%] Linking CXX executable merge_octree
    [ 71%] Built target merge_octree
    Scanning dependencies of target custom_data
    [ 72%] Building CXX object CMakeFiles/custom_data.dir/tools/custom_data.cpp.o
    [ 73%] Linking CXX executable custom_data
    [ 73%] Built target custom_data
    Scanning dependencies of target octree2pts_suncg
    [ 74%] Building CXX object CMakeFiles/octree2pts_suncg.dir/tools/octree2pts_suncg.cpp.o
    [ 75%] Linking CXX executable octree2pts_suncg
    [ 75%] Built target octree2pts_suncg
    Scanning dependencies of target octree_samples
    [ 77%] Building CXX object CMakeFiles/octree_samples.dir/tools/octree_samples.cpp.o
    [ 78%] Linking CXX executable octree_samples
    [ 78%] Built target octree_samples
    Scanning dependencies of target octree_zbuffer
    [ 79%] Building CXX object CMakeFiles/octree_zbuffer.dir/tools/octree_zbuffer.cpp.o
    [ 80%] Linking CXX executable octree_zbuffer
    [ 80%] Built target octree_zbuffer
    Scanning dependencies of target bbox
    [ 81%] Building CXX object CMakeFiles/bbox.dir/tools/bbox.cpp.o
    [ 83%] Linking CXX executable bbox
    [ 83%] Built target bbox
    Scanning dependencies of target mesh2points
    [ 84%] Building CXX object CMakeFiles/mesh2points.dir/tools/mesh2points.cpp.o
    [ 85%] Linking CXX executable mesh2points
    [ 85%] Built target mesh2points
    Scanning dependencies of target octree2points
    [ 86%] Building CXX object CMakeFiles/octree2points.dir/tools/octree2points.cpp.o
    [ 87%] Linking CXX executable octree2points
    [ 87%] Built target octree2points
    Scanning dependencies of target octree_bbox
    [ 89%] Building CXX object CMakeFiles/octree_bbox.dir/tools/octree_bbox.cpp.o
    [ 90%] Linking CXX executable octree_bbox
    [ 90%] Built target octree_bbox
    Scanning dependencies of target octree_prune
    [ 91%] Building CXX object CMakeFiles/octree_prune.dir/tools/octree_prune.cpp.o
    [ 92%] Linking CXX executable octree_prune
    [ 92%] Built target octree_prune
    Scanning dependencies of target octree_dropout
    [ 93%] Building CXX object CMakeFiles/octree_dropout.dir/tools/octree_dropout.cpp.o
    [ 95%] Linking CXX executable octree_dropout
    [ 95%] Built target octree_dropout
    Scanning dependencies of target points2ply
    [ 96%] Building CXX object CMakeFiles/points2ply.dir/tools/points2ply.cpp.o
    [ 97%] Linking CXX executable points2ply
    [ 97%] Built target points2ply
    Scanning dependencies of target play_ground
    [ 98%] Building CXX object CMakeFiles/play_ground.dir/tools/play_ground.cpp.o
    [100%] Linking CXX executable play_ground
    [100%] Built target play_ground
    Running main() from /export/data/lwangcg/Vis-MVSNet/O-CNN/octree/external/octree-ext/googletest/googletest/src/gtest_main.cc
    [==========] Running 12 tests from 7 test suites.
    [----------] Global test environment set-up.
    [----------] 2 tests from OctreeTest
    [ RUN      ] OctreeTest.TestOctreeBuild
    /export/data/lwangcg/Vis-MVSNet/O-CNN/octree/test/test_octree.cpp:193: Failure
    Expected equality of these values:
      octree_value.fval(16.5f, 16.5f, 0.5f).first
        Which is: -0.492761
      -0.5f
        Which is: -0.5
    [  FAILED  ] OctreeTest.TestOctreeBuild (0 ms)
    [ RUN      ] OctreeTest.TestOctreeTrim
    [       OK ] OctreeTest.TestOctreeTrim (1 ms)
    [----------] 2 tests from OctreeTest (1 ms total)
    
    [----------] 1 test from VecResizeTest
    [ RUN      ] VecResizeTest.TestVecResize
    [       OK ] VecResizeTest.TestVecResize (0 ms)
    [----------] 1 test from VecResizeTest (0 ms total)
    
    [----------] 1 test from BiliearNeigh
    [ RUN      ] BiliearNeigh.TestBiliearNeigh
    [       OK ] BiliearNeigh.TestBiliearNeigh (1 ms)
    [----------] 1 test from BiliearNeigh (1 ms total)
    
    [----------] 1 test from Coord2xyzTest
    [ RUN      ] Coord2xyzTest.TestCoord2xyz
    [       OK ] Coord2xyzTest.TestCoord2xyz (0 ms)
    [----------] 1 test from Coord2xyzTest (0 ms total)
    
    [----------] 3 tests from UtilTest
    [ RUN      ] UtilTest.TestExtractPath
    [       OK ] UtilTest.TestExtractPath (0 ms)
    [ RUN      ] UtilTest.TestExtractFilename
    [       OK ] UtilTest.TestExtractFilename (0 ms)
    [ RUN      ] UtilTest.TestExtractSuffix
    [       OK ] UtilTest.TestExtractSuffix (0 ms)
    [----------] 3 tests from UtilTest (0 ms total)
    
    [----------] 2 tests from MeshTest
    [ RUN      ] MeshTest.TestFaceCenter
    [       OK ] MeshTest.TestFaceCenter (0 ms)
    [ RUN      ] MeshTest.TestFaceNormal
    [       OK ] MeshTest.TestFaceNormal (0 ms)
    [----------] 2 tests from MeshTest (0 ms total)
    
    [----------] 2 tests from MathTest
    [ RUN      ] MathTest.TestRotMatrix1
    [       OK ] MathTest.TestRotMatrix1 (0 ms)
    [ RUN      ] MathTest.TestRotMatrix2
    [       OK ] MathTest.TestRotMatrix2 (0 ms)
    [----------] 2 tests from MathTest (0 ms total)
    
    [----------] Global test environment tear-down
    [==========] 12 tests from 7 test suites ran. (3 ms total)
    [  PASSED  ] 11 tests.
    [  FAILED  ] 1 test, listed below:
    [  FAILED  ] OctreeTest.TestOctreeBuild
    
     1 FAILED TEST
    running install
    running bdist_egg
    running egg_info
    writing ocnn.egg-info/PKG-INFO
    writing dependency_links to ocnn.egg-info/dependency_links.txt
    writing requirements to ocnn.egg-info/requires.txt
    writing top-level names to ocnn.egg-info/top_level.txt
    reading manifest file 'ocnn.egg-info/SOURCES.txt'
    writing manifest file 'ocnn.egg-info/SOURCES.txt'
    installing library code to build/bdist.linux-x86_64/egg
    running install_lib
    running build_py
    running build_ext
    building 'ocnn.nn' extension
    Emitting ninja build file /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/build.ninja...
    Compiling objects...
    Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
    1.6.0
    g++ -pthread -shared -B /data/lwangcg/anaconda3/compiler_compat -L/data/lwangcg/anaconda3/lib -Wl,-rpath=/data/lwangcg/anaconda3/lib -Wl,--no-as-needed -Wl,--sysroot=/ -I/export/data/lwangcg/cuda-10.2/include -I/export/data/lwangcg/cuda-10.2/include -I/export/data/lwangcg/cuda-10.2/include -I/export/data/lwangcg/cuda-10.2/include /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree2col.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree_batch.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree_conv.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree_pad.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree_pool.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree_property.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/octree_samples.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/point2octree.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/pybind.o /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/transform_points.o -L/export/data/lwangcg/Vis-MVSNet/O-CNN/octree/build -L/export/data/lwangcg/anaconda3/lib/python3.7/site-packages/torch/lib -L/export/data/lwangcg/cuda-10.2/lib64 -loctree_lib -lcublas -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda -o build/lib.linux-x86_64-3.7/ocnn/nn.cpython-37m-x86_64-linux-gnu.so
    g++: error: /export/data/lwangcg/Vis-MVSNet/O-CNN/pytorch/build/temp.linux-x86_64-3.7/./cpp/transform_points.o: No such file or directory
    error: command 'g++' failed with exit status 1
    
    opened by NoOneUST 6
  • nvcc fatal : Unknown option flto

    nvcc fatal : Unknown option flto

    upon running cmake ../ as shown in installation instructions no error is encountered, however upon running cmake --build . --config Release the following error is obtained -

    [ 96%] Built target ply2points Scanning dependencies of target pyoctree [ 97%] Building CXX object python/CMakeFiles/pyoctree.dir/pyoctree.cpp.o [ 98%] Linking CUDA device code CMakeFiles/pyoctree.dir/cmake_device_link.o nvcc fatal : Unknown option 'flto' python/CMakeFiles/pyoctree.dir/build.make:84: recipe for target 'python/CMakeFiles/pyoctree.dir/cmake_device_link.o' failed make[2]: *** [python/CMakeFiles/pyoctree.dir/cmake_device_link.o] Error 1 CMakeFiles/Makefile2:1017: recipe for target 'python/CMakeFiles/pyoctree.dir/all' failed make[1]: *** [python/CMakeFiles/pyoctree.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

    What could be a possible reason for the same ?

    opened by aradhyamathur 6
  • Validate the model

    Validate the model

    Hello, would you like to ask how do you perform a verification test on the trained model and what kind of file is the test, is it .off or .points, or an octree file? I want to use your model for pre-train, but I have the following problem:

    Cannot copy param 0 weights from layer 'ip2'; shape mismatch. Source param shape is 40 128 (5120); target param shape is 5 128 (640). To learn this layer's parameters from scratch rather than copying from a saved net, rename the layer.

    你好,想请问您如何对训练好的模型进行验证测试,测试的档案类别为何,是.off还是.points,或是octree档

    opened by eric85810 6
  • tf codes

    tf codes

    When I run the dataset.py to get the tensor of tfrecords,the results of the tensor's shape is ?,and i do not konw how to solve it. like this: Use for ... in dataset: to iterate over a dataset. If using tf.estimator, return the Dataset object directly from your input function. As a last resort, you can use tf.compat.v1.data.make_one_shot_iterator(dataset). Tensor("octree_dataset/IteratorGetNext:0", shape=(?,), dtype=int8) Tensor("octree_dataset/IteratorGetNext:1", shape=(?,), dtype=int64) Tensor("octree_encoder/depth_2/octree_max_pool/OctreePad:0", shape=(1, 128, ?, 1), dtype=float32) is that right? when I reomove batch(batch_size) , I meet this problem: tensorflow.python.framework.errors_impl.InvalidArgumentError: Shape must be rank 1 but is rank 0 for 'ParseExample/ParseExample' (op: 'ParseExample') with input shapes: [], [0], [], [], [0], [0].

    opened by CRISZJ 6
  • how to prepare data if my point cloud has no normal information

    how to prepare data if my point cloud has no normal information

    hi i am new 1: i want to know if my point cloud has no normal information, how to prepare my input data and where i have to modify, whether is the input data channel? 2: how to convert the final result to point cloud?

    opened by gaoshang100 6
Releases(ocnn-3.0)
Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
CARMS: Categorical-Antithetic-REINFORCE Multi-Sample Gradient Estimator

CARMS: Categorical-Antithetic-REINFORCE Multi-Sample Gradient Estimator This is the official code repository for NeurIPS 2021 paper: CARMS: Categorica

Alek Dimitriev 1 Jul 09, 2022
Official repository for ABC-GAN

ABC-GAN The work represented in this repository is the result of a 14 week semesterthesis on photo-realistic image generation using generative adversa

IgorSusmelj 10 Jun 23, 2022
Study of human inductive biases in CNNs and Transformers.

Are Convolutional Neural Networks or Transformers more like human vision? This repository contains the code and fine-tuned models of popular Convoluti

Shikhar Tuli 39 Dec 08, 2022
Learning from Synthetic Humans, CVPR 2017

Learning from Synthetic Humans (SURREAL) Gül Varol, Javier Romero, Xavier Martin, Naureen Mahmood, Michael J. Black, Ivan Laptev and Cordelia Schmid,

Gul Varol 538 Dec 18, 2022
D2LV: A Data-Driven and Local-Verification Approach for Image Copy Detection

Facebook AI Image Similarity Challenge: Matching Track —— Team: imgFp This is the source code of our 3rd place solution to matching track of Image Sim

16 Dec 25, 2022
Code for "Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo"

Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo This repository includes the source code for our CVPR 2021 paper on multi-view mult

Jiahao Lin 66 Jan 04, 2023
AIR^2 for Interaction Prediction

This is the repository for AIR^2 for Interaction Prediction. Explanation of the solution: Video: link License AIR is released under the Apache 2.0 lic

21 Sep 27, 2022
Teaches a student network from the knowledge obtained via training of a larger teacher network

Distilling-the-knowledge-in-neural-network Teaches a student network from the knowledge obtained via training of a larger teacher network This is an i

Abhishek Sinha 146 Dec 11, 2022
Implementation of paper "Towards a Unified View of Parameter-Efficient Transfer Learning"

A Unified Framework for Parameter-Efficient Transfer Learning This is the official implementation of the paper: Towards a Unified View of Parameter-Ef

Junxian He 216 Dec 29, 2022
Image data augmentation scheduler for albumentations transforms

albu_scheduler Scheduler for albumentations transforms based on PyTorch schedulers interface Usage TransformMultiStepScheduler import albumentations a

19 Aug 04, 2021
[ICLR'19] Trellis Networks for Sequence Modeling

TrellisNet for Sequence Modeling This repository contains the experiments done in paper Trellis Networks for Sequence Modeling by Shaojie Bai, J. Zico

CMU Locus Lab 460 Oct 13, 2022
Centroid-UNet is deep neural network model to detect centroids from satellite images.

Centroid UNet - Locating Object Centroids in Aerial/Serial Images Introduction Centroid-UNet is deep neural network model to detect centroids from Aer

GIC-AIT 19 Dec 08, 2022
SHRIMP: Sparser Random Feature Models via Iterative Magnitude Pruning

SHRIMP: Sparser Random Feature Models via Iterative Magnitude Pruning This repository is the official implementation of "SHRIMP: Sparser Random Featur

Bobby Shi 0 Dec 16, 2021
Locally Differentially Private Distributed Deep Learning via Knowledge Distillation (LDP-DL)

Locally Differentially Private Distributed Deep Learning via Knowledge Distillation (LDP-DL) A preprint version of our paper: Link here This is a samp

Di Zhuang 3 Jan 08, 2023
Why Are You Weird? Infusing Interpretability in Isolation Forest for Anomaly Detection

Why, hello there! This is the supporting notebook for the research paper — Why Are You Weird? Infusing Interpretability in Isolation Forest for Anomal

2 Dec 14, 2021
《K-Adapter: Infusing Knowledge into Pre-Trained Models with Adapters》(2020)

K-Adapter: Infusing Knowledge into Pre-Trained Models with Adapters This repository is the implementation of the paper "K-Adapter: Infusing Knowledge

Microsoft 118 Dec 13, 2022
HyperPose is a library for building high-performance custom pose estimation applications.

HyperPose is a library for building high-performance custom pose estimation applications.

TensorLayer Community 1.2k Jan 04, 2023
RE3: State Entropy Maximization with Random Encoders for Efficient Exploration

State Entropy Maximization with Random Encoders for Efficient Exploration (RE3) (ICML 2021) Code for State Entropy Maximization with Random Encoders f

Younggyo Seo 47 Nov 29, 2022
I3-master-layout - Simple master and stack layout script

Simple master and stack layout script | ------ | ----- | | | | | Ma

Tobias S 18 Dec 05, 2022