3d skeletons using graphics hardware
1 / 32

3D Skeletons Using Graphics Hardware - PowerPoint PPT Presentation

  • Uploaded on

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.
Download Presentation

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

An Image/Link below is provided (as is) to download presentation

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

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

Computing the skeleton
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


  • 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

Method finding 2d skeleton
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 skeleton1
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


  • Output is a 2D skeleton

  • Merge the 2D skeletons into a volume again

  • Intersect each volume

    • One from each axis

Method noise
Method – Noise

  • Noise around the perimeter

Method noise1
Method – Noise

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

Method noise removal
Method – Noise Removal

  • Angle between blue lines is small

  • Remove points that have a small angle

Method noise removal1
Method – Noise Removal

  • 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

Fitting skeleton
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 skeleton1
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


  • 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
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
Problems - Orientation

  • 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

Future work
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 work1
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