SlideShare a Scribd company logo
1 of 39
Point Cloud Library
Soubhi Hadri
Department of Electrical and Computer Engineering
University of Oklahoma
March, 2018
Computer Vision
Outline:
• Introduction
• Point Cloud Overview
• PCL (Point Cloud Library) Structure
• PCL Walkthrough
• MeshLab
• PCL Installation
• Example
Introduction :
1/37
What is a point cloud?
• A point cloud is a data structure used to represent a collection of multi-dimensional points (usually
in 3D X,Y,Z).
• Used to represent 3D information about the world
• Each 3D point can contain more information like: RGB color, distance, intensity …
Introduction :
2/37
What is a point cloud?
Introduction :
3/37
How is point cloud generated?
Point clouds can be acquired from hardware sensors:
• Stereo Cameras
• 3D Scanners
• Time-of-flight cameras
• Generated from a computer program
• …..
PCL Overview:
4/37
Point Cloud Library (or PCL):
• Large scale, open project for 2D/3D image and point cloud processing.
• Cross-platform
• Contains numerous state-of-the art algorithms :
• Filtering
• Feature Estimation
• Surface Reconstruction
• Registration
• segmentation
• …
• Under BSD license and is open source software. It is free for commercial and research use.
PCL Overview:
5/37
Who is developing PCL:
• Many organizations all around the world including :
PCL Overview:
6/37
Who is developing PCL:
• Many organizations all around the world including :
PCL Overview:
7/37
Who is financially supporting PCL:
• Toyota , Google, Nvidia, Intel, ….
PCL Structure :
8/37
Point Cloud Library (or PCL):
• PCL is split into a series of smaller code libraries:
• It can be compiled separately.
• Think about PCL is as a graph of code libraries.
PCL Structure:
9/37
Point Types in PCL:
• PointXYZ - Members: float x, y, z; most used.
• PointXYZI - Members: float x, y, z, intensity; Simple XYZ + intensity.
• PointXYZRGBA - Members: float x, y, z; uint32_t rgba; RGBA information packed into a
single integer.
• PointXYZRGB - float x, y, z, rgb; RGBA information packed into a float.
• PointNormal - float x, y, z; float normal[3], curvature; surface normals and curvatures.
• ……..
• Not enough! Defining your own custom PointT type.
PCL Walkthrough:
10/37
PCL is split in a number of modular libraries. The most important :
• Filters
• Features
• Keypoints
• Registration
• Kdtree
• Octree
• Visualization
• I/O
• Common
• …
PCL Walkthrough: Filters
11/37
Example : noise removal
• Some of these outliers can be filtered by performing a statistical
analysis on each point’s neighborhood.
• Trimming those that do not meet a certain criteria.
PCL Walkthrough: Filters
12/37
Downsampling a PointCloud using a VoxelGrid filter
Reduce the number of points – a point cloud dataset, using a voxelized
grid approach.
PCL Walkthrough: Filters
13/37
Removing outliers using a StatisticalOutlierRemoval filter
Remove noisy measurements, e.g. outliers, from a point cloud dataset
using statistical analysis techniques.
PCL Walkthrough: Segmentation
14/37
• Algorithms for segmenting a point cloud into distinct clusters.
• These algorithms are best suited for processing a point cloud that is composed of a number of spatially isolated
regions.
• Clustering is often used to break the cloud down into its constituent parts, which can then be processed
independently.
plane model segmentation cylinder model segmentation
PCL Walkthrough: Surface
• Deals with reconstructing the original surfaces from 3D scans.
Surface Triangulation obtain a triangle mesh based on projections of the local neighborhoods.
15/37
PCL Walkthrough: Surface
• Calculate a simple 2D hull polygon (concave or convex) for a set of points supported by a plane.
• Creating a convex or concave hull is helpful:
• Simplifying the surface representation.
• When boundaries need to be extracted.
16/37
PCL Walkthrough: Surface
• B-spline fitting algorithm to obtain a smooth, parametric surface representation.
17/37
PCL Walkthrough: Visualization
• Quickly prototype and visualize the results of algorithms operating on 3D point cloud data.
• Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen.
Rendering and setting visual properties (colors, point sizes, opacity, etc) for any n-D point cloud datasets
18/37
PCL Walkthrough: Visualization
Drawing basic 3D shapes on screen (e.g., cylinders, spheres,lines, polygons, etc)
• Quickly prototype and visualize the results of algorithms operating on 3D point cloud data.
• Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen.
19/37
PCL Walkthrough: Visualization
Histogram visualization module (PCLHistogramVisualizer) for 2D plots
• Quickly prototype and visualize the results of algorithms operating on 3D point cloud data.
• Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen.
20/37
PCL Walkthrough: Visualization
RangeImage visualization module
• Quickly prototype and visualize the results of algorithms operating on 3D point cloud data.
• Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen.
21/37
PCL Walkthrough: I/O
• Contains classes and functions for reading and writing point cloud data (PCD/PLY/…) files.
• Capturing point clouds from a variety of sensing devices.
PCD (Point Cloud Data)
point clouds can be stored to disk as files, into the PCD format.
PCD file consists of:
• Header:
• VERSION - specifies the PCD file version
• FIELDS - specifies the name of each dimension/field that a point
can have.
• SIZE - specifies the size of each dimension in bytes
• TYPE - specifies the type of each dimension as a char.
• COUNT - specifies how many elements does each dimension have
• WIDTH - specifies the width of the point cloud dataset in the
number of points
• HEIGHT - specifies the height of the point cloud dataset in the
number of points.
22/37
MeshLab:
• Open source system for processing
and editing 3D triangular meshes.
• Available : Mac, Windows, Linux
and Source.
• You can use it to show point clouds.
23/37
MeshLab:
Drag & Drop PCD file
24/37
PCL Installation:
• Depends on 3rd party libraries:
1. Boost
2. Eigen
3. FLANN
4. VTK
• Prebuilt binaries are available for Linux, Windows, and Mac OS X.
• To build PCL out of sources:
1. Clone code from github.
2. PCL relies on CMake as a build tool.
25/37
PCL Installation:
26/37
• Set the configurations
3
5
1
2
4
PCL Installation:
• Configure.
• Generate.
• Go to _build and execute make
27/37
PCL Installation:
• Execute make install in _build
28/37
PCL Example:
To convert PCD to PLY:
1. C++ main code.
29/37
PCL Example:
To convert PCD to PLY:
1. C++ main code.
2. Cmakefile.
30/37
PCL Example:
To convert PCD to PLY:
1. C++ main code.
2. Cmakefile.
3. Cmake-GUI configure + generate.
31/37
PCL Example:
To convert PCD to PLY:
1. C++ main code.
2. Cmakefile.
3. Cmake-GUI configure + generate.
4. In _build folder execute make .
32/37
PCL Example:
To convert PCD to PLY:
1. C++ main code.
2. Cmakefile.
3. Cmake-GUI configure + generate.
4. In _build folder execute make .
5. Run pcl_example and check for ply output file
33/37
PCL Example:
34/37
Resources:
PCL official website : pointclouds.org.
MeshLab : meshlab.net.
35/37
Script on GitHub: PCD-2-PLY
36/37
Thank you
37/37

