SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Registration   Iterative Closest Points (ICP)             Initial Alignment   Example/Tutorial Code




                                 PCL :: Registration
                       Initial alignment of point clouds
                          Refining initial alignments
                                         September 25, 2011
Registration      Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                                      Outline



       1. Registration


       2. Registration using the Iterative Closest Points (ICP)


       3. Feature-Based Initial Alignment


       4. Example/Tutorial Code




                                                                       Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                              Registration

       Wanted: transformation that aligns one point cloud to another.




               for initially aligning point clouds (based on features)
               for refining initial alignments
               (using the Iterative Closest Point (ICP) Algorithm)
                                                                           Dirk Holz / PCL :: Registration
Registration        Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                                   ICP (1/6)


       Registration using the Iterative Closest Point (ICP) Algorithm




       Given an input point cloud and a target point cloud
          1. determine pairs of corresponding points,
          2. estimate a transformation that minimizes the distances
             between the correspondences,
          3. apply the transformation to align input and target.

                                                                         Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)         Initial Alignment                  Example/Tutorial Code


                                                                                           ICP (2/6)

               Given:
               Two n-dimensional sets of points – the model set
                                  R
               M = {mi |mi ∈ n , i = 1, . . . , Nm } and the data set
                                 R
               D = {dj |dj ∈ n , j = 1, . . . Nd }
               Wanted:
               A rotation R and a translation ∆t that map D onto M.
               handled as an optimization problem =⇒ Minimizing
               mapping error E
                                          Nm Nd
                                                                                           2
                    E (R, ∆t) =                        wi,j mi − Rdj + ∆t                                 (1)
                                         i=1 j=1


               Weighting factor wi,j encodes point correspondences,
               wi,j = 1 for correspondence(mi , di ), 0 otherwise
               Correspondence from Neighbor Search
                                                                                 Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                                     ICP (3/6)


       The ICP API
        pcl::IterativeClosestPoint<InType, OutType> icp;
       Provide a pointer to the input point cloud
        icp.setInputCloud (input_cloud);
       Provide a pointer to the target point cloud
        icp.setInputTarget (target_cloud);
       Align input to target to obtain
        icp.align (aligned_cloud);
        Eigen::Matrix4f transformation = icp.
        getFinalTransformation ();

               the aligned cloud (transformed copy of input cloud),
               and transformation used for alignment.


                                                                           Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                                     ICP (4/6)



       The ICP API: Termination Criteria
               Max. number of iteration steps
               → set via setMaximumIterations(nr_iterations)
               Convergence: Estimated transformation doesn’t change
               (the sum of differences between current and last
               transformation is smaller than a user-defined threshold)
               → set via setTransformationEpsilon(epsilon)
               A solution was found (the sum of squared errors is smaller
               than a user-defined threshold)
               → set via setEuclideanFitnessEpsilon(distance)



                                                                           Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                                     ICP (5/6)


       The ICP API: Problems with ICP

       False correspondences negatively affect the alignment
       (the algorithms gets caught in local minima).
               Maximum distance between correspondences:
               icp.setMaxCorrespondenceDistance (distance);
               Use RANSAC to neglect false correspondences
               icp.setRANSACOutlierRejectionThreshold (distance);

                   Model: Transformation (estimated on 3 samples)
                   Inliers: Points whose distance to the corresponding is
                   below the given threshold



                                                                           Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                                                     ICP (6/6)




       The ICP API: Problems with ICP

       The ICP algorithms needs a rough initial alignment.
               Use Features to get an initial alignment!

       → pcl::SampleConsensusInitialAlignment




                                                                           Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                       Initial Alignment (1/7)

          1. Compute sets of keypoints
          2. Compute (local) feature descriptors (e.g. FPFH)
          3. Use SAC-based approach to find initial alignment
               3.1 Take 3 random correspondence pairs
               3.2 Compute transformation for these pairs
               3.3 Apply transformation to all source points, and determine
                   inliers
          4. Use best transformation for initial alignment, and ICP for
             refinement




                                                                                               *
                                                                           Dirk Holz / PCL :: Registration
