Surface normals and principal component analysis (PCA)

Slides:



Advertisements
Similar presentations
Chapter 3 Properties of Random Variables
Advertisements

EigenFaces and EigenPatches Useful model of variation in a region –Region must be fixed shape (eg rectangle) Developed for face recognition Generalised.
Surface normals and principal component analysis (PCA)
The Simple Regression Model
Surface Reconstruction From Unorganized Point Sets
PCA + SVD.
1er. Escuela Red ProTIC - Tandil, de Abril, 2006 Principal component analysis (PCA) is a technique that is useful for the compression and classification.
Computer Vision – Image Representation (Histograms)
Informationsteknologi Wednesday, November 7, 2007Computer Graphics - Class 51 Today’s class Geometric objects and transformations.
Discrete Geometry Tutorial 2 1
Lecture 7: Principal component analysis (PCA)
Appendix to Chapter 1 Mathematics Used in Microeconomics © 2004 Thomson Learning/South-Western.
Principal Component Analysis
L15:Microarray analysis (Classification) The Biological Problem Two conditions that need to be differentiated, (Have different treatments). EX: ALL (Acute.
CS CS 175 – Week 2 Processing Point Clouds Local Surface Properties, Moving Least Squares.
Face Recognition Jeremy Wyatt.
Lecture 4 Unsupervised Learning Clustering & Dimensionality Reduction
The Terms that You Have to Know! Basis, Linear independent, Orthogonal Column space, Row space, Rank Linear combination Linear transformation Inner product.
Three Algorithms for Nonlinear Dimensionality Reduction Haixuan Yang Group Meeting Jan. 011, 2005.
Visual Recognition Tutorial1 Random variables, distributions, and probability density functions Discrete Random Variables Continuous Random Variables.
Chapter 23 Mirrors and Lenses.
Principal Component Analysis. Consider a collection of points.
Techniques for studying correlation and covariance structure
Correlation. The sample covariance matrix: where.
Normal Estimation in Point Clouds 2D/3D Shape Manipulation, 3D Printing March 13, 2013 Slides from Olga Sorkine.
Relationships Among Variables
Separate multivariate observations
CS 485/685 Computer Vision Face Recognition Using Principal Components Analysis (PCA) M. Turk, A. Pentland, "Eigenfaces for Recognition", Journal of Cognitive.
SVD(Singular Value Decomposition) and Its Applications
Empirical Modeling Dongsup Kim Department of Biosystems, KAIST Fall, 2004.
Summarized by Soo-Jin Kim
Principal Component Analysis Adapted by Paul Anderson from Tutorial by Doug Raiford.
Chapter 2 Dimensionality Reduction. Linear Methods
Principal Components Analysis BMTRY 726 3/27/14. Uses Goal: Explain the variability of a set of variables using a “small” set of linear combinations of.
Chapter 3 Data Exploration and Dimension Reduction 1.
Chapter 13 Statistics © 2008 Pearson Addison-Wesley. All rights reserved.
Spatial Statistics Applied to point data.
Empirical Financial Economics Asset pricing and Mean Variance Efficiency.
Lecture 12 Statistical Inference (Estimation) Point and Interval estimation By Aziza Munir.
V. Space Curves Types of curves Explicit Implicit Parametric.
SECTION 13.8 STOKES ’ THEOREM. P2P213.8 STOKES ’ VS. GREEN ’ S THEOREM  Stokes ’ Theorem can be regarded as a higher- dimensional version of Green ’
CHAPTER 24 : GAUSS’S LAW 24.1) ELECTRIC FLUX
Descriptive Statistics vs. Factor Analysis Descriptive statistics will inform on the prevalence of a phenomenon, among a given population, captured by.
Techniques for studying correlation and covariance structure Principal Components Analysis (PCA) Factor Analysis.
Chapter 7 Multivariate techniques with text Parallel embedded system design lab 이청용.
CSE 185 Introduction to Computer Vision Face Recognition.
Spatial Statistics in Ecology: Point Pattern Analysis Lecture Two.
Principal Components Analysis. Principal Components Analysis (PCA) A multivariate technique with the central aim of reducing the dimensionality of a multivariate.
Splines I – Curves and Properties based on: Michael Gleicher Curves, chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Geometric Description
Week 4 Functions and Graphs. Objectives At the end of this session, you will be able to: Define and compute slope of a line. Write the point-slope equation.
Basic Theory (for curve 01). 1.1 Points and Vectors  Real life methods for constructing curves and surfaces often start with points and vectors, which.
Unit 10 Transformations. Lesson 10.1 Dilations Lesson 10.1 Objectives Define transformation (G3.1.1) Differentiate between types of transformations (G3.1.2)
Pattern Recognition Mathematic Review Hamid R. Rabiee Jafar Muhammadi Ali Jalali.
Presented by: Muhammad Wasif Laeeq (BSIT07-1) Muhammad Aatif Aneeq (BSIT07-15) Shah Rukh (BSIT07-22) Mudasir Abbas (BSIT07-34) Ahmad Mushtaq (BSIT07-45)
Unsupervised Learning II Feature Extraction
Bigyan Ankur Mukherjee University of Utah. Given a set of Points P sampled from a surface Σ,  Find a Surface Σ * that “approximates” Σ  Σ * is generally.
Part 3: Estimation of Parameters. Estimation of Parameters Most of the time, we have random samples but not the densities given. If the parametric form.
CSE 554 Lecture 8: Alignment
Problem 1.5: For this problem, we need to figure out the length of the blue segment shown in the figure. This can be solved easily using similar triangles.
Factor Analysis An Alternative technique for studying correlation and covariance structure.
Matrix Algebra and Random Vectors
Factor Analysis An Alternative technique for studying correlation and covariance structure.
Feature space tansformation methods
Principal Components What matters most?.
Announcements Project 4 out today Project 2 winners help session today
Principal Component Analysis
The “Margaret Thatcher Illusion”, by Peter Thompson
Marios Mattheakis and Pavlos Protopapas
Presentation transcript:

