Multi-View Matching & Mesh Generation. Qixing Huang Feb. 13 th 2017

Similar documents
Outline of the presentation

Surface Simplification Using Quadric Error Metrics

Geometric Modeling in Graphics

Correctness. The Powercrust Algorithm for Surface Reconstruction. Correctness. Correctness. Delaunay Triangulation. Tools - Voronoi Diagram

CSE 554 Lecture 6: Fairing and Simplification

Surface Reconstruction

Data-Driven Geometry Processing Map Synchronization I. Qixing Huang Nov. 28 th 2018

VoroCrust: Simultaneous Surface Reconstruction and Volume Meshing with Voronoi cells

Digital Geometry Processing

Special Topics in Visualization

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

Indirect Volume Rendering

CSC Computer Graphics

Scalar Field Visualization. Some slices used by Prof. Mike Bailey

Möbius Transformations in Scientific Computing. David Eppstein

03 - Reconstruction. Acknowledgements: Olga Sorkine-Hornung. CSCI-GA Geometric Modeling - Spring 17 - Daniele Panozzo

Contouring and Isosurfaces. Ronald Peikert SciVis Contouring 2-1

Data Representation in Visualisation

Outline. Visualization Discretization Sampling Quantization Representation Continuous Discrete. Noise

Marching Squares Algorithm. Can you summarize the marching squares algorithm based on what we just discussed?

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

coding of various parts showing different features, the possibility of rotation or of hiding covering parts of the object's surface to gain an insight

Isosurface Rendering. CSC 7443: Scientific Information Visualization

Outline. Reconstruction of 3D Meshes from Point Clouds. Motivation. Problem Statement. Applications. Challenges

Surface Modeling. Polygon Tables. Types: Generating models: Polygon Surfaces. Polygon surfaces Curved surfaces Volumes. Interactive Procedural

Surface reconstruction based on a dynamical system

Surface Reconstruction. Gianpaolo Palma

Solid Modeling. Michael Kazhdan ( /657) HB , FvDFH 12.1, 12.2, 12.6, 12.7 Marching Cubes, Lorensen et al.

Scalar Algorithms: Contouring

Data-Driven Shape Analysis --- Joint Shape Matching I. Qi-xing Huang Stanford University

Implicit Surfaces & Solid Representations COS 426

Overview of 3D Object Representations

Tight Cocone DIEGO SALUME SEPTEMBER 18, 2013

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

Shrinkwrap developments for computational electromagnetics in ICE NITe

CIS 4930/ SCIENTIFICVISUALIZATION

9. Three Dimensional Object Representations

Introduction to Computer Graphics. Modeling (3) April 27, 2017 Kenshi Takayama

Other Voronoi/Delaunay Structures

Geometry Processing & Geometric Queries. Computer Graphics CMU /15-662

Convex Polygon Generation

Project Updates Short lecture Volumetric Modeling +2 papers

Scientific Visualization Example exam questions with commented answers

CS3621 Midterm Solution (Fall 2005) 150 points

Voronoi Diagram. Xiao-Ming Fu

The Ball-Pivoting Algorithm for Surface Reconstruction

Scalar Visualization

Scientific Visualization. CSC 7443: Scientific Information Visualization

EXACT FACE-OFFSETTING FOR POLYGONAL MESHES

ON THE WAY TO WATER-TIGHT MESH

Solid Modelling. Graphics Systems / Computer Graphics and Interfaces COLLEGE OF ENGINEERING UNIVERSITY OF PORTO

Mesh Repairing and Simplification. Gianpaolo Palma

CS Object Representation. Aditi Majumder, CS 112 Slide 1

CS354 Computer Graphics Surface Representation IV. Qixing Huang March 7th 2018

Multidimensional Data and Modelling

Shape from Silhouettes I

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality

Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine.

DISCRETE DIFFERENTIAL GEOMETRY: AN APPLIED INTRODUCTION Keenan Crane CMU /858B Fall 2017

Computing 3D Geometry Directly From Range Images

MARCHING CUBES AND VARIANTS

Week 8 Voronoi Diagrams

Estimating Geometry and Topology from Voronoi Diagrams

DiFi: Distance Fields - Fast Computation Using Graphics Hardware

Spatial Data Structures

A Constrained Delaunay Triangle Mesh Method for Three-Dimensional Unstructured Boundary Point Cloud

Outline. CGAL par l exemplel. Current Partners. The CGAL Project.

Tutorial 3 Comparing Biological Shapes Patrice Koehl and Joel Hass

Handles. The justification: For a 0 genus triangle mesh we can write the formula as follows:

Voronoi Diagrams in the Plane. Chapter 5 of O Rourke text Chapter 7 and 9 of course text

Computational Geometry

Topology Preserving Tetrahedral Decomposition of Trilinear Cell

Bending Circle Limits

EECS490: Digital Image Processing. Lecture #23

Computational Geometry Lecture Duality of Points and Lines

