Skip to content

oldvis/image-taxonomy-labeler

Repository files navigation

Commitizen friendly

OldVis Image Taxonomy Labeler

A web-based system for taxonomy labeling and comparison of old visualization images.

You can find a live demo here for taxonomy labeling. The functions related to the server are disabled in the live demo. To use the full-fledged version, please follow the instructions in How to Use.

This repository is structured as:

  • ./client-label: The interface for taxonomy labeling.
  • ./client-compare: The interface for taxonomy comparison.
  • ./scripts: The scripts for one-time data preprocessing.
  • ./server: The server shared by ./client-label and ./client-compare for serving image resource and computation services.

Warning

The following instructions for setting up the interfaces assume the annotated dataset is oldvis/dataset. If you want to use the interfaces to annotate other images datasets, you will need to

  1. ensure the image metadata matches the structure of visualizations.json and replace the metadata at ./client-compare/src/assets/visualizations.json and ./client-label/src/assets/visualizations.json
  2. store the images at ./server/static/images/
  3. setup the cache files (with ./scripts/setup_cache.py)

How to Use the Taxonomy Labeling Interface

  1. Setup the server resources and launch the server (see details at ./server/README.md).
  2. Launch the taxonomy labeling interface (see details at ./client-label/README.md).

How to Use the Taxonomy Comparison Interface

  1. Setup the server resources and launch the server (see details at ./server/README.md).
  2. Launch the taxonomy comparison interface (see details at ./client-compare/README.md).

Graphics Replicability

The following are the steps to reproduce Figure 2 of the paper "VisTaxa: Developing a Taxonomy of Historical Visualizations".

  1. clone this repository https://github.com/oldvis/image-taxonomy-labeler.
  2. Setup the server: Within the cloned repository:
    1. Under directory ./server, execute poetry install to install dependencies (assuming Python 3.10 and Poetry 2.x.x have been installed).
    2. Under directory ./server/static, execute poetry run python setup_samples.py.
      • Note: This script will download 400 images, unzip ./server/static/embeddings.zip, and unzip ./server/static/thumbnails.zip. Note that the image downloading will take some time and occupy in total around 400MB storage.
    3. Under directory ./server, execute poetry run python server.py to launch the server (make sure port 5001 has not been occupied before launching the server).
  3. Setup the client: Within the cloned repository, enter the directory ./client-label. Under this directory:
    1. Execute pnpm install to install dependencies (assuming node.js and pnpm have been installed).
    2. Execute pnpm run dev to launch the dev server.
    3. A webpage with the URL http://localhost:3333/ should automatically pop up in the browser, which corresponds to the interface screenshot in Figure 2 in the paper.
  4. Upload the annotations:
    1. Manually download the annotations stored at https://github.com/oldvis/image-taxonomy/blob/main/annotations.json. (There is no restriction on the filename when storing the downloaded annotations.)
    2. Click the "upload" button at the bottom right of the interface hosted at http://localhost:3333/, and upload the downloaded annotations. The interface will then look similar to Figure 2 in the paper.
      • Note: After loading the annotations, it may take seconds for all the images to be rendered in the browser.
      • Note: The state of the interface will not look exactly the same as Figure 2 in the paper, because the screenshot in Figure 2 was taken when the annotation process was ongoing, while the the annotations stored at https://github.com/oldvis/image-taxonomy/blob/main/annotations.json are the final annotations.

Reference

If you use this repository in a scientific publication, we would appreciate citations to the following paper:

@Article{Zhang2025VisTaxa,
  author    = {Zhang, Yu and Chen, Xinyue and Zheng, Weili and Guo, Yuhan and Li, Guozheng and Chen, Siming and Yuan, Xiaoru},
  title     = {{VisTaxa}: Developing a Taxonomy of Historical Visualizations},
  doi       = {10.1109/TVCG.2025.3567132},
  volume    = {},
  number    = {},
  pages     = {1--11},
  journal   = {IEEE Transactions on Visualization and Computer Graphics},
  publisher = {IEEE},
  year      = {2025},
}

Releases

No releases published

Packages

No packages published