annotation merge_segmentation#

Description#

複数の塗りつぶしアノテーションを1つにまとめます。 ラベルの種類を「塗りつぶし(インスタンスセグメンテーション)」から「塗りつぶしv2(セマンティックセグメンテーション)」に変更する場合などに有用です。 オーナーロールまたはチェッカーロールを持つユーザーが実行できます。

Examples#

以下のコマンドは、複数の road ラベルの塗りつぶしアノテーションを1つにまとめます。

$ annofabcli annotation merge_segmentation --project_id prj1 --task_id task1 --label_name road

1つにまとめる際、最前面にある塗りつぶしアノテーションが更新され、それ以外の塗りつぶしアノテーションは削除されます。

デフォルトでは、休憩中状態のタスクはアノテーションの更新をスキップします。 休憩中状態のタスクも更新する場合は、 --include_break_task を指定してください。

完了状態のタスクを更新するには、オーナーロールで --include_complete_task を指定してください。

デフォルトでは、保留中状態のタスクはアノテーションの更新をスキップします。 保留中状態のタスクも更新する場合は、 --include_on_hold_task を指定してください。チェッカーロールで更新した場合、更新後は未着手状態になります。

オーナーロールでは、タスクの担当者や状態を変更せずにアノテーションを更新できます。 チェッカーロールで自身が担当者ではないタスクを更新する場合は、担当者を一時的に自分自身に変更して更新を実行します。

../../_images/before.png

コマンドの実行前の状態。「pedestrian」ラベルの塗りつぶしアノテーションが3つあります。#

../../_images/after.png

コマンドの実行後の状態。「pedestrian」ラベルの塗りつぶしアノテーションが1つにまとめられます。最前面にあった「bc45b4b2」アノテーションが更新され、残りは削除されます。#

更新前のアノテーションをバックアップする#

--backup に保存先ディレクトリを指定すると、変更する入力データの更新前アノテーションをJSONと塗りつぶし画像として保存します。 誤って統合した場合に復元できるよう、バックアップの取得を推奨します。 バックアップの保存に失敗した入力データは更新しません。変更がない入力データはバックアップしません。 保存先には、実行ごとに新しいディレクトリを指定してください。同じタスク・入力データのバックアップが存在する場合は上書きします。

$ annofabcli annotation merge_segmentation --project_id prj1 --task_id task1 --label_name road --backup backup-dir/

出力先の例(入力データIDが input1、アノテーションIDが a1 と a2 の場合):

backup-dir/
└── task1/
    ├── input1.json
    └── input1/
        ├── a1
        └── a2

input1.json には更新前のアノテーション情報、input1/ 配下には更新前の塗りつぶし画像を保存します。 統合により削除されるアノテーションも保存します。

復元には annotation restore コマンドを使用します。 復元時は、対象の入力データに含まれるアノテーション全体をバックアップ時点の内容に戻します。

$ annofabcli annotation restore --project_id prj1 --annotation backup-dir/ --task_id task1

Usage Details#

複数の塗りつぶしアノテーションを1つにまとめます。ラベルの種類を「塗りつぶし(インスタンスセグメンテーション)」から「塗りつぶしv2(セマンティックセグメンテーション)」に変更する場合などに有用です。

usage: annofabcli annotation merge_segmentation [-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 -t TASK_ID
                                                [TASK_ID ...] --label_name
                                                LABEL_NAME [LABEL_NAME ...]
                                                [--include_complete_task]
                                                [--include_break_task]
                                                [--include_on_hold_task]
                                                [--parallelism {2,3,4}]
                                                [--backup BACKUP]

Named Arguments#

-p, --project_id

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

-t, --task_id

対象のタスクのtask_idを指定します。 file:// を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。ファイルを読み込む場合は、ファイル指定を1個だけ渡してください。直接指定するIDや別のファイル指定とは併用できません。

--label_name

変更対象のアノテーションのラベル名(英語)を指定します。

--include_complete_task

オーナーロールで完了状態のタスクに対してもアノテーションを更新します。未指定の場合は、完了状態のタスクはスキップされます。

--include_break_task

休憩中状態のタスクに対してもアノテーションを更新します。未指定の場合は、休憩中状態のタスクはスキップされます。

--include_on_hold_task

保留中状態のタスクに対してもアノテーションを更新します。チェッカーロールで更新した場合、更新後は未着手状態になります。未指定の場合は、保留中状態のタスクはスキップされます。

--parallelism

Possible choices: 2, 3, 4

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

--backup

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

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リクエストの内容やレスポンスのステータスコードなど、デバッグ用のログが出力されます。

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