Chapter 11 Representation & Description

Contours & Implicit Modelling 4

The Medial Axis of the Union of Inner Voronoi Balls in the Plane

be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that

Contours & Implicit Modelling 1

CS 112 The Rendering Pipeline. Slide 1

An Introduction to Geometric Modeling using Polygonal Meshes

Skeleton Extraction of 3D Objects with Visible Repulsive Force

Spatial Data Structures

Geometric and Semantic 3D Reconstruction: Part 4A: Volumetric Semantic 3D Reconstruction. CVPR 2017 Tutorial Christian Häne UC Berkeley

Lecture notes: Object modeling

Hexahedral Mesh Generation for Volumetric Image Data

Voronoi diagram and Delaunay triangulation

Extracting consistent and manifold interfaces from multi-valued volume data sets

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

SURFACE CONSTRUCTION USING TRICOLOR MARCHING CUBES

Shape from Silhouettes I

Processing 3D Surface Data

Skeleton Based Solid Representation with Topology Preservation

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

Volume Illumination, Contouring

Tiling Three-Dimensional Space with Simplices. Shankar Krishnan AT&T Labs - Research

Insertions and Deletions in Delaunay Triangulations using Guided Point Location. Kevin Buchin TU Eindhoven

Lecture 2 Unstructured Mesh Generation

Atomic Volumes for Mesh Completion

Transcription:

Multi-View Matching & Mesh Generation Qixing Huang Feb. 13 th 2017

Geometry Reconstruction Pipeline

RANSAC --- facts Sampling Feature point detection [Gelfand et al. 05, Huang et al. 06] Correspondences Use feature descriptors m << O(n 2 ) The candidate correspondences Denote the success rate p ¼ n m Basic analysis The probability of having a valid triplet p 3 The probability of having a valid triplet in N trials is 1 (1 p 3 ) N

Multiple Matching

Spanning tree based Automatic Three-dimensional Modeling from Reality, PhD thesis, D. Huber, Robotics Institute, Carnegie Mellon University, 2002

Spanning tree based

Spanning tree based Issue: A single incorrect match can destroy everything

Detecting inconsistent cycles large for inconsistent cycles maximize subject to Disambiguating visual relations using loop constraints, C. Zach, M. Klopscjotz, and M. POLLEFEYS, CVPR 10

Rotation [Wang and Singer 13] minimize subject to

Meshing

Two Approaches Computational Geometry Based Implicit Surface -> Contouring

Power Crust [Amenta et al. 02]

Power Crust [Amenta et al. 02] (a) An object with its medial axis; one maximal interior ball is shown. b) The Voronoi diagram of S, with the Voronoi ball surrounding one pole shown. In 2D, we can select all Voronoi vertices as poles, but not in 3D

Power Crust [Amenta et al. 02] c) The inner and outer polar balls. Outer polar balls with centers at infinity degenerate to halfspaces on the convex hull. d) The power diagram cells of the poles, labeled inner and outer.

Power Crust [Amenta et al. 02] d) The power diagram cells of the poles, labeled inner and outer. e) The power crust and the power shape of its interior solid.

Eigen Crust [Kolluri et al. 04]

Eigen Crust [Kolluri et al. 04]

Two Approaches Computational Geometry Based Implicit Surface -> Contouring

Point Cloud -> Implicit Surface? Challenges: Irregular Samples Holes Noise

Defining point-set surfaces [Amenta et al. 05]

Poisson surface reconstruction [Kazhdan et al. 06]

Poisson surface reconstruction [Kazhdan et al. 06] Define the vector field: Solve the Poisson equation:

Poisson surface reconstruction [Kazhdan et al. 06] VRIP Poisson Surface Reconstruction

Contouring

Contouring (On A Grid) Input A grid where each grid point (pixel or voxel) has a value (color) An iso-value (threshold) Output A closed, manifold, nonintersecting polyline (2D) or mesh (3D) that separates grid points above the isovalue from those that are below the iso-value. Iso-value = Grid point (pixel) Grid edge Grid cell Slide Credit: Tao Ju

Contouring (On A Grid) Input A grid where each grid point (pixel or voxel) has a value (color) An iso-value (threshold) Output Equivalently, we extract the zero-contour (separating negative from positive) after subtracting the isovalue from the grid points Iso-value = 0 negative positive Slide Credit: Tao Ju

Algorithms Primal methods Marching Squares (2D), Marching Cubes (3D) Placing vertices on grid edges Dual methods Dual Contouring (2D,3D) Placing vertices in grid cells Slide Credit: Tao Ju

Marching Squares (2D) For each grid cell with a sign change Create one vertex on each grid edge with a sign change Connect vertices by lines Slide Credit: Tao Ju

Marching Squares (2D) For each grid cell with a sign change Create one vertex on each grid edge with a sign change Connect vertices by lines Slide Credit: Tao Ju

