クラッシュロワイヤルに出てくるゴブリンをトラッキングしたった ②アノテーション追加


[クラッシュロワイヤルに出てくるゴブリンをトラッキングしたった ①データ取得](https://qiita.com/satsukiya/items/3c19310f06475e15cd0f) の続きです。

# What is CVAT ?

[cvat](https://www.cvat.ai/) はIntel社が開発したオープンソースのアノテーションツールです。
画像処理ライブラリの[OpenCV](https://opencv.org/opencv-and-cvat-computer-vision-annotation-tool-intel/)でも紹介されています。
てか、OpenCVの開発者がアノテーションを作ったと言ってもいいです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/16f1a48a-2bdc-278d-f775-d1013d5402fd.png" width=720>


# Target
タイトルの通りゴブリンをトラッキングするのですが、3種類います。
また、味方のキャラは上部の敵タワーに向かって攻撃しつつ移動し、敵キャラはその逆で下部のタワーへ進みます。
なのでラベルの種類は合計で6つあります。

- ゴブリン 味方
- ゴブリン 敵
- 槍ゴブリン 味方
- 槍ゴブリン 敵
- 吹き矢ゴブリン 味方
- 吹き矢ゴブリン 敵


#### ゴブリン (2cost)

||味方側|敵側|
|-|-|-|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/f8862c89-436a-d3a5-bd48-d9adac47c887.png" width=120>|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/99372393-7d03-b362-50e1-1b5f99bef559.jpeg" width=120>|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/f3350923-f10b-abb7-7669-04c16c43f42f.jpeg" width=120>|

- 地上しか攻撃できない
- 下記のカードを使うと出てくる
  - ゴブリンギャング (3cost)
  - ゴブリンバレル (3cost)
  - ゴブリンドリル (4cost)
- 英語名: goblins

#### 槍ゴブリン (2cost)


||味方側|敵側|
|-|-|-|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/78871b9c-7315-4990-9b1a-706453cb8a06.png" width=120>|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/3534f4f3-e83d-6788-cf06-e9552e85bce8.jpeg" width=120>|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/858040be-e611-c354-30f5-cd030fe1f2cc.jpeg" width=120>|

- 地上と空中の両方で攻撃できる
- 下記のカードを使うと出てくる
  - ゴブリンギャング (3cost)
  - ゴブリン小屋 (5cost)
  - ゴブリンジャイアント (6cost)
- 英語名: spear_goblins

#### 吹き矢ゴブリン (3cost)

||味方側|敵側|
|-|-|-|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/f6a76b67-2c9e-9c5f-d76a-d7213dc7cce1.png" width=120>|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/e1082dd0-f515-6e28-e31f-150871ed95fe.jpeg" width=120>|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/7f57ab29-aee0-f57b-fede-f7eee1bab06e.jpeg" width=120>|


- 地上と空中の両方で攻撃できる
- 槍ゴブリンより攻撃速度が速い
- 英語名: dart_goblin

# Preparetion

環境構築の詳細は[Installation Guide](https://opencv.github.io/cvat/docs/administration/basics/installation/)の通りに進めればOK。
cvatを使うにはDocker環境が必要です。

と言ってもgithubにあるリポジトリからクローンしてコンテナを生成&実行してるだけ終わりで、あとは http://localhost:8080/ をブラウザから開けばツールが使えます。
(初期設定でアカウント登録出てきますが、任意で作成してください。)

```sh
git clone https://github.com/opencv/cvat
cd cvat
docker compose up -d
```

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/9c6daf56-b96f-0bcf-de5a-367f0c574e4c.png" width=７２0>


# Addition to Anotations

アノテーションを作成するにあたって3つのステップを進めます。

1. プロジェクト作成
1. タスク作成
1. アノテーション作成



#### プロジェクト作成

「create a new project」 を押す。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/baf62c3f-940d-5988-6918-40989bbc8fca.png" width=７２0>

プロジェクト名を入力。
ラベルに今回キャラクターをトラッキングしたい名称を付ける。
- ally_goblin (味方ゴブリン)
- enemy_goblin (敵ゴブリン)
- ally_spear (味方槍ゴブリン)
- enemy_spear (敵槍ゴブリン)
- ally_dart (味方吹き矢ゴブリン)
- enemy_dart (敵吹き矢ゴブリン)

最後に「Submit & Open」を押す。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/2552b3cf-6d36-c8da-5c85-5a3de9d75cf4.png" width=７２0>


#### タスク作成

「create a new task」を押す。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/feddfc73-7f1d-db26-02dc-082ddc1d9551.png" width=７２0>


タスク名を入力する。
[①データ取得](https://qiita.com/satsukiya/items/3c19310f06475e15cd0f) で作成した学習用の画像をアップロードする。
「Submit&Open」を押す。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/c9b529c7-0735-b692-bb1e-7f5d73bd420d.png" width=７２0>

「Job」 をクリックする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/47f4ac6d-2268-8903-7ddc-71f675889c51.png" width=７２0>

#### アノテーション作成

もくもくと画像に対してアノテーション(ラベリング)をします。
左ツールバーの長方形をクリックし、キャラクターを選んで「Shape」を押すと短形選択ができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/6e3dd0bd-d437-3bbe-bf99-8983c6a5281c.png" width=240>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/188d046c-d219-20f6-466b-a968005f6e02.png" width=７２0>


#### エクスポート
全てのアノテーションの追加が終わったら、学習用のファイルをエクスポートします。

menu > Export job dataset を選ぶ
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/66f31315-1e96-07cb-2755-28be85c3d0c7.png" width=240>

次回以降を考えて、フォーマット形式を「PASCAL VOC 1.1」にして「OK」ボタンを押します。
その後、zip形式の圧縮ファイルが生成されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288206/adfd050c-0c09-fa04-d926-e47d918a917d.png" width=240>

# To Be Continued
次回は[AWS Rekognition](https://aws.amazon.com/jp/rekognition/)を使った機械学習について書きます。

# Reference

- [CVATでバウンディングボックスをアノテーションしてみる](https://dev.classmethod.jp/articles/annotate_objects_in_image_with_cvat/)