3D Point Cloud Processing

Similar documents
3D Point Cloud Processing

Large-Scale. Point Cloud Processing Tutorial. Application: Mobile Mapping

Scan Matching. Pieter Abbeel UC Berkeley EECS. Many slides adapted from Thrun, Burgard and Fox, Probabilistic Robotics

Large-Scale 3D Point Cloud Processing Tutorial 2013

The Efficient Extension of Globally Consistent Scan Matching to 6 DoF

Surface Registration. Gianpaolo Palma

3D Maps. Prof. Dr. Andreas Nüchter Jacobs University Bremen Campus Ring Bremen 1

Three-Dimensional Sensors Lecture 6: Point-Cloud Registration

Homework 4: Clustering, Recommenders, Dim. Reduction, ML and Graph Mining (due November 19 th, 2014, 2:30pm, in class hard-copy please)

Introduction to Mobile Robotics Iterative Closest Point Algorithm. Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Kai Arras

Large-Scale. Point Cloud Processing Tutorial. Basic Data Structures

3D Scanning. Lecture courtesy of Szymon Rusinkiewicz Princeton University

Index. 3D reconstruction, point algorithm, point algorithm, point algorithm, point algorithm, 253

Index. 3D reconstruction, point algorithm, point algorithm, point algorithm, point algorithm, 263

Scanning Real World Objects without Worries 3D Reconstruction

Correspondence. CS 468 Geometry Processing Algorithms. Maks Ovsjanikov

An idea which can be used once is a trick. If it can be used more than once it becomes a method

First scan matching algorithms. Alberto Quattrini Li University of South Carolina

Robot Mapping. TORO Gradient Descent for SLAM. Cyrill Stachniss

Geometric Registration for Deformable Shapes 2.2 Deformable Registration

Artificial Intelligence for Robotics: A Brief Summary

Robot Mapping. Least Squares Approach to SLAM. Cyrill Stachniss

Graphbased. Kalman filter. Particle filter. Three Main SLAM Paradigms. Robot Mapping. Least Squares Approach to SLAM. Least Squares in General

CS 664 Structure and Motion. Daniel Huttenlocher

Image Processing and Computer Vision

calibrated coordinates Linear transformation pixel coordinates

Geometric Modeling Summer Semester 2012 Point-Based Modeling

Image Registration Lecture 4: First Examples

Template Matching Rigid Motion

Subspace Clustering with Global Dimension Minimization And Application to Motion Segmentation

5.2 Surface Registration

6D SLAM PRELIMINARY REPORT ON CLOSING THE LOOP IN SIX DIMENSIONS

Uncertainties: Representation and Propagation & Line Extraction from Range data

Least Squares and SLAM Pose-SLAM

Stereo and Epipolar geometry

Point Cloud Processing

The real voyage of discovery consists not in seeking new landscapes, but in having new eyes.

Geometric Registration for Deformable Shapes 3.3 Advanced Global Matching

Template Matching Rigid Motion. Find transformation to align two images. Focus on geometric features

CSE 252B: Computer Vision II

Last time... Coryn Bailer-Jones. check and if appropriate remove outliers, errors etc. linear regression

L17. OCCUPANCY MAPS. NA568 Mobile Robotics: Methods & Algorithms

Towards Optimal 3D Point Clouds

Unsupervised Learning Partitioning Methods

Advanced Techniques for Mobile Robotics Graph-based SLAM using Least Squares. Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz

L16. Scan Matching and Image Formation

Functional MRI in Clinical Research and Practice Preprocessing

Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects

EPI Data Are Acquired Serially. EPI Data Are Acquired Serially 10/23/2011. Functional Connectivity Preprocessing. fmri Preprocessing

#$ % $ $& "$%% " $ '$ " '

3D Computer Vision. Structured Light II. Prof. Didier Stricker. Kaiserlautern University.

Range Imaging Through Triangulation. Range Imaging Through Triangulation. Range Imaging Through Triangulation. Range Imaging Through Triangulation

Measuring and Visualizing Geometrical Differences Using a Consumer Grade Range Camera

SPM8 for Basic and Clinical Investigators. Preprocessing. fmri Preprocessing

Object Recognition with Invariant Features

Interlude: Solving systems of Equations

CPSC 340: Machine Learning and Data Mining. Principal Component Analysis Fall 2016

Humanoid Robotics. Least Squares. Maren Bennewitz

Camera calibration. Robotic vision. Ville Kyrki

Visual Tracking (1) Pixel-intensity-based methods

The Curse of Dimensionality

Structured Light II. Thanks to Ronen Gvili, Szymon Rusinkiewicz and Maks Ovsjanikov

Matching. Compare region of image to region of image. Today, simplest kind of matching. Intensities similar.

MIRROR IDENTIFICATION AND CORRECTION OF 3D POINT CLOUDS

of Iterative Closest Point ICP algorithm to

Supervised vs. Unsupervised Learning

