A Dataset of Physical Adversarial Attacks on Object Detection

Annotations for APRICOT are provided in a JSON format similar to COCO, but with extra metadata for the adversarial patches. You can find information about the COCO format here: https://cocodataset.org/#format-data. The APRICOT JSON files are compatible with the COCO API: https://github.com/cocodataset/cocoapi. Object and patch locations are provided in bounding box format only.

The fields in the APRICOT JSON format are as follows:

  • categories: A list of the COCO categories. The ‘adversarial patch’ category has been added as id 12 since that id was not used by COCO.
  • patches: A list of the 60 patches used in APRICOT. Each patch gets a unique name and id and some additional information:
    • adv_target: The category_id of the target category
    • adv_model: The id of the detector used to generate the patch
    • is_square and is_circle: Two booleans that tell the shape of the patch
  • models: A list of the models used to generate the adversarial patches. They have unique ids referenced by the list of patches, the name of the model, classifier backbone, and a link to the model from the tensorflow object detection API.
  • info: High level information about the dataset
  • annotations: A list of bounding box annotations for the objects and patches in APRICOT. Similar to COCO annotations, but with the following additional information:
    • angle: The viewing angle of the patch. 0 = head on (<5 degrees), 1 = slightly off angle (5-45 degrees), 2 = severe angle (>45 degrees). Each patch has annotations from 3 people.
    • is_warped: The patches were printed on heavy cardstock, but in some images you will see the patches are warped from the paper bending. We annotated this so we could later measure the effect of warped patches.
  • images: A list of the images in APRICOT, following the COCO format.

Dataset Partitions:

The APRICOT dataset is divided into two partitions, a development partition (dev) for validation and a testing partition (test) for reporting results. For each partition, three different JSONs are provided:

  • apricot_ {dev/test} _patch_annotations.json: includes only annotations for adversarial patches
  • apricot_ {dev/test} _coco_annotations.json: includes only annotations for normal COCO objects
  • apricot_ {dev/test} _all_annotations.json: includes annotations for all objects and patches

These files are provided as a convenience to help with different types of experiments. For example, experiments which aim to detect patches directly should probably be run with apricot_*_patch_annotations.json, while experiments designed to measure COCO performance before and after a defensive mechanism is added should use apricot_*_coco_annotations.json.

Download Dataset


The APRICOT Dataset is distributed under an Apache License Version 2.0.