Vesuvius Project Ideas - Google Summer of Code 2013

Simplify ImageStats Code

Mentor-Provided Section

Background, Spring, 2013

Original Introduction from the Ideas Page

Simplify ImageStats Code

Platform Vesuvius
Mentors Ajay Kanduru
Preferred communication TBD
Brief description/Usage scenario ImageStats is a Java program that extended the PL web site (NLM's version of Vesuvius). it was used in the recent Google Code In to tag skin color samples and facial boundaries from images. While fairly straightforward in concept, ImageStats was quickly built with many dependencies on third party libraries and functions. Now open-source, ImageStats could be redone to make it simpler, more stand-alone, and easier to maintain.
Skills needed Java
Blueprints GSoC 2013 - Simplify ImageStats Code
Other resources
Acceptance conditions

Other Comments

  1. This new project calls for a simplified reimplementation, with fewer library and PL/Vesuvius dependencies, so the existing source code is mainly for reference.
  2. The existing source code may need changes to function with a Vesuvius instance, rather than PL.
  3. The GCI use case involved calls to a FaceMatch web service. This is excluded from the use case of the GSoC project.

Existing ImageStats will be put back on line shortly, so that its functionality may be tried out; GSoC students will need passwords.

In the new version, essentially a tool independent of Vesuvius/PL, the images will simply be found in a directory, and the annotation results likewise deposited.

(more to come)

Student-Provided Section


The major objective of the project was to implement directory retrieval system in the application. This involved using images for the application from a local directory on the server. The sub-directories of the local directory are the collections and the images inside those sub-directories are shown to the user according to the search options filled by the user.

Tasks completed

The major tasks completed during the course of the project were:

  • Removing the dependencies and compile the application
  • Switch from MySQL to SQLite and configure database configurations.
  • Implement new search methods for directory retrieval system.
  • Configure Authentication in application.
  • Implement functions for text based search.
  • Other Small changes:
    • Autosave functionality when clicking Next, Previous, and Close.
    • Introducing a different non-PL logo, bigger title, joint NLM/Sahana branding.
    • Handle Exceptions on the client side and show the errors to the user.
    • Changing label name Event List to Image Collections.
    • Ground Truth Status type options reduced to “Not Done” and “Completed”.

Further Work

Some of the tasks that have been identified for further improvement in the application are:

  • Resolve Export Annotation Bug
  • Show annotations in Thumb Images when showing the result list.
  • Update Ground Truth Status Count in the Side bar after editing an image.
  • Resolve bug in Cursor Resizing Indication.

User Guide

Annotating Images

Autosave functionality

There is an autosave functionality in the application. This means that if the user makes any changes in the annotations of the image and then clicks Next, Previous or Close then the annotations get saved automatically without the user being required to click Save Button.

The following search functionality provided for searchbox:

  • *:xxx - searches Image ID, Event Name and Image Name for xxx
  • image_id:xxx - searches Image ID for xxx
  • event_name:xxx -searches Event Name for xxx
  • image_name:xxx - searches Image Name for xxx
  • xxx - searches Image ID, Event Name and Image Name for xxx
  • xxx OR yyy - Returns true if Image ID, Event Name or Image Name match for either xxx or yyy
  • xxx AND yyy - Returns true if Image ID, Event Name or Image Name match for both xxx and yyy
  • xxx yyy - Treated as xxx OR yyy

Setup Guide

  1. Install the code in Eclipse as a new Project.
  2. Copy all the libraries required in the lib folder of the war folder and build their paths in the project. The libraries required are
    1. gson-2.2.4.jar
    2. gwt-graphics-1.0.0.jar
    3. gwt-servlet.jar
    4. gxt-3.0.1.jar
    5. jetty-naming-6.1.12.jar
    6. jetty-plus-6.1.12.jar
    7. sqlite-jdbc-3.7.2.jar
  3. Compile the project.
  4. Change the paths of the database and the environment variable in the configuration file(context.xml for Tomcat and jetty-web.xml for Jetty) according to the actual location of the database and the path of the image repository.
  5. Check whether the application is running in Eclipse Jetty.
  6. Make the war file by zipping the contents of the war folder in imagestats.war file.
  7. Copy the file in the webapps folder in Tomcat directory.
  8. Make virtual repository for the image repository by copying imagestats#repo file in $CATALINA_HOME/conf/Catalina/localhost folder from the MISC folder and change the path in the file to the path of the image repository.
  9. Run the Tomcat Server and go to the appropriate path in the browser to access the application.

Project Source Code

The source code was checked in to a new branch in the original repository of ImageStats in Github.

Master branch for ImageStats code -

Simplify branch for the project -

Resource Pages

QR Code
QR Code agasti:vesuvius:gsoc2013:imagestats (generated for current page)