The Ball Pivoting Algorithm

Slides:



Advertisements
Similar presentations
Goal: a graph representation of the topology of a gray scale image. The graph represents the hierarchy of the lower and upper level sets of the gray level.
Advertisements

Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
Surface Reconstruction From Unorganized Point Sets
Surface normals and principal component analysis (PCA)
September 10, 2013Computer Vision Lecture 3: Binary Image Processing 1Thresholding Here, the right image is created from the left image by thresholding,
Discrete Geometry Tutorial 2 1
Rapid Visualization of Large Point-Based Surfaces Tamy Boubekeur Florent Duguet Christophe Schlick Presented by Xavier Granier.
Segmentation (2): edge detection
Atomic Volumes for Mesh Completion Joshua Podolak Szymon Rusinkiewicz Princeton University.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Shape from Contours and Multiple Stereo A Hierarchical, Mesh-Based Approach Hendrik Kück, Wolfgang Heidrich, Christian Vogelgsang.
Mesh Simplification Global and Local Methods:
Asst. Prof. Yusuf Sahillioğlu
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Filling Holes in Complex Surfaces using Volumetric Diffusion James Davis, Stephen Marschner, Matt Garr, Marc Levoy Stanford University First International.
Filling Arbitrary Holes in Finite Element Models 17 th International Meshing Roundtable 2008 Schilling, Bidmon, Sommer, and Ertl.
Shape Modeling International 2007 – University of Utah, School of Computing Robust Smooth Feature Extraction from Point Clouds Joel Daniels ¹ Linh Ha ¹.
reconstruction process, RANSAC, primitive shapes, alpha-shapes
An Out-of-core Algorithm for Isosurface Topology Simplification Zoë Wood Hughes Hoppe Mathieu Desbrun Peter Schröder.
Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.
1 Numerical geometry of non-rigid shapes Non-Euclidean Embedding Non-Euclidean Embedding Lecture 6 © Alexander & Michael Bronstein tosca.cs.technion.ac.il/book.
E.G.M. PetrakisBinary Image Processing1 Binary Image Analysis Segmentation produces homogenous regions –each region has uniform gray-level –each region.
Real-Time Face Detection and Tracking Using Multiple Cameras RIT Computer Engineering Senior Design Project John RuppertJustin HnatowJared Holsopple This.
Multi-Scale Surface Descriptors Gregory Cipriano, George N. Phillips Jr., and Michael Gleicher.
Hidden Surface Removal
Zoltan Szego †*, Yoshihiro Kanamori ‡, Tomoyuki Nishita † † The University of Tokyo, *Google Japan Inc., ‡ University of Tsukuba.
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean Hall 5409 T-R 10:30am – 11:50am.
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
CGMB 314 Intro to Computer Graphics Fill Area Primitives.
Gwangju Institute of Science and Technology Intelligent Design and Graphics Laboratory Multi-scale tensor voting for feature extraction from unstructured.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Dobrina Boltcheva, Mariette Yvinec, Jean-Daniel Boissonnat INRIA – Sophia Antipolis, France 1. Initialization Use the.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Digital Image Processing Lecture 20: Representation & Description
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
Geometric Modeling using Polygonal Meshes Lecture 1: Introduction Hamid Laga Office: South.
SURFACE RECONSTRUCTION FROM POINT CLOUD Bo Gao Master’s Thesis December, 2007 Thesis Committee: Professor Harriet Fell Professor Robert Futrelle College.
1 Surface Applications Fitting Manifold Surfaces To 3D Point Clouds, Cindy Grimm, David Laidlaw and Joseph Crisco. Journal of Biomechanical Engineering,
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
A lightweight approach to repairing digitized polygon meshes Marco Attene IMATI-GE / CNR 2010 Presented by Naitsat Alexander.
Mesh Data Structure. Meshes Boundary edge: adjacent to 1 face Regular edge: adjacent to 2 faces Singular edge: adjacent to >2 faces Mesh: straight-line.
September 23, 2014Computer Vision Lecture 5: Binary Image Processing 1 Binary Images Binary images are grayscale images with only two possible levels of.
1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.
Spring 2015 CSc 83020: 3D Photography Prof. Ioannis Stamos Mondays 4:15 – 6:15
Extraction and remeshing of ellipsoidal representations from mesh data Patricio Simari Karan Singh.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
JinJin Hong, Lixia Yan, Jiaoying Shi (State Key Lab. of CAD&CG, Zhejiang University) A Tetrahedron Based Volume Model Simplification Algorithm.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Subdivision Surfaces Greg Humphreys University of Virginia CS 445, Fall 2003.
High Resolution Surface Reconstruction from Overlapping Multiple-Views
October 1, 2013Computer Vision Lecture 9: From Edges to Contours 1 Canny Edge Detector However, usually there will still be noise in the array E[i, j],
Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.
Robust Watermarking of 3D Mesh Models. Introduction in this paper, it proposes an algorithm that extracts 2D image from the 3D model and embed watermark.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Detection of closed sharp edges in point clouds Speaker: Liuyu Time:
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
Computer Vision Computer Vision based Hole Filling Chad Hantak COMP December 9, 2003.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
APE'07 IV INTERNATIONAL CONFERENCE ON ADVANCES IN PRODUCTION ENGINEERING June 2007 Warsaw, Poland M. Nowakiewicz, J. Porter-Sobieraj Faculty of.
Best Practice T-Scan5 Version T-Scan 5 vs. TS50-A PropertiesTS50-AT-Scan 5 Range51 – 119mm (stand- off 80mm / total 68mm) 94 – 194mm (stand-off.
A Plane-Based Approach to Mondrian Stereo Matching
CSE 554 Lecture 1: Binary Pictures
Range Image Segmentation for Modeling and Object Detection in Urban Scenes Cecilia Chen & Ioannis Stamos Computer Science Department Graduate Center, Hunter.
Introduction to Graphics Modeling
3D Object Representations
Controlled Topology Simplification (Voxel Based Object Simplification)
Computer Vision Lecture 5: Binary Image Processing
Domain-Modeling Techniques
Craig Schroeder October 26, 2004
A Volumetric Method for Building Complex Models from Range Images
Presentation transcript:

The Ball Pivoting Algorithm Ioannis Stamos

Points vs. Meshes Point-based vs. Mesh-based representation. Fast rendering for complicated point-sets. No loss of information (all points used). No need for modeling of every tiny scene detail. Rendering quality degrades when viewer zooms-in. Computation waste in mainly planar areas. Solid modeling operations not straightforward Not supported in commercial modeling/rendering software (Maya, etc.)

Meshing Algorithms Input: Range Images Range Image = Set of 3D points Output: Single mesh = topologically correct set of triangles (not triangle soup)

Range Sensor Imaging Characteristics Range Image: rectangular sampling Image has structure surface elements occlusion elements

From Points to Mesh [Single Image] Sensing Direction Occlusion Discard long edges ? Threshold distance ?

3D-modeling pipeline 3D-to-3D Registration Aligned meshes Range Image Acquisition Aligned meshes Draw on the board the differnce bw/ two meshes and one mesh. Meshing Remove redundancy Single Mesh

Methodology Each range image is preprocessed 3D points P => 3D points with associated normals: (P, N) Bounding box enclosing all images computed Ball Pivoting Algorithm: Input: 3D points and normals from all range images Output: Triangular mesh

Preprocessing Range Images K by K neighbourhood around point P Patch fit in K by K neighborhood around point P Eigenvector corresponding to smallest eigenvalue: normal Magnitude of smallest eigenvalue: confidence in normal Normal computed for every 3D point Structure of range images used for K by K neighbourhood -1

Neighborhood used for normal computation Accurately computed normals in locally planar regions

Neighborhood used for normal computation Two possible directions [towards outside]

Neighborhood used for normal computation Two possible directions [towards inside]

Neighborhood used for normal computation Consistent normal direction for all points

Neighborhood used for normal computation Consistent normal direction for all points Choose outside orientation

Neighborhood used for normal computation Inaccurately computed normals close to boundaries

Ball Pivoting Algorithm [Input] Points/normals of all range images in data structure Connectivity of points in range images not needed anymore Radius ρ selected by the user.

Voxel-based data structure y-axis ρ ρ Fast search for points within circle of radius ρ x-axis

Voxel-based data structure y-axis ρ ρ Fast search for points within circle of radius ρ Need to search only in adjacent voxels [9 in this picture – 27 in 3D space] x-axis

Voxel-based data structure y-axis ρ ρ Fast search for points within circle of radius ρ Need to search only in adjacent voxels [9 in this picture – 27 in 3D space] x-axis

Basic Operations F. Bernardini, J. Mittleman, H. Rushmeier, C. Silva, G. Taubin. The ball-pivoting algorithm for surface reconstruction. IEEE Trans. on Vis. and Comp. Graph. 5 (4), pages 349-359, October-December 1999. A sequence of ball-pivoting operations. From left to right: A seed triangle is found; pivoting around an edge of the current front adds a new triangles to the mesh; after a number of pivoting operations, the active front closes on itself; a final ball-pivoting completes the mesh. Closely related to alpha-shapes, Edelsbrunner 94

Seed triangles A number of seed triangles with their associated spheres shown

Pivoting in 2D Circle of radius ρ pivots from point to point, connecting them with edges. When sampling density is low, some of the edges will not be created, leaving holes. (c) When the curvature of the manifold is larger than 1/ρ, some of the points will not be reached by the pivoting ball, and features will be missed. We define the scanning problem: Given an object, find a continuous representation of the object surface that captures features of a length scale 2d or larger. The value of d is dictated by the application. Capturing features of scale 2d requires sampling the surface with a spatial resolution of d or less. Let the manifold M be the surface of a three dimensional object and S be a point-sampling of M. Let us assume for now that S is dense enough that a -ball (a ball of radius ) cannot pass through the surface without touching sample points. 1. The intersection of any ball of radius with the manifold is a topological disk. [curvature] 2. Any ball of radius centered on the manifold contains at least one sample point in its interior. Let us consider the case of real scanned data. Typical problems are missing points, non-uniform density, imperfectly-aligned overlapping range scans, and scanner line-of-sight error + real outliers (boundaries of surfaces).

The algorithm [Edge representation] Edge (si, sj) Opposite point so, center of empty ball c Edge: “Active”, “Boundary”, or “Frozen” sj si c so

Pivoting example Initial seed triangle: Empty ball of radius ρ passes through the three points Active edge Point on front

Pivoting example Active edge Ball pivoting around active edge Point on front

Pivoting example Active edge Ball pivoting around active edge Point on front

Pivoting example Active edge Ball pivoting around active edge Point on front

Pivoting example Active edge Ball pivoting around active edge Point on front

Pivoting example Active edge Ball pivoting around active edge Point on front Internal point

Pivoting example Boundary edge Active edge Ball pivoting around active edge No pivot found Point on front Internal point

Pivoting example Boundary edge Active edge Ball pivoting around active edge Point on front Internal point

Pivoting example Boundary edge Active edge Ball pivoting around active edge No pivot found Point on front Internal point

Pivoting example Boundary edge Active edge Ball pivoting around active edge Point on front Internal point

Pivoting example Boundary edge Points in frozen region Frozen edge Active edge Ball pivoting around active edge Point on front Internal point

Pivoting example Boundary edge Points in frozen region Frozen edge Active edge Ball pivoting around active edge Point on front Internal point

Pivoting example Boundary edge Points in frozen region Frozen edge Active edge Ball pivoting around active edge Point on front Internal point

Pivoting example Boundary edge Points in frozen region Frozen edge Active edge Ball pivoting around active edge Point on front Internal point

Algorithm Snapshot 13 points (P1, …) 4 voxels (V0, …) 11 edges (E1, …) Two loops: L1, L2

Noisy data Points “below” surface level are not touched by the pivoting ball and remain isolated (and are discarded by the algorithm). Due to missing data, the ball pivots around an edge until it touches a sample that belongs to a different part of the surface. By checking that triangle and data point normals are consistently oriented, we avoid generating a triangle in this case. (c) Noisy samples form two layers, distant enough to allow the ball to “walk” on both layers. A spurious small component is created.

Ball Pivoting Algorithm Overlapping scans 3D mesh

Ball Pivoting Algorithm 3D mesh detail 3D mesh detail

Out of core implementation Process data in slices that fit in memory No limit in size of input BPA’s active front provides natural implementation Of major importance for large scale scenes

Out of core implementation Bounding box of scene

Out of core implementation Frozen region Mesh for first slice First slice in memory Bounding box of scene

Out of core implementation Frozen region Mesh for second slice Second slice in memory

Out of core implementation Frozen region Mesh for third slice Third slice in memory, etc.

produced by the out-of-core implementation. Out of core results Part of the Great Hall mesh. The different colors correspond to meshes of different slices produced by the out-of-core implementation.

Results Grand Central Station Leica 4500 (phase-based) 27 input scans ~ 40 million points Split into 30 slices Preprocessing ~ 40 minutes Split operation ~ 37 minutes BPA out-of-core ~ 22 hours [ Intel Xeon Processor at 2GHz, 2Gb of RAM] Output mesh ~ 7.95 million triangles / 4.19 million vertices Ball radius ρ = 0.2 meters ( ~ 7.87 inches)

Results Grand Central Station Cyrax 2500 (time of flight) 45 input scans ~ 45 million points Split into 50 slices Normal computation ~ 38 mins Split operation ~ 65 mins BPA out-of-core ~ 18 hours [ Intel Xeon Processor at 2GHz, 2Gb of RAM] Output mesh ~7.74 million triangles / 3.98 million vertices Ball radius ρ = 0.1 meters ( ~ 3.93 inches)

Results Great Hall Cyrax 2500 (time of flight) 27 input scans ~ 27 million points Split into 30 slices Normal computation ~ 20 mins Split operation ~ 27 mins BPA out-of-core ~ 3 hours [ Intel Xeon Processor at 2GHz, 2Gb of RAM] Output mesh ~ 20.40 million triangles / 11 million vertices Ball radius ρ = 0.03 meters ( ~ 1.18 inches)

Out of core result [Great Hall]

Out of core result [Grand Central]

Out of core result [Grand Central]

Out of core result [Great Hall]

Out of core result [Great Hall]

Out of core result [Great Hall]

Out of core result [Great Hall]

Out of core result [Grand Central]

Out of core result [Grand Central]

Out of core result [Grand Central]

Advantages Efficient and conceptually natural algorithm Provides topologically correct mesh Faithfully follows data Models scenes of any geometric type Models scenes of any size (out of core) Larger ball : cruder / smaller model Smaller ball: sharper / larger model [captures detail]

Disadvantages Ball radius ρ : does not adapt to local point density Can use balls of increased radii [not a good solution] Sensitive to noisy normals Smoothing of normals may help as pre-processing step Faithfully follows data May need to smooth mesh as post-processing step Holes are generated Small holes due to noisy normals or variable point density Large holes in areas containing no data A hole filling algorithm is essential [future work]