More Related Content

What's hot

Issues in knowledge representation
Issues in knowledge representationIssues in knowledge representation
Issues in knowledge representationSravanthi Emani
 
Image segmentation
Image segmentationImage segmentation
Image segmentationKuppusamy P
 
Image segmentation ppt
Image segmentation pptImage segmentation ppt
Image segmentation pptGichelle Amon
 
Cloud applications - Protein Structure Predication and gene expression data...
Cloud applications - Protein Structure Predication  and  gene expression data...Cloud applications - Protein Structure Predication  and  gene expression data...
Cloud applications - Protein Structure Predication and gene expression data...Pushpendra Singh Dangi
 
Principal component analysis and lda
Principal component analysis and ldaPrincipal component analysis and lda
Principal component analysis and ldaSuresh Pokharel
 
Big Data technology Landscape
Big Data technology LandscapeBig Data technology Landscape
Big Data technology LandscapeShivanandaVSeeri
 
Digital image processing ppt
Digital image processing pptDigital image processing ppt
Digital image processing pptkhanam22
 
Chapter 9 morphological image processing
Chapter 9   morphological image processingChapter 9   morphological image processing
Chapter 9 morphological image processingAhmed Daoud
 
Frequency domain methods
Frequency domain methods Frequency domain methods
Frequency domain methods thanhhoang2012
 
Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs
Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs
Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs Christopher Morris
 
Depth Fusion from RGB and Depth Sensors by Deep Learning
Depth Fusion from RGB and Depth Sensors by Deep LearningDepth Fusion from RGB and Depth Sensors by Deep Learning
Depth Fusion from RGB and Depth Sensors by Deep LearningYu Huang
 
Image Acquisition and Representation
Image Acquisition and RepresentationImage Acquisition and Representation
Image Acquisition and RepresentationAmnaakhaan
 

What's hot (20)