Surface normals and principal component analysis (PCA) 3DM slides by Marc van Kreveld

Normal of a surface Defined at points on the surface: normal of the tangent plane to the surface at that point Well-defined and unique inside the facets of any polyhedron At edges and vertices, the tangent plane is not unique or not defined (convex/reflex edge)  normal is undefined

Normal of a surface On a smooth surface without a boundary, the normal is unique and well-defined everywhere (smooth simply means that the derivatives of the surface exist everywhere) On a smooth surface (manifold) with boundary, the normal is not defined on the boundary

Normal of a surface

Normal of a surface The normal at edges or vertices is often defined in some convenient way: some average of normals of incident triangles

Normal of a surface No matter what choice we make at a vertex, a piecewise linear surface will not have a continuously changing normal  visible after computing illumination not normals! they would be parallel

Curvature The rate of change of the normal is the curvature infinite curvature higher curvature lower curvature zero curvature

Curvature A circle is a shape that has constant curvature everywhere The same is true for a line, whose curvature is zero everywhere

Curvature Curvature can be positive or negative Intuitively, the magnitude of the curvature is the curvature of the circle that looks most like the curve, close to the point of interest negative curvature positive curvature

Curvature The curvature at any point on a circle is the inverse of its radius The (absolute) curvature at any point on a curve is the curvature of the circle through that point that has the same first and second derivative at that point (so it is defined only for C2 curves) r curvature = 1/r Same tangent line at the point and same rate of change of the tangent line r

Curvature For a 3D surface, there are curvatures in all directions in the tangent plane

Curvature negative positive inside Principal curvatures: the minimum and maximum curvatures in cross-sections of the surface containing the point where we are measuring positive inside

Properties at a point A point on a smooth surface has various properties: location normal (first derivative) / tangent plane two/many curvatures (second derivative) The normal is normal to the tangent plane.

Normal of a point in a point set? Can we estimate the normal for each point in a scanned point cloud? This would help reconstruction (e.g. for RANSAC)

Normal of a point in a point set Main idea of various different methods, to estimate the normal of a point q in a point cloud: collect some nearest neighbors of q, for instance 12 fit a plane for q and its 12 neighbors use the normal of this plane as the estimated normal for q

Normal estimation at a point Risk: the 12 nearest neighbors of q are not nicely spread in all directions on the plane  the computed normal could even be perpendicular to the real normal!

Normal estimation at a point Also: the quality of normals of points near edges of the scanned shape is often not so good We want a way of knowing how good the estimated normal seems to be

Principal component analysis General technique for data analysis Uses the statistical concept of correlation Uses the linear algebra concept of eigenvectors Can be used for normal estimation and tells something about the quality (clearness, obviousness) of the normal

