Skip to main content

PyQt5 based annotation tool for yolov4 datasets, providing fast and easy ways of annotating.

Project description

Ayolo

PyQt5 based annotation tool for yolov4 datasets, providing fast and easy ways of annotating.

Screenshot

Wait what, reinventing the wheel ? Well ... technically yes, but if it has improvements or features that others don't, then why not ?

If you like the tool, a star to this repository would be nice.

Bugs

For bugs (e.g. RuntimeError: cuda runtime error (59) : device-side assert triggered) you can go over to this repo's issue tracker, specially on the closed ones, to see if it's been resolved or its workaround. If you are sure that the bug is not reported, feel free to open a new issue for that.

Installation

  • Requires Python 3.7 (or whatever is supported by PyQt5)
  • No executables, build it from source if you need one.
  • For global access, install it outside of virtual environments.
pip install ayolo

Usage

  • Call annotate with the dataset path, either relative or absolute.
ayolo annotate <dir_path>

Dataset Structure

<dir_path>
├── img_1.png
├── img_2.png
├── img_3.png
├── classes.txt
└── annotations.txt
  • Supported image extensions: .png, .jpg
  • Supported annotations format: .txt
  • Supported classnames format: .txt

Interfaces

This module provides a PyQt5 window for making annotations on yolov4 datasets. The annotator window consists of 3 interfaces:

Image Browser (Left)

  • Filters for annotated and unannotated images.
  • Keyboard and mouse shortcuts for faster navigation.
  • Annotations are saved every time an image it's navigated away from.

Annotator (Center)

  • Twice left click for annotating to avoid wrist damage.
  • Cross lines for better accurary.
  • Realtime coordinate location.
  • Window resize persistent.
  • Image scaled to fit container.
  • Instant colors for class distinction.
  • Right click to undo selection.

Control Panel (Right)

  • Realtime current annotations listing.
  • Buttons with global shotcuts for managing annotations/images.
  • Search feature for class names.
  • Ability to create new classes on the go.
  • Keyboard and mouse shortcuts for navigating class names search results.

Buttons

Available buttons in annotator window:

Button Action
Prev Navigate previous Image
Next Navigate next Image
Save Save current annotations
Null Mark image as Null
Undo Undo last annotation
Delete Delete/Discard current Image
Clear Clear all current annotations

Keyboard Shortcuts

Available keyboard shortcuts in annotator window / interfaces:

Key/KeySequence Interface Action
PgUp Global Navigate previous Image
PgDn Global Navigate next Image
Ctrl + S Global Save current annotations
Ctrl + N Global Mark image as Null
Ctrl + Z Global Undo last annotation
Ctrl + D Global Delete/Discard current Image
Ctrl + X Global Clear all current annotations
ArrowUp Control Panel Select previous class
ArrowDn Control Panel Select next class

Mouse Shortcuts

Available mouse events in annotator interface:

Key/KeySequence Interface Action
Left Annotator Start/Finish rectangle annotation
Right Annotator Undo last annotation
ScrollUp Annotator Select previous class
ScrollDn Annotator Select next class
Back Annotator Navigate previous Image
Forward Annotator Navigate next Image

Back and Forward buttons are not available in some mice, they are typically only available on gaming mice

Contribute

Contributions are welcomed, as long as it doesn't cause any harm to users.

Possibly implemented features ?

I am a normal hooman who has a daily job, thus not a lot time available, but ... let's put some expectations ... soon :tm:.

  • Augmentation of datasets: brightness, rotations, contrast, etc.
  • Preprocessing of datasets: cropping, resizing, etc.
  • Choose output format: yolov4 txt, coco, xml, etc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ayolo-0.2.1.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

ayolo-0.2.1-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file ayolo-0.2.1.tar.gz.

File metadata

  • Download URL: ayolo-0.2.1.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for ayolo-0.2.1.tar.gz
Algorithm Hash digest
SHA256 359f1d322917b8400b0ace4e202009736bf3135d260d73c9b71e4ff72d3c6d78
MD5 1d8ee111590153920186f93c336009c9
BLAKE2b-256 6b2eb26fbffa001ca4e812026577d1c7e27a4c264ea794dab7dd7e08883df332

See more details on using hashes here.

File details

Details for the file ayolo-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: ayolo-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for ayolo-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a62d02b4dfd6dc372a27c97e2dc177e36c8def33e5ac3c539d66131f66495d14
MD5 52c51b0eb1f1178929f4346b631ff457
BLAKE2b-256 f1097882f352058db6d81e6a327e982dc6d5719c7b63c41922cb0f920b0390ee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page