Issues in knowledge representation
Issues in knowledge representationIssues in knowledge representation
Issues in knowledge representation
 
Basic image processing techniques
Basic image processing techniquesBasic image processing techniques
Basic image processing techniques
 
Image segmentation
Image segmentationImage segmentation
Image segmentation
 
Image segmentation ppt
Image segmentation pptImage segmentation ppt
Image segmentation ppt
 
image compression ppt
image compression pptimage compression ppt
image compression ppt
 
Cloud applications - Protein Structure Predication and gene expression data...
Cloud applications - Protein Structure Predication  and  gene expression data...Cloud applications - Protein Structure Predication  and  gene expression data...
Cloud applications - Protein Structure Predication and gene expression data...
 
Principal component analysis and lda
Principal component analysis and ldaPrincipal component analysis and lda
Principal component analysis and lda
 
Big Data technology Landscape
Big Data technology LandscapeBig Data technology Landscape
Big Data technology Landscape
 
Web data mining
Web data miningWeb data mining
Web data mining
 
Digital image processing ppt
Digital image processing pptDigital image processing ppt
Digital image processing ppt
 
Object recognition
Object recognitionObject recognition
Object recognition
 
Chapter 9 morphological image processing
Chapter 9   morphological image processingChapter 9   morphological image processing
Chapter 9 morphological image processing
 
SIFT
SIFTSIFT
SIFT
 
Frequency domain methods
Frequency domain methods Frequency domain methods
Frequency domain methods
 
Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs
Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs
Glocalized Weisfeiler-Lehman Graph Kernels: Global-Local Feature Maps of Graphs
 
Depth Fusion from RGB and Depth Sensors by Deep Learning
Depth Fusion from RGB and Depth Sensors by Deep LearningDepth Fusion from RGB and Depth Sensors by Deep Learning
Depth Fusion from RGB and Depth Sensors by Deep Learning
 
Image Acquisition and Representation
Image Acquisition and RepresentationImage Acquisition and Representation
Image Acquisition and Representation
 
Object Recognition
Object RecognitionObject Recognition
Object Recognition
 
Ddbms1
Ddbms1Ddbms1
Ddbms1
 
Illumination Models & Shading
Illumination Models & ShadingIllumination Models & Shading
Illumination Models & Shading
 

Similar to PCL (Point Cloud Library)

Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architectureDhaval Kaneria
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangLihang Li
 
支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境John Chou
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Daosheng Mu
 
Converting and Transforming Technical Graphics
Converting and Transforming Technical GraphicsConverting and Transforming Technical Graphics
Converting and Transforming Technical Graphicsdclsocialmedia
 
Analysis of KinectFusion
Analysis of KinectFusionAnalysis of KinectFusion
Analysis of KinectFusionDong-Won Shin
 
Cahall Final Intern Presentation
Cahall Final Intern PresentationCahall Final Intern Presentation
Cahall Final Intern PresentationDaniel Cahall
 
Fundamentals of Computer Graphics.pdf
Fundamentals of Computer Graphics.pdfFundamentals of Computer Graphics.pdf
Fundamentals of Computer Graphics.pdfMattupallipardhu
 
3D PRINTING - INTRODUCTION
3D PRINTING - INTRODUCTION 3D PRINTING - INTRODUCTION
3D PRINTING - INTRODUCTION S. Sathishkumar
 
lec01.pdf
lec01.pdflec01.pdf
lec01.pdfBeiYu6
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryCSCJournals
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryCSCJournals
 
Qualcomm Webinar: Solving Unsolvable Combinatorial Problems with AI
Qualcomm Webinar: Solving Unsolvable Combinatorial Problems with AIQualcomm Webinar: Solving Unsolvable Combinatorial Problems with AI
Qualcomm Webinar: Solving Unsolvable Combinatorial Problems with AIQualcomm Research
 
Digital fabrication for k 12 education
Digital fabrication for k 12 educationDigital fabrication for k 12 education
Digital fabrication for k 12 educationPatrick Woessner
 
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...Sardegna Ricerche
 

Similar to PCL (Point Cloud Library) (20)

Onnc intro
Onnc introOnnc intro
Onnc intro
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architecture
 
Overview of Computer Graphics
Overview of Computer GraphicsOverview of Computer Graphics
Overview of Computer Graphics
 
Co315 part 1
Co315   part 1Co315   part 1
Co315 part 1
 
Mod 2 hardware_graphics.pdf
Mod 2 hardware_graphics.pdfMod 2 hardware_graphics.pdf
Mod 2 hardware_graphics.pdf
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihang
 
支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
 