Correlation Degree of correspondence/changing together of two variables measured from objects in a population of people, length and weight are correlated in decathlon, performance on 100 meters and long jump are correlated (so are shot put and discus throw) Pearson’s correlation coefficient

Covariance, correlation For two variables x and y, their covariance is defined as (x,y) = E[ (x – E[x]) (y – E[y]) ] = E[xy] – E[x] E[y] E[x] is the expected value of x, equal to the mean x Note that the variance 2(x) = (x,x), the covariance of x with itself, where (x) is the standard deviation Correlation x,y = (x,y) / ((x) (y))

Covariance For a data set of pairs (x1, y1), (x2, y2), …, (xn, yn), the covariance can be computed as where x and y are the mean values of xi and yi 1 𝑛 𝑖=1 𝑛 ( 𝑥 𝑖 − 𝑥 )( 𝑦 𝑖 − 𝑦 )

Data matrix Suppose we have weight w, length l, and blood pressure b of seven people Let the mean of w, l, and b be w, l, and b Assume the measurements have been adjusted by subtracting the appropriate mean Then the data matrix is X = 𝑤1 𝑙1 𝑏1 𝑤2 𝑙2 𝑏2 … 𝑤7 𝑙7 𝑏7 Note: Each row has zero mean, the data is mean-centered

Covariance matrix The covariance matrix is 1 𝑛 XXT This is in the example: 𝜎(𝑤,𝑤) 𝜎(𝑤,𝑙) 𝜎(𝑤,𝑏) 𝜎(𝑙,𝑤) 𝜎(𝑙,𝑙) 𝜎(𝑙,𝑏) 𝜎(𝑏,𝑤) 𝜎(𝑏,𝑙) 𝜎(𝑏,𝑏) The covariance matrix is square and symmetric The main diagonal contains the variances Off-diagonal are the covariance values

Principal component analysis PCA is a linear transformation (3 x 3 in our example) that makes new base vectors such that the first base vector has a direction that realizes the largest possible variance (when projected onto a line) the second base vector is orthogonal to the first and realizes the largest possible variance among those vectors the third base vector is orthogonal to the first and second base vector and … … and so on … Hence, PCA is an orthogonal linear transformation

Principal component analysis In 2D, after finding the first base vector, the second one is immediately determined because of the requirement of orthogonality

Principal component analysis In 3D, after the first base vector is found, the data is projected onto a plane with this base vector as its normal, and we find the second base vector in this plane as the direction with largest variance in that plane (this “removes” the variance explained by the first base vector)

Principal component analysis After the first two base vectors are found, the data is projected onto a line orthogonal to the first two base vectors and the third base vector is found on this line  it is simply given by the cross product of the first two base vectors

Principal component analysis The subsequent variances we find are decreasing in value and give an “importance” to the base vectors The mind-process explains why principal component analysis can be used for dimension reduction: maybe all the variance in, say, 10 measurement types can be explained using 4 or 3 (new) dimensions

Principal component analysis In actual computation, all base vectors are found at once using linear algebra techniques

Eigenvectors of a matrix A non-zero vector v is an eigenvector of a matrix X if X v =  v for some scalar , and  is called an eigenvalue corresponding to v Example 1: (1,1) is an eigenvector of 2 1 1 2 because 2 1 1 2 1 1 = 3 1 1 In words: the matrix leaves the direction of an eigenvector the same, but its length is scaled by the eigenvalue 3

Eigenvectors of a matrix A non-zero vector v is an eigenvector of a matrix X if X v =  v for some scalar , and  is called an eigenvalue corresponding to v Example 1: (1, –1) is also an eigenvector of 2 1 1 2 because 2 1 1 2 1 −1 = 1 −1 In words: the matrix leaves the direction and length of (1, –1) the same because its eigenvalue is 1

Eigenvectors of a matrix Consider the transformation 2 1 1 2 animated Blue vectors: (1,1) Pink vectors: (1, –1) and (–1, 1) Red vectors are not eigenvectors (they change direction)

Eigenvectors of a matrix If v is an eigenvector, then any vector parallel to v is also an eigenvector (with the same eigenvalue!) If the eigenvalue is –1 (negative in general), then the eigenvector will be reversed in direction by the matrix Only square matrices have eigenvectors and values

