Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alan-turing-institute/scivision

scivision: a framework for scientific image analysis
https://github.com/alan-turing-institute/scivision

computer-vision data-science hut23 hut23-1205 image-processing machine-learning scientific-research

Last synced: about 21 hours ago
JSON representation

scivision: a framework for scientific image analysis

Awesome Lists containing this project

README

        



[![Continuous integration status badge](https://github.com/alan-turing-institute/scivision/actions/workflows/scivision.yml/badge.svg)](https://github.com/alan-turing-institute/scivision/actions/workflows/scivision.yml)
[![Documentation status badge](https://readthedocs.org/projects/scivision/badge/?version=latest)](https://scivision.readthedocs.io/en/latest/?badge=latest)
[![PyPI badge](https://img.shields.io/pypi/v/scivision)](https://pypi.org/project/scivision/)
[![All Contributors](https://img.shields.io/github/all-contributors/alan-turing-institute/scivision?color=ee8449)](#contributors)
[![Licence badge (BSD 3 Clause)](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://github.com/alan-turing-institute/scivision/blob/main/LICENSE)
[![DOI](https://zenodo.org/badge/367023884.svg)](https://zenodo.org/doi/10.5281/zenodo.10792860)

If you are new to Scivision, start with the [website](https://sci.vision/).

The Scivision project is building:

- A **community** of computer vision practitioners in the sciences and humanities
([join the community on Slack](https://forms.office.com/e/cW28TK4aui))
- A **catalog** of community-curated computer vision [models](https://sci.vision/#/model-grid) and [datasets](https://sci.vision/#/datasource-grid) from the sciences and humanities
- A software **ecosystem of interoperable tools** and utilities for working with computer vision models and data, including:
- **Scivision.Py**, a Python package for conveniently downloading and using the computer vision models and datasets from Python ([Scivision on PyPI](https://pypi.org/project/scivision/))
- **[Pixelflow](https://github.com/alan-turing-institute/pixelflow)**, a tool for extracting information about the characteristics of objects in images

Example use cases for these tools can be found in the [**gallery of notebooks**](https://github.com/scivision-gallery) using Scivision models and datasets

The Scivision project was founded by [the Alan Turing Institute](https://www.turing.ac.uk/).

## Repository contents

This main [project repository on GitHub](https://github.com/alan-turing-institute/scivision) hosts
- development of the Python package (in the root directory)
- development of the website (in `frontend`)
- the documentation sources (in `docs`)

## Get involved
Submit a bug or feature request [here](https://github.com/alan-turing-institute/scivision/issues).

If you would like a link to a model or datasource to be listed in the catalog, such a contribution would be gratefully received. These can be submitted through the [Scivision website](https://sci.vision/#/contribute). See the [Contributing Guide](https://scivision.readthedocs.io/en/latest/contributing.html) for more details on how to format your model / data.

Pull requests for code changes are also welcome.

## Getting Started with Scivision.Py

A quick overview of using the Scivision.Py python package.

### Install Scivision.Py

```sh
$ pip install scivision
```

- [Full installation guide](https://scivision.readthedocs.io/en/latest/user_guide.html#installation)

### Load a Scivision model

```python
from scivision import load_pretrained_model

resnet18 = load_pretrained_model(
# The model URL
"https://github.com/alan-turing-institute/scivision_classifier",

# A Scivision model can contain several variants -- below we select the one to use
model_selection='resnet18',

# Allow the model and its dependencies to be installed if they are not already
# (including tensorflow in this example)
allow_install=True
)
```

We can give an image as input to the model. Any image data compatible with numpy (an 'Array_like') is accepted.
We can obtain some image data by loading a Scivision datasource.

- [More about Scivision models](https://scivision.readthedocs.io/en/latest/model_repository_template.html)

### Load a Scivision datasource

```python
from scivision import load_pretrained_model

dataset = load_dataset('https://github.com/alan-turing-institute/scivision-test-data')

# 'dataset' provides several named arrays. This datasource provides one named 'test_image':
# the keys can be looked up with `list(dataset)` (or by consulting the datasource documentation)
#
test_image = dataset['test_image'].read()
```

Optionally, inspect the image (with matplotlib, for example):
```python
import matplotlib.pyplot as plt

plt.imshow(test_image)
```

![Image showing test_image (a picture of a Koala)](https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Cutest_Koala.jpg/262px-Cutest_Koala.jpg)

- [More about datasources](https://scivision.readthedocs.io/en/latest/data_repository_template.html)

### Run a Scivision model

```python
resnet18.predict(test_image)
```

Output: `koala : 99.78%`

### Query the model and datasource catalogs

```python
from scivision import default_catalog

# The datasource catalog as a Pandas dataframe
default_catalog.datasources.to_dataframe()

# Similarly for the model catalog
default_catalog.models.to_dataframe()
```

Output:

| | name | description | tasks | url | pkg_url | format | scivision_usable | pretrained | labels_required | institution | tags |
|---:|:---------|:---------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------|:----------------------------------------------------|:---------|:-------------------|:-------------|:------------------|:--------------------|:--------------------------------------------------------------------------------------------------------------------------------------|
| 0 | stardist | Single class object detection and segementation of star-convex polygons | (, ) | https://github.com/stardist/stardist | git+https://github.com/stardist/stardist.git@master | image | False | True | True | ('epfl',) | ('2D', '3D', 'optical-microscopy', 'xray', 'microtomography', 'cell-counting', 'plant-phenotyping', 'climate-change-and-agriculture') |
| 1 | PlantCV | Open-source image analysis software package targeted for plant phenotyping | (, , ) | https://github.com/danforthcenter/plantcv | git+https://github.com/danforthcenter/plantcv@main | image | False | True | True | ('danforthcenter',) | ('2D', 'hyperspectral', 'multispectral', 'near-infrared', 'infrared', 'plant-phenotyping', 'climate-change-and-agriculture') |
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |

The catalogs are browsable online:
- [model catalog](https://sci.vision/#/model-grid)
- [datasource catalog](https://sci.vision/#/datasource-grid)

## Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Aida Mehonic
Aida Mehonic

📋 📖 🤔
Alan R Lowe
Alan R Lowe

💻 🤔 📖 🚇 🔍
Alden Conner
Alden Conner

🤔 📖 🎨 📋 📣 📆
Alejandro ©
Alejandro ©

💻 🤔 🎨 💡
Beatriz Costa Gomes
Beatriz Costa Gomes

💻 🤔 📖 🎨 💡
Ben Evans
Ben Evans

🤔
Ed Chalstrey
Ed Chalstrey

💻 🤔 📖 🚇


Eriol Fox
Eriol Fox

🤔 🎨
Evangeline Corcoran
Evangeline Corcoran

💻 🤔 📖 🚇
Isabel Fenton
Isabel Fenton

💻 🤔 📖 🚇
James Parkhurst
James Parkhurst

🤔 🔣 🔌
JamesAliScott
JamesAliScott

🤔 🔣
Kasra Hosseini
Kasra Hosseini

💻 🤔 📖 🚇
Martin Rogers
Martin Rogers

🔣 💡 💻 🤔


Miquel Massot
Miquel Massot

💻 🤔 📖 🔌
Robert Blackwell
Robert Blackwell

🤔
Samuel Tonks
Samuel Tonks

💻 🤔 📖 🚇
Scott Hosking
Scott Hosking

🔍 🤔
Seb Hickman
Seb Hickman

💡 📢
louisavz
louisavz

🤔 📣 📝
nbarlowATI
nbarlowATI

🤔 📋 💡


ots22
ots22

💻 🤔 📖 🚇
pwochner
pwochner

🤔 📋 💡
vimode
vimode

🤔 🎨 💻 ️️️️♿️

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!