Converting and Transforming Technical Graphics
Converting and Transforming Technical GraphicsConverting and Transforming Technical Graphics
Converting and Transforming Technical Graphics
 
Analysis of KinectFusion
Analysis of KinectFusionAnalysis of KinectFusion
Analysis of KinectFusion
 
Cahall Final Intern Presentation
Cahall Final Intern PresentationCahall Final Intern Presentation
Cahall Final Intern Presentation
 
Fundamentals of Computer Graphics.pdf
Fundamentals of Computer Graphics.pdfFundamentals of Computer Graphics.pdf
Fundamentals of Computer Graphics.pdf
 
3D PRINTING - INTRODUCTION
3D PRINTING - INTRODUCTION 3D PRINTING - INTRODUCTION
3D PRINTING - INTRODUCTION
 
What is C3D?
What is C3D?What is C3D?
What is C3D?
 
lec01.pdf
lec01.pdflec01.pdf
lec01.pdf
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud Library
 
Efficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud LibraryEfficient Point Cloud Pre-processing using The Point Cloud Library
Efficient Point Cloud Pre-processing using The Point Cloud Library
 
Qualcomm Webinar: Solving Unsolvable Combinatorial Problems with AI
Qualcomm Webinar: Solving Unsolvable Combinatorial Problems with AIQualcomm Webinar: Solving Unsolvable Combinatorial Problems with AI
Qualcomm Webinar: Solving Unsolvable Combinatorial Problems with AI
 
Digital fabrication for k 12 education
Digital fabrication for k 12 educationDigital fabrication for k 12 education
Digital fabrication for k 12 education
 
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
La piattaforma Ruju per la ricostruzione 3D di scene e oggetti reali a partir...
 

Recently uploaded

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 

Recently uploaded (20)

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 

