The labeler needs to have the following attributes:
The labeler will preferably have the following:
.csv
,.json
)Visual Object Tagging Tool: An electron app for building end to end Object Detection Models from Images and Videos.
Labelbox is the fastest way to annotate data to build and ship computer vision applications.
A multi-purpose Video Labeling GUI in Python with integrated SOTA detector and tracker.
Import labels: To import existing .CSV labels, hit Cmd+I (or Ctrl+I). UltimateLabeling expects to read one .CSV file per frame, in the format: “class_id”, “xc”, “yc”, “w”, “h”.
csv
file import/exportssh
Powerful and efficient Computer Vision Annotation Tool (CVAT)
XML
file outputXML
Sloth is a tool for labeling image and video data for computer vision research.
Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
A simple video annotation made with python + OpenCV for detection in YoloV2 format
Quantify computer vision performance in human terms
json
Based on the initial skimming of annotation software, the following appear to be the most viable for the current project. None are perfectly suitable for the project purpose, but may be useful nonetheless.
Runs in a dedicated window (as opposed to through a web browser); not ideal for running on ACI or in a container. Doable, but can’t get it to work on my local machine yet
A little buggy, but in active development
Can’t get labels other than bounding boxes to work
Packaged Dockerfile
runs on Ubuntu18.04 (not compatible with ACI)
Complicated label file structure
Doesn’t run in browser
Uncomplicated JSON label file
Support for multiple label types
Stretch goal. Very pretty and feature-rich, but I don’t think I can get it working on ACI since it relies on docker-compose
Complicated project setup
There are a lot of labeling tools, but all seem to have been created either as a project starting point, or to address a specific issue that the creator was facing (which probably explains why there are so many!).
None of the labelers reviewed here are perfect, or fit all of the ideal label qualities. The best lead is labelme
. Not only does it support multiple label types, but also can also import modified JSON
files. It doesn’t run in a browser, but can be containerized and run on any system with X11 support.
No labeler that I have come across does online video transformation; all expect images (frames) to be pre-processed
Because frames are pre-processed, we need to consider the framerate of the original video, the sample rate of the classification model, and the frame extraction rate for the labelers (a few seem to default to extracting 5 fps)