Image processing with scikit-image and Dash

From algorithms to interactive applications for processing and annotating images

Emmanuelle Gouillart

Computer Vision Data Science Image Processing JavaScript Web Frameworks (AngularJS/ReactJS/...) Scientific Libraries (Numpy/Pandas/SciKit/...)

Images are an ubiquitous form of data in various fields of science and
industry. Images often need to be transformed and processed, for example for helping medical diagnosis by extracting regions of interest or measures, or for building training sets for machine learning.

In this talk, I will present and discuss several tools for automatic and
interactive image processing with Python. I will start by a short
introduction to scikit-image (https://scikit-image.org/), the open-source
image processing toolkit of the Pydata ecosystem, which aims at
processing images from a large class of modalities (2-D, 3-D, etc.) and
strives to have a gentle learning curve with pedagogical example-based
documentation. scikit-image provides users with a simple API based on a large number of functions, which can be used to build pipelines of image processing workflows.

In a second part, I will explain how to use Dash for building interactive
image processing operations. Dash (https://dash.plot.ly/) is an
open-source Python web application framework developed by Plotly. Written on top of Flask, Plotly.js, and React.js, Dash is meant for building data visualization apps with highly custom user interfaces in pure Python. The dash-canvas component library of Dash (https://dash.plot.ly/canvas) is an interactive component for annotating images with several tools (freehand brush, lines, bounding boxes, ...). It also provides utility functions for using user-provided annotations for several image processing tasks such as segmentation, transformation, measures, etc. The latter functions are based on libraries such scikit-image and openCV. A gallery of examples showcases some typical uses of Dash for image processing on
https://dash-canvas.plotly.host/. Also, other components of Dash can be leveraged easily to build powerful image processing applications, such as widgets to tune parameters or data tables for inspecting object
properties.

Type: Talk (30 mins); Python level: Beginner; Domain level: Beginner

Emmanuelle Gouillart

Plotly

Emmanuelle is a part-time developer at Plotly, where she works on image processing and documentation, and a researcher in materials science at Saint-Gobain. She has been a core contributor of scikit-image for several years, and her interest in image processing was triggered by her frequent use of in-situ tomographic imaging of materials, especially glass at high temperature. She recently created the dash-canvas library for integrating image annotating and processing into the Dash Python web framework. In software development, besides image processing she is interested in documentation and teaching scientific Python. She has been a co-organizer of the Euroscipy conference for several years.