filesystem draw_annotation#
Description#
アノテーションzip、またはそれを展開したディレクトリに存在するアノテーションを描画します。
Examples#
基本的な使い方#
--annotation
には、Annofabからダウンロードしたアノテーションzipか、アノテーションzipを展開したディレクトリを指定してください。
アノテーションzipは、annofabcli annotation download コマンドでダウンロードできます。
# アノテーションzipをダウンロードする。
$ annofabcli annotation download --project_id prj1 --output annotation.zip
--image_dir
には、画像が格納されているディレクトリを指定してください。
--input_data_id_csv
には、input_data_idと画像ファイルを紐付けたCSVを指定してください。
CSVのフォーマットは以下の通りです。
カンマ区切り
ヘッダ行なし
列番号 |
名前 |
必須 |
備考 |
---|---|---|---|
1列目 |
input_data_id |
Yes |
|
2列目 |
image_path |
Yes |
|
以下はCSVファイルのサンプルです。
input_data_id1,image1.png
input_data_id2,image2.png
input_data_id3,image3.png
...
image/
├── image1.png
├── image2.png
...
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/
ディレクトリ out
には、描画されたアノテーションの画像が出力されます。ディレクトリ構成はアノテーションzipと同じです。ファイル名は {入力データID}.{拡張子}
です。
out/
├── task1/
│ ├── input_data_id_1.png
│ ├── input_data_id_2.png
├── task2/
│ ├── input_data_id_3.png
│ ├── input_data_id_4.png
...
アノテーションのみを描画する#
アノテーションのみを描画する場合は、--default_image_size
を指定してください。
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--default_image_size 1280x720 \
--output_dir out/
ポリラインの描画方法#
アノテーションzip内のJSONでは、ポリゴンアノテーションとポリラインアノテーションを区別することができません。 デフォルトでは「ポリゴン」とみなして描画するため、ポリラインとして描画するには、「ポリラインのラベル」を指定する必要があります。
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/ \
--polyline_label fish
警告
このオプションはアノテーションzipの課題を解決するための、暫定的なオプションです。 アノテーションzipでポリゴンかポリラインかを判断できるようになれば、このオプションは削除する予定です。
描画対象のアノテーションの絞り込み#
描画対象のアノテーションを絞り込む場合は、--label_name
に描画対象のラベル名を指定してください。
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/
--label_name car bike
色の指定#
描画するアノテーションの色を指定する場合は、 --label_color
にラベル名と色の対応関係をJSON形式で指定してください。
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/
--label_color '{"dog":"red", "cat":"blue"}'
「色」は、以下のフォーマットをサポートしています。 フォーマットの詳細は、Pillow - ImageColor Module を参照してください。
HTML color names:
"red"
16進数:
"#add8e6"
10進数(文字列):
"rgb(0, 0, 255)"
10進数(リスト):
[0, 0, 255]
アノテーション仕様画面で設定されている色を指定する場合は、annofabcli annotation_specs list_label_color コマンドの出力結果を使用してください。
$ annofabcli annotation_specs list_label_color --project_id prj1 --output label_color.json
$ cat label_color.json
{
"cat": [
255,
0,
0
],
"dog": [
0,
255,
0
],
// ...
}
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/
--label_color file://label_color.json
描画オプション#
--drawing_options
で、描画オプションをJSON形式で指定できます。利用できるキーは以下の通りです。
line_width
: 線の太さ[pixel]
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/
--drawing_options '{"line_width": 3}'
タスクの絞り込み#
描画対象のタスクを指定する場合は、--task_id
に描画対象タスクのtask_idを指定してください。
$ annofabcli filesystem draw_annotation --annotation annotation.zip \
--image_dir image/ \
--input_data_id_csv input_data_id.csv \
--output_dir out/
--task_id task1 task2
--task_query
を指定して、タスクのフェーズやステータスで絞り込むことができます。
$ annofabcli filesystem filter_annotation --annotation annotation.zip \
--task_query '{"status":"complete"}' \
--output_dir out/
--task_query
の詳細は、Command line options を参照してください。
Usage Details#
画像にアノテーションを描画します。
usage: annofabcli filesystem draw_annotation [-h] [--yes]
[--endpoint_url ENDPOINT_URL]
[--annofab_user_id ANNOFAB_USER_ID]
[--annofab_password ANNOFAB_PASSWORD]
[--annofab_pat ANNOFAB_PAT]
[--mfa_code MFA_CODE]
[--logdir LOGDIR] [--disable_log]
[--debug] --annotation ANNOTATION
[--image_dir IMAGE_DIR]
[--input_data_id_csv INPUT_DATA_ID_CSV]
[--default_image_size DEFAULT_IMAGE_SIZE]
[--label_color LABEL_COLOR] -o
OUTPUT_DIR
[--label_name LABEL_NAME [LABEL_NAME ...]]
[--polyline_label POLYLINE_LABEL [POLYLINE_LABEL ...]]
[--drawing_options DRAWING_OPTIONS]
[-t TASK_ID [TASK_ID ...]]
[-tq TASK_QUERY]
Named Arguments#
- --annotation
Annofabからダウンロードしたアノテーションzip、またはzipを展開したディレクトリを指定してください。
- --image_dir
画像が存在するディレクトリを指定してください。 '--input_data_id_csv'を指定したときは必須です。
- --input_data_id_csv
input_data_id
と--image_dir
配下の画像ファイルを紐付けたCSVを指定してください。--default_image_size
を指定しないときは必須です。 CSVのフォーマットは、「1列目:input_data_id, 2列目:画像ファイルのパス」です。 詳細は https://annofab-cli.readthedocs.io/ja/latest/command_reference/filesystem/draw_annotation.html を参照してください。- --default_image_size
デフォルトの画像サイズ。
--input_data_id_csv
を指定しないときは必須です。 (例) 1280x720- --label_color
label_nameとRGBの関係をJSON形式で指定します。 (例)
{"dog": [255, 128, 64], "cat": "blue"}
file://
を先頭に付けると、JSON形式のファイルを指定できます。- -o, --output_dir
出力先ディレクトリのパスを指定してください。ディレクトリの構造はアノテーションzipと同じです。
- --label_name
描画対象のアノテーションのlabel_nameを指定します。指定しない場合は、すべてのlabel_nameが描画対象になります。
file://
を先頭に付けると、label_name の一覧が記載されたファイルを指定できます。- --polyline_label
ポリラインのlabel_nameを指定してください。2021/07時点ではアノテーションzipからポリラインかポリゴンか判断できないため、コマンドライン引数からポリラインのlabel_nameを指定する必要があります。
file://
を先頭に付けると、label_name の一覧が記載されたファイルを指定できます。 【注意】アノテーションzipでポリラインかポリゴンかを判断できるようになれば、このオプションは削除する予定です。- --drawing_options
描画オプションをJSON形式で指定します。 (例)
{"line_width": 3}
file://
を先頭に付けると、JSON形式のファイルを指定できます。- -t, --task_id
描画対象であるタスクのtask_idを指定します。指定しない場合、すべてのタスクに含まれるアノテーションが描画されます。
file://
を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。- -tq, --task_query
描画対象のタスクを絞り込むためのクエリ条件をJSON形式で指定します。 使用できるキーは task_id, status, phase, phase_stage です。
file://
を先頭に付けると、JSON形式のファイルを指定できます。
global optional arguments#
- --yes
処理中に現れる問い合わせに対して、常に
yes
と回答します。- --endpoint_url
Annofab WebAPIのエンドポイントを指定します。
Default:
'https://annofab.com'
- --annofab_user_id
Annofabにログインする際のユーザーID
- --annofab_password
Annofabにログインする際のパスワード
- --annofab_pat
Annofabにログインする際のパーソナルアクセストークン
- --mfa_code
Annofabにログインする際のMFAコード
- --logdir
ログファイルを保存するディレクトリを指定します。
Default:
.log
- --disable_log
ログを無効にします。
- --debug
HTTPリクエストの内容やレスポンスのステータスコードなど、デバッグ用のログが出力されます。