Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.
We developed Picasso to help protect against situations where evaluation metrics like loss and accuracy may not tell the whole story in training neural networks on image classification tasks. At Merantix, we work with a variety of neural network architectures; we developed Picasso to make it easy to see standard visualizations across our models in our various verticals: including applications in automotive such as understanding when road segmentation or object detection fail; advertisement, such as understanding why certain creatives receive higher click-through rates; and medical imaging, such as analyzing what regions in a CT or X-ray image contain irregularities.
The Picasso visualizer tool is an open-source deep neural network visualization tool. It can be used to understand neural nets' decisions in the field of computer vision.
The scope of Picasso is definded as per below:
- Provide a web framework to connect DNNs trained in various frameworks (currently Tensorflow and Keras) to visualizations
- Handle upload of inputs (images)
- Provide some useful default visualizations, and a frontend for navigating them:
- Ease of working with new models
- Ease of adding new visualizations
Picasso is a free open-source (Eclipse Public License) web application written in Python for rendering standard visualizations useful for training convolutional neural networks. Picasso ships with occlusion maps and saliency maps, two visualizations which help reveal issues that evaluation metrics like loss and accuracy might hide: for example, learning a proxy classification task. Picasso works with the Keras and Tensorflow deep learning frameworks. Picasso can be used with minimal configuration by deep learning researchers and engineers alike across various neural network architectures. Adding new visualizations is simple: the user can specify their visualization code and HTML template separately from the application code.
Picasso is already in a complete, usable state. It is written in Python 3.5 using the Flask web application framework. Visualization classes and HTML templates must be defined separately by the user, but do not require modifying any other source files to use. Picasso handles the uploading of user-supplied images and generates temporary folders containing input and output images. If the visualization class has a "settings" attribute, Picasso automatically renders the settings selection as a separate page.
Application-level settings are handled via a configuration file, where the user may specify the deep learning framework (Keras or Tensorflow) as well as the location of the checkpoint files for their chosen model. The user must also supply a function to preprocess the image (reshape the image into appropriate input dimensions) and decode the output of the model (provide class labels).
Picasso has already received over 600 stars on Github, and we have merged external pull requests (with explicit assent to the Eclipse Contributor Agreement). No third-party libraries are distributed with the code, but various external open-source dependencies are downloaded through the Python Package Index. A list of these dependencies is available in the "setup.py" file at the project root.
Our tool is already published.
Some plans include:
- Interactive visualizations
- RESTful API
- Segmentation visualizations