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
Implementation of GeoDiff: a Geometric Diffusion Model for Molecular Conformation Generation (ICLR 2022).

GeoDiff: a Geometric Diffusion Model for Molecular Conformation Generation [OpenReview] [arXiv] [Code] The official implementation of GeoDiff: A Geome

Minkai Xu 155 Dec 26, 2022
Keras + Hyperopt: A very simple wrapper for convenient hyperparameter optimization

This project is now archived. It's been fun working on it, but it's time for me to move on. Thank you for all the support and feedback over the last c

Max Pumperla 2.1k Jan 03, 2023
pytorchのスライス代入操作をonnxに変換する際にScatterNDならないようにするサンプル

pytorch_remove_ScatterND pytorchのスライス代入操作をonnxに変換する際にScatterNDならないようにするサンプル。 スライスしたtensorにそのまま代入してしまうとScatterNDになるため、計算結果をcatで新しいtensorにする。 python ver

2 Dec 01, 2022
TensorFlow implementation of the paper "Hierarchical Attention Networks for Document Classification"

Hierarchical Attention Networks for Document Classification This is an implementation of the paper Hierarchical Attention Networks for Document Classi

Quoc-Tuan Truong 83 Dec 05, 2022
Vignette is a face tracking software for characters using osu!framework.

Vignette is a face tracking software for characters using osu!framework. Unlike most solutions, Vignette is: Made with osu!framework, the game framewo

Vignette 412 Dec 28, 2022
EM-POSE 3D Human Pose Estimation from Sparse Electromagnetic Trackers.

EM-POSE: 3D Human Pose Estimation from Sparse Electromagnetic Trackers This repository contains the code to our paper published at ICCV 2021. For ques

Facebook Research 62 Dec 14, 2022
Understanding Convolution for Semantic Segmentation

TuSimple-DUC by Panqu Wang, Pengfei Chen, Ye Yuan, Ding Liu, Zehua Huang, Xiaodi Hou, and Garrison Cottrell. Introduction This repository is for Under

TuSimple 585 Dec 31, 2022
YuNetのPythonでのONNX、TensorFlow-Lite推論サンプル

YuNet-ONNX-TFLite-Sample YuNetのPythonでのONNX、TensorFlow-Lite推論サンプルです。 TensorFlow-LiteモデルはPINTO0309/PINTO_model_zoo/144_YuNetのものを使用しています。 Requirement Op

KazuhitoTakahashi 8 Nov 17, 2021
Differentiable Neural Computers, Sparse Access Memory and Sparse Differentiable Neural Computers, for Pytorch

Differentiable Neural Computers and family, for Pytorch Includes: Differentiable Neural Computers (DNC) Sparse Access Memory (SAM) Sparse Differentiab

ixaxaar 302 Dec 14, 2022
Towards uncontrained hand-object reconstruction from RGB videos

Towards uncontrained hand-object reconstruction from RGB videos Yana Hasson, Gül Varol, Ivan Laptev and Cordelia Schmid Project page Paper Table of Co

Yana 69 Dec 27, 2022
Data, notebooks, and articles associated with the RSNA AI Deep Learning Lab at RSNA 2021

RSNA AI Deep Learning Lab 2021 Intro Welcome Deep Learners! This document provides all the information you need to participate in the RSNA AI Deep Lea

RSNA 65 Dec 16, 2022
Self-Regulated Learning for Egocentric Video Activity Anticipation

Self-Regulated Learning for Egocentric Video Activity Anticipation Introduction This is a Pytorch implementation of the model described in our paper:

qzhb 13 Sep 23, 2022
Convolutional Neural Networks

Darknet Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation. D

Joseph Redmon 23.7k Jan 05, 2023
My Body is a Cage: the Role of Morphology in Graph-Based Incompatible Control

My Body is a Cage: the Role of Morphology in Graph-Based Incompatible Control

yobi byte 29 Oct 09, 2022
ProjectOxford-ClientSDK - This repo has moved :house: Visit our website for the latest SDKs & Samples

This project has moved 🏠 We heard your feedback! This repo has been deprecated and each project has moved to a new home in a repo scoped by API and p

Microsoft 970 Nov 28, 2022
For AILAB: Cross Lingual Retrieval on Yelp Search Engine

Cross-lingual Information Retrieval Model for Document Search Train Phase CUDA_VISIBLE_DEVICES="0,1,2,3" \ python -m torch.distributed.launch --nproc_

Chilia Waterhouse 104 Nov 12, 2022
VISSL is FAIR's library of extensible, modular and scalable components for SOTA Self-Supervised Learning with images.

What's New Below we share, in reverse chronological order, the updates and new releases in VISSL. All VISSL releases are available here. [Oct 2021]: V

Meta Research 2.9k Jan 07, 2023
https://arxiv.org/abs/2102.11005

LogME LogME: Practical Assessment of Pre-trained Models for Transfer Learning How to use Just feed the features f and labels y to the function, and yo

THUML: Machine Learning Group @ THSS 149 Dec 19, 2022
This is my codes that can visualize the psnr image in testing videos.

CVPR2018-Baseline-PSNRplot This is my codes that can visualize the psnr image in testing videos. Future Frame Prediction for Anomaly Detection – A New

Wenhao Yang 12 May 29, 2021
Self-Supervised Deep Blind Video Super-Resolution

Self-Blind-VSR Paper | Discussion Self-Supervised Deep Blind Video Super-Resolution By Haoran Bai and Jinshan Pan Abstract Existing deep learning-base

Haoran Bai 35 Dec 09, 2022