annotation_zip count_annotation_by_attribute_value#

Description#

属性値ごとにアノテーション数を出力します。

アノテーション数は、ダウンロードしたアノテーションZIPから算出します。

Examples#

基本的な使い方#

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 --output out.json --format pretty_json
out.json#
[
{
    "annotation_count_by_attribute_value": {
        "car": {
            "occlusion": {
                "false": 10,
                "true": 20
            },
            "type": {
                "normal": 10,
                "bus": 20
            }
        },
        "bike": {
            "occlusion": {
                "false": 10,
                "true": 20
            }
        }
    },
    "project_id": "project1",
    "task_id": "task1",
    "task_phase": "acceptance",
    "task_phase_stage": 1,
    "task_status": "complete",
    "input_data_count": 10
}
]

集計対象の属性の種類は以下の通りです。

  • ドロップダウン

  • ラジオボタン

  • チェックボックス

上記以外の属性(数値、テキストなど)を集計したい場合は、 --additional_attribute_name または --attribute_name オプションを使用してください。

  • --additional_attribute_name : デフォルトの選択肢系属性に加えて、指定した属性を集計対象にします。

  • --attribute_name : 指定した属性のみを集計対象にします(デフォルトの選択肢系属性は含まれません)。

--label_name を指定すると、指定したラベルに属する属性値だけを出力します。 --attribute_name または --additional_attribute_name と併用した場合は、ラベル名と属性名の両方に一致する属性値だけを出力します。

デフォルトではタスク単位でアノテーション数を集計します。入力データ単位に集計する場合は、 --group_by input_data_id を指定してください。

集計単位#

--group_by には以下の値を指定できます。

  • task_id: タスク単位の詳細を出力します(デフォルト)。

  • input_data_id: 入力データ単位の詳細を出力します。

  • project_id: プロジェクト全体を1行に集計します。

  • task_phase: タスクフェーズごとに集計します。

  • task_phase_stage: タスクフェーズの段階ごとに集計します。

  • task_status: タスクステータスごとに集計します。

  • task_metadata.<key>: 指定したタスクメタデータの値ごとに集計します。

task_phase 、 task_phase_stage 、 task_status 、 task_metadata.<key> は複数指定できます。 サマリーには、各グループに含まれるタスク数を表す task_count と入力データ数を表す input_data_count が出力されます。

task_id 、 input_data_id 、 project_id は単独で指定してください。これらを他の値と同時に指定すると、コマンドラインエラーになります。

タスクメタデータで集計するには --project_id が必要です。指定したキーが存在しないタスクは、メタデータ値が空のグループに集計されます。

--annotation にアノテーションzipまたはzipを展開したディレクトリを指定できます。

タスクメタデータを出力する#

--with_task_metadata を指定すると、タスクのメタデータをすべて出力します。

CSVでは task_id の直後に、対象タスクのいずれかに存在するキーを task_metadata.<key> 形式の列として出力します。キーがタスクに存在しない場合、そのセルは空になります。

JSONでは、タスクのメタデータ全体を task_metadata オブジェクトに出力します。

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 --annotation annotation.zip --output out.csv

CSV出力#

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 --group_by task_id --output out_by_task_attribute_value.csv

--group_by input_data_id を指定すると、入力データごと属性値ごとのアノテーション数を出力します。

タスクのフェーズやステータスごとに集計する場合は、以下のように複数の集計キーを指定します。

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 \
  --group_by task_phase task_status --output out_by_status.csv

集計キーごとにまとめて出力#

--group_by に task_phase などの集計キーを指定すると、指定したキーごとのサマリーを出力します。 CSVの属性値列は3行のヘッダーで表します。1行目がラベル名、2行目が属性名、3行目が属性値です。

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 \
  --group_by task_phase --format csv --output out_summary.csv
out_summary.csv#

task_phase

task_count

input_data_count

car

occluded

true

annotation

2

4

3

JSONでは、集計キーと task_count 、 input_data_count 、 annotation_count_by_attribute_value を出力します。

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 \
  --group_by task_phase --format pretty_json --output out_summary.json
out_summary.json#
[
    {
        "task_phase": "annotation",
        "task_count": 2,
        "input_data_count": 4,
        "annotation_count_by_attribute_value": {
            "car": {
                "occluded": {
                    "true": 3
                }
            }
        }
    }
]

入力データあたりのアノテーション数を出力する#

--group_by task_id かつ --format csv のとき、 --with_per_input_data を指定すると、入力データあたりのアノテーション数を追加で出力します。 動画プロジェクトでは、フレームあたりの平均アノテーション数として利用できます。

