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)
| File | Size | Uploaded | |
|---|---|---|---|
| iaa_od-4.2.tar.gz | 253.2 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|