PCL (Point Cloud Library)

  • 1. Point Cloud Library Soubhi Hadri Department of Electrical and Computer Engineering University of Oklahoma March, 2018 Computer Vision
  • 2. Outline: • Introduction • Point Cloud Overview • PCL (Point Cloud Library) Structure • PCL Walkthrough • MeshLab • PCL Installation • Example
  • 3. Introduction : 1/37 What is a point cloud? • A point cloud is a data structure used to represent a collection of multi-dimensional points (usually in 3D X,Y,Z). • Used to represent 3D information about the world • Each 3D point can contain more information like: RGB color, distance, intensity …
  • 5. Introduction : 3/37 How is point cloud generated? Point clouds can be acquired from hardware sensors: • Stereo Cameras • 3D Scanners • Time-of-flight cameras • Generated from a computer program • …..
  • 6. PCL Overview: 4/37 Point Cloud Library (or PCL): • Large scale, open project for 2D/3D image and point cloud processing. • Cross-platform • Contains numerous state-of-the art algorithms : • Filtering • Feature Estimation • Surface Reconstruction • Registration • segmentation • … • Under BSD license and is open source software. It is free for commercial and research use.
  • 7. PCL Overview: 5/37 Who is developing PCL: • Many organizations all around the world including :
  • 8. PCL Overview: 6/37 Who is developing PCL: • Many organizations all around the world including :
  • 9. PCL Overview: 7/37 Who is financially supporting PCL: • Toyota , Google, Nvidia, Intel, ….
  • 10. PCL Structure : 8/37 Point Cloud Library (or PCL): • PCL is split into a series of smaller code libraries: • It can be compiled separately. • Think about PCL is as a graph of code libraries.
  • 11. PCL Structure: 9/37 Point Types in PCL: • PointXYZ - Members: float x, y, z; most used. • PointXYZI - Members: float x, y, z, intensity; Simple XYZ + intensity. • PointXYZRGBA - Members: float x, y, z; uint32_t rgba; RGBA information packed into a single integer. • PointXYZRGB - float x, y, z, rgb; RGBA information packed into a float. • PointNormal - float x, y, z; float normal[3], curvature; surface normals and curvatures. • …….. • Not enough! Defining your own custom PointT type.
  • 12. PCL Walkthrough: 10/37 PCL is split in a number of modular libraries. The most important : • Filters • Features • Keypoints • Registration • Kdtree • Octree • Visualization • I/O • Common • …
  • 13. PCL Walkthrough: Filters 11/37 Example : noise removal • Some of these outliers can be filtered by performing a statistical analysis on each point’s neighborhood. • Trimming those that do not meet a certain criteria.
  • 14. PCL Walkthrough: Filters 12/37 Downsampling a PointCloud using a VoxelGrid filter Reduce the number of points – a point cloud dataset, using a voxelized grid approach.
  • 15. PCL Walkthrough: Filters 13/37 Removing outliers using a StatisticalOutlierRemoval filter Remove noisy measurements, e.g. outliers, from a point cloud dataset using statistical analysis techniques.
  • 16. PCL Walkthrough: Segmentation 14/37 • Algorithms for segmenting a point cloud into distinct clusters. • These algorithms are best suited for processing a point cloud that is composed of a number of spatially isolated regions. • Clustering is often used to break the cloud down into its constituent parts, which can then be processed independently. plane model segmentation cylinder model segmentation
  • 17. PCL Walkthrough: Surface • Deals with reconstructing the original surfaces from 3D scans. Surface Triangulation obtain a triangle mesh based on projections of the local neighborhoods. 15/37
  • 18. PCL Walkthrough: Surface • Calculate a simple 2D hull polygon (concave or convex) for a set of points supported by a plane. • Creating a convex or concave hull is helpful: • Simplifying the surface representation. • When boundaries need to be extracted. 16/37
  • 19. PCL Walkthrough: Surface • B-spline fitting algorithm to obtain a smooth, parametric surface representation. 17/37
  • 20. PCL Walkthrough: Visualization • Quickly prototype and visualize the results of algorithms operating on 3D point cloud data. • Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen. Rendering and setting visual properties (colors, point sizes, opacity, etc) for any n-D point cloud datasets 18/37
  • 21. PCL Walkthrough: Visualization Drawing basic 3D shapes on screen (e.g., cylinders, spheres,lines, polygons, etc) • Quickly prototype and visualize the results of algorithms operating on 3D point cloud data. • Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen. 19/37
  • 22. PCL Walkthrough: Visualization Histogram visualization module (PCLHistogramVisualizer) for 2D plots • Quickly prototype and visualize the results of algorithms operating on 3D point cloud data. • Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen. 20/37
  • 23. PCL Walkthrough: Visualization RangeImage visualization module • Quickly prototype and visualize the results of algorithms operating on 3D point cloud data. • Similar to OpenCV’s highgui routines for displaying 2D images and for drawing basic 2D shapes on screen. 21/37
  • 24. PCL Walkthrough: I/O • Contains classes and functions for reading and writing point cloud data (PCD/PLY/…) files. • Capturing point clouds from a variety of sensing devices. PCD (Point Cloud Data) point clouds can be stored to disk as files, into the PCD format. PCD file consists of: • Header: • VERSION - specifies the PCD file version • FIELDS - specifies the name of each dimension/field that a point can have. • SIZE - specifies the size of each dimension in bytes • TYPE - specifies the type of each dimension as a char. • COUNT - specifies how many elements does each dimension have • WIDTH - specifies the width of the point cloud dataset in the number of points • HEIGHT - specifies the height of the point cloud dataset in the number of points. 22/37
  • 25. MeshLab: • Open source system for processing and editing 3D triangular meshes. • Available : Mac, Windows, Linux and Source. • You can use it to show point clouds. 23/37
  • 26. MeshLab: Drag & Drop PCD file 24/37
  • 27. PCL Installation: • Depends on 3rd party libraries: 1. Boost 2. Eigen 3. FLANN 4. VTK • Prebuilt binaries are available for Linux, Windows, and Mac OS X. • To build PCL out of sources: 1. Clone code from github. 2. PCL relies on CMake as a build tool. 25/37
  • 28. PCL Installation: 26/37 • Set the configurations 3 5 1 2 4
  • 29. PCL Installation: • Configure. • Generate. • Go to _build and execute make 27/37
  • 30. PCL Installation: • Execute make install in _build 28/37
  • 31. PCL Example: To convert PCD to PLY: 1. C++ main code. 29/37
  • 32. PCL Example: To convert PCD to PLY: 1. C++ main code. 2. Cmakefile. 30/37
  • 33. PCL Example: To convert PCD to PLY: 1. C++ main code. 2. Cmakefile. 3. Cmake-GUI configure + generate. 31/37
  • 34. PCL Example: To convert PCD to PLY: 1. C++ main code. 2. Cmakefile. 3. Cmake-GUI configure + generate. 4. In _build folder execute make . 32/37
  • 35. PCL Example: To convert PCD to PLY: 1. C++ main code. 2. Cmakefile. 3. Cmake-GUI configure + generate. 4. In _build folder execute make . 5. Run pcl_example and check for ply output file 33/37
  • 37. Resources: PCL official website : pointclouds.org. MeshLab : meshlab.net. 35/37
  • 38. Script on GitHub: PCD-2-PLY 36/37