susunshunのお粗末な記録

お粗末に丁寧に生きる

コーンフレークを判別する #Tensorflow #M1グランプリ

プロローグ

今年のM-1グランプリ、皆さんご覧になりましたでしょうか? 今年は特にどの組も面白くレベルが高かったなぁと個人的には思っています。 ちなみに私はぺこぱとすゑひろがりずが好きです。

そんな強豪集う今年のM-1、激戦を制したのはミルクボーイ。 予選では歴代最高得点を叩き出し文句なしの優勝です。

コーンフレークやないかい!

上述の歴代最高得点を叩き出したネタです

www.fnn.jp

ネタの内容としては、

  • オカンが好きな朝ごはんがあるらしい
  • でもその名前を忘れてしまった
  • それを特定すべく、色々特徴を聞いてコーンフレークかどうかを判断する

といったものです

「コーンフレークやないかい!」「ほなコーンフレーク違うか」 この幾度となく続く掛け合いが中毒になります

そこでふと思う

めでたくオカンが好きな朝ごはんが「コーンフレーク」だったとしても、 オカンに「コーンフレーク」を食べてもらうためにはどのコーンフレークかを判別する必要があります

シリアル・グラノーラも含めると膨大な種類があります。果たしてオカンはこの中から理想のコーンフレークを探し出せるのでしょうか

kurawaka.com

コーンフレーク判別機をつくる

そんなオカンのために、コーンフレークの画像からどのコーンフレークかを判別するものを作りましょう 今回は手早くやるためにTensorFlow1系を使います

参考にさせていただいた情報

qiita.com qiita.com

ここらへんを参照してササッと判別機をつくりました

学習データ

膨大な種類の学習データを集めていたら年が明けてしまうので、 今回はオカンが好きそうなコーンフレークに絞って学習データを収集します

判別してみる

公式のパッケージ画像を判別してみます

シスコーン

https://www.nissin.com/jp/products/brands/ciscorn/

siscorn 0.99967444
cornflosty 0.00031585997
chocowa 9.703208e-06

チョコワ

https://www.kelloggs.jp/ja_JP/products/chokowa.html

chocowa 0.99898654
cornflosty 0.00064735184
siscorn 0.00036609493

コーンフロスティ

https://www.kelloggs.jp/ja_JP/products/corn-frosties.html

cornflosty 0.9479657
chocowa 0.05056956
siscorn 0.0014647491

うまく判別できましたね

もなか

ついでに最中も判別してみます

最中のイラスト | かわいいフリー素材集 いらすとや

siscorn 0.80144745
cornflosty 0.12482048
chocowa 0.073732056

最中はどちらかというとシスコーン寄りみたいです

気づき

  • コーンフレークの画像持ってるんだったらそれもう商品名分かってるのでは?判別機いらないのでは?
  • 知らないコーンフレークに出会える
    • 「コーンフレーク」という商品名のコーンフレーク
    • コーンフロスト
    • シュガーポン
    • etc
  • コーンフレークが食べたくなってくる
  • コーンフレークを判別したか何なんだという悟りを開いた

結論

このように商品画像があれば、どのコーンフレークなのか、という判別は技術の力で実現することができます でも「オカンが好きな朝食が何か」という判別を自然言語から行うことに関しては、ミルクボーイを頼る他ないと思います

Tensorflowで判別機を作るのは初めてだったのですが、コーンフレーク判別機を作ろうと思い立ってからこの記事を書き終わるまで数時間しか要しておらず、 ここまで簡単にできてしまうのか...と感動しています 学習データさえ揃えばある程度の精度の判別機をつくることはサッとできそうなので、今後も活用の幅がありそうです