AutoMLでアニメ顔を分類する


tl;dr

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

はじめに

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

データセットの作成

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

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 を選択し作成します。

80枚くらいが一番多いですね。

学習

START TRAINING で学習

評価

84%くらいしか精度が出ませんでした><。再現率(Recall)が適合率(Precision)に比べて悪そうです。

false negativesやfalse positivesに似た画像を追加する必要がありそうです。

(おまけ)100枚以上画像があるキャラクター(43キャラクター)で学習する

柊かがみと柊つかさの識別はむずかしそうですね。

柊かがみ

柊つかさ

まとめ

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