Skip to content

vanvalenlab/kiosk-console

Repository files navigation

DeepCell Kiosk Banner

Build Status Read the Docs Apache 2.0

The kiosk-console is the entry point for users to spin up a DeepCell Kiosk, a cloud-native implementation of the DeepCell ecosystem.

The DeepCell Kiosk is designed to allow researchers to easily deploy and scale a deep learning platform for biological image analysis. Once launched, users can drag-and-drop images to be processed in parallel using publicly available, or custom-built, TensorFlow models. To train custom models, please refer to deepcell-tf, which was designed to facilitate model development and is capable of exporting these models for use with the DeepCell Kiosk.

The scalability of the DeepCell Kiosk software is enabled by Kubernetes. At present, the Kiosk is only compatible with Google Cloud.

An example of the DeepCell Kiosk is live at DeepCell.org.

Features

  • Cloud-based deployment of deep-learning models
  • Scalable platform that minimizes cost and inference time
  • Drag and drop interface for running predictions

Examples

Raw Image Tracked Image
Raw Image Tracked Image

Getting Started

Start a terminal shell and install the DeepCell Kiosk wrapper script:

docker run -e DOCKER_TAG=1.8.1 vanvalenlab/kiosk-console:1.8.1 | sudo bash

To start the kiosk, just run kiosk-console from the terminal shell.

Check out our docs for more information on how to start your own kiosk.

Software Architecture

Kiosk Architecture

  • Consumer: Retrieves items from the Job Queue and handles the processing pipeline for that item. Each consumer only works on one item at a time.

  • Model Server: Serves models over a gRPC API, allowing consumers to send data and get back predictions.

  • GPU Autoscaler: Automatically and efficiently scales Kubernetes GPU resources.

  • Frontend: API for creating and managing jobs, and a React-based web interface for the DeepCell Kiosk.

  • Additional Data Entry Tools:

    • ImageJ Plugin: An ImageJ 1.x plugin for processing images with an existing cluster.

    • Command-line Interface: A python-based CLI for submitting and managing DeepCell Kiosk jobs.

  • Not pictured above:

    • Bucket Monitor: Purges the bucket of uploaded and processed files that are older than AGE_THRESHOLD, 3 days by default.

    • Janitor: Monitors in-progress items and makes sure no jobs get left un-finished.

Contribute

We welcome contributions to the kiosk. If you are interested, please refer to our Developer Documentation, Code of Conduct and Contributing Guidelines.

Support

Issues are managed through Github. Documentation is hosted on Read the Docs. A FAQ page is also available.

License

This software is license under a modified Apache-2.0 license. See LICENSE for full details.

Trademarks

All other trademarks referenced herein are the property of their respective owners.

Credits

Caltech Logo

This kiosk was developed with Cloud Posse, LLC. They can be reached at [email protected]

Copyright

Copyright © 2018-2022 The Van Valen Lab at the California Institute of Technology (Caltech), with support from the Shurl and Kay Curci Foundation, the Paul Allen Family Foundation, Google, & National Institutes of Health (NIH) under Grant U24CA224309-01. All rights reserved.