Eigenvectors, a 2D example Find the eigenvectors and eigenvalues of −2 1 −3 2 We need: Av = v by definition, or (A – I) v = 0 (in words: our matrix minus  times the identity matrix applied to v is the zero vector) This is the case exactly when det(A – I) = 0 det(A – I) = det −2− 1 −3 2− = −2− 1 −3 2− = (–2 – )(2 – ) – (–3) = 2 – 1 = 0

Eigenvectors, a 2D example 2 – 1 = 0 gives  = 1 or  = –1 The corresponding eigenvectors can be obtained by filling in each  and solving a set of equations The polynomial in  given by det(A – I) is called the characteristic polynomial

Questions Determine the eigenvectors and eigenvalues of –2 0 –2 0 What does the matrix do? Does that explain the eigenvectors and values? Determine the eigenvectors and eigenvalues of 0 −1 1 0 What does the matrix do? Does that explain the eigenvectors and values? Determine the eigenvectors and eigenvalues of 1 0 4 1 2 0 1 1 2

Principal component analysis Recall: PCA is an orthogonal linear transformation The new base vectors are the eigenvectors of the covariance matrix! The eigenvalues are the variances of the data points when projected onto a line with the direction of the eigenvector Geometrically, PCA is a rotation around the multi-dimensional mean (point) so that the base vectors align with the principal components (which is why the data matrix must be mean centered)

PCA example Assume the data pairs (1,1), (1,2), (3,2), (4,2), and (6,3) X = 15/5 = 3 and Y = 10/5 = 2 The mean-centered data becomes (-2,-1), (-2,0), (0,0), (1,0), and (3,1) The data matrix X = −2 −1 −2 0 0 0 1 0 3 1 The covariance matrix 1 5 XXT = 1 5 18 5 5 2 The characteristic polynomial is 1 5 det 18− 5 5 2−

PCA example The characteristic polynomial is 1 5 det 18− 5 5 2− = 1 5 ((18 – )(2 – ) – 25) = 1 5 (2 – 20  + 11) When setting it to zero we can omit the factor 1 5 We get  = 20 ± 400−44 2 , 1  19.43 and 2  0.57 as the eigenvalues of the covariance matrix We always choose the eigenvalues to be in decreasing order: 1 > 2 > …

PCA example The first eigenvalue 1  19.43 corresponds to an eigenvector (1, 0.29) or anything parallel to it The second eigenvalue 2  0.57 corresponds to an eigenvector (–0.29, 1) or anything parallel to it

PCA example The data points and the mean-centered data points

PCA example The first principal component (purple): (1, 0.29) Orthogonal projection onto the orange line (direction of first eigenvector) yields the largest possible variance The first eigenvalue 1  19.43 is the sum of the squared distances to the mean (variance times 5) for this projection

PCA example Enlarged, and the non-squared distances shown

PCA example The second principal component (green): (–0.29, 1) Orthogonal projection onto the dark blue line (direction of second eigenvector) yields the remaining variance The second eigenvalue 2  0.57 is the sum of the squared distances to the mean (variance times 5) for this projection

PCA example The fact that the first eigenvalue is much larger than the second means that there is a direction that explains most of the variance of the data  a line exists that fits well with the data When both eigenvalues are equally large, the data is spread equally in all directions

PCA, eigenvectors and eigenvalues In the pictures, identify the eigenvectors and state how different the eigenvalues appear to be

PCA observations in 3D If the first eigenvalue is large and the other two are small, then the data points lie approximately on a line through the 3D mean with orientation parallel to the first eigenvector If the first two eigenvalues are large and the third eigenvalue is small, then the points lie approximately on a plane with orientation spanned by the first two eigenvectors / with normal parallel to the third eigenvector

PCA and local normal estimation Recall that we wanted to estimate the normal at every point in a point cloud Recall that we decided to use the 12 nearest neighbors for any point q, and find a fitting plane for q and its 12 nearest neighbors Assume we have the 3D coordinates of these points measured in meters q

PCA and local normal estimation Treat the 13 points and their three coordinates as data with three measurements, x, y, and z:  we have a 3 x 13 data matrix Apply PCA to get three eigenvalues 1 , 2 , and 3 , (in decreasing order) and eigenvectors v1 , v2 , and v3 If the 13 points lie roughly in a plane, then 3 is small and the plane contains directions parallel to v1 , v2 The estimated normal is the perpendicular to v1 , v2 , so it is the third eigenvector v3

