This is the code repository implementing the paper "TreePartNet: Neural Decomposition of Point Clouds for 3D Tree Reconstruction".

Overview

TreePartNet

This is the code repository implementing the paper "TreePartNet: Neural Decomposition of Point Clouds for 3D Tree Reconstruction".

teaser

Dependecy and Setup

The project is tested on Ubuntu 18.04 with cuda10.1.

Requirements:

  • python==3.7
  • pytorch==1.5.0
  • pytorch-lightning==0.8.5

The PointNet++ pytorch implementation is modified from Pointnet2_Pytorch. Install dependencies:

pip install -r requirements.txt

Data

The gravity direction in tree point cloud is down along y-axis! All tree point cloud are normalized. see the code in utils for more details.

data

  • Dataset for foliage segmentation: 16K points per tree, hdf5 format, Download Link
  • Dataset for neural decomposition: 8K points per tree, hdf5 format, Download Link

Training

After downloading the data and put them in data folder, the foliage segmentation network can be trained as

python train_foliage.py

and the TreePartNet can be trained using

python train.py

The hyperparameters can be modified in these 2 python files.

Testing

The trained checkpoints can be found in dir fckpt and ckpt. To predict foliage segmentation on test data set above:

python test_foliage.py

and neural decomposition:

python test.py

Reference

If you find our work useful in your research, please cite us using the following BibTeX entry.

@article{TreePartNet21,
title={TreePartNet: Neural Decomposition of Point Clouds for 3D Tree Reconstruction},
author={Yanchao Liu and Jianwei Guo and Bedrich Benes and Oliver Deussen and Xiaopeng Zhang and Hui Huang},
journal={ACM Transactions on Graphics (Proceedings of SIGGRAPH ASIA)},
volume={40},
number={6},
pages={232:1--232:16},
year={2021},
} 
You might also like...
Implementing Vision Transformer (ViT) in PyTorch
Implementing Vision Transformer (ViT) in PyTorch

Lightning-Hydra-Template A clean and scalable template to kickstart your deep learning project 🚀 ⚡ 🔥 Click on Use this template to initialize new re

BisQue is a web-based platform designed to provide researchers with organizational and quantitative analysis tools for 5D image data. Users can extend BisQue by implementing containerized ML workflows.
BisQue is a web-based platform designed to provide researchers with organizational and quantitative analysis tools for 5D image data. Users can extend BisQue by implementing containerized ML workflows.

Overview BisQue is a web-based platform specifically designed to provide researchers with organizational and quantitative analysis tools for up to 5D

Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy
Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy

Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy Simplex Algorithm is a popular algorithm for linear programmi

This repo is about implementing different approaches of pose estimation and also is a sub-task of the smart hospital bed project :smile:

Pose-Estimation This repo is a sub-task of the smart hospital bed project which is about implementing the task of pose estimation 😄 Many thanks to th

Pynomial - a lightweight python library for implementing the many confidence intervals for the risk parameter of a binomial model

Pynomial - a lightweight python library for implementing the many confidence intervals for the risk parameter of a binomial model

This is an open source library implementing hyperbox-based machine learning algorithms
This is an open source library implementing hyperbox-based machine learning algorithms

hyperbox-brain is a Python open source toolbox implementing hyperbox-based machine learning algorithms built on top of scikit-learn and is distributed

The LaTeX and Python code for generating the paper, experiments' results and visualizations reported in each paper is available (whenever possible) in the paper's directory
The LaTeX and Python code for generating the paper, experiments' results and visualizations reported in each paper is available (whenever possible) in the paper's directory

This repository contains the software implementation of most algorithms used or developed in my research. The LaTeX and Python code for generating the

Inference code for "StylePeople: A Generative Model of Fullbody Human Avatars" paper. This code is for the part of the paper describing video-based avatars.

NeuralTextures This is repository with inference code for paper "StylePeople: A Generative Model of Fullbody Human Avatars" (CVPR21). This code is for

Open source repository for the code accompanying the paper 'Non-Rigid Neural Radiance Fields Reconstruction and Novel View Synthesis of a Deforming Scene from Monocular Video'.
Open source repository for the code accompanying the paper 'Non-Rigid Neural Radiance Fields Reconstruction and Novel View Synthesis of a Deforming Scene from Monocular Video'.

Non-Rigid Neural Radiance Fields This is the official repository for the project "Non-Rigid Neural Radiance Fields: Reconstruction and Novel View Synt

