Bonn Agricultural Robotics Annotation tool forked from jsbroks' COCO-Annotator.
This adds multiple features to make agricultural related annotation easier.
- Most common agricultural related image filters (ExG, ExGExR, CIVE)
- PyTorch support
- Run PyTorch Mask-RCNN on images to produce annotations
- Configurable auto-backup of the annotation database and simple recovery tools
- Default high resolution annotation polygons
- Directly export to COCO format
- Segmentation of objects
- Ability to add key points
- Useful API endpoints to analyze data
- Import datasets already annotated in COCO format
- Annotate disconnect objects as a single instance
- Labeling image segments with any number of labels simultaneously
- Allow custom metadata for each instance or object
- Advanced selection tools such as, DEXTR, MaskRCNN and Magic Wand
- Annotate images with semi-trained models
- Generate datasets using google images
- User authentication system
For examples and more information check out the wiki.
In order to run PyTorch models on GPU, nvidia docker runitime utilities
must be installed and configured on the server machine before running the annotation server.
[path_to_repo]/scripts/install.sh
This script will:
- Install
nvidia docker runitime utilities
- Build a
python3
environment withtorch
andcuDNN
support as adocker
container - Generate deploy keys and save them in
/scripts/keys
, which need to be added to any repositories you want to use (for now onlyAgricultural-Robotics-Bonn/agrobot-pytorch-mask-rcnn
)
After installing and adding the depoly ssh-key
to your repos, run the server with the following commands:
cd [path_to_annotator_repo]
sudo docker-compose -f docker-compose.torch_build.yml up --build
Database auto-backup only works if the servers database is running a replica set.
The replica set and backup scheme are configured in the server's docker-compose
file.
Files supporting this are:
docker-compose.build.yml
docker-compose.torch_build.yml
.
To change the auto-backup settings, edit the backup
service entry on the docker-compose
file you intend to run.
The most relevant settings you can change are:
- Backup path:
volumes:
- [server_backup_path_here]:/backup
- Backup frequency (in crontab format)
environment:
- CRON_TIME=[crontab_backup_frequency_here]
List the names of available backup files:
ls [server_backup_path_here]
With the annotation server running, run the following command on the server machine to restore the derired backup:
docker exec annotator_backup /restore.sh /backup/database-[backup_timestamp].archive.gz
- Automate
Agrobot-MaskRCNN
download when building docker images. - Remove bbox used by box based detectors from instance list (e.g.:
torchbox
) Agrobot-MaskRCNN
has poor performance when used withtorchbox
in small bounding boxes.- Increase DEXTR detection mask's resolution (if possible)
- Fix: Sometimes the annotator becomes slow and crashes when using the eraser (modifies the polygons in real time). When that image is re-opened, all instance masks are missing but are still listed on the right pannel. If the image gets saved, all annotations for that Image get lost. related terminal output:
annotator_message_q | 2021-01-11 10:07:06.578 [error] <0.29064.2> closing AMQP connection <0.29064.2> (172.23.0.7:46456 -> 172.23.0.2:5672):
annotator_message_q | missed heartbeats from client, timeout: 60s
- Re-Projection based label propagation
Features • Wiki • Getting Started • Issues • License
COCO Annotator is a web-based image annotation tool designed for versatility and efficiently label images to create training data for image localization and object detection. It provides many distinct features including the ability to label an image segment (or part of a segment), track object instances, labeling objects with disconnected visible parts, efficiently storing and export annotations in the well-known COCO format. The annotation process is delivered through an intuitive and customizable interface and provides many tools for creating accurate datasets.
Checkout the video for a basic guide on installing and using COCO Annotator.
Note: This video is from v0.1.0 and many new features have been added.
Thanks to all these wonderful libaries/frameworks:
- Flask - Python web microframework
- MongoDB - Cross-platform document-oriented database
- MongoEngine - Python object data mapper for MongoDB
- Vue - JavaScript framework for building user interfaces
- Axios - Promise based HTTP client
- PaperJS - HTML canvas vector graphics library
- Bootstrap - Frontend component library
@MISC{cocoannotator,
author = {Justin Brooks},
title = {{COCO Annotator}},
howpublished = "\url{https://github.com/jsbroks/coco-annotator/}",
year = {2019},
}