画像プロジェクトのアノテーションフォーマット

画像プロジェクトのアノテーションのフォーマットについて記載します。

details[].data

矩形

矩形の左上と左下の頂点の座標値が格納されています。

{
    "left_top": {
        "x": 1544,
        "y": 755
    },
    "right_bottom": {
        "x": 1681,
        "y": 882
    },
    "_type": "BoundingBox"
}

{
    "point": {
        "x": 25,
        "y": 18
    },
    "_type": "SinglePoint"
}

ポリライン

{
    "points": [
        {
            "x": 22,
            "y": 29
        },
        {
            "x": 33,
            "y": 41
        }
    ],
    "_type": "Points"
}

ポリゴン

{
    "points": [
        {
            "x": 15,
            "y": 55
        },
        {
            "x": 12,
            "y": 49
        },
        {
            "x": 9,
            "y": 43
        },
        {
            "x": 16,
            "y": 36
        }
    ],
    "_type": "Points"
},

🚧

ポリゴンとポリラインの_typeはどちらもPointsです。

塗りつぶし

塗りつぶしの情報は画像ファイル(塗りつぶし画像)に格納されます。data_uriに塗りつぶし画像のファイル名が格納されます。

{
    "data_uri": "ee83756f-074d-4aab-8bfc-6ab6e754c2b8",
    "_type": "Segmentation"
},

塗りつぶし画像

塗りつぶし画像の仕様は以下の通りです。

  • 画像ファイルのフォーマット:PNG
  • 画像サイズ:対応する入力データの画像サイズと同じ
  • 塗りつぶされた部分の色:rgba(255, 255, 255, 1)
  • 塗りつぶされていない部分の色:rgba(0, 0, 0, 0)

塗りつぶし画像のサンプル もご確認ください。

塗りつぶしv2

_typeの値以外は、「塗りつぶし」アノテーションと差異はありません。

{
    "data_uri": "ee83756f-074d-4aab-8bfc-6ab6e754c2b8",
    "_type": "SegmentationV2"
},

全体

画像全体に対して属性を付与するラベルのため、_type以外の情報をありません。

{
    "_type": "Classification"
}

detailsに格納されているアノテーションの順序

detailsには、前面にあるアノテーションから背面の順に格納されます。アノテーションが前面にあるか背面にあるかは、画像エディタ画面の順序パネルで確認できます。

補足

塗りつぶし画像を読み込む

annofabapi.segmentation モジュールでは、塗りつぶし画像を扱うためのライブラリを用意しています。

たとえば以下のコードは、塗りつぶし画像を読み込み、dtypeboolであるnumpy配列を生成しています。

In [3]: from annofabapi.segmentation import read_binary_image

In [4]: data = read_binary_image("task_id1/input_data_id11/anno1")

In [5]: type(data)
Out[5]: numpy.ndarray

In [6]: data.shape
Out[6]: (64, 64)

In [7]: data.dtype
Out[7]: dtype('bool')