Marching Squares (2D) Creating vertices: linear interpolation f Assuming the underlying, continuous function is linear on the grid edge Linearly interpolate fthe 1 >0 positions of the two grid points + 0 {x 0,y 0 } t 1-t t( x {x 1,y 1 } 0 1 0 {x,y} y y t( y y ) t x f x 0 0 f0 f 1 1 x ) 0 - f 0 <0 Slide Credit: Tao Ju

Marching Squares (2D) For each grid cell with a sign change Create one vertex on each grid edge with a sign change Connect vertices by lines Slide Credit: Tao Ju

Marching Squares (2D) Connecting vertices by lines Lines shouldn t intersect Each vertex is used once So that it will be used exactly twice by the two cells incident on the edge Two approaches Do a walk around the grid cell Connect consecutive pair of vertices Or, using a pre-computed look-up table 2^4=16 sign configurations For each sign configuration, it stores the indices of the grid edges whose vertices make up the lines. 1 1 2 4 3 3 2 4 Key: 0 0 0 1 Data: {{2,4}} Key: 0 0 1 1 Data: {{3,4}} Key: 1 0 0 1 Data: {{1,3}, {2,4}} Slide Credit: Tao Ju

Marching Cubes (3D) For each grid cell with a sign change Create one vertex on each grid edge with a sign change (using linear interpolation) Connect vertices into triangles Slide Credit: Tao Ju

Marching Cubes (3D) For each grid cell with a sign change Create one vertex on each grid edge with a sign change (using linear interpolation) Connect vertices into triangles Slide Credit: Tao Ju

Marching Cubes (3D) Connecting vertices by triangles Triangles shouldn t intersect To be a closed manifold: Each vertex used by a triangle fan Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) Slide Credit: Tao Ju

Marching Cubes (3D) Connecting vertices by triangles Triangles shouldn t intersect To be a closed manifold: Each vertex used by a triangle fan Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) Slide Credit: Tao Ju

Marching Cubes (3D) Connecting vertices by triangles Triangles shouldn t intersect To be a closed manifold: Each vertex used by a triangle fan Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) Open mesh: each magenta edge is shared by one triangle Slide Credit: Tao Ju

Marching Cubes (3D) Connecting vertices by triangles Triangles shouldn t intersect To be a closed manifold: Each vertex used by a triangle fan Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) Each mesh edge on the grid face is shared between adjacent cells Closed mesh: each edge is shared by two triangles Slide Credit: Tao Ju

Marching Cubes (3D) Connecting vertices by triangles Triangles shouldn t intersect To be a closed manifold: Each vertex used by a triangle fan Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) Each mesh edge on the grid face is shared between adjacent cells Look-up table 2^8=256 sign configurations For each sign configuration, it stores indices of the grid edges whose vertices make up the triangles 2 1 9 7 2 5 1 4 3 10 11 8 6 3 5 4 6 12 Sign: 0 0 0 1 0 1 0 0 Triangles: {{2,8,11},{4,7,10}} 7 8 Slide Credit: Tao Ju

Lookup Table Slide Credit: Tao Ju

Algorithms Primal methods Marching Squares (2D), Marching Cubes (3D) Placing vertices on grid edges Dual methods Dual Contouring (2D,3D) Placing vertices in grid cells Slide Credit: Tao Ju

Dual Contouring (2D) For each grid cell with a sign change Create one vertex For each grid edge with a sign change Connect the two vertices in the adjacent cells with a line segment Slide Credit: Tao Ju

Dual Contouring (2D) For each grid cell with a sign change Create one vertex For each grid edge with a sign change Connect the two vertices in the adjacent cells with a line segment Slide Credit: Tao Ju

Dual Contouring (2D) Creating the vertex within a cell Compute one point on each grid edge with a sign change (by linear interpolation) There could be more than two sign-changing edges, so >2 points possible Take the centroid of these points Slide Credit: Tao Ju

Dual Contouring (3D) For each grid cell with a sign change Create one vertex (same way as 2D) For each grid edge with a sign change Create a quad (or two triangles) connecting the four vertices in the adjacent grid cubes No look-up table is needed! Slide Credit: Tao Ju

Duality The two outputs have a dual structure Vertices and quads of Dual Contouring correspond (roughly) to un-triangulated polygons and vertices produced by Marching Cubes Marching Cubes Dual Contouring Slide Credit: Tao Ju

Primal vs. Dual Slide Credit: Tao Ju Marching Cubes Always manifold Requires look-up table in 3D Often generates thin and tiny polygons Dual Contouring Can be non-manifold No look-up table needed Generates better-shaped polygons Marching Cubes Dual Contouring

Primal vs. Dual Slide Credit: Tao Ju Marching Cubes Always manifold Requires look-up table in 3D Often generates thin and tiny polygons Restricted to uniform grids Dual Contouring Can be non-manifold No look-up table needed Generates better-shaped polygons Can be applied to any type of grid DC on uniform grid DC on a Quadtree (2D) DC on octree (3D)