Point Cloud Processing

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

INFO0948 Fitting and Shape Matching

Surface Registration. Gianpaolo Palma

3D Perception. CS 4495 Computer Vision K. Hawkins. CS 4495 Computer Vision. 3D Perception. Kelsey Hawkins Robotics

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

5.2 Surface Registration

Algorithm research of 3D point cloud registration based on iterative closest point 1

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

Image Stitching. Slides from Rick Szeliski, Steve Seitz, Derek Hoiem, Ira Kemelmacher, Ali Farhadi

Chapter 4. Clustering Core Atoms by Location

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

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

Photo by Carl Warner

Instance-level recognition

Field-of-view dependent registration of point clouds and incremental segmentation of table-tops using time-offlight

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

3D Modeling from Range Images

3D Environment Reconstruction

LOAM: LiDAR Odometry and Mapping in Real Time

Intensity Augmented ICP for Registration of Laser Scanner Point Clouds

Gaussian and Mean Curvature Planar points: Zero Gaussian curvature and zero mean curvature Tangent plane intersects surface at infinity points Gauss C

Instance-level recognition

Automatic Image Alignment (feature-based)

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

Iterative Closest Point Algorithm in the Presence of Anisotropic Noise

Efficient SLAM Scheme Based ICP Matching Algorithm Using Image and Laser Scan Information

Scanning Real World Objects without Worries 3D Reconstruction

CSE 252B: Computer Vision II

3D Point Cloud Processing

Geometric Modeling in Graphics

Association-Matrix-Based Sample Consensus Approach for Automated Registration of Terrestrial Laser Scans Using Linear Features

Three-Dimensional Sensors Lecture 6: Point-Cloud Registration

The Curse of Dimensionality

Elective in A.I. Robot Programming

Rigid ICP registration with Kinect

3D Terrain Sensing System using Laser Range Finder with Arm-Type Movable Unit

Multi-stable Perception. Necker Cube

10/03/11. Model Fitting. Computer Vision CS 143, Brown. James Hays. Slides from Silvio Savarese, Svetlana Lazebnik, and Derek Hoiem

SIMULTANEOUS REGISTRATION OF MULTIPLE VIEWS OF A 3D OBJECT Helmut Pottmann a, Stefan Leopoldseder a, Michael Hofer a

Lecture 6 Introduction to Numerical Geometry. Lin ZHANG, PhD School of Software Engineering Tongji University Spring 2018

Segmentation of point clouds

Miniature faking. In close-up photo, the depth of field is limited.

Processing 3D Surface Data

Feature Matching and RANSAC

HSM3D: Feature-Less Global 6DOF Scan-Matching in the Hough/Radon Domain

Instance-level recognition part 2

Mosaics. Today s Readings

Measuring and Visualizing Geometrical Differences Using a Consumer Grade Range Camera

A Multi-Resolution ICP with Heuristic Closest Point Search for Fast and Robust 3D Registration of Range Images

Surface Reconstruction with MLS

Overview. Efficient Simplification of Point-sampled Surfaces. Introduction. Introduction. Neighborhood. Local Surface Analysis

Unconstrained 3D-Mesh Generation Applied to Map Building

Processing 3D Surface Data

DETECTION AND ROBUST ESTIMATION OF CYLINDER FEATURES IN POINT CLOUDS INTRODUCTION

Feature Detectors and Descriptors: Corners, Lines, etc.

Geometric Registration for Deformable Shapes 3.3 Advanced Global Matching

Robust Range Image Registration using a Common Plane

A 3D Point Cloud Registration Algorithm based on Feature Points

Uncertainties: Representation and Propagation & Line Extraction from Range data

DIRSAC: A Directed Sample and Consensus Algorithm for Localization with Quasi Degenerate Data

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

Geometric Modeling Summer Semester 2012 Point-Based Modeling

Object Detection in Point Clouds Using Conformal Geometric Algebra

GEOMETRIC TOOLS FOR COMPUTER GRAPHICS

Prof. Noah Snavely CS Administrivia. A4 due on Friday (please sign up for demo slots)

Two-view geometry Computer Vision Spring 2018, Lecture 10

Midterm Examination CS 534: Computational Photography

Homography estimation

Intersecting Simple Surfaces. Dr. Scott Schaefer

Homographies and RANSAC

Correspondence. CS 468 Geometry Processing Algorithms. Maks Ovsjanikov

Surface Reconstruction. Gianpaolo Palma

Bounding Volume Hierarchies

CITS 4402 Computer Vision

Motion Tracking and Event Understanding in Video Sequences

Computer Graphics Ray Casting. Matthias Teschner

Dynamic Geometry Processing

Mobile Point Fusion. Real-time 3d surface reconstruction out of depth images on a mobile platform

