Ended 4 years ago
273 participants
1474 submissions

Materials (0 MB)

Download all materials


Link to a set of images: picsart_hack_online_data.zip

A selection of ≈1500 labeled images dataset (the train directory) and segmentation masks (the train_mask directory) is provided for training models. Masks are single-channel images with the same dimensions as the original images and have only two color values. A test sample without corresponding masks (the test directory).

Submission Format

As a solution, you have to create the label for all images from the test directory.

Masks must be encoded in the run-length encoding (RLE) format and written to a CSV file. The RLE format means that pairs of numbers are written sequentially in a line: the number of the starting pixel and the number of consecutive pixels that belong to the mask. For example: '1 3 10 5' means that the mask consists of pixels with indexes 1,2,3,10,11,12,13,14.  Pairs must be sorted in ascending order of the starting pixel and must not intersect. Pixels are numbered from 1, from top to bottom, then from left to right: 1 means pixel (1,1), 2 - (2,1), and etc.

The code for encoding and decoding the RLE format can be found in utils.py. You must send a csv file with predictions. It must contain the following columns:

  • image — the image number specified in the file name (for example, 11150)
  • rle_mask — created mask encoded using RLE

An example of a solution file: sample_submission.csv

An example of the solution is given in Jupyter Notebook-е PicsartHack_Baseline.ipynb

Evaluation system

The segmentation quality is evaluated using the Dice Score:

$$\text{DICE} = \frac{2 \cdot |X \cap Y|}{|X| + |Y|}$$

Where X is the predicted mask, Y is the correct mask from the label, |X| is the number of pixels in the mask X.

Dice Score is averaged across all test images that have a label.

Functions for calculating quality can be found in utils.py.