AutoMLでアニメ顔を分類する

# tl;dr
- 画像が100枚以上あれば、96%くらいの精度を達成した。

# はじめに
今年の夏は豪雨や暑さが大変ですね。
先週BetaになったAutoML Visionを二次元画像に適用してみました。
今季ははたらく細胞とOne Roomしか分からないです。(にわか

# データセットの作成
今回は、Kaggle Grand Masterであらせられるnagadomiさんがこちらで配布されているアニメキャラクターの顔領域サムネイルデータセット(176キャラクター)を使用します。

```bash
PROJECT=$(gcloud config get-value project) && BUCKET="${PROJECT}-vcm"

wget 'http://www.nurs.or.jp/~nagadomi/animeface-character-dataset/data/animeface-character-dataset.zip'
unzip animeface-character-dataset.zip
# 画像とラベルを紐付ける
find animeface-character-dataset/thumb/ -name *.png | while read line; do label=$(echo $line | cut -d'/' -f3 | cut -c5-); echo "gs://${BUCKET}/$line,$label"; done > animeface-character-dataset/all_data.csv
# Cloud Storageにアップロード
gsutil -m cp -r animeface-character-dataset/ gs://${BUCKET}/
```
Cloud Storageにアップロードした *all_data.csv* を選択し作成します。
![beta-dot-custom-vision.appspot.com_vision_datasets_create_project=automl-mnist (1).png](https://qiita-image-store.s3.amazonaws.com/0/163401/43abea34-92d2-c834-b613-a2107fb12a8f.png)
80枚くらいが一番多いですね。
![docs.google.com_spreadsheets_d_1QY9SOv1U6sUccj0kj91cgBUVTzgxx5c7kderhyiU6p8_edit.png](https://qiita-image-store.s3.amazonaws.com/0/163401/645cc1d8-d16e-80c1-4421-e256eae85f7c.png)

# 学習
**START TRAINING** で学習
![beta-dot-custom-vision.appspot.com_vision_datasets_train_dataset=ICN2149940523575648564&model=ICN6161173102575362303&project=automl-mnist.png](https://qiita-image-store.s3.amazonaws.com/0/163401/f36a97c6-2287-3495-6f9e-0c305681c4ac.png)

# 評価
84%くらいしか精度が出ませんでした><。再現率(Recall)が適合率(Precision)に比べて悪そうです。
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN2149940523575648564&model=ICN6161173102575362303&project=automl-mnist.png](https://qiita-image-store.s3.amazonaws.com/0/163401/b6cafa04-f9f0-005b-b594-1176514c3219.png)
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN2149940523575648564&model=ICN6161173102575362303&project=automl-mnist (1).png](https://qiita-image-store.s3.amazonaws.com/0/163401/99d6e3d0-5539-c30d-7581-6a54521f2665.png)

false negativesやfalse positivesに似た画像を追加する必要がありそうです。
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN2149940523575648564&model=ICN6161173102575362303&project=automl-mnist (2).png](https://qiita-image-store.s3.amazonaws.com/0/163401/4ac4e4fc-e09d-5589-d323-1d71d05da165.png)

# (おまけ)100枚以上画像があるキャラクター(43キャラクター)で学習する
柊かがみと柊つかさの識別はむずかしそうですね。
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN5683008205872347753&model=ICN3591125282182228466&project=automl-mnist.png](https://qiita-image-store.s3.amazonaws.com/0/163401/e407d5e5-6eb2-d42b-0f8e-eaeb034091b0.png)
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN5683008205872347753&model=ICN3591125282182228466&project=automl-mnist (1).png](https://qiita-image-store.s3.amazonaws.com/0/163401/7e00d146-b147-2100-a842-2d929295a05d.png)

### 柊かがみ
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN5683008205872347753&model=ICN3591125282182228466&project=automl-mnist (2).png](https://qiita-image-store.s3.amazonaws.com/0/163401/fd3e5f69-18b3-df96-b3cd-2657706aaae1.png)

### 柊つかさ
![beta-dot-custom-vision.appspot.com_vision_datasets_evaluate_dataset=ICN5683008205872347753&model=ICN3591125282182228466&project=automl-mnist (3).png](https://qiita-image-store.s3.amazonaws.com/0/163401/7e32a8c7-6eb8-2fd2-7608-f75e68f0fe51.png)

# まとめ
- 画像が100枚ほどあれば十分使えそうです。
- 画像のどの部分が寄与しているか、解釈可能なUIになるとデバッグしやすそうです。
- 活用事例がもっと増えてほしいですね。