「スタバなう」ツイートの画像は本当にスタバか、CNNで判定してみた
はじめに
Twitterで1日に一度くらいは「スタバなう」という投稿を目にする気がします。ただし大抵はキラキラ女子大生などを揶揄しており、ラーメンなどの画像とともに投稿されることが多いです。
今回は、画像分類に秀でたConvolutional Neural Network (CNN)を用いて、「スタバなう」という語句を含むツイートの添付画像が本当にスタバの画像か否か判定してみようと思います。
データセットの構築
下記の記事でも触れたウェブサービスを用いて「スタバなう」という語句を含むツイートの添付画像を収集しました。
手動でスタバの画像(正例)とそうでないもの(負例)に分類しました。枚数が中途半端なのは、ここで飽きたからです。
- 正例:168枚
- 負例:259枚
この段階で、検証用のデータセットとして以下の枚数分を取り出しました(当然、訓練用のデータセットとしては使いません)。
- 正例:40枚
- 負例:60枚
CNNの構築と学習
CNNの構築と学習には、下記の記事のPythonコードを再利用しました。もちろんパス名など細かい部分は修正しています(Github)。
CNNの構造
学習
327枚の訓練用のデータセットを学習させた結果は、下記の画像のようになりました。40ステップ辺りで収束していると分かります。
分類結果
予想\正解 | 正 | 負 |
---|---|---|
正 | 54 | 21 |
負 | 6 | 19 |
Precision = 0.72
Recall = 0.90
F-measure = 0.7999
指標についての説明はこちら。
F値 - 機械学習の「朱鷺の杜Wiki」
正と予想したのに正解は負だった画像(表の21)を調べてみると、スタバ以外のコーヒーチェーンの画像などが含まれていました。コーヒーカップは写っているのでロゴで判定するしかなく、これは間違えても仕方ないかなと思います。