annotation_zip count_annotation_attribute_filled#
Description#
値が入力されている属性の個数を、タスクごとまたは入力データごとに集計します。
Examples#
デフォルトではタスク単位で属性の個数を集計します。
出力結果の filled キーは、値が入力されている属性の個数、 empty キーは値が入力されていない属性の個数を表します。
属性値が null または空文字列の場合は empty 、それ以外の場合は filled として集計されます。
$ annofabcli annotation_zip count_annotation_attribute_filled --project_id p1 \
--output out_by_task.json --format pretty_json
[
{
"project_id": "project1",
"task_id": "task--02",
"task_status": "break",
"task_phase": "annotation",
"task_phase_stage": 1,
"input_data_count": 1,
"annotation_attribute_counts": {
"car": {
"occlusion": {
"empty": 10,
"filled": 20
},
"type": {
"empty": 10,
"filled": 20
}
},
"bike": {
"occlusion": {
"empty": 10,
"filled": 20
}
}
}
}
]
--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 が必要です。指定したキーが存在しないタスクは、メタデータ値が空のグループに集計されます。
$ annofabcli annotation_zip count_annotation_attribute_filled --project_id p1 \
--group_by input_data_id --output out_by_input_data.json --format pretty_json
[
{
"project_id": "project1",
"task_id": "task--02",
"task_status": "break",
"task_phase": "annotation",
"task_phase_stage": 1,
"input_data_id": "input1",
"input_data_name": "input1",
"updated_datetime": "2023-10-01T12:00:00.000+09:00",
"annotation_attribute_counts": {
"car": {
"occlusion": {
"empty": 10,
"filled": 20
},
"type": {
"empty": 10,
"filled": 20
}
},
"bike": {
"occlusion": {
"empty": 10,
"filled": 20
}
}
},
"frame_no": 1
}
]
--project_id を指定した場合、デフォルトではOn/Off属性(チェックボックス)は集計対象外です。On/Off属性は基本的に常に「入力されている」と判定されるためです。
--include_flag_attribute を指定すると、On/Off属性も集計対象にします。
--annotation のみを指定した場合はアノテーション仕様を参照できないため、On/Off属性も集計対象になります。
--label_name を指定すると、指定したラベルに属する属性だけを出力します。
出力結果#
CSVの属性の列は3行のヘッダーで表します。1行目がラベル名、2行目が属性名、3行目が filled または empty です。
タスクメタデータを出力する#
--with_task_metadata を指定すると、タスクのメタデータをすべて出力します。
CSVでは task_id の直後に、対象タスクのいずれかに存在するキーを task_metadata.<key> 形式の列として出力します。キーがタスクに存在しない場合、そのセルは空になります。
JSONでは、タスクのメタデータ全体を task_metadata オブジェクトに出力します。
タスクごとに集計した結果をCSVで出力#
$ annofabcli annotation_zip count_annotation_attribute_filled --project_id prj1 \
--group_by task_id --format csv --output out_by_task.csv
project_id |
task_id |
task_status |
task_phase |
task_phase_stage |
input_data_count |
car |
car |
|---|---|---|---|---|---|---|---|
direction |
direction |
||||||
filled |
empty |
||||||
project1 |
20250325_0 |
not_started |
annotation |
1 |
1 |
10 |
4 |
project1 |
20250327_00 |
not_started |
annotation |
1 |
1 |
20 |
3 |
入力データごとに集計した結果をCSVで出力#
$ annofabcli annotation_zip count_annotation_attribute_filled --project_id prj1 \
--group_by input_data_id --format csv --output out_by_input_data.csv
project_id |
task_id |
task_status |
task_phase |
task_phase_stage |
input_data_id |
input_data_name |
frame_no |
updated_datetime |
car |
car |
|---|---|---|---|---|---|---|---|---|---|---|
direction |
direction |
|||||||||
filled |
empty |
|||||||||
project1 |
sample1 |
not_started |
annotation |
1 |
input1 |
input1 |
1 |
2023-10-01T12:00:00.000+09:00 |
10 |
4 |
project1 |
sample1 |
not_started |
annotation |
1 |
input2 |
input2 |
2 |
2023-10-01T12:00:00.000+09:00 |
20 |
3 |
タスクのフェーズやメタデータごとに集計#
$ annofabcli annotation_zip count_annotation_attribute_filled --project_id prj1 \
--group_by task_phase task_metadata.customer --format pretty_json --output out_summary.json
サマリーのJSONには、集計キー、 task_count 、 input_data_count 、属性ごとの件数を出力します。
Usage Details#
値が入力されている属性の個数を、タスクごとまたは入力データごとに集計します。
usage: annofabcli annotation_zip count_annotation_attribute_filled
[-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] [--with_task_metadata]
[--group_by GROUP_BY [GROUP_BY ...]] [--include_flag_attribute]
[--label_name LABEL_NAME [LABEL_NAME ...]] [-f {csv,json,pretty_json}]
[-o OUTPUT] [-tq TASK_QUERY] [-t TASK_ID [TASK_ID ...]] [--latest]
[--temp_dir TEMP_DIR] [--use_japanese_name]
Named Arguments#
- --annotation
アノテーションzip、またはzipを展開したディレクトリを指定します。指定しない場合はAnnofabからダウンロードします。
- -p, --project_id
project_id。
--annotationが未指定のときは必須です。--annotationが指定されているときに--project_idを指定すると、アノテーション仕様を参照して、集計対象の属性やCSV列順が決まります。- --with_task_metadata
タスクメタデータを出力します。CSVでは
task_metadata.<key>列、JSONではtask_metadataキーに出力します。- --group_by
アノテーションの個数を集約する項目を指定します。指定できる値は task_id, input_data_id, project_id, task_phase, task_phase_stage, task_status, task_metadata.<key> です。サマリー項目は複数指定できます。
Default:
['task_id']- --include_flag_attribute
指定した場合は、On/Off属性(チェックボックス)も集計対象にします。On/Off属性は基本的に常に「入力されている」と判定されるため、デフォルトでは集計対象外にしています。
--project_idが指定されているときのみ有効なオプションです。- --label_name
集計対象とするラベルの英語名を指定します。指定したラベルに属する属性のみが集計対象になります。
file://を先頭に付けると、ラベル名が記載されたファイルを指定できます。- -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の一覧が記載されたファイルを指定できます。- --latest
--annotationを指定しないとき、最新のアノテーションzipを参照します。このオプションを指定すると、アノテーションzipを更新するのに数分待ちます。- --temp_dir
指定したディレクトリに、アノテーションZIPなどの一時ファイルをダウンロードします。
- --use_japanese_name
ラベル名、属性名、選択肢名をアノテーション仕様に登録されている日本語名で出力します。日本語名がない場合は英語名を出力します。
global optional arguments#
- --yes
処理中に現れる問い合わせに対して、常に
yesと回答します。- --endpoint_url
Annofab WebAPIのエンドポイントを指定します。
- --annofab_user_id
Annofabにログインする際のユーザーID
- --annofab_password
Annofabにログインする際のパスワード
- --annofab_pat
Annofabにログインする際のパーソナルアクセストークン
- --logdir
ログファイルを保存するディレクトリを指定します。
Default:
.log- --disable_log
ログを無効にします。
- --debug
HTTPリクエストの内容やレスポンスのステータスコードなど、デバッグ用のログが出力されます。