Skip to content

PandaSetをAnnofabに登録するためのスクリプトです。

License

Notifications You must be signed in to change notification settings

kurusugawa-computer/pandaset-to-annofab

Repository files navigation

pandaset-to-annofab

PandaSetをAnnofabに登録するためのスクリプトです。

Requriements

環境構築

  1. git clone --recursive https://github.com/kurusugawa-computer/pandaset-to-annofab.git でサブモジュールのデータも取得します。
  2. VSCodeでディレクトリを開き、VSCode Dev Containers を起動します。

Usage

Annofabにデータ(入力データとタスク)を登録する

以下のコマンドは、PandaSetのsequence_id001のシーケンスに対して、10フレームごとにAnnofab点群形式に変換します。

$ poetry run python -m panda2anno.convert_data_to_kitti --input_dir pandaset_dir --output out/kitti \
 --sequence_id 001 --sampling_step 10

$ tree out/kitti/001
out/kitti/001
├── calib-front_camera
│   ├── 0.txt
│   ├── 001-0.txt
│   ├── 001-10.txt
│   ├── 001-20.txt
│   ├── 001-30.txt
│   ├── 001-40.txt
│   ├── 001-50.txt
│   ├── 001-60.txt
│   └── 001-70.txt
├── image-front_camera
│   ├── 0.jpg
│   ├── 001-0.jpg
│   ├── 001-10.jpg
│   ├── 001-20.jpg
│   ├── 001-30.jpg
│   ├── 001-40.jpg
│   ├── 001-50.jpg
│   ├── 001-60.jpg
│   └── 001-70.jpg
│
...
│
├── scene.meta
└── velodyne
    ├── 0.bin
    ├── 001-0.bin
    ├── 001-10.bin
    ├── 001-20.bin
    ├── 001-30.bin
    ├── 001-40.bin
    ├── 001-50.bin
    ├── 001-60.bin
    └── 001-70.bin

13 directories, 110 files

変換したAnnofab点群形式のデータを、anno3dコマンドでAnnofabに登録します。 コマンドを実行すると、Annofabに入力データ(補助情報を含む)とタスク001が登録されます。

$ poetry run anno3d project upload_scene --project_id ${PROJECT_ID} --upload_kind task \
 --sensor_height 0 --scene_path out/kitti/001 --task_id_prefix 001

cuboidアノテーションをAnnofabに登録する

以下のコマンドは、sequence_id001であるシーケンスに含まれているcuboidアノテーションを、10フレームごとにAnnofabフォーマットに変換します。

$ poetry run python -m panda2anno.convert_cuboid_to_annofab_annotation.py --input_dir pandaset_dir --output out/cuboids \
 --sequence_id 001 --sampling_step 10


$ tree out/cuboids
out/cuboids
├── 001
│   ├── 001-0.json
│   ├── 001-10.json
│   ├── 001-20.json
│   ├── 001-30.json
│   ├── 001-40.json
│   ├── 001-50.json
│   ├── 001-60.json
│   └── 001-70.json

$ cat out/cuboids/001/001-0.json | jq

{
    "details": [
        {
            "annotation_id": "2c4dbdea-845e-4d29-8a94-9c86feb536fe",
            "label": "Car",
            "attributes": {
                "object_motion": "Stopped",
                "rider_status": "",
                "pedestrian_behavior": "",
                "pedestrian_age": ""
            },
            "data": {
                "data": "{\"shape\":{\"dimensions\":{\"width\":1.867,\"height\":1.673,\"depth\":4.629},\"location\":{\"x\":-7.878498533504047,\"y\":36.81295918368881,\"z\":0.20847061576417758},\"rotation\":{\"x\":0,\"y\":0,\"z\":4.745545544005255},\"direction\":{\"front\":{\"x\":0.033150488800512974,\"y\":-0.9994503715003997,\"z\":0.0},\"up\":{\"x\":0.0,\"y\":0.0,\"z\":1.0}}},\"kind\":\"CUBOID\",\"version\":\"2\"}",
                "_type": "Unknown"
            }
        }
    ]
}


Annofabフォーマットに変換したアノテーションを、annofabcliコマンドでAnnofabのタスク001に登録します。

$ annofabcli annotation import --project_id ${PROJECT_ID} --annotation out/cuboids --task_id 001

semseg(Semanantic Segmentation)アノテーションをAnnofabに登録する

以下のコマンドは、sequence_id001であるシーケンスに含まれているsemsegアノテーションを、10フレームごとにAnnofabフォーマットに変換します。

$ poetry run python -m panda2anno.convert_semseg_to_annofab_annotation.py --input_dir pandaset_dir --output out/semseg \
 --sequence_id 001 --sampling_step 10


$ tree out/semseg
out/semseg/001
├── 001-0
│   ├── 07833919-5540-46f2-af93-f713f966bca9
│   ├── 24fd8651-b61b-45f6-b7d2-431253e8a641
├── 001-0.json
├── 001-10
│   ├── 17a5400e-23cc-45bf-ae94-e73172561cfc
│   ├── 3226b98a-baed-4e0b-b99b-96b7555326bf
├── 001-10.json
...



$ cat out/semseg/001/001-0.json | jq
{
  "details": [
    {
      "annotation_id": "39e7a986-84d7-46b1-ab66-1f6f4d3f2bb6",
      "label": "Vegetation",
      "data": {
        "data": "001-0/39e7a986-84d7-46b1-ab66-1f6f4d3f2bb6",
        "_type": "Unknown"
      }
    }
  ]
}


$ cat out/semseg/001/001-0/07833919-5540-46f2-af93-f713f966bca9 | jq

{
  "points": [
    143446,
    143449,
    143452,
    143470,
    143473,
    143476
  ],
  "kind": "SEGMENT",
  "version": "1"
}

Annofabフォーマットに変換したアノテーションを、annofabcliコマンドでAnnofabのタスク001に登録します。

$ annofabcli annotation import --project_id ${PROJECT_ID} --annotation out/semseg --task_id 001

About

PandaSetをAnnofabに登録するためのスクリプトです。

Resources

License

Stars

Watchers

Forks

Packages

No packages published