Skip to content

Commit 2c15793

Browse files
Update project
1 parent 3e0838d commit 2c15793

14 files changed

Lines changed: 29746 additions & 91 deletions

File tree

‎README.md‎

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,46 @@
1+
![logo](https://imaging.epfl.ch/resources/logo-for-gitlab.svg)
12
# Segmentation Challenge
23

3-
The goal of this workshop is to let you practice your segmentation skills by developing automated segmentation workflows for a selection of "challenge" images.
4+
The goal of this challenge is to let you practice your segmentation skills by developing automated segmentation workflows for a selection of images.
45

56
You can use any tool you want ([Fiji](https://fiji.sc/), [MorpholibJ](https://imagej.net/plugins/morpholibj), [Scikit-image](https://scikit-image.org/), [CellPose](https://www.cellpose.org/), [SAM](https://github.com/facebookresearch/segment-anything), [Ilastik](https://www.ilastik.org/)...) to generate your segmentation masks. The idea is to test and figure out which methods work best for each image.
67

78
## Images
89

9-
The challenge images are located in the [`Images`](./Images/) folder.
10+
The challenge images are located in the [`Images`](./public/Images/) folder. For each image, a *ground truth* segmentation mask is available in the [`Ground_Truths`](./public/Ground_Truths/) folder. These ground truth masks have been carefully edited to be as close as possible to an ideal result.
1011

11-
![Images](./assets/overview.png)
12+
<img src="./assets/overview.svg" alt="Images" style="width:100%;" />
1213

13-
| Image | Description |
14-
| ---------- | ----------- |
15-
| sunflowers.tif | An optical image of sunflower seeds. |
16-
| grains.tif | An SEM image of a grain structure. |
17-
| sheep.tif | An aerial photograph of sheep in a field. |
14+
| Image | Description | Credit |
15+
| ---------- | ----------- | ------ |
16+
| sunflowers.tif | An optical image of sunflower seeds. | Courtesy of Daniel Sage, EPFL |
17+
| fish.tif | A historical drawing of fish in the Limat river. | Viatimages @ Unil |
18+
| grains.tif | An SEM image of a grain structure. | Courtesy of Nanolab @ EPFL, Anna Varini |
1819

19-
**Image references**: the original image sources are mentioned [here](./Images/_references.txt).
20+
## Evaluate your segmentation
2021

21-
## Ground truths
22+
You can evaluate your segmentation mask and see how it compares to the “ground truthˮ using our web dashboard:
2223

23-
For each image, a *ground truth* segmentation mask is available in the [`Ground_Truths`](./Ground_Truths/) folder. These ground truth masks have been carefully edited to be as close as possible to an ideal result.
24+
[➡️ Web Dashboard](https://epfl-center-for-imaging.github.io/segmentation-challenge/)
2425

25-
## Submissions
26+
![Marimo screenshot](./assets/marimo_screenshot.png)
2627

27-
You can share your segmentation masks to see how they compare to the “ground truthˮ and other submissions.
28+
Your segmentation masks should be labeled arrays with values representing instances. They should have the same size (number of pixels in X and Y) as the original image. They should be saved as a TIFF file.
2829

29-
Upload your segmentation mask files (in **TIFF** format) by drag and dropping them into
30+
The quality of your segmentation mask is evaluated based on two metrics:
3031

31-
- the Marimo thing I'll make (TODO) or
32-
- the [`Submissions`](./Submissions/) folder of the shared Jupyter lab session provided by workshop organizers.
32+
- **Object count** relative to the ground truth count.
33+
- **Intersection over union (IoU)** computed on the binary version of the mask.
3334

34-
The segmentation mask should be a **labeled array** with values representing instances. It should have the same size (same number of pixels in X and Y) as the original image.
35+
We also average both scores to give an overall score.
3536

36-
## Evaluation
37+
**Shared folder**
3738

38-
The quality of your submissions is evaluated based on two metrics:
39-
40-
- **Object count** relative to the ground truth count (`oc_score`).
41-
- **Intersection over union (IoU)** computed on the binary version of the mask (`iou_score`).
42-
43-
We also average both scores to give an overall score (`overall_score`).
44-
45-
These metrics are used to rank submissions in the **leaderboards** displayed on screen.
39+
If your workshop organizers have prepared a shared Jupyterlab session, you can upload your segmentation mask files (in TIFF format) by drag and dropping them into the [`Submissions`](./Submissions/) folder on Jupyter lab, so that you can also see how they compare to other submissions.
4640

4741
## Solutions
4842

49-
A few reference solutions are available in the [Solutions](./Solutions/) folder. We encourage you to take a look at them *after* the workshop!
43+
A few reference segmentation workflows are available in the [solutions](./solutions/) folder. We encourage you to take a look at them *after* the workshop!
5044

5145
---
5246
## Setup (for workshop organizers)
@@ -83,18 +77,10 @@ In the shared Jupyter lab session:
8377
python leaderboard.py
8478
```
8579

86-
2. In a new terminal window, run [display.py](./Scripts/display.py) to display a particular leaderboard.
87-
88-
For the overall leaderboard:
89-
90-
```bash
91-
python display.py leaderboard
92-
```
93-
94-
For a specific challenge:
80+
2. In a new terminal window, run [display.py](./Scripts/display.py) to display the leaderboard of a particular challenge:
9581

9682
```bash
97-
python display.py sheep
83+
python display.py grains
9884
```
9985

10086
Repeat this process for all challenges, then reorganize the layout so that the leaderboards are visible side-by-side:

‎assets/leaderboards.png‎

-266 KB
Loading

‎assets/marimo_screenshot.png‎

448 KB
Loading

‎assets/overview.png‎

-1.86 MB
Binary file not shown.

0 commit comments

Comments
 (0)