データの登録
このステップでは、3次元アノテーションのサンプルデータを使って、プロジェクトにデータを登録します。
3次元プロジェクトは、KITTI形式またはAnnofab 点群形式(KITTIベース)のデータに対応しています。サンプルデータはPandaSetのシーケンス001~003を改変したデータです。シーケンス001,002はプロジェクト作成時に利用した「PandaSet」テンプレートと同じデータです。
シーケンス001,002のデータは既にプロジェクトに存在するので、シーケンス003のデータをプロジェクトに登録しましょう。
登録するデータの準備
以下の通り操作して、シーケンス003のZIPファイルを生成してください。
$ curl -OL https://github.com/kurusugawa-computer/annofab-sample-data-3dpc/archive/refs/heads/main.zip
$ unzip main.zip
$ ls annofab-sample-data-3dpc-main/
001 002 003 README.md
$ cd annofab-sample-data-3dpc-main/
$ tree 003
003
├── annofab_inputdata.conf
├── calib-back_camera
│ ├── 003-0.txt
│ └── 003-10.txt
├── calib-front_camera
│ ├── 003-0.txt
│ └── 003-10.txt
├── calib-left_camera
│ ├── 003-0.txt
│ └── 003-10.txt
├── calib-right_camera
│ ├── 003-0.txt
│ └── 003-10.txt
├── image-back_camera
│ ├── 003-0.jpg
│ └── 003-10.jpg
├── image-front_camera
│ ├── 003-0.jpg
│ └── 003-10.jpg
├── image-left_camera
│ ├── 003-0.jpg
│ └── 003-10.jpg
├── image-right_camera
│ ├── 003-0.jpg
│ └── 003-10.jpg
├── scene.meta
└── velodyne
├── 003-0.bin
└── 003-10.bin
9 directories, 20 files
$ cd 003
$ zip -r ../003.zip *
シーケンス003の中身
シーケンス003のフォルダ構成やファイルを簡単に説明します。
velodyne/*.bin
:点群データimage-_/_.jpg
:カメラ画像calib-_/_.txt
:カメラのキャリブレーション情報scene.meta
:フォルダのマッピング情報やカメラの視野角情報などannofab_inputdata.conf
:入力データIDのプレフィックスなど、入力データの登録用の設定情報
詳細はAnnofab 点群形式(KITTIベース)または3次元プロジェクトの入力データ登録を参照してください。
入力データ/補助情報の登録
入力データ画面に遷移して、「入力データをアップロード」ボタンを押してください。そして、モーダルダイアログで003.zip
をアップロードしてください。数分待つと入力データと補助情報が登録されます。
登録処理が完了すると、入力データが2件追加されます。入力データ名「003-0.bin」の「入力データ詳細」を押して、補助情報も登録されていることを確認してください。
タスクの作成
登録された入力データ2件を含むタスク「003」を作成します。タスク一覧画面の「タスクを作成」ボタンを押してください。
入力データとタスクの関係をCSVで指定して、タスクを作成します。以下の通り操作してください。
- 「入力データをCSVで個別に指定」タブを選択する
foo.csv
(以下参照)を作成する。- 1列目がタスクID、2列目は空欄(どのような値でもよい)、3列目は入力データID
- アップロードするCSVに
foo.csv
を選択して、「タスクを作成」ボタンを押す。
003,,003-0
003,,003-10
数分待つとタスク「003」が作成されます。アノテーションエディタを開いて、正しくデータが登録されていることを確認してください。
補足
annofab-3dpc-editor-cliを利用してデータを登録する
複数のシーケンスをAnnofabに登録する場合は、annofab-3dpc-editor-cliを使うと便利です。annofab-3dpc-editor-cliはAnnofabの3次元プロジェクトを操作するCLIです。
以下のコマンドは、シーケンス003の入力データと補助情報を登録して、タスクまで作成します。このコマンドをシェルスクリプトなどに記載すれば、複数のシーケンスを1回の操作でAnnofabに登録できます。
詳細はanno3d project upload_sceneコマンドを参照してください。
$ cd annofab-sample-data-3dpc-main/
$ anno3d project upload_scene --project_id ${ANNOFAB_PROJECT_ID} \
--task_id_prefix scene1-"003" \
--sensor_height 0 \
--upload_kind task \
--scene_path 003/scene.meta \
--force
anno3d project upload_scene
コマンドでは、annofab_inputdata.conf
は不要です。annofab_inputdata.conf
に記載されている情報は、コマンドライン引数で指定します。
annofab-cliを利用してタスクを作成する
作成したいタスクが数件の場合は、annofabcli task putコマンドを利用すると便利です。
以下のコマンドは、タスク003
を作成しています。コマンドに入力データIDとタスクIDを直接指定できるので、「CSVを作成してアップロードする」方法よりも、操作が簡単です。
$ annofabcli task put --project_id ${ANNOFAB_PROJECT_ID} \
--json '{"003":["003-0","003-10"]}'
まとめ
以上で、3次元アノテーションのチュートリアルは終了です。このチュートリアルでは、「PandaSet」テンプレートを利用してプロジェクトを作成し、3次元アノテーションエディタでバウンディングボックス、セマンティック/インスタンスセグメント、検査コメントを作成しました。また、サンプルデータを利用して3次元プロジェクトにデータを登録しました。
3次元アノテーションエディタには多くの機能があります。今回紹介した3次元アノテーションエディタの機能は、全体の半分以下です。是非マニュアルを参照して、いろいろな機能を使ってみてください。
Updated almost 2 years ago