ECE 470: Homework 5. Due Tuesday, October 27 in Seth Hutchinson. Luke A. Wendt

3D Photography: Stereo

Model Fitting. Introduction to Computer Vision CSE 152 Lecture 11

Accurate 3D Face and Body Modeling from a Single Fixed Kinect

Fitting. Fitting. Slides S. Lazebnik Harris Corners Pkwy, Charlotte, NC

3D Photography: Active Ranging, Structured Light, ICP

Range Image Registration Based on Circular Features

Model Fitting, RANSAC. Jana Kosecka

Personal Navigation and Indoor Mapping: Performance Characterization of Kinect Sensor-based Trajectory Recovery

FARO Scanning Plugin

Network Traffic Measurements and Analysis

Fundamentals of 3D. Lecture 4: Debriefing: ICP (kd-trees) Homography Graphics pipeline. Frank Nielsen 5 octobre 2011

Feature Based Registration - Image Alignment

Recognition: Face Recognition. Linda Shapiro EE/CSE 576

Registration of Low Cost Maps within Large Scale MMS Maps

Robot Mapping. TORO Gradient Descent for SLAM. Cyrill Stachniss

Instance-level recognition II.

3D Models and Matching

Final Exam Assigned: 11/21/02 Due: 12/05/02 at 2:30pm

Agenda. Rotations. Camera models. Camera calibration. Homographies

Stereo and Epipolar geometry

SOLUTION FREQUENCY-BASED PROCEDURE FOR AUTOMATED REGISTRATION OF TERRESTRIAL LASER SCANS USING LINEAR FEATURES INTRODUCTION

Transcription:

Point Cloud Processing Has anyone seen the toothpaste? Given a point cloud: how do you detect and localize objects? how do you map terrain?

What is a point cloud? Point cloud: a set of points in 3-D space just a set of 3-d points Mesh: each point is a vertex of a triangulated face a set of vertices AND connectivity information Point cloud Mesh Images from Course INF 555 slides, Ecole Polytechnique, Paris

What is a point cloud? Point cloud: a set of points in 3-D space just a set of 3-d points Mesh: each point is a vertex of a triangulated face a set of vertices AND connectivity information Many depth sensors produce point clouds natively Point cloud But, a mesh contains a lot more information Mesh Images from Course INF 555 slides, Ecole Polytechnique, Paris

Time of flight sensors Hokuyo UTM-30LX-EW Scanning Laser Range Finder

Time of flight sensors Slide from Course INF 555 slides, Ecole Polytechnique, Paris

Time of flight sensors

Structured light sensors

Slide: John MacCormick, Dickinson University

Slide: John MacCormick, Dickinson University

Slide: John MacCormick, Dickinson University

Slide: John MacCormick, Dickinson University

Slide: John MacCormick, Dickinson University

Slide: John MacCormick, Dickinson University

Calculating surface normals Point cloud Point cloud w/ surface normals (normals are subsampled)

Calculating surface normals Question: How do we calculate the surface normal given only points? Answer: 1. Calculate the sample covariance matrix of the points within a local neighborhood of the surface normal 2. Take Eigenvalues/Eigenvectors of that covariance matrix

Calculating surface normals Let C denote the set of points in the point cloud Suppose we want to calculate the surface normal at Let denote the r-ball about x is the set of points in the cloud within r of x

Calculating surface normals Calculate the sample covariance matrix of the points in

Calculating surface normals Length = Eigenvalues of Length = Principle axes of ellipse point in directions of corresponding eigenvectors

Calculating surface normals So: surface normal is in the direction of the Eigenvector corresponding to the smallest Eigenvalue of

Calculating surface normals: Summary 1. calculate points within r-ball about x: 2. calculate covariance matrix: 3. calculate Eigenvectors: and Eigenvalues: (\lambda_3 is smallest) 4. v_3 is parallel or antiparallel to surface normal

Calculating surface normals Important note: the points alone do not tell us the sign of the surface normal

Calculating surface normals Important note: the points alone do not tell us the sign of the surface normal

Calculating surface normals How large a point neighborhood to use when calculating? Because points can be uneven, don't use k-nearest neighbor. it's important to select a radius r and stick w/ it. which what value of r to use?

Calculating surface normals Images from Course INF 555 slides, Ecole Polytechnique, Paris

Calculating surface normals Images from Course INF 555 slides, Ecole Polytechnique, Paris

Outlier removal Similar approach as in normal estimation: 1. calculate local covariance matrix 2. estimate Eigenvectors/Eigenvalues 3. use that information somehow... Images from Course INF 555 slides, Ecole Polytechnique, Paris

Outlier removal If points lie on a line, then is small If points are uniformly random, then Outlier removal: delete all points for which is close to 1 is above a threshold Images from Course INF 555 slides, Ecole Polytechnique, Paris