General Instructions. Questions

Basic fmri Design and Analysis. Preprocessing

Online Subspace Estimation and Tracking from Missing or Corrupted Data

Unsupervised learning in Vision

Problem 1: Complexity of Update Rules for Logistic Regression

Clustering Color/Intensity. Group together pixels of similar color/intensity.

Intensity Augmented ICP for Registration of Laser Scanner Point Clouds

Feature selection. Term 2011/2012 LSI - FIB. Javier Béjar cbea (LSI - FIB) Feature selection Term 2011/ / 22

Feature Detectors and Descriptors: Corners, Lines, etc.

Reddit Recommendation System Daniel Poon, Yu Wu, David (Qifan) Zhang CS229, Stanford University December 11 th, 2011

Structured light 3D reconstruction

University of Florida CISE department Gator Engineering. Clustering Part 2

Autonomous Mobile Robot Design

Iterative Closest Point Algorithm in the Presence of Anisotropic Noise

Simultaneous Localization and Mapping (SLAM)

SPM8 for Basic and Clinical Investigators. Preprocessing

CALIBRATION BETWEEN DEPTH AND COLOR SENSORS FOR COMMODITY DEPTH CAMERAS. Cha Zhang and Zhengyou Zhang

Structure from Motion. Prof. Marco Marcon

Introduction to Computer Vision

Basics of Localization, Mapping and SLAM. Jari Saarinen Aalto University Department of Automation and systems Technology

Image Processing

Image Warping. Srikumar Ramalingam School of Computing University of Utah. [Slides borrowed from Ross Whitaker] 1

Vision-based Mobile Robot Localization and Mapping using Scale-Invariant Features

Fundamentals of 3D. Lecture 3: Debriefing: Lecture 2 Rigid transformations Quaternions Iterative Closest Point (+Kd-trees)

Dynamic Geometry Processing

6D SLAM with Kurt3D. Andreas Nüchter, Kai Lingemann, Joachim Hertzberg

Using Augmented Measurements to Improve the Convergence of ICP. Jacopo Serafin and Giorgio Grisetti

Voronoi Diagram. Xiao-Ming Fu

CPSC 340: Machine Learning and Data Mining. Principal Component Analysis Fall 2017

3D Geometry and Camera Calibration

Lecture 8: Registration

6 Randomized rounding of semidefinite programs

Simultaneous Localization

Lecture 3: Camera Calibration, DLT, SVD

Transcription:

3D Point Cloud Processing The image depicts how our robot Irma3D sees itself in a mirror. The laser looking into itself creates distortions as well as changes in intensity that give the robot a single eye, complete with iris and pupil. Thus, the image is called 3D Point Processing "Self Portrait withcloud Duckling". Registration & SLAM Prof. 1

The ICP Algorithm (1) Scan registration Put two independent scans into one frame of reference Iterative Closest Point algorithm [Besl/McKay 1992] For prior point set M ( model set ) and data set D 1. Select point correspondences wi,j in {0,1} 2. Minimize for rotation R, translation t 3. Iterate 1. and 2. SVD-based calculation of rotation works in 3 translation plus 3 rotation dimensions 6D SLAM with closed loop detection and global relaxation. 2

The ICP Algorithm (2) Closed form (one-step) solution for minimizing of the error function 1. Cancel the double sum: 2. Compute centroids of the matching points 3. Rewrite the error function 3

The ICP Algorithm (3) Closed form (one-step) solution for minimizing of the error function 3. Rewrite the error function Minimize only the first term! (The second is zero and the third has a minimum for ). Arun, Huang und Blostein suggest a solution based on the singular value decomosition. K. S. Arun, T. S. Huang, and S. D. Blostein. Least square fitting of two 3-d point sets. IEEE Transactions on Pattern Analysis and Machine Intelligence, 9(5):698 700, 1987. 4

The ICP Algorithm (4) Theorem: Given a 3 x 3 correlation matrix with,then the optimal solution for is with from the SVD. Proof: Rewrite Rotation is length preserving, i.e., maximize the term 5

The ICP Algorithm (5) Theorem: Given a 3 x 3 correlation matrix with,then the optimal solution for is with from the SVD. Proof: Rewrite using the trace of a matrix Lemma: For all positiv definite matrices and all orthonormal matrices the following equation holds: 6

The ICP Algorithm (6) Theorem: Given a 3 x 3 correlation matrix with,then the optimal solution for is with Proof: Suppose the singular value decomposition of and are orthonormal 3 x 3 and from the SVD. is a diagonal matrix without negative entries. is orthonormal and Therefore maximizes And using the lemma it is 7

The ICP Algorithm (7) Estimating the transformation can be accomplished very fast O(n) Closest point search Naïve O(n²), i.e., brute force K-d trees for searching in logarithmic time Recommendation: Start with ANN: A Library for Approximate Nearest Neighbor Searching by David M. Mount and Sunil Arya (University of Maryland) Easy to use Many different methods are available Quite fast http://www.cs.umd.edu/~mount/ann/ 8

