projects:labelmeworkbench printable version

LabelMeWorkbench

The LabelMeWorkbench is an application for browsing and querying the LabelMe database.
I develop the application for GNU/Linux, there is any support for the MS-Windows platform.

LabelMeWorkbench provides:

  • a cleaning of the whole dataset that consists in:
    • all annotation files are parsed, text content is normalized (special characters are removed)
    • visual objects (i.e. polygons) with no name are removed
    • the XML annotation file is re-formatted for an easier reading
    • all images are verified (and reconverted using ImageMagick if they contain errors like “corrupted JPEG data” etc.) [not activated by default]
    • all images can be resized if they are larger than a specific dimension
    • annotation and image filenames are normalized (some of them contains special character, URL-encoding, this can be an issue for some indexer)
  • some indices are built (considering annotations that are not marked deleted):
    • a Lucene index with KeywordAnalyzer
    • a Lucene index with WhitespaceAnalyzer
    • a DBXML index, that allows to make complex query, for example:
      for $i in collection('LabelMe.dbxml') where $i/annotation/object[name='head' and deleted='0'] and count($i/annotation/object[deleted='0'])>3 
      return concat($i/annotation/folder/text(),'/',$i/annotation/filename/text(),',',string-join(for $j in $i/annotation/object/name/text() return $j, ","))
      
      So, the Berkeley DBXML library and her java binding are needed, you can download it here: http://www.oracle.com/technology/software/products/berkeley-db/index.html (add --enable-java on the build command line).
  • a browser for the results of a query on the indices.
    The browser is brought by the Galatee library, so CTRL+f for searching, '+' and '-' managing the table. Popup menu with mouse button 3 for image infomation.
  • an image/annotation viewer.
    The viewer is brought by the Jmagine library, so '*' for switching SVG objects visibility, CTRL+mouse wheel for zooming.

Screenshots

How to use it?

  1. download the LabelMe dataset using the Matlab toolbox http://labelme.csail.mit.edu/instructions.html
  2. you need:
    • ImageMagick
    • Berkeley DBXML
  3. get the LabelMeWorkbench archive
  4. update the path to the LabelMeWorkbench in the 3 shell scripts LabelMeClearnerNormalizer.sh, LabelMeIndexer.sh, LabelMeBrowser.sh (line 4)
  5. update the path to the libraries of Berkeley DBXML, the shell variable BDBXML_LIB_PATH in the shell scripts LabelMeIndexer.sh and LabelMeBrowser.sh
  6. update the LabelMeWorkbench.properties file with your configuration:
    • path where you have installed the LabelMe dataset
    • paths to where the indices will be created
  7. update the Galatee.properties file with your configuration:
    • path to a temporary directory
  8. launch LabelMeCleanerNormalizer.sh
  9. launch LabelMeIndexer.sh
  10. launch LabelMeBrowser.sh

Using the library

The LabelMeWorkbench library can be used for getting LabelMe images annotated by a specific text with the class net.trevize.lucene.InstanceSearcher.

Download

Develoment tracks

  • in the Lucene index, the field annotation folder is not relative, but the field image folder is relative. The two field must be relative, and the path to the dataset has to be indicated through the Configuration object.
 
projects/labelmeworkbench.txt · Last modified: 2010/07/09 16:16 by njames

 Valid XHTML 1.0 Transitional Valid CSS! DokuWiki