CVATのアノテーションタスクをほかの人と共有する

2021.11.16

データアナリティクス事業本部の鈴木です。

以前、画像アノテーションツールのComputer Vision Annotation Tool(以降、CVAT)を紹介しました。

今回はCVAT間でタスクを受け渡しする方法を紹介します。

検証の説明

確認したいこと

CVATでタスクをエクスポートし、受け取り側のCVATでタスクをインポートする方法を確認します。

CVATは以前の記事と同様、ローカルにコンテナを起動する想定です。

データセットやアノテーションデータのみを受領したケースの方法は、以下のブログを参照ください。

CVATに既存のアノテーションをインポートする | DevelopersIO

やってみる

1. タスクのエクスポート

まず、タスクをエクスポートする方法から確認します。

エクスポートしたいタスクのあるプロジェクトを開きます。

対象のプロジェクトを開く

エクスポートしたいタスクを選んで開きます。

エクスポートしたいタスクを選ぶ

Actions > Export task を押して、タスクをエクスポートします。

タスクをエクスポートする

エクスポートすると、zipファイルがダウンロードできます。zipは以下のようなファイルが含まれています。

.
├── annotations.json
├── data
│   ├── ColinkySquash.jpg
│   ├── Ginkgo.JPG
│   ├── index.json
│   └── manifest.jsonl
└── task.json

annotations.jsonには既に付けられているアノテーションの情報、task.jsonにはタスクの情報、dataにはタスクにアップロードしているデータの情報が含まれています。

2. タスクをインポートする

TasksからTasks画面を開き、Import Taskで先ほどエクスポートした(つまり、ほかのメンバーからもらった)zipファイルをインポートします。

タスクのインポート

インポートすると、エクスポート前と同じ内容のタスクが新しく作成されます。作成した日付やIDなどは新しく採番されています。

インポートしたタスク

3. タスクをプロジェクトに移動させる

インポートしたタスクはAdminであればそのままでも作業できますが、一般ユーザーが作業できるようにプロジェクトに移動させておきます。

手元のCVATには、エクスポートしたタスクを移動させるためのプロジェクトがないので、まずプロジェクトを作成します。

Projectsをクリックし、Create new projectからプロジェクトを作成します。

プロジェクトを作成する

ラベルはインポートするタスクに合わせておきます(必ずしも合わせなくても、マッピングすることも可能そうでした)。

インポート先のプロジェクトを作成する

次に先ほどインポートしたタスクで、Actions > Move to projectを押して、タスクを既存のプロジェクトに移動させます。

タスクをプロジェクトに移動する

移動させる前に、どのプロジェクトに移動させるかや、タスクのアノテーションラベルをプロジェクトのラベルにどうマッピングするか選択することができます。

移動時の詳細の設定

最後に

CVAT間でタスクを受け渡しする方法を確認しました。

異なるCVATで作業している際は、データセットやアノテーションデータをエクスポートしてやりとりするのではなく、タスクごとエクスポートして受け渡しするととても便利そうですね。