
ハイブリッドアプリ+画像認識+機械学習のLTしてきた
この記事はMonaca Advent Calendar 2018の13日目の記事です。
13日目と言いながら24日になってしまいました。本当すみません。
先日のMonaca UG TOKYO 7 〜忘年LT大会〜でLT枠をもらったので、機械学習でモナカレーを認識するというLTをしてきました。
その時のスライドがこちらです。
雰囲気が良くてLTはすごい楽しかったんですが、調子に乗って時間を使いすぎたので途中でバッサリきられてしまいました(苦笑)
この記事では、LTの内容を簡易的に紹介しつつ、当日話せなかったことの補足を書こうと思います。
LTのネタについて
まずはどうやってネタを決めたかですが、ネタ自体は割とすんなり決まりました。
・ サンプルアプリ作って紹介するのが良かった
・ ウェブではあまりできないデバイスの機能を使いたかった
・ 機械学習とかその辺を組み合わせたかった
こんな感じで考えて、画像認識のアプリを作ってみたという話から、機械学習でモナカレーを認識するという流れを思いつきました。
普段から触ってみたいものとかをストックしておくと、こういう時に試してみようという気持ちになるので良いですね。
ちなみに、モナカレーというのはMonacaのユーザー20万人突破キャンペーンで作られたカレーです。
画像認識アプリをつくる
まずは、既存の画像認識APIを使った画像認識アプリを作りました。
使ったAPIはGoogle Cloud Visonで、これはこの後のモナカレーの機械学習でGoogleのAutoMLを使おうと思ってたからです。
APIは画像データをBase64エンコードでPOSTするだけで良い感じに結果が取得でき、Monacaのカメラプラグインは撮影結果をBase64で取得できるので相性良しです。この辺はサクッと作れました。
LTでデモをしようと思ったのですがスマホの画面が上手く映らなくて失敗。デモをするより、できるなら動画を用意しといた方が確実ですね。
機械学習でモナカレーを認識させる
ここからが本題。
Google Cloud Visionだけでは、モナカレーが皿と認識されることがわかったので、機械学習でモナカレーを覚えさせます。これはひたすらデータを与えて学習させるので仕事中にいろんなモナカレーを撮りまくりました。
他の人には、あの人何やってんだろうと思われてたと思います。
複数のラベルを用意する必要があるので他のカレーも用意しました。
僕がモナカレーのバリエーションを引き出しきれずにもっとよこせと言われましたが、この時すでにLTの2時間前くらいだったのでとりあえず学習はここで打ち切りました。
僕のLTもこの辺の紹介をしているところで打ち切られました。
なので、この後はLTで紹介できなかった内容です。
良いですね。
はっきりした画像はほぼ100%認識できます。
キャンペーンサイトからお借りした画像でテストしてみたらまさかの2%で、一緒に用意していた欧風カレーが意外なモナカレーっぷりを発揮しました。やはり、データ不足ですかね。
Monacaアプリに組み込む
これをAPIとしてアプリに組み込もうと思ったのですが、僕のスキル不足で残念ながらうまくいきませんでした。
GoogleのAutoMLがローカル環境ではなんとか呼び出せたんですが、CIツールが必要だったり認証情報の呼び出しなどうまくいかず、うまくアプリから呼び出せず断念…。
代わりにIBMのWatosonを使ったりしたのですが、これもうまくいかず。。
最後に
本当はアプリの組み込みまでやってから記事を書こうと思っていたのですが、全然時間が取れず25日過ぎてしまいそうだったので公開しました。
機械学習モデルのアプリへの組み込みは時間があるときにリベンジしようと思ってるので、その時はまた記事書きます。
気軽にクリエイターの支援と、記事のオススメができます!