GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - codearxiv/PCReconstruct: Point cloud completion tool based on dictionary learning. Takes a PCL point cloud surface and fills in gaps or densifies sparse regions by learning from the various surface features of the cloud. This is done using a variation of the k-SVD dictionary learning algorithm that allows for continuous atoms and dealing with unstructured point cloud data. Written in Qt C++, using Eigen, OpenMP, and OpenGL.

BranchesTags
Open more actions menu

Latest commit

 

History

141 Commits
141 Commits

Folders and files

NameName
Last commit message
Last commit date
Cover-Tree
Cover-Tree
 
 
dialogs
dialogs
 
 
dictionarylearning
dictionarylearning
 
 
images
images
 
 
release
release
 
 
utils
utils
 
 
BoundBox.cpp
BoundBox.cpp
 
 
BoundBox.h
BoundBox.h
 
 
Cloud.cpp
Cloud.cpp
 
 
Cloud.h
Cloud.h
 
 
CloudWorker.cpp
CloudWorker.cpp
 
 
CloudWorker.h
CloudWorker.h
 
 
GLWidget.cpp
GLWidget.cpp
 
 
GLWidget.h
GLWidget.h
 
 
LICENSE
LICENSE
 
 
MainWindow.cpp
MainWindow.cpp
 
 
MainWindow.h
MainWindow.h
 
 
Makefile
Makefile
 
 
Makefile.Debug
Makefile.Debug
 
 
Makefile.Release
Makefile.Release
 
 
MessageLogger.cpp
MessageLogger.cpp
 
 
MessageLogger.h
MessageLogger.h
 
 
PCReconstruct.pro
PCReconstruct.pro
 
 
PCReconstruct.pro.user
PCReconstruct.pro.user
 
 
PCReconstruct.qrc
PCReconstruct.qrc
 
 
README.md
README.md
 
 
Window.cpp
Window.cpp
 
 
Window.h
Window.h
 
 
alignment.h
alignment.h
 
 
constants.h
constants.h
 
 
main.cpp
main.cpp
 
 
stable.h
stable.h
 
 

Repository files navigation

PCReconstruct

Point cloud completion tool based on dictionary learning.

Takes a PCL point cloud surface and fills in gaps or densifies sparse regions by learning from the various surface features of the cloud.

This is done using a variation of the k-SVD dictionary learning algorithm that allows for continuous atoms and dealing with unstructured point cloud data.

Written in Qt C++, using Eigen, OpenMP, and OpenGL.

TODO:

  • Still struggles in areas of very high curvature, producing artifacts that go off in random directions.
  • If original point cloud normals are provided, take them into account (especially at parallel near approaches between two surfaces).
  • Dictionary learning could be off-loaded to GPU.
  • Potential OpenMP parallelization in point creation loop.
  • Take point colour values into account.

Sparsified Stanford Bunny:

Original Stanford bunny sampled with 35847 points:

1a

Sparsifying the mid section to 4% after shrinking the bounding box to exclude the ears (there are not enough points around the ear tips to approximate normals after sparsifying, and the curvature there is too high as well).

1b 1c

We increase the default densification field to 1.5 to get a denser reconstruction, and set patch frequency to 2 since we dont expect much bumpiness in the final result within a patch size of 50. We also want the "use points outside bounding box" field set "True" to get better agreement around the boundary of the bounding box:

1d

The resulting completion of the sparsified bunny:

1e

Decimated Armadillo:

Original armadillo sampled with 172,974 points:

2a 2a2

Decimating it's mid body with random holes:

2b 2b2

We increase the default patch size field to 300 to take into account the large gaps relative to sampling density:

2c

The resulting reconstruction of the decimated armadillo, with reconstructed points highlighted:

2d 2d2

When we unhighlight the newly added points, the rear shell looks unnaturally smooth

2e

But this is because of the normals need updating using a smaller patch size

2e2

Doing this we get the final repaired armadillo

2f2 2f

Sparsified Random Surface:

Original surface sampled with 35000 points:

5a

Sparsified down to 1225 points:

5b

Increasing the default densification field to 1.5 to get a denser reconstruction:

5c

The resulting reconstruction of the sparsified point cloud:

5d

Decimated Random Surface:

Original surface sampled with 15000 points:

8a

Heavily decimated with random holes:

8b

Increasing the default patch size field to 250 to take into account the large gaps relative to sampling density:

8c

The resulting reconstruction of the decimated point cloud:

8d

About

Point cloud completion tool based on dictionary learning. Takes a PCL point cloud surface and fills in gaps or densifies sparse regions by learning from the various surface features of the cloud. This is done using a variation of the k-SVD dictionary learning algorithm that allows for continuous atoms and dealing with unstructured point cloud data…

Topics

inpaintingksvdmachine-learningpoint-cloudpoint-cloud-completionpoint-cloud-processingpoint-cloud-reconstructionsparse-coding

Resources

Readme
LGPL-2.1 license
Activity

Stars

43 stars

Watchers

3 watching

Forks

8 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.