Skip to main content

iaa-od: a comprehensive IAA analysis suite

This package provides a comprehensive Inter-Annotator Agreement analysis suite for Object Detection tasks.

Installation

PyPI

iaa-od is available on PyPI, so you can install it through pip:

pip install iaa-od

Source

You can install the iaa-od package by cloning this repository and then running the following command on its top level:

pip install .

If you want to make modifications to the package, you may install it like so:

pip install -e .

If you wish to do some testing through Jupyter Notebooks, install the optional dependencies as well:

pip install -e ".[dev]"

Computed metrics

Below is a list of currently implemented metrics.

Krippendorff's $\alpha$

Krippendorff's $\alpha$ coefficient is defined as:

$$\alpha = 1 - \frac{D_o}{D_e}$$

and is computed in our package according to this paper by Klaus Krippendorff.

The units in each image are found through agglomerative clustering.

Rater vitality

Rater vitality measures the contribution of each annotator to the global agreement value. It is computed as:

$$\nu_a = \alpha - \alpha_a$$

where $\alpha_a$ is the value of Krippendorff's $\alpha$ computed excluding annotator $a$ from the dataset.

Scale complexity

Scale complexity measures the ambiguity found across categories of the same dataset by grouping them into user-defined macro-categories. It is computed as:

$$\text{SC} = \alpha_M - \alpha$$

where $\alpha_M$ is the value of Krippendorff's $\alpha$ computed on the macro-categories. If $\text{SC} > 0$, categories grouped in the same macro-categories are ambiguous.

L-Score (Localisation Score)

L-Score measures the localisation agreement reached by the annotators by only considering the locations of their bounding boxes. It is computed as:

$$L_{\text{score}} = \frac{|A|}{2|A|-1} \left[ \sum_{i=2}^{|A|} \left(\frac{i-1}{|A|}, p_i\right) - p_1 + 1\right]$$

L-Score $\in [0,1]$, where 1 indicates perfect localisation agreement.

C-Score (Categorisation Score)

C-Score measures the categorisation agreement reached by annotators by analysing intersecting bounding boxes and comparing their labels.

Computation is not reported here for brevity.

C-Score $\in [0,1]$, where 1 indicates perfect categorisation agreement.

Count and size granularity

Count and size granularity measure the behaviour of annotators when annotating large groups of object:

  • an annotator who groups many instances into a single bounding box annotates "by group";
  • an annotator who creates several bounding boxes for each instance annotates "by instance".

Computation of these metrics is not reported here for brevity.

Count and size granularities both rely on a benchmark annotator, found during computation, to whom all other annotators are compared to.

Working example

main.py provides a working example of the package by performing all available analyses on a dataset with three annotators. More examples are also provided in the experiments directory: specifically, experiments/images.py shows how to utilise the visualisation module.

Jupyter notebooks

The notebooks directory contains a number of Jupyter notebooks to play around with data.

Release files for iaa-od 4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iaa-od 4.2
File Size Uploaded
iaa_od-4.2.tar.gz 253.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for iaa-od 4.2
File Interpreter ABI Platform
iaa_od-4.2.0-py3-none-any.whl Python 3 none any Details
iaa_od-4.2-py3-none-any.whl Python 3 none any Details

Total release size: 379.3 kB

Release files / iaa_od-4.2.tar.gz

Download URL iaa_od-4.2.tar.gz
Size 253.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ab8be2df57eefcd30946a8e77315a7fa914c09b6466a63068c87a70d997f578b
BLAKE2b-256 checksum
How to use checksums
d045b5297a31ed4798a6f7f1f183f765e0f224d06ed24841687b18f34b83b1df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / iaa_od-4.2.0-py3-none-any.whl

Download URL iaa_od-4.2.0-py3-none-any.whl
Size 63.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
42da94e2f7da5f7e1a359f1c33e7c1e655625808ca6edf7e8b44fb6f72a5a6e8
BLAKE2b-256 checksum
How to use checksums
04c315cce582adc347ea48cbe4caa8ce1774493d52e4f36d2285e2a7c465cab8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / iaa_od-4.2-py3-none-any.whl

Download URL iaa_od-4.2-py3-none-any.whl
Size 63.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af6876f9ca2ee161fc6e58676569c73fc8d23d257b84e8fff147679e34223e3c
BLAKE2b-256 checksum
How to use checksums
2c8a156acf454aa0eabea84a15ad184556b60044fa94213b7f68bfa201b8a1c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release history Release notifications | RSS feed

4.4.0

2 release files

This release

4.2 This release

3 release files

4.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page