Point cloud registration: ICP Find an affine transformation that aligns two partially overlapping point clouds Images from Course INF 555 slides, Ecole Polytechnique, Paris

ICP Problem Statement This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP: key idea This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Step 1: center the two point clouds This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Step 2: use SVD to get min t and R This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Step 2: use SVD to get min t and R This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP data association problem This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP Algorithm Input: two point sets, X and P Output: translation t and rotation R that best aligns pt sets 1. Start with a good alignment 2. Repeat until t and R are small: 3. for every point in X, find its closest neighbor in P 4. find min t and R for that correspondence assignment 5. translate and rotate P by t and R 6. Figure out net translation and rotation, t and R Converges if the point sets are initially well aligned Besl and McKay, 1992

ICP example This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP Variants This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Selecting points to align This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Normal-space sampling This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Comparison: normal space sampling vs random This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Feature based sampling This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP: data association This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP: data association This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Closest point matching This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Normal shooting This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Point-to-plane distances This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Closest compatible point This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

ICP: summary This slide from: Burgard, Stachniss, Bennewitz, Arras, U. Freiburg

Another approach to alignment: RANSAC This slide from: Kavita Bala, Cornell U.

RANSAC This slide from: Kavita Bala, Cornell U.

How does regression work here?

Image alignment problem This slide from: Kavita Bala, Cornell U.

Outliers This slide from: Kavita Bala, Cornell U.

RANSAC This slide from: Kavita Bala, Cornell U.

RANSAC key idea This slide from: Kavita Bala, Cornell U.

Counting inliers This slide from: Kavita Bala, Cornell U.

Counting inliers This slide from: Kavita Bala, Cornell U.

How do we find the best line? This slide from: Kavita Bala, Cornell U.

RANSAC This slide from: Kavita Bala, Cornell U.

This slide from: Kavita Bala, Cornell U.

This slide from: Kavita Bala, Cornell U.

This slide from: Kavita Bala, Cornell U.

Using RANSAC to Fit a Sphere

Using RANSAC to Fit a Sphere

Using RANSAC to Fit a Sphere Radius? Center?

Using RANSAC to Fit a Sphere How generate candidate spheres? How score spheres?

Using RANSAC to Fit a Sphere How generate candidate spheres? 1. sample a point How score spheres?

Using RANSAC to Fit a Sphere How generate candidate spheres? 1. sample a point 2. estimate surface normal How score spheres?

Using RANSAC to Fit a Sphere radius How generate candidate spheres? 1. sample a point 2. estimate surface normal 3. sample radius How score spheres?

Using RANSAC to Fit a Sphere radius How generate candidate spheres? 1. sample a point 2. estimate surface normal 3. sample radius 4. estimate center to be radius distance from sampled point along surface normal How score spheres?

Using RANSAC to Fit a Sphere radius How generate candidate spheres? 1. sample a point 2. estimate surface normal 3. sample radius 4. estimate center to be radius distance from sampled point along surface normal How score spheres? 1. count num pts within epsilon of candidate sphere surface

Using RANSAC to Fit a Cylinder How generate candidate cylinders?

Using RANSAC to Fit a Cylinder How generate candidate cylinders? 1. sample two pts

Using RANSAC to Fit a Cylinder How generate candidate cylinders? 1. sample two pts 2. estimate surface normal at both pts

Using RANSAC to Fit a Cylinder How generate candidate cylinders? 1. sample two pts 2. estimate surface normal at both pts 3. get sample axis by taking cross product between two normals

Using RANSAC to Fit a Cylinder How generate candidate cylinders? 1. sample two pts 2. estimate surface normal at both pts 3. get sample axis by taking cross product between two normals 4. project points onto plane orthogonal to axis 5. fit a circle using a method similar to what we did for the sphere.

Using RANSAC to Fit a Cylinder 3xn matrix of pts projected onto plane How generate candidate cylinders? 1. sample two pts 2. estimate surface normal at both pts 3. get sample axis by taking cross product between two normals 4. project points onto plane orthogonal to axis 5. fit a circle using a method similar to what we did for the sphere. 3x1 unit vector in direction of axis 3xn matrix of pts in 3d space

RANSAC: the parameters This slide from: Kavita Bala, Cornell U.

RANSAC: how many rounds? This slide from: Kavita Bala, Cornell U.

RANSAC: how many parameters to sample? This slide from: Kavita Bala, Cornell U.

RANSAC Summary This slide from: Kavita Bala, Cornell U.

Hough transform This slide from: Kavita Bala, Cornell U.

Hough transform This slide from: Kavita Bala, Cornell U.

Hough transform This slide from: Kavita Bala, Cornell U.

Hough transform This slide from: Kavita Bala, Cornell U.

Hough transorm This slide from: Kavita Bala, Cornell U.