Git Product home page Git Product logo

pcd-reconstruction-and-registration's Introduction

Point Clouds Alignment with Incomplete Shapes

PCD Reconstruction and Registration for the ML3D course at TUM (2022)

Dan Halperin, Manuel Coutinho

Abstract

Finding the affine transformation between two point clouds is an ongoing research work in computer vision and has applications in computer graphics, robotics, etc. Several powerful algorithms have been proposed for this purpose, such as the Iterative closest-points (ICP). However, it has been shown that they tend to converge to poor optima or saddle points. This project investigats the use of a deep learning approach, Deep-Closest Point (DCP), to solve the problem. However, in their work, it was found that the algorithm has difficulty aligning incomplete point clouds with corresponding shapes. We found that a simple solution is to perform transfer learning by extending the training set to handle incomplete shapes. In addition, we performed a comparison of the use of DCP and ICP on incomplete shapes and found promising results.

Installation

  1. Create virtual environment via conda
   conda create -n [name] python=3.7
   conda activate [name]
  1. Install pytorch
   pip install torch==1.12.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
  1. Install requirements
   pip install -r requirements.txt
  1. Install cuda
   sh setup_env.sh

Folder structure

.
├── ...
├── Configs
│   └── pr_config.py         # Configuration file with model parameters
├── DCP                      # Folder for the DCP model
├── docs                     # Folder with the final paper and other resources
├── docs                     # Folder with the trained models
├── SpareNet                 # Folder for the SpareNet model
└── README.md

Datasets

Two different datasets were used:

  1. ShapeNet: download link (16384 points) generated by GRNet, and the KITTI dataset;
  2. ModelNet40; link

Final folder structure:

data
├── ModelNet40           # Original ModelNet DCP dataset
└── ShapeNetCompletion   # ShapeNet dataset

Run the model

To run the model simply configure the pr_config.py file (see folder structure) and run the main script by calling on the root:

   python main.py

You can select the model from the model folder.

Output folder structure

Outputs
├── Orig                  # Folder with outputs for the original DCP
│   ├── gtcloud           # Folder with full point cloud to full point cloud matches
│   ├── partial_cloud     # Folder with partial point cloud to full point cloud matches 
│   └── reconstructed     # Folder with reconstructed point cloud to full point cloud matches
└── Trained               # Folder with outputs for the trained DCP
     └── ...              # Exact same folder structure as in Orig

Bibliography

DCP: PDF; Code

SpareNet: PDF; Code

pcd-reconstruction-and-registration's People

Contributors

danhalp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.