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
This is a project based on ConvNets used to identify whether a road is clean or dirty. We have used MobileNet as our base architecture and the weights are based on imagenet.

PROJECT TITLE: CLEAN/DIRTY ROAD DETECTION USING TRANSFER LEARNING Description: This is a project based on ConvNets used to identify whether a road is

Faizal Karim 3 Nov 06, 2022
PyTorch implementation of "Simple and Deep Graph Convolutional Networks"

Simple and Deep Graph Convolutional Networks This repository contains a PyTorch implementation of "Simple and Deep Graph Convolutional Networks".(http

chenm 253 Dec 08, 2022
Jittor implementation of PCT:Point Cloud Transformer

PCT: Point Cloud Transformer This is a Jittor implementation of PCT: Point Cloud Transformer.

MenghaoGuo 547 Jan 03, 2023
[v1 (ISBI'21) + v2] MedMNIST: A Large-Scale Lightweight Benchmark for 2D and 3D Biomedical Image Classification

MedMNIST Project (Website) | Dataset (Zenodo) | Paper (arXiv) | MedMNIST v1 (ISBI'21) Jiancheng Yang, Rui Shi, Donglai Wei, Zequan Liu, Lin Zhao, Bili

683 Dec 28, 2022
Constrained Logistic Regression - How to apply specific constraints to logistic regression's coefficients

Constrained Logistic Regression Sample implementation of constructing a logistic regression with given ranges on each of the feature's coefficients (v

1 Dec 29, 2021
ML-Ensemble – high performance ensemble learning

A Python library for high performance ensemble learning ML-Ensemble combines a Scikit-learn high-level API with a low-level computational graph framew

Sebastian Flennerhag 764 Dec 31, 2022
PyTorch implementation for our paper "Deep Facial Synthesis: A New Challenge"

FSGAN Here is the official PyTorch implementation for our paper "Deep Facial Synthesis: A New Challenge". This project achieve the translation between

Deng-Ping Fan 32 Oct 10, 2022
Official Pytorch Implementation of Relational Self-Attention: What's Missing in Attention for Video Understanding

Relational Self-Attention: What's Missing in Attention for Video Understanding This repository is the official implementation of "Relational Self-Atte

mandos 43 Dec 07, 2022
GPU Programming with Julia - course at the Swiss National Supercomputing Centre (CSCS), ETH Zurich

Course Description The programming language Julia is being more and more adopted in High Performance Computing (HPC) due to its unique way to combine

Samuel Omlin 192 Jan 03, 2023
DNA-RECON { Automatic Web Reconnaissance Tool }

ABOUT TOOL : DNA-RECON is an automatic web reconnaissance tool written in python. This tool made for reconnaissance and information gathering with an

NIKUNJ BHATT 25 Aug 11, 2021
Multi-Anchor Active Domain Adaptation for Semantic Segmentation (ICCV 2021 Oral)

Multi-Anchor Active Domain Adaptation for Semantic Segmentation Munan Ning*, Donghuan Lu*, Dong Wei†, Cheng Bian, Chenglang Yuan, Shuang Yu, Kai Ma, Y

Munan Ning 36 Dec 07, 2022
Create Own QR code with Python

Create-Own-QR-code Create Own QR code with Python SO guys in here, you have to install pyqrcode 2. open CMD and type python -m pip install pyqrcode

JehanKandy 10 Jul 13, 2022
Paddle-Skeleton-Based-Action-Recognition - DecoupleGCN-DropGraph, ASGCN, AGCN, STGCN

Paddle-Skeleton-Action-Recognition DecoupleGCN-DropGraph, ASGCN, AGCN, STGCN. Yo

Chenxu Peng 3 Nov 02, 2022
A tutorial on training a DarkNet YOLOv4 model for the CrowdHuman dataset

YOLOv4 CrowdHuman Tutorial This is a tutorial demonstrating how to train a YOLOv4 people detector using Darknet and the CrowdHuman dataset. Table of c

JK Jung 118 Nov 10, 2022
Detecting Potentially Harmful and Protective Suicide-related Content on Twitter

TwitterSuicideML Scripts for reproducing the Machine Learning analysis of the paper: Detecting Potentially Harmful and Protective Suicide-related Cont

3 Oct 17, 2022
Supplementary code for the AISTATS 2021 paper "Matern Gaussian Processes on Graphs".

Matern Gaussian Processes on Graphs This repo provides an extension for gpflow with Matérn kernels, inducing variables and trainable models implemente

41 Dec 17, 2022
Python implementation of Wu et al (2018)'s registration fusion

reg-fusion Projection of a central sulcus probability map using the RF-ANTs approach (right hemisphere shown). This is a Python implementation of Wu e

Dan Gale 26 Nov 12, 2021
[ICCV 2021] FaPN: Feature-aligned Pyramid Network for Dense Image Prediction

FaPN: Feature-aligned Pyramid Network for Dense Image Prediction [arXiv] [Project Page] @inproceedings{ huang2021fapn, title={{FaPN}: Feature-alig

Shihua Huang 23 Jul 22, 2022
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

25.7k Jan 09, 2023
Bravia core script for python

Bravia-Core-Script You need to have a mandatory account If this L3 does not work, try another L3. enjoy

5 Dec 26, 2021