cocojson icon indicating copy to clipboard operation
cocojson copied to clipboard

Utility scripts for COCO json annotation format

cocojson

Utility functions for COCO json annotation format. The COCO Format is defined here. For COCO Evaluation, please use these instead: Official or my fork.

Install

  • cocojson is available on pypi through pip3 install cocojson
  • or if you prefer, clone this repo and it can be installed through pip3 install -e . (editable install) or pip3 install . as well.

Organisation

Usage

Please click into each for more details (if applicable). Links works only if you're viewing from the github homepage.

Utility Tools

COCO Categori-fy

Convert your custom dataset into COCO categories. Usually used for testing a coco-pretrained model against a custom dataset with overlapping categories with the 80 COCO classes.

python3 -m cocojson.run.coco_catify -h

Extract only Annotations

Get annotations/predictions only from a COCO JSON. Usually used to generate a list of predictions for COCO evaluation.

python3 -m cocojson.run.pred_only -h

Filter Categories

Filter categories from COCO JSON.

python3 -m cocojson.run.filter_cat -h

Insert Images Meta-Information

Insert any extra attributes/image meta information associated with the images into the coco json file.

python3 -m cocojson.run.insert_img_meta -h

Map Categories

Mapping categories to a new dataset. Usually used for converting annotation labels to actual class label for training.

python3 -m cocojson.run.map_cat -h

Match Images between 2 COCO JSONs

Match images between a reference COCO JSON A and COCO JSON B (to be trimmed). Any images in JSON B that is not found in JSON A will be removed (along with associated annotations)

python3 -m cocojson.run.match_imgs -h

Merge

Merges multiple datasets

python3 -m cocojson.run.merge -h

Merge from file

Merges multiple datasets

python3 -m cocojson.run.merge_from_file -h

Merge JSONs

Merges multiple coco jsons.

python3 -m cocojson.run.merge_jsons -h 

Prune Ignores

Remove images annotated with certain "ignore" category labels. This is usually used for removing rubbish images that are pointed out by annotators to ignore frame.

python3 -m cocojson.run.ignore_prune -h

Remove Empty

Remove empty/negative images from COCO JSON, aka images without associated annotations.

python3 -m cocojson.run.remove_empty -h

Sample

Samples k images from a dataset

python3 -m cocojson.run.sample -h

Sample by Category

Samples images from each category for given sample number(s).

python3 -m cocojson.run.sample_by_class -h

Split

Split up a COCO JSON file by images into N sets defined by ratio of total images

python3 -m cocojson.run.split -h

Split by Image Meta-Information

Split up a COCO JSON file by images' meta-information/attributes

python3 -m cocojson.run.split_by_meta -h

Visualise

Visualise annotations onto images. Best used for sanity check.

python3 -m cocojson.run.viz -h

Converters

CVAT Video XML to COCO JSON

Convert CVAT Video XML to COCO JSON whilst preserving track information.

python3 -m cocojson.run.cvatvid2coco -h

CVAT Image XML to COCO JSON

TODO

CrowdHuman odgt to COCO JSON

Converts CrowdHuman's odgt annotation format to COCO JSON format.

python3 -m cocojson.run.crowdhuman2coco -h

Custom Object Detection Logging format to COCO JSON

Converts Custom Object Detection Logging format to COCO JSON format.

python3 -m cocojson.run.log2coco -h

COCO to Darknet

TODO