Extended Gaussian Images Berthold K. P. Horn Outline Discrete Case: Convex Polyhedra Continuous Case: Smoothly Curved Objects Discrete Approximation: Needle Maps Tessellation of the Gaussian sphere: Orientation Histograms Solids of Revolution Outline Discrete Case: Convex Polyhedra Continuous Case: Smoothly Curved Objects Discrete Approximation: Needle Maps Tessellation of the Gaussian sphere: Orientation Histograms Solids of Revolution Gaussian Image What is a Gaussian Image? Gaussian Image What is a Gaussian Image? A mapping of surface normals of an object onto the unit sphere (Gaussian sphere.) Tail lies at the center of the Gaussian sphere Head lies on the surface of the Gaussian sphere. Example Example Extended Gaussian Image Extended to include area of each face. Place point mass on the sphere surface equal to area of face at the head of each normal. Alternate representation: Scale the normal proportional to area. Properties Face position information is lost. Which faces are connected? As long as the polyhedron is convex, its extended Gaussian image is unique. Algorithms exist that extract a polyhedron from an extended Gaussian Image. Properties Unaffected by translation Rotation of the object causes an equal rotation of the extended Gaussian image. Center of mass lies at the origin of the sphere. Center of mass property proof Imagine viewing a convex polyhedron from a great distance: v is a vector from the object in the direction of the viewer. s i is the unit normal at each face. Oi is the surface area of each face. A face is visible if si v 0 The apparent size due to foreshortening of a face is si v Oi Center of mass property proof The apparent area of the visible surface is A(v ) si v Oi {i|si v 0} When viewed from the opposite direction: A(v ) si v Oi {i|si v 0} Center of mass property proof Since the above two equations are equal, we have si v Oi siOi v 0 {all i} {all i} Since this is true for all v siOi 0 {all i } That is, the center of mass of the extended Gaussian image is at the origin. Reconstructing a Tetrahedron Goal: Find the offset from the center of mass for each face. (a, b, c, d) Given: The surface normals a b c d and face areas A B C D. C B A D Reconstructing a Tetrahedron Tetrahedron property: the distance from the center of mass to a face is ¼ the distance from that face to its opposite vertex. Start by finding a formula for distance from face of area D to opposite vertex d. The desired distance, d, with be ¼ that. Repeat for each vertex after doing a cyclical permutation of the variables. Reconstructing a Tetrahedron Assume D is at the origin, we have: BC C A A B a ,b ,c BC C A BC C ( A C ) ( B A) d ( A C ) ( B A) A B B C C A A B B C C A B A D Reconstructing a Tetrahedron Find distance from originto D face by dot product of A, B, or C vector and d : [ ABC ] 4d d A d B d C A B B C C A Area of the Face: 1 1 D ( A C ) ( B A) A B B C C A 2 2 Reconstructing a Tetrahedron Consider the four distinct triple products of the normals: [ab c ] [ ABC ]2 A B B C C A [ab d ] [ ABC ]2 B C C A A B B C C A ... Reconstructing a Tetrahedron Multiply these formulae: [ab d ][ ac d ][c ad ] [ ABC ]6 ( A B) 2 ( B C ) 2 (C A) 2 A B B C C A [ab d ][ ac d ][c ad ] [ ABC ]2 ( 4d ) 2 ( 2 D ) 2 [ab c ] A B B C C A (2 D)[ ab d ][ ac d ][c ad ] 4d [ab c ] Reconstructing a Tetrahedron Compute cyclic permutations of each face and use the previous equation to find the 4 distances of each face from the center of mass. With the normals and distances from the center of mass, create 4 planes. The intersection of the planes creates the tetrahedron. Outline Discrete Case: Convex Polyhedra Continuous Case: Smoothly Curved Objects Discrete Approximation: Needle Maps Tessellation of the Gaussian sphere: Orientation Histograms Solids of Revolution Gaussian Image Create the same mapping between object normal and Gaussian sphere. Consider a small patch O on the object. Each point in patch maps to a point on Gaussian sphere. Creates a patch on the sphere S Gaussian Curvature Gaussian Curvature: K < 1 curves in (like a crater) K = 1 plane K > 1 curves out (like a sphere) Integrate K over the object: Integrate 1/K over the sphere: Use 1/K in definition of extended Gaussian Image. Extended Gaussian Image Associate 1/K of a point on the surface with corresponded point on Gaussian sphere. Let u, v be parameters to identify points on the object. Let ξ, η be parameters to identify points on the sphere. Extended Gaussian Image: Properties Center of mass at origin. Similar proof to discrete case Total mass of extended Gaussian Image equals surface area of object. Unaffected by translation Rotation of the object causes an equal rotation of the extended Gaussian image. Outline Discrete Case: Convex Polyhedra Continuous Case: Smoothly Curved Objects Discrete Approximation: Needle Maps Tessellation of the Gaussian sphere: Orientation Histograms Solids of Revolution Discrete Approximation Break the surface into small patches. Create a surface normal for each patch. Consider the polyhedron formed by the intersection of the planes tangent to each of these normals. Approximation of the original surface. Discrete Approximation How to break into small patches? Parameterize the model: u, v Find the normal: ru and rv are found by differentiating the parametric form of the equation for the surface. The area of a patch: No need to compute K Needle Map Outline Discrete Case: Convex Polyhedra Continuous Case: Smoothly Curved Objects Discrete Approximation: Needle Maps Tessellation of the Gaussian sphere: Orientation Histograms Solids of Revolution Tessellation Need a way to represent in a computer Tessellate the Gaussian sphere Create a histogram of orientations Tessellation Properties All cells should have the same area. All cells should have the same shape. The cells should have regular shapes that are compact. The division should be fine enough to provide good angular resolution. For some rotation, the cells should be brought into coincidence with themselves. Simple Case Latitude and Longitude Easy to Compute which cell a normal belongs to No uniform shape or area Alignments only through rotations about its axis. Regular Polyhedra based Tessellation Project a regular polyhedron onto the unit sphere. Cells have the same shape and area. Sampling is too coarse. Icosahedron is only 20 regular cells. Semi-Regular Polyhedra Regular polygons for faces, but not the same polygon. Higher polygon count Area difference between the differing polygons could be significant. Finer Subdivision Each polygon can be sub-divided into triangles. How fine do we need? Lower bound for angular spread with n cells: Example from paper: n=240, θ=11.5 Geodesic Domes Divide Triangular cells into four smaller triangles. All faces not same area or shape. Allows for arbitrary fineness. Start with pentakis dodecahedron or truncated icosahedron. Each triangle edge is divided into f sections to create f2 triangles. Desire that f is a power of 2. Geodesic Domes Geodesic Domes Create Histogram by assigning each normal to a cell on the tessellated Gaussian sphere. Which cell does a normal belong to? Find dot product between given vector and normals from the original regular polyhedron the dome is based on. Determine which triangle within the face Normal belongs to the face giving the greatest result. Use the second greatest normal from above. Proceed as above hierarchically. Binary search through the triangles In practice a lookup table is used Orientation Histogram Compute the number of normals in each cell. Count them Create the histogram Store in computer as simple array. Display graphically with a normal for each cell or as a grayscale image where the brightness of each cell is determined by the count. Outline Discrete Case: Convex Polyhedra Continuous Case: Smoothly Curved Objects Discrete Approximation: Needle Maps Tessellation of the Gaussian sphere: Orientation Histograms Solids of Revolution Solids of Revolution Rotate a curve about an axis to create a surface. Compute the EGI r is the distance from axis to arc. s is distance along arc. θ is the angle around the axis. ξ, η are the longitude and latitude on the sphere. ξ corresponds to θ Gaussian Curvature Consider a small patch on the solid and the corresponding patch on the sphere, their areas are: Sphere Solid The Gaussian curvature is the limit of the ratio of the areas as they approach zero: Gaussian Curvature The curvature of the generating curve is the rate of change of direction with arc length. Giving: Plug that in to the previous equation: Gaussian Curvature From the figure: Differentiate with respect to s: Substitute: Gaussian Curvature Sometimes we want to express r as a function of z. From the figure: Differentiate with respect to s: From the figure: Gaussian Curvature Substituting: More Substituting: Conclusion How does it do as a shape descriptor? Concise to store Quick to compute Efficient to match Discriminating Invariant to transformations Invariant to deformations Insensitive to noise Insensitive to topology Robust to degeneracies Conclusion How does it do as a shape descriptor? J Concise to store J Quick to compute J Efficient to match L Discriminating L Invariant to transformations L Invariant to deformations L Insensitive to noise J Insensitive to topology L Robust to degeneracies