PCA and local normal estimation How large should the eigenvalues 1 , 2 be, and how small should 3 be, for this to be true? This depends on scanning density point distribution scanning accuracy curvature of the surface

PCA and local normal estimation Example 1: Assume the surface is a perfect plane (no curvature) scanning yields uniform distribution density is 100 pt/m2 accuracy is  0.03 m Then 3 will be less than 13 x 0.032 = 0.0117; we expect the 13 points to roughly lie in a circle of radius 0.203 m, and 1 and 2 should each be about 0.1 (10x as large as 3, but this is just a rough guess)

PCA and local normal estimation Example 2: Assume the surface is a perfect plane (no curvature) scanning yields uniform distribution density is 500 pt/m2 accuracy is  0.03 m Then 3 will be less than 13 x 0.032 = 0.0117; we expect the 13 points to roughly lie in a circle of radius 0.09 m, and 1 and 2 should each be about 0.026 (maybe 3 times as large as 3)

PCA and local normal estimation Example 3: Assume the surface is a perfect plane (no curvature) scanning yields uniform distribution density is 500 pt/m2 accuracy is  0.07 m Then 3 will be close to 0.02 ( 13 x 0.042 ); we expect the 13 points to roughly lie in a circle of radius 0.09 m, and 1 and 2 should each be about 0.026 (maybe hardly larger than 3) [ note: these values are not possible! ]

PCA and local normal estimation When the density goes up and/or the accuracy goes down, we may need to use more than 12 nearest neighbors to observe a considerable difference in eigenvalues for points on a plane, and estimate the normal correctly

PCA and local normal estimation More neighbors means more reliable covariance estimations, so a better normal, for flat surfaces … but for surfaces with considerable curvature, or close to edges of a flat surface, more neighbors means that the quality of normals goes down

PCA and local normal estimation Example 4: Assume the surface is a perfect plane (no curvature) scanning is by LiDAR, with dense lines density is 100 pt/m2 accuracy is  0.03 m We will find one large eigenvalue and two small ones Solution to this problem: more nearest neighbors to also get points on other scan lines, or take nearest neighbors in octants or more fine cones, so that we are ensured to get nearby points in all directions. q

PCA and local normal estimation Example 5: Assume point q lies in a tree (leaf or thin branch) distribution is uniform density is 100 pt/m2 accuracy is  0.03 m We will find three eigenvalues that don’t differ too much (but it is rather unpredictable)

Another way for normal estimation Compute the Voronoi diagram of the points and choose the direction from each point to the furthest Voronoi vertex bounding its cell For unbounded cells, take the middle direction of the unbounded rays Need to resolve inside/outside Works in any dimension

Curvature estimation Recall: a curvature at point p exists for any direction in the tangent plane of p “The” curvature at p is the maximum occurring curvature Basic approach: fit a suitable ball or quadratic surface with p on its boundary that locally is a good fit for the point set. Then compute the curvature of the ball or surface at p

Curvature estimation Or: choose many directions in the tangent plane and fit a circle tangent to p in the plane normal to the tangent plane and a chosen direction Choose the circle with smallest radius over all directions

Summary Eigenvectors and eigenvalues are a central concept in linear algebra and they are generally useful Local normal estimation can be done by principal component analysis on the 12 nearest neighbors, which essentially comes down to eigenvector and eigenvalue computation of 3x3 matrices There are other methods for local normal estimation, but these are generally less reliable and may not indicate how “good” the normal is

Questions Perform principal component analysis on the following four data points: (1, 3), (2, 2), (4, 2), (5, 5) [mean-center first!] Estimate the normal from 5 points in 3D, namely: (0,1,1), (4,2,0), (8,5,1), (-6,-2,1), (-6,-6,-3) How clear do you think the estimated normal is? Can the estimated normal always be obtained as the third eigenvector? If not, what can you do? Suppose the density and accuracy suggest that you need the 100 nearest neighbors to get a good normal estimate, but you don’t want to manipulate large matrices (3 x 100) for every point, what can you do? Answer to question 4: do not take points very close to the point where we estimate at all, only points sufficiently far but not too far away. The sum of squared distances used for lambda_1 is hardly influenced by the close points anyway. So take only the 50 furthest from those 100 nearest neighbors.