Registration                                                            Iterative Closest Points (ICP)                                                                              Initial Alignment                                                                       Example/Tutorial Code


                                                                                                                                                                                    Initial Alignment (2/7)


                                                                                               points on similar surfaces




                                                                                                                                                                                                                                                                                                   *
                                                        Persistent Feature Points Histograms                                                           Persistent Feature Points Histograms                                                           Persistent Feature Points Histograms
                                           35                                                                                             35                                                                                             35
                                                                                               P1                                                                                             P2                                                                                             P3
          Ratio of points in one bin (%)




                                                                                                         Ratio of points in one bin (%)




                                                                                                                                                                                                        Ratio of points in one bin (%)
                                           30                                                                                             30                                                                                             30



                                           25
                                                                                               Q1                                         25
                                                                                                                                                                                              Q2                                         25
                                                                                                                                                                                                                                                                                             Q3

                                           20                                                                                             20                                                                                             20



                                           15                                                                                             15                                                                                             15



                                           10                                                                                             10                                                                                             10



                                            5                                                                                             5                                                                                              5



                                            0                                                                                             0                                                                                              0
                                                0   2       4     6      8      10     12      14   16                                         0   2       4     6      8      10     12      14   16                                         0   2       4     6      8      10     12      14   16
                                                                       Bins                                                                                           Bins                                                                                           Bins



                                                                                                                                                                                                                                                  Dirk Holz / PCL :: Registration
Registration   Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                Initial Alignment (3/7)




                                                                                                      *


                                                                    Dirk Holz / PCL :: Registration
Registration       Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                    Initial Alignment (4/7)
               Outdoor Example: Non-Linear Optimization




                                                                                          *
                                                                        Dirk Holz / PCL :: Registration
Registration   Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                Initial Alignment (5/7)




                                                                    Dirk Holz / PCL :: Registration
Registration   Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                Initial Alignment (6/7)




                                                                    Dirk Holz / PCL :: Registration
Registration       Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                    Initial Alignment (7/7)


       The SampleConsensusInitialAlignment API
        pcl::SampleConsensusInitialAlignment<PointT, PointT,
        DescriptorT> sac;
       Provide a pointer to the input point cloud and features
        sac.setInputCloud (source_points);
        sac.setSourceFeatures (source_descriptors);
       Provide a pointer to the target point cloud and features
        sac.setInputTarget (target_points);
        sac.setTargetFeatures (target_descriptors);
       Align input to target to obtain
        sac.align (aligned_cloud);
        Eigen::Matrix4f transformation = sac.
        getFinalTransformation ();


                                                                        Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)         Initial Alignment                  Example/Tutorial Code


                                                       Example/Tutorial Code (1/5)

       Initial alignment of point clouds
       1       pcl::SampleConsensusInitialAlignment<PointT, PointT,
                   DescriptorT> sac;
       2       sac.setMinSampleDistance (min_sample_distance);
       3       sac.setMaxCorrespondenceDistance (
                   max_correspondence_distance);
       4       sac.setMaximumIterations (nr_iterations);
       5
       6       sac.setInputCloud (source_points);
       7       sac.setSourceFeatures (source_descriptors);
       8
       9       sac.setInputTarget (target_points);
      10       sac.setTargetFeatures (target_descriptors);
      11
      12       PointCloudPtr aligned_source(new PointCloud);
      13       sac.align (*aligned_source);
      14       Eigen::Matrix4f initial_T = sac.getFinalTransformation
                    ());
                                                                                 Dirk Holz / PCL :: Registration
Registration          Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                         Example Code (2/5)


       Refining initial alignments using ICP
       1       pcl::IterativeClosestPoint<PointT, PointT> icp;
       2       icp.setMaxCorrespondenceDistance (distance);
       3       icp.setRANSACOutlierRejectionThreshold (distance);
       4       icp.setTransformationEpsilon (transformation_epsilon);
       5       icp.setMaximumIterations (max_iterations);
       6
       7       icp.setInputCloud (aligned_source); // from (1)
       8       icp.setInputTarget (target_points);
       9
      10       PointCloud registration_output;
      11       icp.align (registration_output);
      12
      13       Eigen::Matrix4f refined_T =
      14            icp.getFinalTransformation () * initial_T);


                                                                           Dirk Holz / PCL :: Registration
Registration      Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                     Example Code (3/5)

       Example: Correspondences in initial alignment
        $ ./correspondence_viewer ../../data/robot/robot0
        ../../data/robot/robot1 -n 5




                                                                       Dirk Holz / PCL :: Registration
Registration      Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                     Example Code (4/5)

       Example: Initial alignment + refinement
        $ ./test_registration ../../data/robot/robot0 ../../
        data/robot/robot1 -i 0.025,0.01,500 -r 0.05,0.05,0,100




                                                                       Dirk Holz / PCL :: Registration
Registration      Iterative Closest Points (ICP)   Initial Alignment                  Example/Tutorial Code


                                                     Example Code (5/5)

       Example: Final model = robot0 + robot1
        $ ./test_registration ... -s robot_registered.pcd
        $ pcd_viewer robot_registered.pcd




                                                                       Dirk Holz / PCL :: Registration

