Skip to content

Semi-automatic tool for manual segmentation of multi-spectral and geo-spatial imagery.

License

Notifications You must be signed in to change notification settings

ESA-PhiLab/iris

Repository files navigation

IRIS - Intelligently Reinforced Image Segmentation1

1Yes, it is a backronym.

Tool for manual image segmentation of satellite imagery (or images in general). It was designed to accelerate the creation of machine learning training datasets for Earth Observation. This application is a flask app which can be run locally. Special highlights:

  • Support by AI (gradient boosted decision tree) when doing image segmentation
  • Multiple and configurable views for multispectral imagery
  • Simple setup with pip and one configuration file
  • Platform independent app (runs on Linux, Windows and Mac OS)
  • Multi-user support: work in a team on your dataset and merge the results

Installation

Clone the repository, navigate to the directory, and install the package and its dependencies. We recommend doing this inside an environment such as conda, with python 3.8 or 3.9.

git clone git@github.com:ESA-PhiLab/iris.git
cd iris
python setup.py install

If you are altering the IRIS source code then you may find it easier to install like below, to avoid having to reinstall it every time a change is made

pip install -e ./

Usage

Once installed, you can run the demo version of IRIS

iris demo

Having run the demo, you can then create a personalised config file, based on demo/cloud-segmentation.json. With your own config file, you can then instantiate your own custom project. Here is a guide on how to write your own config file.

iris label <your-config-file>

It is recommended to use a keyboard and mouse with scrollwheel for IRIS. Currently, control via trackpad is limited and awkward.

Docker

You can also use Docker to deploy IRIS. First, build an image (run from IRIS's root directory). Then, you can use docker run to launch IRIS. However, please note that port-forwarding is needed (here we use port 80 as an example for a typical http setup, but the port number can be set in your IRIS config file) and the directory to your project also needs to be given as a volume to docker.

docker build --tag iris .
docker run -p 80:80 -v <dataset_path>:/dataset/ --rm -it iris label /dataset/cloud-segmentation.json

Run on Github Codespaces

To run in a Github codespace fork this repository, then in the Github UI select Code/Codespaces/Open in codespace. Run pip install -e . and then iris demo. You will see a popup that there is an app on port 5000, click the link to open a new window showing Iris 🎉

Visit the official iris Github page: https://github.com/ESA-PhiLab/iris