for Non-Uniform Data: Microsphere Projection Presented By: Will Dudziak What We Will Cover Introduce Interpolation Overview of Existing Techniques Introduce Microsphere Projection Analysis of Results 1D 2D 3D Conclusion and Final Remarks Q & A
Hand with Reflecting Sphere M. C. Escher, 1935
Introduction What is Interpolation? the process of determining the value of a function between two points at which it has prescribed values.
The hill behind me is low, the mountain in front of me is high therefore I must be somewhere in between low and high. Introduction Some Terminology Control Points or Sample Points Differentiable C 0 ,
C 1 ,
C 2 , etc. Functional Interpolation
Inverse-Distance p-value Monotonic Behavior Introduction Local vs. Global Interpolation Local Interpolation Makes use of information from small set of local points. Global Interpolation Makes use of information from all points Key Difference: Local interpolation applies different set of rules to close sample points than to far ones. vs. Introduction Exact vs. Inexact Interpolation Exact interpolations intersect ALL control points. Inexact interpolations follow general trends.
Usages: Exact: Largest problem with data is in scarcity of control points. Inexact: Largest problem with data is in error margin of sampled value. Inexact Functional Approximation Exact Functional Approximation Inexact Functional Approximation Inexact Functional Approximation Exact Functional Approximation Exact Functional Approximation Popular Existing Interpolation Methods 1D Polynomial Function Approximation Piecewise Cubic Spline 2D Thin-Plate Spline (TPS) 3D Volume Spline Multiquadric 1D, 2D, 3D Nearest Neighbor Shepards Method (inverse-distance weighting) Popular Existing Interpolation Methods (1-D) Polynomial Function Interpolation 1-Dimensional Polynomial Interpolation degree=4 Interpolation Control Points First Derivative 1-Dimensional Cubic Spline Interpolation Interpolation Control Points First Derivative Cubic Spline Interpolation Radial Basis Function Radial Basis Function Premise: Interpolation in N-dimensional space can be approximated by a function of form: A*f(d 1 ) + B*f(d 2 ) + C*f(d 3 ) + + Z*f(d N )
ABCZ are constants d i is the distance from interpolation location to control point i. Time Complexity: O(N 2 ) TPS, Volume Spline, and Multiquadric use RBF. Shepards Method Shepards Method, aka Inverse- distance Weighting. Assign weights to each control point based on distance to interpolation location. Based on weight distribution, interpolate value of point. ?? Fundamental Problem with Shepards Method is the non-consideration of locality. Microsphere Projection - Objectives Obeys Maximum Principle Differentiable (smooth) Non-consideration of redundant control points. (problem with Shepards method) Reasonable extrapolation ability Microsphere Projection - Premise infinitesimally small sphere located at the point of interpolation.
sphere is illuminated by the surrounding sampled points.
Based on the degree of illumination, a weight for all the control points assigned. MS Data Structure 1x Microsphere 2000x Sphere Segment 1x Index of control point with largest influence (int) 1x Projection influence (double) Data Structure not to be confused with Datas Structure. MS Creating the Sphere Sphere needs lots of sections to be spherical. 2000 sections were used. Section unit vectors were created by: do x := rand(-1,1) y := rand(-1,1) z := rand(-1,1) vectorSize := sqrt (x*x + y*y + z*z) while ( vectorSize > 1 ) normalize ( Vector(x,y,z) ) MS Control Point Projection Points are projected on to the sphere. Projection intensity varies: Inversely as the distance. Inversely as the angle of incidence. (governed by the cosine function) Each section of the sphere only retains the information for the ONE POINT with largest projection value. MS Control Point Projection MS Control Point Projection Intensity Projection Function:
for i := 0 to Number of Samples vector1 := sample[i].XYZLocation - interpolant.XYZLocation weight := pow(vector1.Size, -p) for j := 0 to Precision cosValue := CosValueBetweenVectors(vector1, S[j].Vector) if (cosValue * weight > S[j].Max_Illumination) S[j].Max_Illumination := cosValue * weight S[j].Brightest_Sample := i endif endfor endfor MS Determining Final Interpolation Value Weight for each control point is assigned based on total sum of illumination on all the sections of the sphere. Weights are normalized such that Sum(weights) = 1. Final interpolation is: (weight*control_point_value) MS Walkthrough 0.19 0.55 0.83 0.98 0.98 0.83 0.55 0.24 0.24 0.55 0.83 0.98 0.98 0.83 0.55 0.19 4.91 4.91 0.48 10.30 10dB 5dB 40dB Dist = 2 Dist = 1 [cos() / dist 2 ] 0.48 0.48 0.04 1.00 0.48 * 10dB 0.48 * 5dB 0.04 * 40dB 8.8dB 1-D Results Case Study 1 1-Dimensional Nearest Neighbor Interpolation Interpolation Control Points 1-Dimensional Polynomial Interpolation degree=4 Interpolation Control Points 1-Dimensional Inverse-Distance Interpolation p=2 Interpolation Control Points 1-Dimensional Cubic Spline Interpolation Interpolation Control Points 1-Dimensional MS Projection p=1 Interpolation Control Points 1-Dimensional MS Projection p=2 Interpolation Control Points 1-D Results Case Study 2 1-Dimensional Nearest Neighbor Interpolation Interpolation Control Points 1-Dimensional Polynomial Interpolation degree=4 Interpolation Control Points 1-Dimensional Inverse-Distance Interpolation p=2 Interpolation Control Points 1-Dimensional Cubic Spline Interpolation Interpolation Control Points 1-Dimensional MS Projection p=1 Interpolation Control Points 1-Dimensional MS Projection p=2 Interpolation Control Points 1-D Results Source of Data 1-D Results Numeric Pixel 0 Pixel N One Pixel Row Strict Interpolation General Interpolation Randomly Sampled Pixel Testing Region Pixel 0 Pixel N One Pixel Row Strict Interpolation General Interpolation Randomly Sampled Pixel Testing Region Percentage of Data Sampled Method of Interpolation 2.5% 5% 10% 25% 50% 90% Microsphere Projection, p=2 0.1731 0.1429 0.1135 0.0828 0.0651 0.0541 Microsphere Projection, p=1 (piecewise linear) 0.1688 0.1392 0.1105 0.0806 0.0635 0.0531 Piecewise Cubic Spline 0.1744 0.1438 0.1137 0.0825 0.0644 0.0533 Shepard's Method, p=2 (inverse distance) 0.1698 0.1410 0.1136 0.0848 0.0689 0.0601 Nearest Neighbor 0.1906 0.1592 0.1281 0.0951 0.0769 0.0668 Average Value 0.2186 0.2155 0.2134 0.2120 0.2117 0.2111 N (number of samples) 3.642e6 3.642e6 3.642e6 1.821e6 7.284e5 3.642e5 RMS Error using Strict Interpolation on 1D Data 1-D Results Numeric Pixel 0 Pixel N One Pixel Row Strict Interpolation General Interpolation Randomly Sampled Pixel Testing Region Pixel 0 Pixel N One Pixel Row Strict Interpolation General Interpolation Randomly Sampled Pixel Testing Region Percentage of Data Sampled Method of Interpolation 2.5% 5% 10% 25% 50% 90% Microsphere Projection, p=2 0.1913 0.1503 0.1167 0.0838 0.0660 0.0545 Microsphere Projection, p=1 (piecewise linear) 0.1882 0.1472 0.1139 0.0817 0.0645 0.0535 Piecewise Cubic Spline 3733 696.1 70.33 2.830 0.3406 0.0584 Shepard's Method, p=2 (inverse distance) 0.1827 0.1464 0.1161 0.0857 0.0697 0.0606 Nearest Neighbor 0.2038 0.1640 0.1299 0.0957 0.0777 0.0675 Average Value 0.2240 0.2175 0.2142 0.2124 0.2118 0.2114 N (number of samples) 3.642e6 3.642e6 3.642e6 1.821e6 7.284e5 3.642e5 RMS Error using General Interpolation on 1D Data 1-D Results PCS Explanation In some cases, even asking for a small amount of extrapolation can be too much to ask. 2-D Results Case Study 1
Original Nearest Neighbor Shepards Method TPS MS, p=1 MS, p=2 2-D Results Case Study 1 TPS, Values truncated to 0-255 TPS, Areas interpolated beyond data range in red. 2-D Results Case Study 2 (Area of Interest)
MS, p=1 MS, p=2 NN TPS 2-D Results Strict vs. General Interpolation Strict Interpolation Limited to Convex Hull General Interpolation Limited to Original Data Range Strict Interpolation Limited to Convex Hull General Interpolation Limited to Original Data Range 2-D Results Numeric Number of Points Sampled Method of Interpolation (STRICT) 10 20 50 100 500 1000 Microsphere Projection, p=2 0.251 0.231 0.201 0.178 0.133 0.116 Microsphere Projection, p=1 (2d version of piecewise linear) 0.242 0.222 0.193 0.172 0.128 0.112 Thin-Plate Spline 0.269 0.248 0.214 0.189 0.138 0.121 Shepard's Method, p=2 (inverse distance) 0.241 0.222 0.197 0.180 0.150 0.140 Nearest Neighbor 0.289 0.268 0.234 0.210 0.159 0.140 Average Value 0.265 0.259 0.255 0.251 0.250 0.249 N (number of samples) 1.0e5 1.0e5 1.0e5 1.0e5 1.0e5 1.0e5 Number of Points Sampled Method of Interpolation (GENERAL) 10 20 50 100 500 1000 Microsphere Projection, p=2 0.258 0.234 0.204 0.180 0.133 0.116 Microsphere Projection, p=1 (2d version of piecewise linear) 0.247 0.225 0.196 0.173 0.129 0.112 Thin-Plate Spline 0.320 0.273 0.226 0.195 0.140 0.122 Shepards Method, p=2 (inverse distance) 0.242 0.221 0.197 0.181 0.151 0.139 Nearest Neighbor 0.292 0.268 0.237 0.211 0.160 0.141 Average Value 0.260 0.254 0.250 0.250 0.249 0.248 N (number of samples) 1.0e5 1.0e5 1.0e5 1.0e5 1.0e5 1.0e5 Convex Hull Coverage 43.6% 62.3% 80.0% 88.2% 96.6% 98.1% 3-D Results Case Study 100% below sample range. (very negative) Within 0.01% of minimum value of sample range (zero) Maximum value of sample range (very large) 100% beyond sample range (inconceivably large) Range of sampled data Control Point 100% below sample range. (very negative) Within 0.01% of minimum value of sample range (zero) Maximum value of sample range (very large) 100% beyond sample range (inconceivably large) Range of sampled data Control Point
Nearest Neighbor Shepards Method 3-D Results Case Study 100% below sample range. (very negative) Within 0.01% of minimum value of sample range (zero) Maximum value of sample range (very large) 100% beyond sample range (inconceivably large) Range of sampled data Control Point 100% below sample range. (very negative) Within 0.01% of minimum value of sample range (zero) Maximum value of sample range (very large) 100% beyond sample range (inconceivably large) Range of sampled data Control Point
Volume Spline Multiquadric
3-D Results Case Study 100% below sample range. (very negative) Within 0.01% of minimum value of sample range (zero) Maximum value of sample range (very large) 100% beyond sample range (inconceivably large) Range of sampled data Control Point 100% below sample range. (very negative) Within 0.01% of minimum value of sample range (zero) Maximum value of sample range (very large) 100% beyond sample range (inconceivably large) Range of sampled data Control Point
Microsphere Interpolation, p=2
3-D Results Numeric Method of Interpolation Relative RMS Error Microsphere Projection, p=2 0.080 Microsphere Projection, p=1 (piecewise linear) 0.081 Volume Spline 0.093 Multiquadric, r=1 0.077 Shepard's Method, p=2 (inverse distance) 0.100 Nearest Neighbor 0.110 Average Value 0.168 N (Number of samples) 145 Hyper-Dimensional Interpolation Microsphere Projection will work in any Cartesian coordinate system. Rotating Hypersphere. Oooooh, Aaaaah. Hyper-Dimensional Interpolation As dimensionality increases, bounding box becomes much larger than convex hull.
Greater need for algorithms which can both interpolate and extrapolate. Bounding Box Convex Hull
d d ch bb d as , bb d is the d-dimensional bounding box ch d is the d-dimensional convex hull x is the volume of space enclosed by x Conclusion Great interpolation ability Pretty good (and stable) extrapolation ability. Differentiable Preserves monotonic behavior Works well in any dimension Based on a simple physical model Buckminsterfullerene. Perhaps the smallest real-world microsphere possible, measuring around 0.000000001 meters.