Contenu connexe

Tendances

[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유Hwan Min
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3stevemcauley
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic Arts / DICE
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility bufferWolfgang Engel
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingElectronic Arts / DICE
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsElectronic Arts / DICE
 
Trends and future of C++: Evolving a systems language for performance - by Bj...
Trends and future of C++: Evolving a systems language for performance - by Bj...Trends and future of C++: Evolving a systems language for performance - by Bj...
Trends and future of C++: Evolving a systems language for performance - by Bj...devstonez
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallGuerrilla
 
Creating A Character in Uncharted: Drake's Fortune
Creating A Character in Uncharted: Drake's FortuneCreating A Character in Uncharted: Drake's Fortune
Creating A Character in Uncharted: Drake's FortuneNaughty Dog
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingElectronic Arts / DICE
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
OpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadOpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadTristan Lorach
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingSteven Tovey
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationGuerrilla
 

Tendances (20)

[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
A Real-time Radiosity Architecture
A Real-time Radiosity ArchitectureA Real-time Radiosity Architecture
A Real-time Radiosity Architecture
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Trends and future of C++: Evolving a systems language for performance - by Bj...
Trends and future of C++: Evolving a systems language for performance - by Bj...Trends and future of C++: Evolving a systems language for performance - by Bj...
Trends and future of C++: Evolving a systems language for performance - by Bj...
 
Beyond porting
Beyond portingBeyond porting
Beyond porting
 
Automatic Audio in Frostbite
Automatic Audio in FrostbiteAutomatic Audio in Frostbite
Automatic Audio in Frostbite
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
 
Creating A Character in Uncharted: Drake's Fortune
Creating A Character in Uncharted: Drake's FortuneCreating A Character in Uncharted: Drake's Fortune
Creating A Character in Uncharted: Drake's Fortune
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
OpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadOpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
 

Similaire à Registration 3

Parallel Programming on the ANDC cluster
Parallel Programming on the ANDC clusterParallel Programming on the ANDC cluster
Parallel Programming on the ANDC clusterSudhang Shankar
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeDmitri Nesteruk
 
Programming basic computer
Programming basic computerProgramming basic computer
Programming basic computerMartial Kouadio
 
Concept_of_NAN_IND_INF_DEN_Using_C++
Concept_of_NAN_IND_INF_DEN_Using_C++Concept_of_NAN_IND_INF_DEN_Using_C++
Concept_of_NAN_IND_INF_DEN_Using_C++Mohammed Nisamudheen
 
On the Use of Burst Buffers for Accelerating Data-Intensive Scientific Workflows
On the Use of Burst Buffers for Accelerating Data-Intensive Scientific WorkflowsOn the Use of Burst Buffers for Accelerating Data-Intensive Scientific Workflows
On the Use of Burst Buffers for Accelerating Data-Intensive Scientific WorkflowsRafael Ferreira da Silva
 
Report on c and c++
Report on c and c++Report on c and c++
Report on c and c++oggyrao
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineYusuke Izawa
 
PPU Optimisation Lesson
PPU Optimisation LessonPPU Optimisation Lesson
PPU Optimisation Lessonslantsixgames
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
MeCC: Memory Comparison-based Code Clone Detector
MeCC: Memory Comparison-based Code Clone DetectorMeCC: Memory Comparison-based Code Clone Detector
MeCC: Memory Comparison-based Code Clone Detector영범 정
 
MeCC: Memory Comparison based Clone Detector
MeCC: Memory Comparison based Clone DetectorMeCC: Memory Comparison based Clone Detector
MeCC: Memory Comparison based Clone DetectorSung Kim
 
Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Mingliang Liu
 

Similaire à Registration 3 (20)

Parallel Programming on the ANDC cluster
Parallel Programming on the ANDC clusterParallel Programming on the ANDC cluster
Parallel Programming on the ANDC cluster
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/Invoke
 
Programming basic computer
Programming basic computerProgramming basic computer
Programming basic computer
 
מצגת פרויקט
מצגת פרויקטמצגת פרויקט
מצגת פרויקט
 
CAO-Unit-I.pptx
CAO-Unit-I.pptxCAO-Unit-I.pptx
CAO-Unit-I.pptx
 
Concept_of_NAN_IND_INF_DEN_Using_C++
Concept_of_NAN_IND_INF_DEN_Using_C++Concept_of_NAN_IND_INF_DEN_Using_C++
Concept_of_NAN_IND_INF_DEN_Using_C++
 
Using Parallel Computing Platform - NHDNUG
Using Parallel Computing Platform - NHDNUGUsing Parallel Computing Platform - NHDNUG
Using Parallel Computing Platform - NHDNUG
 
On the Use of Burst Buffers for Accelerating Data-Intensive Scientific Workflows
On the Use of Burst Buffers for Accelerating Data-Intensive Scientific WorkflowsOn the Use of Burst Buffers for Accelerating Data-Intensive Scientific Workflows
On the Use of Burst Buffers for Accelerating Data-Intensive Scientific Workflows
 
Report on c and c++
Report on c and c++Report on c and c++
Report on c and c++
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
 
PPU Optimisation Lesson
PPU Optimisation LessonPPU Optimisation Lesson
PPU Optimisation Lesson
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
MeCC: Memory Comparison-based Code Clone Detector
MeCC: Memory Comparison-based Code Clone DetectorMeCC: Memory Comparison-based Code Clone Detector
MeCC: Memory Comparison-based Code Clone Detector
 
MeCC: Memory Comparison based Clone Detector
MeCC: Memory Comparison based Clone DetectorMeCC: Memory Comparison based Clone Detector
MeCC: Memory Comparison based Clone Detector
 
Er24902905
Er24902905Er24902905
Er24902905
 
Introduction to Parallelization and performance optimization
Introduction to Parallelization and performance optimizationIntroduction to Parallelization and performance optimization
Introduction to Parallelization and performance optimization
 
Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...Combining Phase Identification and Statistic Modeling for Automated Parallel ...
Combining Phase Identification and Statistic Modeling for Automated Parallel ...
 
Lec04
Lec04Lec04
Lec04
 
Lec04
Lec04Lec04
Lec04
 
Lp seminar
Lp seminarLp seminar
Lp seminar
 

Dernier

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 

Dernier (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 

Registration 3

  • 1. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code PCL :: Registration Initial alignment of point clouds Refining initial alignments September 25, 2011
  • 2. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Outline 1. Registration 2. Registration using the Iterative Closest Points (ICP) 3. Feature-Based Initial Alignment 4. Example/Tutorial Code Dirk Holz / PCL :: Registration
  • 3. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Registration Wanted: transformation that aligns one point cloud to another. for initially aligning point clouds (based on features) for refining initial alignments (using the Iterative Closest Point (ICP) Algorithm) Dirk Holz / PCL :: Registration
  • 4. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code ICP (1/6) Registration using the Iterative Closest Point (ICP) Algorithm Given an input point cloud and a target point cloud 1. determine pairs of corresponding points, 2. estimate a transformation that minimizes the distances between the correspondences, 3. apply the transformation to align input and target. Dirk Holz / PCL :: Registration
  • 5. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code ICP (2/6) Given: Two n-dimensional sets of points – the model set R M = {mi |mi ∈ n , i = 1, . . . , Nm } and the data set R D = {dj |dj ∈ n , j = 1, . . . Nd } Wanted: A rotation R and a translation ∆t that map D onto M. handled as an optimization problem =⇒ Minimizing mapping error E Nm Nd 2 E (R, ∆t) = wi,j mi − Rdj + ∆t (1) i=1 j=1 Weighting factor wi,j encodes point correspondences, wi,j = 1 for correspondence(mi , di ), 0 otherwise Correspondence from Neighbor Search Dirk Holz / PCL :: Registration
  • 6. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code ICP (3/6) The ICP API pcl::IterativeClosestPoint<InType, OutType> icp; Provide a pointer to the input point cloud icp.setInputCloud (input_cloud); Provide a pointer to the target point cloud icp.setInputTarget (target_cloud); Align input to target to obtain icp.align (aligned_cloud); Eigen::Matrix4f transformation = icp. getFinalTransformation (); the aligned cloud (transformed copy of input cloud), and transformation used for alignment. Dirk Holz / PCL :: Registration
  • 7. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code ICP (4/6) The ICP API: Termination Criteria Max. number of iteration steps → set via setMaximumIterations(nr_iterations) Convergence: Estimated transformation doesn’t change (the sum of differences between current and last transformation is smaller than a user-defined threshold) → set via setTransformationEpsilon(epsilon) A solution was found (the sum of squared errors is smaller than a user-defined threshold) → set via setEuclideanFitnessEpsilon(distance) Dirk Holz / PCL :: Registration
  • 8. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code ICP (5/6) The ICP API: Problems with ICP False correspondences negatively affect the alignment (the algorithms gets caught in local minima). Maximum distance between correspondences: icp.setMaxCorrespondenceDistance (distance); Use RANSAC to neglect false correspondences icp.setRANSACOutlierRejectionThreshold (distance); Model: Transformation (estimated on 3 samples) Inliers: Points whose distance to the corresponding is below the given threshold Dirk Holz / PCL :: Registration
  • 9. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code ICP (6/6) The ICP API: Problems with ICP The ICP algorithms needs a rough initial alignment. Use Features to get an initial alignment! → pcl::SampleConsensusInitialAlignment Dirk Holz / PCL :: Registration
  • 10. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (1/7) 1. Compute sets of keypoints 2. Compute (local) feature descriptors (e.g. FPFH) 3. Use SAC-based approach to find initial alignment 3.1 Take 3 random correspondence pairs 3.2 Compute transformation for these pairs 3.3 Apply transformation to all source points, and determine inliers 4. Use best transformation for initial alignment, and ICP for refinement * Dirk Holz / PCL :: Registration
  • 11. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (2/7) points on similar surfaces * Persistent Feature Points Histograms Persistent Feature Points Histograms Persistent Feature Points Histograms 35 35 35 P1 P2 P3 Ratio of points in one bin (%) Ratio of points in one bin (%) Ratio of points in one bin (%) 30 30 30 25 Q1 25 Q2 25 Q3 20 20 20 15 15 15 10 10 10 5 5 5 0 0 0 0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16 Bins Bins Bins Dirk Holz / PCL :: Registration
  • 12. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (3/7) * Dirk Holz / PCL :: Registration
  • 13. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (4/7) Outdoor Example: Non-Linear Optimization * Dirk Holz / PCL :: Registration
  • 14. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (5/7) Dirk Holz / PCL :: Registration
  • 15. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (6/7) Dirk Holz / PCL :: Registration
  • 16. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Initial Alignment (7/7) The SampleConsensusInitialAlignment API pcl::SampleConsensusInitialAlignment<PointT, PointT, DescriptorT> sac; Provide a pointer to the input point cloud and features sac.setInputCloud (source_points); sac.setSourceFeatures (source_descriptors); Provide a pointer to the target point cloud and features sac.setInputTarget (target_points); sac.setTargetFeatures (target_descriptors); Align input to target to obtain sac.align (aligned_cloud); Eigen::Matrix4f transformation = sac. getFinalTransformation (); Dirk Holz / PCL :: Registration
  • 17. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Example/Tutorial Code (1/5) Initial alignment of point clouds 1 pcl::SampleConsensusInitialAlignment<PointT, PointT, DescriptorT> sac; 2 sac.setMinSampleDistance (min_sample_distance); 3 sac.setMaxCorrespondenceDistance ( max_correspondence_distance); 4 sac.setMaximumIterations (nr_iterations); 5 6 sac.setInputCloud (source_points); 7 sac.setSourceFeatures (source_descriptors); 8 9 sac.setInputTarget (target_points); 10 sac.setTargetFeatures (target_descriptors); 11 12 PointCloudPtr aligned_source(new PointCloud); 13 sac.align (*aligned_source); 14 Eigen::Matrix4f initial_T = sac.getFinalTransformation ()); Dirk Holz / PCL :: Registration
  • 18. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Example Code (2/5) Refining initial alignments using ICP 1 pcl::IterativeClosestPoint<PointT, PointT> icp; 2 icp.setMaxCorrespondenceDistance (distance); 3 icp.setRANSACOutlierRejectionThreshold (distance); 4 icp.setTransformationEpsilon (transformation_epsilon); 5 icp.setMaximumIterations (max_iterations); 6 7 icp.setInputCloud (aligned_source); // from (1) 8 icp.setInputTarget (target_points); 9 10 PointCloud registration_output; 11 icp.align (registration_output); 12 13 Eigen::Matrix4f refined_T = 14 icp.getFinalTransformation () * initial_T); Dirk Holz / PCL :: Registration
  • 19. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Example Code (3/5) Example: Correspondences in initial alignment $ ./correspondence_viewer ../../data/robot/robot0 ../../data/robot/robot1 -n 5 Dirk Holz / PCL :: Registration
  • 20. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Example Code (4/5) Example: Initial alignment + refinement $ ./test_registration ../../data/robot/robot0 ../../ data/robot/robot1 -i 0.025,0.01,500 -r 0.05,0.05,0,100 Dirk Holz / PCL :: Registration
  • 21. Registration Iterative Closest Points (ICP) Initial Alignment Example/Tutorial Code Example Code (5/5) Example: Final model = robot0 + robot1 $ ./test_registration ... -s robot_registered.pcd $ pcd_viewer robot_registered.pcd Dirk Holz / PCL :: Registration