Comments
  • Getting The Skeletons And The Meshes

    Getting The Skeletons And The Meshes

    I am trying to get the skeletons as shown in Figure 2.f in your paper and the surface meshes but I can't find it in the source code. Is it implemented ?

    opened by chekirou 1
  • Error while running 'pip install ./pointnet2_ops_lib/'

    Error while running 'pip install ./pointnet2_ops_lib/'

    Hello, I am trying to do the setup for using Treepartnet. My environment contains Python = 3.7.13 , cuda=11.5 and pytorch=1.5.0. If I try running "pip install -r requirements.txt" I receive the following errors during the compiling:

    `/home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/ball_query.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/ball_query_gpu.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/bindings.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/group_points.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/group_points_gpu.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/interpolate.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/...TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/interpolate_gpu.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/sampling.o: 没有那个文件或目录 /home/anaconda3/envs/wyy/compiler_compat/ld: cannot find /home/.../TreePartNet/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-37/pointnet2_ops/_ext-src/src/sampling_gpu.o: 没有那个文件或目录 collect2: error: ld returned 1 exit status error: command '/usr/bin/g++' failed with exit code 1 [end of output]

    note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure

    × Encountered error while trying to install package. ╰─> pointnet2-ops

    note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure.` I need help,thanks!!!!!!!!!!

    opened by zhengqianisme 1
  • How do you access ground truth skeleton data?

    How do you access ground truth skeleton data?

    Hi there,

    Could you please advise how I can access your ground truth skeletons? Here is what I got so far:

    def main():
    
        f = h5py.File('../data/treepartnet/tree_labeled_train.hdf5','r')
    
    
        point_set, normal, labels, pr = f['points'][0], f['normals'][0], f['primitive_id'][0], f['codebook'][0]
    
        skeleton = point_set - np.expand_dims(labels,-1) * normal 
    
    
        skeleton_pcd = o3d.geometry.PointCloud()
        skeleton_pcd.points = o3d.utility.Vector3dVector(skeleton)
        skeleton_pcd.paint_uniform_color((1, 0, 0))
    
        pcd = o3d.geometry.PointCloud()
        pcd.points = o3d.utility.Vector3dVector(point_set)
        pcd.paint_uniform_color((0, 1, 0))
        
        o3d.visualization.draw_geometries([pcd, skeleton_pcd])
    

    Kind regards, Harry

    opened by harry1576 12
Owner
刘彦超
KISS(Keep It Simple & Stupid)
刘彦超
Implementing DeepMind's Fast Reinforcement Learning paper

Fast Reinforcement Learning This is a repo where I implement the algorithms in the paper, Fast reinforcement learning with generalized policy updates.

Marcus Chiam 6 Nov 28, 2022
Final project code: Implementing MAE with downscaled encoders and datasets, for ESE546 FA21 at University of Pennsylvania

546 Final Project: Masked Autoencoder Haoran Tang, Qirui Wu 1. Training To train the network, please run mae_pretraining.py. Please modify folder path

Haoran Tang 0 Apr 22, 2022
Final project code: Implementing BicycleGAN, for CIS680 FA21 at University of Pennsylvania

680 Final Project: BicycleGAN Haoran Tang Instructions 1. Training To train the network, please run train.py. Change hyper-parameters and folder paths

Haoran Tang 0 Apr 22, 2022
FAIR's research platform for object detection research, implementing popular algorithms like Mask R-CNN and RetinaNet.

Detectron is deprecated. Please see detectron2, a ground-up rewrite of Detectron in PyTorch. Detectron Detectron is Facebook AI Research's software sy

Facebook Research 25.5k Jan 7, 2023
A python library for implementing a recommender system

python-recsys A python library for implementing a recommender system. Installation Dependencies python-recsys is build on top of Divisi2, with csc-pys

Oscar Celma 1.5k Dec 17, 2022
Library for implementing reservoir computing models (echo state networks) for multivariate time series classification and clustering.

Framework overview This library allows to quickly implement different architectures based on Reservoir Computing (the family of approaches popularized

Filippo Bianchi 249 Dec 21, 2022
Facilitates implementing deep neural-network backbones, data augmentations

Introduction Nowadays, the training of Deep Learning models is fragmented and unified. When AI engineers face up with one specific task, the common wa

null 40 Dec 29, 2022
PyTorch Autoencoders - Implementing a Variational Autoencoder (VAE) Series in Pytorch.

PyTorch Autoencoders Implementing a Variational Autoencoder (VAE) Series in Pytorch. Inspired by this repository Model List check model paper conferen

Subin An 8 Nov 21, 2022
Implementing yolov4 target detection and tracking based on nao robot

Implementing yolov4 target detection and tracking based on nao robot

null 6 Apr 19, 2022
Implementing Graph Convolutional Networks and Information Retrieval Mechanisms using pure Python and NumPy

Implementing Graph Convolutional Networks and Information Retrieval Mechanisms using pure Python and NumPy

Noah Getz 3 Jun 22, 2022