$ annofabcli annotation_zip count_annotation_by_attribute_value --project_id prj1 \
  --group_by task_id --with_per_input_data --output out_by_task_attribute_value.csv

追加される属性値列は、CSVの1段目の列名が per_input_data.<label_name> 形式になります。

Command line options#

属性値ごとにアノテーション数を出力します。

usage: annofabcli annotation_zip count_annotation_by_attribute_value
       [-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] [--annotation ANNOTATION]
       -p PROJECT_ID [--group_by GROUP_BY [GROUP_BY ...]]
       [-f {csv,json,pretty_json}] [-o OUTPUT] [-tq TASK_QUERY]
       [-t TASK_ID [TASK_ID ...]] [--latest] [--temp_dir TEMP_DIR]
       [--with_task_metadata] [--with_per_input_data] [--use_japanese_name]
       [--additional_attribute_name ADDITIONAL_ATTRIBUTE_NAME [ADDITIONAL_ATTRIBUTE_NAME ...] |
       --attribute_name ATTRIBUTE_NAME [ATTRIBUTE_NAME ...]]
       [--label_name LABEL_NAME [LABEL_NAME ...]]

Named Arguments#

--annotation

アノテーションzip、またはzipを展開したディレクトリを指定します。指定しない場合はAnnofabからダウンロードします。

-p, --project_id

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

--group_by

アノテーションの個数を集約する項目を指定します。指定できる値は task_id, input_data_id, project_id, task_phase, task_phase_stage, task_status, task_metadata.<key> です。サマリー項目は複数指定できます。

Default: ['task_id']

-f, --format

Possible choices: csv, json, pretty_json

出力フォーマットを指定します。

Default: 'csv'

-o, --output

出力先のファイルパスを指定します。未指定の場合は、標準出力に出力されます。

-tq, --task_query

集計対象タスクを絞り込むためのクエリ条件をJSON形式で指定します。使用できるキーは task_id, status, phase, phase_stage です。 file:// を先頭に付けると、JSON形式のファイルを指定できます。

-t, --task_id

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

--latest

--annotation を指定しないとき、最新のアノテーションzipを参照します。このオプションを指定すると、アノテーションzipを更新するのに数分待ちます。

Default: False

--temp_dir

指定したディレクトリに、アノテーションZIPなどの一時ファイルをダウンロードします。

--with_task_metadata

タスクメタデータを出力します。CSVでは task_metadata.<key> 列、JSONでは task_metadata キーに出力します。

Default: False

--with_per_input_data

タスク単位CSVに入力データあたりのアノテーション数を追加で出力します。動画プロジェクトではフレームあたりの平均として利用できます。

Default: False

--use_japanese_name

ラベル名、属性名、選択肢名をアノテーション仕様に登録されている日本語名で出力します。日本語名がない場合は英語名を出力します。

Default: False

--additional_attribute_name

デフォルトで集計される選択肢系の属性(ドロップダウン、ラジオボタン、チェックボックス)に加えて、集計したい属性の英語名を指定します。ラベル名に関係なく、デフォルト属性と指定した属性名を持つ属性が集計対象になります。 file:// を先頭に付けると、属性名が記載されたファイルを指定できます。 ファイルを読み込む場合は、ファイル指定を1個だけ渡してください。直接指定する値や別のファイル指定とは併用できません。

--label_name

集計対象とするラベルの英語名を指定します。指定したラベルに属する属性値のみが集計対象になります。 file:// を先頭に付けると、ラベル名が記載されたファイルを指定できます。 ファイルを読み込む場合は、ファイル指定を1個だけ渡してください。直接指定する値や別のファイル指定とは併用できません。

--attribute_name

集計対象とする属性の英語名を指定します。指定した属性名のみが集計対象になります(デフォルトの選択肢系属性は含まれません)。ラベル名に関係なく、指定した属性名を持つ属性のみが集計対象になります。 file:// を先頭に付けると、属性名が記載されたファイルを指定できます。 ファイルを読み込む場合は、ファイル指定を1個だけ渡してください。直接指定する値や別のファイル指定とは併用できません。

common options (after the subcommand)#

--yes

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

Default: False

--endpoint_url

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

--annofab_user_id

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

--annofab_password

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

--annofab_pat

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

--logdir

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

Default: .log

--disable_log

ログを無効にします。

Default: False

--debug

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

Default: False

オーナロールまたはアノテーションユーザロールを持つユーザで実行してください。