annotation import

Description

アノテーションをプロジェクトにインポートします。 アノテーシンzipまたはzipを展開したディレクトリをインポートできます。 作業中または完了状態のタスクに対してはインポートできません。

Examples

インポート対象のアノテーションのフォーマット

インポート対象のアノテーションのフォーマットは、アノテーションzipまたはzipを展開したディレクトリと同じディレクトリ構成です。

annotation.zip
ルートディレクトリ/
├── {task_id}/
│   ├── {input_data_id}.json
│   ├── {input_data_id}/
│          ├── {annotation_id}............ 塗りつぶしPNG画像

{input_data_id}.json のサンプルをは以下の通りです。各キーの詳細は https://annofab.com/docs/api/#section/Simple-Annotation-ZIP を参照してください。

{input_data_id}.json
{
    "details": [
        {
            "label": "car",
            "data": {
                "left_top": {
                    "x": 878,
                    "y": 566
                },
                "right_bottom": {
                    "x": 1065,
                    "y": 701
                },
                "_type": "BoundingBox"
            },
            "attributes": {}
        },
        {
            "label": "road",
            "data": {
                "data_uri": "b803193f-827f-4755-8228-e2c67d0786d9",
                "_type": "SegmentationV2"
            },
            "attributes": {}
        },
        {
            "label": "weather",
            "data": {
                "_type": "Classification"
            },
            "attributes": {
                "sunny": true
            }
        }
    ]
}

以下のように annotation_id が指定されている場合、annotation_id もインポートされます。

{input_data_id}.json
{
    "details": [
        {
            "label": "car",
            "annotation_id": "12345678-abcd-1234-abcd-1234abcd5678",
            "data": {
                "left_top": {
                    "x": 878,
                    "y": 566
                },
                "right_bottom": {
                    "x": 1065,
                    "y": 701
                },
                "_type": "BoundingBox"
            },
            "attributes": {}
        },
        ...
    ]
}

基本的な使い方

--annotation に、アノテーションzipまたはzipを展開したディレクトリのパスを指定してください。

$ annofabcli annotation import --project_id prj1 --annotation annotation.zip

インポート対象のタスクを指定する場合は、--task_id にインポート対象のタスクのtask_idを指定してください。

$ annofabcli annotation import --project_id prj1 --annotation annotation.zip \
--task_id file://task_id.txt

デフォルトでは、すでにアノテーションが存在する場合はスキップします。 既存のアノテーションを残してインポートする場合は、 --merge を指定してください。 インポート対象のアノテーションのannotation_idが、既存のアノテーションのannotation_idに一致すればアノテーションを上書きします。一致しなければアノテーションを追加します。

$ annofabcli annotation import --project_id prj1 --annotation annotation.zip \
--merge

既存のアノテーションを削除してからインポートする場合は、 --overwrite を指定してください。

$ annofabcli annotation import --project_id prj1 --annotation annotation.zip \
--overwrite

デフォルトでは「担当者が自分自身でない AND 担当者が割れ当てられたことがある」タスクは、アノテーションのインポートをスキップします。 --force を指定すると、担当者を一時的に自分自身に変更して、アノテーションをインポートすることができます。

$ annofabcli annotation import --project_id prj1 --annotation annotation.zip \
--force

Usage Details

アノテーションをインポートします。アノテーションのフォーマットは、Simpleアノテーションと同じフォルダ構成のzipファイルまたはディレクトリです。ただし、作業中/完了状態のタスクはインポートできません。

usage: annofabcli annotation import [-h] [--yes] [--endpoint_url ENDPOINT_URL]
                                    [--annofab_user_id ANNOFAB_USER_ID]
                                    [--annofab_password ANNOFAB_PASSWORD]
                                    [--logdir LOGDIR] [--disable_log]
                                    [--debug] -p PROJECT_ID --annotation
                                    ANNOTATION [-t TASK_ID [TASK_ID ...]]
                                    [--overwrite | --merge] [--force]
                                    [--parallelism PARALLELISM]

Named Arguments

-p, --project_id

対象のプロジェクトのproject_idを指定します。

--annotation

Simpleアノテーションと同じフォルダ構成のzipファイル or ディレクトリのパスを指定してください。タスクの状態が作業中/完了の場合はインポートしません。

-t, --task_id

対象のタスクのtask_idを指定します。 file:// を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。

--overwrite

アノテーションが存在する場合、 --overwrite を指定していれば、すでに存在するアノテーションを削除してインポートします。指定しなければ、アノテーションのインポートをスキップします。

--merge

アノテーションが存在する場合、 --merge を指定していればアノテーションをannotation_id単位でマージしながらインポートします。annotation_idが一致すればアノテーションを上書き、一致しなければアノテーションを追加します。指定しなければ、アノテーションのインポートをスキップします。

--force

過去に割り当てられていて現在の担当者が自分自身でない場合、タスクの担当者を自分自身に変更してからアノテーションをインポートします。

--parallelism

並列度。指定しない場合は、逐次的に処理します。指定した場合は、--yes も指定してください。

global optional arguments

--yes

処理中に現れる問い合わせに対して、常に yes と回答します。

--endpoint_url

Annofab WebAPIのエンドポイントを指定します。

Default: "https://annofab.com"

--annofab_user_id

Annofabにログインする際のユーザーID

--annofab_password

Annofabにログインする際のパスワード

--logdir

ログファイルを保存するディレクトリを指定します。

Default: .log

--disable_log

ログを無効にします。

--debug

HTTPリクエストの内容やレスポンスのステータスコードなど、デバッグ用のログが出力されます。

チェッカーまたはオーナロールを持つユーザで実行してください。