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

• Background

• Goal

• Method

• Find points that lie on the graph

• Extract vertices/edges from points

• Results

• Problems

• Future Work

• 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

• 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

• 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

• 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

• Voxelize the model

• Consider each slice of the volume along each axis

• Gives you a 2D contour

• Compute the skeleton of each 2D contour

• 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

• Look for discontinuities in the EDT

• Scan columns/rows looking for points where both neighbors are smaller

• Every point that passes is marked true

• Output is a 2D skeleton

• Merge the 2D skeletons into a volume again

• Intersect each volume

• One from each axis

• Noise around the perimeter

• Red dots indicate points that allowed a skeleton point in the center of this circle

• Angle between blue lines is small

• Remove points that have a small angle

• Keep points above 90 degrees

• D < Sqrt(2)*R

• 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

• 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

• 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

• 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

• 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

• Objects that aren’t axis aligned don’t work.

• Results in sheets

• Traditional 3D MA has sheets

• Contradicts one of our goals

• 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

• 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?

• 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