annotation change_data_per_annotation#

Description#

各アノテーションの座標情報・形状情報を変更します。 座標情報・形状情報と一緒に属性値も変更できます。 外部ファイルが必要な塗りつぶしアノテーションなどは、このコマンドではサポートしていません。

作業中状態のタスクに含まれるアノテーションは変更できません。 属性値だけを変更したい場合は、 annofabcli annotation change_attributes_per_annotation コマンドを使用してください。

Examples#

変更するdataをJSON形式で指定する#

引数 --json に、変更対象のアノテーションの情報( task_id , input_data_id , annotation_id )と変更後の data をJSON形式で指定します。 data の形式はアノテーションZIP配下のJSONファイルに記載されているアノテーションの形式と同様です。詳細は https://annofab.readme.io/docs/annotation-format を参照してください。 attributes を指定すると、座標情報・形状情報と一緒に属性値も変更できます。attributes に指定していない既存の属性値は維持されます。

annotations.json#
[
    {
        "task_id": "t1",
        "input_data_id": "i1",
        "annotation_id": "a1",
        "data": {
            "_type": "Range",
            "begin": 1000,
            "end": 5000
        },
        "attributes": {
            "occluded": true
        }
    }
]
$ annofabcli annotation change_data_per_annotation --project_id p1 \
 --json file://annotations.json \
 --backup backup_dir/

変更するdataをCSVで指定する#

引数 --csv に、変更対象のアノテーションの情報と変更後の data が記載されたCSVファイルのパスを指定します。

CSVのフォーマットは以下の通りです。

  • ヘッダ行あり

  • カンマ区切り

列名

必須

備考

task_id

Yes

input_data_id

Yes

annotation_id

Yes

data

Yes

変更後のアノテーションdata(JSON形式)

attributes

No

変更したい属性名と値のオブジェクト(JSON形式)

以下はCSVファイルのサンプルです。

annotations.csv#
task_id,input_data_id,annotation_id,data,attributes
t1,i1,a1,"{""_type"":""Range"",""begin"":1000,""end"":5000}","{""occluded"":true}"
$ annofabcli annotation change_data_per_annotation --project_id p1 \
 --csv annotations.csv \
 --backup backup_dir/

--task_id で変更対象を絞り込む#

--task_id を指定すると、 --json または --csv に指定した変更対象のうち、一致するtask_idのアノテーションだけを変更します。指定例は annotation change_attributes_per_annotation を参照してください。

その他のオプション#

--backup にディレクトリを指定すると、変更対象のフレームに含まれるアノテーション情報を、指定したディレクトリに保存します。 アノテーション情報の復元は、 annofabcli annotation restore コマンドで実現できます。

注釈

間違えてアノテーションを変更したときに復元できるようにするため、--backup を指定することを推奨します。

エラー発生時の動作#

タスクの処理中にエラーが発生しても、ほかのタスクの処理結果を集計して表示します。 タスクの処理に失敗した場合は、集計後に終了ステータス1で終了します。

Usage Details#

各アノテーションの座標情報・形状情報を変更します。

usage: annofabcli annotation change_data_per_annotation [-h] [--yes]
                                                        [--endpoint_url ENDPOINT_URL]
                                                        [--annofab_user_id ANNOFAB_USER_ID]
                                                        [--annofab_password ANNOFAB_PASSWORD]
                                                        [--annofab_pat ANNOFAB_PAT]
                                                        [--logdir LOGDIR]
                                                        [--disable_log]
                                                        [--debug]
                                                        -p PROJECT_ID
                                                        (--json JSON |
                                                        --csv CSV)
                                                        [-t TASK_ID [TASK_ID ...]]
                                                        [--include_complete_task]
                                                        [--include_on_hold_task]
                                                        [--backup BACKUP]
                                                        [--parallelism {2,3,4}]

Named Arguments#

-p, --project_id

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

--json

各アノテーションごとに変更内容を記載したJSONリストを指定します。 file:// を先頭に付けるとJSON形式のファイルを指定できます。 (例) '[{"task_id": "t1", "input_data_id": "i1", "annotation_id": "a1", "data": {"_type": "Range", "begin": 1000, "end": 5000}, "attributes": {"occluded": true}}]'

--csv

各アノテーションごとに変更内容を記載したCSVファイルを指定します。 * task_id, input_data_id, annotation_id, data の4つのカラムが必要です。attributes カラムは任意です。 data カラムには、変更後のアノテーションdataを '{"_type": "Range", "begin": 1000, "end": 5000}' のようにJSON形式で指定します。

-t, --task_id

変更対象のアノテーションをtask_idで絞り込みます。 --json や --csv で指定したデータのうち、一致したtask_idのみを処理します。 file:// を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。ファイルを読み込む場合は、ファイル指定を1個だけ渡してください。直接指定するIDや別のファイル指定とは併用できません。

--include_complete_task

指定した場合は、完了状態のタスクのアノテーションもdataを変更します。ただし、完了状態のタスクのアノテーションを変更するには、オーナーロールを持つユーザーが実行する必要があります。

--include_on_hold_task

指定した場合は、保留中状態のタスクのアノテーションもdataを変更します。指定しない場合、保留中状態のタスクはスキップされます。

--backup

アノテーションのバックアップを保存するディレクトリのパス。アノテーションの復元は annotation restore コマンドで実現できます。

--parallelism

Possible choices: 2, 3, 4

並列に処理するタスク数。指定しない場合は逐次処理します。指定した場合は、--yes も指定してください。

common options (after the subcommand)#

--yes

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

--endpoint_url

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

--annofab_user_id

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

--annofab_password

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

--annofab_pat

Annofabにログインする際のパーソナルアクセストークン

--logdir

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

Default: .log

--disable_log

ログを無効にします。

--debug

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

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