UniversalDataTool / udt-format

A simple universal data description format for datasets, tailored for interfacing with humans.
https://universaldatatool.com
MIT License
20 stars 14 forks source link

Support multiple annotators on the same image #2

Open Ownmarc opened 4 years ago

Ownmarc commented 4 years ago

I work mostly with images and this is something missing in most tools/annotations format.

Basic example where there is annotations propositions from 2 annotators, 2 from auto-labeling strategies (active learning) and 1 that would have been accepted as "ground_truth" by a reviser or someone with the right to "accept" a ground truth annotation :

{
  "filename": "12345.jpg",
  "key": "12345",
  "size": {
    "width": 4608,
    "height": 2240,
    "depth": 3
  },
  "annotations": {
    "ground_truth": {
      "objects": [
        {
          "name": "cat",
          "bndbox": {
            "left": 600,
            "top": 100,
            "right": 2000,
            "bottom": 1000
          },
          "size": {
            "width": 1400,
            "height": 900,
            "depth": 3
          }
        },
        {
          "name": "dog",
          "bndbox": {
            "left": 2200,
            "top": 500,
            "right": 4100,
            "bottom": 2000
          },
          "size": {
            "width": 1900,
            "height": 1500,
            "depth": 3
          }
        }
      ]
    },
    "Annotator A": {
      "objects": [
        {
          "name": "cat",
          "bndbox": {
            "left": 2300,
            "top": 600,
            "right": 4000,
            "bottom": 1600
          },
          "last_modified": 1571155991.1324713,
          "size": {
            "width": 1700,
            "height": 1000,
            "depth": 3
          }
        }
      ]
    },
    "Annotator B": {
      "objects": [
        {
          "name": "cat",
          "bndbox": {
            "left": 2300,
            "top": 600,
            "right": 4000,
            "bottom": 1600
          },
          "last_modified": 1571155991.1324713,
          "size": {
            "width": 1700,
            "height": 1000,
            "depth": 3
          }
        }
      ]
    },
    "Yolo model": {
      "objects": [
        {
          "name": "cat",
          "bndbox": {
            "left": 2300,
            "top": 600,
            "right": 4000,
            "bottom": 1600
          },
          "last_modified": 1571155991.1324713,
          "size": {
            "width": 1700,
            "height": 1000,
            "depth": 3
          }
        }
      ]
    },
    "SSD model": {
      "objects": [
        {
          "name": "cat",
          "bndbox": {
            "left": 2300,
            "top": 600,
            "right": 4000,
            "bottom": 1600
          },
          "last_modified": 1571155991.1324713,
          "size": {
            "width": 1700,
            "height": 1000,
            "depth": 3
          }
        }
      ]
    }
  }
}
seveibar commented 4 years ago

Thanks for the information about your use case @Ownmarc . Any large dataset will need quality control/user management to make sure data is being completed well with good oversight.