チョコボール統計

チョコボールの秘密を統計解析で明らかにしていく。おもちゃのカンヅメ欲しい。

ChocoballDetector:チョコボールを自動計測するWebサービス

概要

【トップに戻る】

目次

はじめに

当ブログのメインコンテンツは、ピーナツ味のチョコボールの計測です。 重さを測ったり、個数を数えたりしているのですが、従来、それらは全て手動で行われています。
ということで、ずいぶん前に以下の記事をアップしました。 chocolate-ball.hatenablog.com

一般物体認識の仕組みを利用してチョコボールの個数を自動計測するというものでした。

しかし、作ったは良いものの、ぶっちゃけた話、実用していません。 なぜなら、写真を撮ってPCに送って計算させるという手間が単純に面倒だったから。。。

スマホアプリにするか、webアプリにして、スマホで撮影した写真をそのまま計測したい!

ということで、webアプリ作ってみました。
実はまだ問題あってスマホ撮影した写真のサイズ問題で実戦投入できてない(汗)

【トップに戻る】

システム構成

全体概要は以下の通りです。こんな書き方であってるのかわからないけど。。。
(webアプリとか初めて作るんで許してください)

f:id:hippy-hikky:20181117232539p:plain:w300

GCEにインスタンスを立ててます。

推定エンジンは、以前の記事と一緒で、chainer CVを使っています。 NNモデルはFaster-RCNNを使っていて、チョコボール画像にアノテーションつけたもので学習しています。

推定エンジンにつなげるためのAPIはFlaskで書いています。 サーバでHTMLを生成していて、CSSはBootstrapを使っています。

webサーバにはnginxを使っています。

クライアントのwebブラウザから、写真をPOSTして貰えれば、個数を自動計測します。 結果は、バウンディングボックスをつけた画像とチョコボールの個数を数値で返してきます。

【トップに戻る】

実装

ソースはgithubにあげています。
プルリク受け付けてますよー。 詳しい方、お願いします〜。

github.com

ドメインの取得も初めてやってみたんですが、 お名前.comドメイン取りました。
.jpドメインって高いんですね。 トップレベル・ドメインでの値段の違いが知れてよかった。

以下のURLにアクセスいただければ、試すことができます。操作方法は次章。

ChocoballDetector

【トップに戻る】

操作方法

ChocoballDetectorにアクセス

ChocoballDetector

ブラウザからアクセスすると、以下の画面にたどり着きます。

f:id:hippy-hikky:20181117235730p:plain:w250

写真を撮る

f:id:hippy-hikky:20181117235747p:plain:w250

個数を計測したいチョコボールの写真を撮りましょう。 写真が無い場合、webに落ちてる画像でもなんでも良いです。

写真を選択してUpload

f:id:hippy-hikky:20181117235917p:plain:w250

結果を確認しよう

f:id:hippy-hikky:20181118000107p:plain:w250

Uploadすると、画面に何も変化はありませんが、計算してます。 だいたい30秒くらいかかると思います。
プログレスバーが出たりとか、必要だと思うのですが、私の技術不足でまだ実装できてません。 今後実装進めていきます。

結果は、上記の通りで、検出画像と個数が表示されます。
検出画像(中央右)は、チョコボールの箱とチョコボールを検出し、それぞれ赤枠で検出している部分を示します。 チョコボールの赤枠の数が下の方に表示されています。

そこそこ検出できるんですが、固まっていたり、照明が暗かったりすると検出ミスが多くなるようです。

サンプル画像を使って試す

ここまで操作方法説明してきましたが、チョコボール画像をすぐに用意できる方はなかなかいないのかなと思いますので、 サンプル画像用意してます。
アプリ上部のメニューからGalleryに移動してください。

f:id:hippy-hikky:20181118221107p:plain:w250

気になったサンプル画像の下にある「これで試す」ボタンを押下していただくと、 30秒位で結果が返ってきます。

【トップに戻る】

終わりに

ということで、チョコボールの個数計測アプリをwebアプリとして公開してみました。
これまではサーバで動作するデータ分析系のコードくらいしか書いたことが無く、 今回初めてwebアプリを作って公開するというチャレンジをしてみました。 なので、いろいろと実用に耐えられない点はいろいろあります。まぁ言い訳なんですけどね。

今後改良を続けていって、他のデータもインタラクティブに閲覧できるようにするつもりです。

というわけで、今後もご期待いただけたら幸いです。

【トップに戻る】

参考文献

  1. 深層学習(機械学習プロフェッショナルシリーズ)

    深層学習 (機械学習プロフェッショナルシリーズ)

    深層学習 (機械学習プロフェッショナルシリーズ)

  2. ChainerCV — ChainerCV 0.11.0 documentation
    chainercvの公式ドキュメント。とりあえあずこれを見れば動かせるようになります

  3. GitHub - chainer/chainercv: ChainerCV: a Library for Deep Learning in Computer Vision
    chainercvの公式Git

  4. http://flask.pocoo.org/
    flaskのドキュメント

  5. https://getbootstrap.com/
    bootstrapのドキュメント

【トップに戻る】