K-d Tree based NNS (1) second partition first partition third partition One has to search all buckets according to the ball-withinbounds-test. Backtracking 9

NNS Search the Critical Issue 10

NNS Search the Critical Issue 11

The ICP Algorithm (8) Point reduction another key for fast ICP algorithms Start with cube surrounding the 3D point cloud 12

The ICP Algorithm (9) Point reduction another key for fast ICP algorithms Start with cube surrounding the 3D point cloud Divide Another key issue: maximal point-to-point distance. 13

Registering Surfaces (1) Given The main idea: Pairwise matching technique We want to minimize the distance between the two parts We set up a variational problem Minimize distance energy by rigid motion of one part 14

Registering Surfaces (2) Problem: How to compute the distance This is simple if we know the corresponding points. Of course, we have in general no idea of what corresponds... ICP-idea: set closest point as corresponding point Full algorithm: Compute closest point points Minimize distance to these closest points by a rigid motion Recompute new closest points and iterate 15

Registering Surfaces (3) Distances Closest Point Distances 16

Registering Surfaces (4) ICP iterations 17

Generalizations (1) point-to-plane ICP First order approximation Match points to tangential planes rather than points Converges much faster 18

Generalizations (2) Implementation: We need normals for each point (unoriented/oriented) Compute closes point along normal direction or Compute closest point as usual, project it to surface defined by query point and normal Desirable: reduced points with normals 19

Comparisons In literature it is claimed, that point-to-plane is faster and more accurate 20

More Tricks and Tweaks ICP Problems: Partial matching might lead to distortions / bias Remove outliers M-estimator delete far away points, e.g. 20% percentile in point-to-point distance or hard point-to-point distance threshold (for environments 20cm) Remove normal outliers (if connection direction deviates from normal direction) Sampling problems Problem: for example flat surface with engraved letters No convergence in that case Improvement: Sample correspondence points with distribution to cover unit sphere of normal directions as uniformly as possible 21

More Tricks and Tweaks ICP Problems: Partial matching might lead to distortions / bias Remove outliers M-estimator delete far away points, e.g. 20% percentile in point-to-point distance or hard point-to-point distance threshold (for environments 20cm) Remove normal outliers (if connection direction deviates from normal direction) Sampling problems Problem: for example flat surface with engraved letters No convergence in that case Improvement: Sample correspondence points with distribution to cover unit sphere of normal directions as uniformly as possible 22

Things to try... bin/slam6d dat bin/show dat bin/slam6d -r 10 dat bin/show dat 23

Processing Large Data Sets (1) bin/slam6d -s 1 -e 65 -r 10 -i 100 -d 75 --epsicp=0.00001 ~/dat/hannover/ We see: small matching errors accumulate 24

6D SLAM Global Relaxation (1) In SLAM loop closing is the key to build consistent maps Notice: Consistent vs. correct or accurate GraphSLAM Graph Estimation Graph Optimization Graph Estimation Simple strategy: Connect poses with graph edges that are close enough Simple strategy: Connect poses, they have enough point pairs (closest points) 25

The global ICP Algorithm ICP Algorithm Scan registration Put two independent scans into one frame of reference Iterative Closest Point algorithm [Besl/McKay 1992] For prior point set M ( model set ) and data set D 1. Select point correspondences wi,j in {0,1} 2. Minimize for rotation R, translation t 3. Iterate 1. and 2. Four closed form solution formatching the minimization For globally consistent scan use the following function works in 3 error translation plus 3 rotation dimensions Minimize Andreas Nüchter for Dr. all rotations R and 26 Telematics translations t at therobotics sameand time

Parametrizations for the Rigid Body Transformations Helix transformation solving a system of linear equations 27

Parametrizations for the Rigid Body Transformations Small angle approximation solving a system of linear equations 28

Parametrizations for the Rigid Body Transformations Explicit modeling of uncertainties Assumptions: The unknown error is normally distributed solving a3d system of linear equations Point Cloud Processing 29

Comparisons of the Parametrizations Global ICP Classical Pose GraphSLAM Gaussian noise in the 3D Point Gaussian noise in the space of Cloud space poses Locally optimal Gradient descent needed ICP-like iterations using new point correspondences ICP-like iterations using new point correspondences needed as well Riegl Laser Measurement GmbH (video) (video) (video) (video) 30

Closed Loop Detection and Global Relaxation 31

Processing Large Data Sets (2) bin/slam6d -s 1 -e 65 -r 10 -i 100 -d 75 --epsicp=0.00001 ~/dat/hannover/ We see: small matching errors accumulate bin/slam6d -s 1 -e 65 -r 10 -i 100 -d 75 --epsicp=0.00001 -D 250 -I 50 --cldist=750 -L 0 -G 1 ~/dat_hannover bin/show -s 1 -e 65 ~/dat/dat_hannover 32