Toloka documentation

SegmentationEM

crowdkit.aggregation.image_segmentation.segmentation_em.SegmentationEM | Source code

SegmentationEM(
    self,
    n_iter: int = 10,
    tol: float = 1e-05
)

The EM algorithm for the image segmentation task.

This method performs a categorical aggregation task for each pixel: should it be included to the resulting aggregate or no. This task is solved by the single coin Dawid-Skene algorithm. Each worker has a latent parameter "skill" that shows the probability of this worker to answer correctly. Skills and true pixels' labels are optimized by the Expectation-Maximization algorithm.

Doris Jung-Lin Lee. 2018. Quality Evaluation Methods for Crowdsourced Image Segmentation https://ilpubs.stanford.edu:8090/1161/1/main.pdf

Parameters Description

Parameters Type Description
n_iter int

A number of EM iterations.

segmentations_ Series

Tasks' segmentations. A pandas.Series indexed by task such that labels.loc[task] is the tasks's aggregated segmentation.

Examples:

import numpy as np
import pandas as pd
from crowdkit.aggregation import SegmentationEM
df = pd.DataFrame(
    [
        ['t1', 'p1', np.array([[1, 0], [1, 1]])],
        ['t1', 'p2', np.array([[0, 1], [1, 1]])],
        ['t1', 'p3', np.array([[0, 1], [1, 1]])]
    ],
    columns=['task', 'worker', 'segmentation']
)
result = SegmentationEM().fit_predict(df)

Methods Summary

Method Description
fit Fit the model.
fit_predict Fit the model and return the aggregated segmentations.