Skip to content

Consistent label specification in App interface #1870

@rfloca

Description

@rfloca

Currently the field "labels" in the rest interface are not populated consistently. Some just provide a list with label names (e.g. deepgrow_2d), some use a dict (key is the label name, value is the pixel value). This makes it unnecessarily hard to complicate to parse and interpret.

{
"name": "MONAILabel - Radiology (0.8.5)",
  "version": "0.8.5",
  "labels": [
    "background",
    "spleen",
    "right kidney",
    "left kidney„, …
    ]
"deepgrow_2d": {
      "type": "deepgrow",
      "labels": [
        "spleen",
        "right kidney",
        "left kidney",
        "liver",
        "stomach",
        "aorta",
        "inferior vena cava"
      ],
      "dimension": 2,
}
"segmentation_spleen": {
      "type": "segmentation",
      "labels": {
        "spleen": 1
      },
      "dimension": 3,
      "description": "A pre-trained model“
}

One should specify one form for the content of the labels field and ensure that all models the support the new version of the API adhere to that.

Additionally, the relevance of the labels field outside models is unclear. Perhaps, this entry can be used to describe all labels the model can generate and their semantics/naming for host app. Models can then simply refer to label ids of their respective labels specification when the return results. That could also directly factor in the semantics work of #1868.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions