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
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 [email protected]: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 ./
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.
This section provides step-by-step instructions for deploying IRIS using Docker Compose on your own machine, or on a public web server.
-
Install Docker: Follow the official Docker installation instructions for your operating system:
-
Clone the repository:
git clone https://github.com/UCL/iris.git && cd iris
-
Set up your project directory: Create a
project
directory in the iris repository root and add your configuration files:mkdir project && cd project
You'll need to add:
config.json
: Your project configuration file (see Configuration Guide for details)images/
: Directory containing your image data
Example project structure:
project/ ├── config.json └── images/ ├── image1/ │ ├── s1.tif │ ├── s2.tif │ ├── thumbnail.png │ └── metadata.json ├── image2/ │ ├── s1.tif │ ├── s2.tif │ ├── thumbnail.png │ └── metadata.json └── ...
-
Build and run the containers:
# Build the Docker images docker-compose build # Start the services docker-compose up -d
This will start:
- IRIS service on port 5000
- Nginx reverse proxy on port 80
Once the containers are running, if running locally, you can access IRIS through your web browser:
- http://localhost Or if running on a remote server, you can access IRIS through your web browser:
- http://<your-server-ip>
To stop the services:
docker-compose down
- Port conflicts: If ports 5000 or 80 are already in use, modify the port mappings in
docker-compose.yml
- Permission issues: Ensure Docker has proper permissions to access your project directory
- Build errors: Make sure Docker and Docker Compose are properly installed and up to date