Skip to content

mikeroberts3000/SketchBasedShapeRetrieval

Repository files navigation

This repository contains an easy-to-read C++/Python implementation of the shape matching pipeline in the paper Sketch-Based Shape Retrieval.

Generating Line Drawings

To generate line drawings, I hacked the Suggestive Contours software to take a 3D mesh file as commandline input and to produce a collection of images as output. This collection of images shows the input 3D mesh rendered from different views using the Apparent Ridges algorithm.

Note that the Suggestive Contours software implements several other line drawing algorithms, but in the interest of simplicity, I do not export images using these other line drawing algorithms. Moreover, in the interest of simplicity, I sample the space of views uniformally rather than performing importance sampling.

The code for generating line drawings is checked into the LineDrawingExporter folder.

Running the Shape Matching Pipeline

The rest of the shape matching pipeline can be browsed online with the IPython Notebook Viewer using the links below.

  1. Generate Gabor Filter Images
  2. Compute Gabor Filter Responses
  3. Compute GALIF Local Patch Features
  4. Sample GALIF Local Patch Features
  5. Cluster Sampled GALIF Local Patch Features
  6. Compute Global Features
  7. Compute Matches from Input Sketch
  8. Compute Matches from Input Sketch using Cython for Extra Speed

There is also some useful debugging code that you can find by digging through the source. As above, you can browse this code online using the IPython Notebook Viewer.

About

This repository contains an easy-to-read C++/Python implementation of the shape matching pipeline in the paper Sketch-Based Shape Retrieval.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published