3D Skeletons Using Graphics Hardware

1 / 32

# 3D Skeletons Using Graphics Hardware - PowerPoint PPT Presentation

3D Skeletons Using Graphics Hardware. Jonathan Bilodeau Chris Niski. Outline. Background Goal Method Find points that lie on the graph Extract vertices/edges from points Results Problems Future Work. Background. Two general techniques for computing shape descriptors

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about '3D Skeletons Using Graphics Hardware' - gamma

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### 3D Skeletons Using Graphics Hardware

Jonathan Bilodeau

Chris Niski

Outline
• Background
• Goal
• Method
• Find points that lie on the graph
• Extract vertices/edges from points
• Results
• Problems
• Future Work
Background
• Two general techniques for computing shape descriptors
• Statistical shape descriptors
• Structural shape descriptors
• Statistical shape descriptors work well when comparing objects that cannot be deformed
• Also need to potentially store large amounts of data
Background
• Structural shape descriptors are simple geometrical descriptions of a more complex model
• Generally the structural shape descriptor takes the form of a skeleton of the mesh
• Skeleton representation is efficient if properly computed as it takes up little space, and can compare deformed objects, as well as perform partial matching
Computing the skeleton
• In 2D the traditional method of computing the skeleton is to use the Euclidian Distance Transform
• Basically find the center line of a 2d contour
• Another method is to use waves propagating inward from the surface
The EDT is expensive to compute
• On2m for 2D
• On3m for 3D
• No good/fast 3D equivalent
• Usually mesh thinning is used to calculate the skeleton
Goal
• Using graphics hardware, create a 3D graph of a model
• Slice the model along each coordinate axis
• Find 2D skeleton with GH, merge them
• Find intersection
• Extract graph
• Capture 3d axis information
• Intersection will remove random noise
• Simple transition to a graph
• only vertices and edges
• No sheets
Method
• Voxelize the model
• Consider each slice of the volume along each axis
• Gives you a 2D contour
• Compute the skeleton of each 2D contour
Method – Finding 2D skeleton
• Using Graphics hardware
• For each point on the contour draw a code centered on the point, pointing at the viewer.
• Read back the depth buffer
• Analogous to a distance transform
Method – Finding 2D skeleton
• Look for discontinuities in the EDT
• Scan columns/rows looking for points where both neighbors are smaller
• Every point that passes is marked true
Method
• Output is a 2D skeleton
• Merge the 2D skeletons into a volume again
• Intersect each volume
• One from each axis
Method – Noise
• Noise around the perimeter
Method – Noise
• Red dots indicate points that allowed a skeleton point in the center of this circle
Method – Noise Removal
• Angle between blue lines is small
• Remove points that have a small angle
Method – Noise Removal
• Keep points above 90 degrees
• D < Sqrt(2)*R
Method
• Once the EDT of the mesh is calculated we need to fit a skeleton to the resulting points
• The EDT voxel grid is not necessarily connected, ie. Voxels may not have neighbours
Fitting Skeleton
• Start by assigning an edge to each point that has several neighbours
• Begin merging the edges based on several criteria
• Distance between the two edges
• Length of the edges
• The angle between the two edges
• Stop merging when no suitable candidates are present
Fitting Skeleton
• We also discard some of the edges
• If they are short and do not have an edge to merge with
• Not attached to the rest of the graph
Results
• We can extract a voxel grid containing the mesh skeleton
• Filter the grid to remove some of the noise
• Fit a skeleton onto the grid to compactly represent the grid points
Problems - Voxelation
• Still can’t remove all the noise
• Have to be conservative with the noise test or else you throw out large chunks of the valid skeleton
Problems - Orientation
• Objects that aren’t axis aligned don’t work.
• Results in sheets
• Traditional 3D MA has sheets
• Contradicts one of our goals
Problems
• General problems with skeleton based approach:
• The skeleton is not very descriptive
• Can be very susceptible to noise
• If connectivity changes after deformation, comparison becomes very difficult
• Hard to capture just the right amount of detail
Problems with our approach:
• Our version of the EDT still creates noise around the surface of the mesh
• Noise on the surface of the mesh creates false edges which can merge with good edges
Future Work
• Try other methods for finding 2D skeleton that are less prone to noise
• Before voxelation?
• High resolution 2D images that get down sampled?
• Can’t keep high resolution for 3D
• What affect would aliasing have?
Future Work
• Orientation problem
• Instead of using the coordinate axis, find the EGI with a relatively small number of bins.
• Flip any normals with –z components
• Find axis volume relative to the dominant normals
• Problem lining up volumes with arbitrary rotations