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

ParametersTypeDescription
n_iterint

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

MethodDescription
fitFit the model.
fit_predictFit the model and return the aggregated segmentations.

Last updated: March 31, 2023

Crowd-Kit
Overview
Reference
Aggregation
Datasets
Learning
Metrics
Postprocessing