Skip to main content

Auto Annotator

Logo

GitHub Actions Workflow Status codecov PyPI version PyPI - Format license GitHub top language PythonVersion Downloads GitHub closed pull requests GitHub contributors GitHub forks GitHub Repo stars

An extendable tool for automatic annotation of image data by a combination of deep neural networks.

The primary objective of this annotator is to prioritize the accuracy and quality of predictions over speed. The autoannotator has been specifically designed to surpass the precision offered by most publicly available tools. It leverages ensembles of deep neural models to ensure the utmost quality in its predictions. It is important to note that neural networks trained on clean datasets tend to yield superior results compared to those trained on larger but noisier datasets.

Supported tasks

Human Face Detection and Recognition

Human Face Detection and Recognition

  • Face and landmarks detection
  • Face alignment via keypoints
  • Face descriptor extraction

Human Body Detection

  • UniHCP
  • IterDETR (Progressive DETR)
  • RTDETR, ResNet-101
  • InternImage-XL

Other

  • DBSCAN clustering

📊 Benchmarks

Face Recognition

Speed

Task Hardware Time, s
Face detection + landmarks + extraction Xeon e5 2678 v3 ~1

Human Detection

Quality

AP@50 when RT-DETR ResNet-18 was trained on CUHK-SYSU

Test set Original Markup Markup via DDQ-DETR Markup via Ensemle
CrowdHuman 52.30 76.97 77.31
WiderPerson 54.66 60.89 63.71

🏗 Installation

PIP package

pip install autoannotator

🚲 Getting started

Face recognition example

Check out our demo face recognition pipeline at: examples/face_recognition_example.py

[Optional] Run frontend and backend

git clone https://github.com/CatsWhoTrain/autoannotator_client
cd autoannotator_client
docker compose up

The webinterface could be found locally at: http://localhost:8080/

Human full-body detection

Detailed description is given in the separate document

Human detection example

Check out our demo face recognition pipeline at: examples/human_detection_example.py

FAQ

Do companies and engineers actually need this tool?

We have asked engineers in the field of video analytics whether they are interested in such a library. Their responses were:

  • IREX: would use this library and contribute to it.
  • NapoleonIT: would use this library and contribute to it.
  • Linza Metrics: would use this library.

What are the reasons for choosing this data labeling tool over the alternative of employing human annotators?

Human accuracy is not so good

Long time ago Andrej Karpathy observed that his accuracy was only 94% when he tried to label just 400 images of the CIFAR-10 dataset while SOTA Efficient adaptive ensembling for image classification (August 29, 2023) achieves >99.6% accuracy. When expert labelers had to choose from ~100 labels while annotating ImageNet, their error rate increased to 13-15%.

Andrej's error rate was determined to be 5.1%, and he initially invested approximately one minute in labeling a single image. Conversely, utilizing Florence or never models for the same task can deliver a top-5 error rate of less than 1%.

Industry case: human face classification.

A certain undisclosed company, bound by a non-disclosure agreement (NDA), has utilized a technique wherein face images captured under challenging environmental conditions are pre-processed. This procedure involves the application of both a facial recognition network and DBSCAN algorithm to divide the images into distinct individuals. Subsequently, human annotators undertook a validation process to verify the accuracy of the pre-processed data. The work conducted by the annotators was inspected by their team leader. Ultimately, it was determined by an ML engineer that 1.4% of the clustered face images were mislabeled.

🏰 Legacy

Current repository takes ideas and some code form the following projects:

All individuals depicted in the "assets" images have provided explicit consent to utilize their photos for the purpose of showcasing the current library's work. Kindly refrain from utilizing these images within your individual projects.

Metadata

Release files for autoannotator 0.2.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 autoannotator 0.2.2
File Size Uploaded Provenance
autoannotator-0.2.2.tar.gz 1.2 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for autoannotator 0.2.2
File Interpreter ABI Platform
autoannotator-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / autoannotator-0.2.2.tar.gz

Download URL autoannotator-0.2.2.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
78d96bdcb752ec63ff71b364ec332361435f798b6f4a74cdb4e8d6d30e40c349
BLAKE2b-256 checksum
How to use checksums
6a14c70e95725f6b868b78df72b488aaf50c7005201e193b13226dfd29ca0e01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / autoannotator-0.2.2-py3-none-any.whl

Download URL autoannotator-0.2.2-py3-none-any.whl
Size 41.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
65636e1c7a54c4a0c1b7296545705a5262fa1e4eb8c95a9ae74bf783ed143e20
BLAKE2b-256 checksum
How to use checksums
d136ce0f35adcf9b846b92eb243d2a95e31fa8ca9c13a9afbe329ce45e36b22b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Security for autoannotator 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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